| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Помогите с EEPROM
17.10.2010, 23:48
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Помогите с EEPROM
CodeNameHawk,
Спасибо помогло.
|
|
|
|
17.10.2010, 23:56
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Помогите с EEPROM
AJScorp,
|
Цитата:
|
|
если у Вашего устройства должны быть установки "по умолчанию
|
Ну на сколько мне извесно если мы объявляем переменную то по умолчанию ее значение 0.
|
|
|
|
18.10.2010, 00:01
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,550
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
|
Re: Помогите с EEPROM
Сообщение от 7Fantomas7
|
|
Ну на сколько мне извесно если мы объявляем переменную то по умолчанию ее значение 0.
|
Нисколько не спорю, так и есть и будет. И в EEPROM, поскольку изначально её прописывает программатор, а не cstartup Вашего кода.
|
|
|
|
18.10.2010, 00:07
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Помогите с EEPROM
|
Цитата:
|
|
И в EEPROM, поскольку изначально её прописывает программатор, а не cstartup Вашего кода.
|
Так а я про что? Для чего я эту кутерьму с присвоением начального значения задумал если при первом включении 0. Я не выдумал ничего такого. Просто очень удивительно что протеус не понимает. Просто когда самый первый раз устройство включается чтото должно быть кроме 0 по отношению к чему выставить все остальное, а потом уже 0 врядле когда будет, хотя и не факт.
|
|
|
|
18.10.2010, 02:37
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,548
Сказал спасибо: 5,035
Сказали Спасибо 10,605 раз(а) в 3,594 сообщении(ях)
|
Re: Помогите с EEPROM
Сообщение от Easyrider83
|
|
Вы на счет батарейки резервного питания не думали? В режиме сна МК может жить очень долго. И еепром не нужен становится
|
По-моему это самое лучшее решение этой проблемы, в данном случае. Никакой ЕЕПРОМ не выдержит такого издевательства - по несколько раз в день писать в одни и те же две ячейки.
|
|
|
|
18.10.2010, 09:31
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
Re: Помогите с EEPROM
Alex9797,
Может Вы и правы.
Попробую сделать с косвенной записью.
Но однозначно без батареек и мониторингов напряжения.
|
|
|
|
18.10.2010, 09:52
|
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
|
Re: Помогите с EEPROM
Сохранить еепром, помогает проверка значения ячейки еепром перед записью, если там уже записано то что надо, то запись в ячейку не производим. 100000 перезаписей ячейки не так уж и много.
|
|
|
|
18.10.2010, 13:26
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
|
Re: Помогите с EEPROM
Сообщение от Alex9797
|
|
Никакой ЕЕПРОМ не выдержит такого издевательства - по несколько раз в день писать в одни и те же две ячейки
|
100000/(5 раз в день)=55лет. А ведь бывают субботы и прочие выходные...
|
|
|
|
18.10.2010, 14:48
|
|
|
Временная регистрация
Регистрация: 09.11.2007
Сообщений: 56
Сказал спасибо: 12
Сказали Спасибо 10 раз(а) в 6 сообщении(ях)
|
Re: Помогите с EEPROM
Насколько я помню, к переменным zadanie_X в том виде, как Вы их описали в программе, напрямую обращаться нельзя, т.к. они являются ссылками на пул ячеек EEPROM, адресация которого начинается с нуля. Поэтому в них/из них писать/читать нужно спец функциями (или пользуйся библиотечными или сам напиши) и соответственно, надо в основной памяти переменные объявить, которые будут отображать твои рабочие параметры, их уже в код программы и подставляй.
что-то типа следующего:
eeprom char ee_zadanie_U = 0;
char zadanie_U;
void SetU (char U)
{
EEPROM_Write (U, ee_zadanie_U);
zadanie_U = U;
}
void main()
{
...
zadanie_U = EEPROM_Read (ee_zadanie_U);
if (zadanie_U == 0) {
SetU(1);
}
...
}
А инициализировать тут правильно говорили - если в теле программы декларируешь и инициализируешь EEPROM ячейки, то при компиляции формируется файл для прошивки EEPROM.
По крайней мере вышесказанное справедливо для ICCAVR.
Последний раз редактировалось andruha-d; 18.10.2010 в 14:55.
|
|
|
|
18.10.2010, 18:33
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 28.02.2010
Сообщений: 2,294
Сказал спасибо: 52
Сказали Спасибо 460 раз(а) в 391 сообщении(ях)
|
Re: Помогите с EEPROM
Сообщение от makakus
|
|
100000/(5 раз в день)=55лет. А ведь бывают субботы и прочие выходные...
|
у меня допустим- на светофорах- обратный отсчёт. Каждый раз константу времени сохранять.
Никаких 55 лет не хватит. Массив в 100 сделал- каждый раз- в Новую пишу по кругу.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:24.
|
|