roboforum.ru

Технический форум по робототехнике.

EEPROM у атмелок

EEPROM у атмелок

к561ЛА7 » 02 мар 2011, 23:11

Задаю переменную

eeprom unsigned char x

икс меняю кнопками в обработчике прерываний и вывожу его на экран
После выключения питания икс как положено выводиться уже запомненное снова.

Но не понятно как она работает: каждое прерывание икс пишется в еепром заново или записть происходит туда только при изменении икса?
а то прерывания идут постоянно , не закончиться ли таким образом запас по записи в в еепром в 100.000 ?

Re: EEPROM у атмелок

Michael_K » 02 мар 2011, 23:16

А вы сравнивайте то, что хотите записать с тем, что там уже записано. Если совпадает, то не мучайте еепромку.

Re: EEPROM у атмелок

к561ЛА7 » 02 мар 2011, 23:27

дак втом то и дело что я ничего туда не зписываю .
я только ввместо
unsigned char написал в программе eeprom unsigned char, и оно само записывавется.

но вот только как часто?

Re: EEPROM у атмелок

Сергей » 02 мар 2011, 23:48

к561ЛА7, мне всегда нравились Ваши темы :good:
к561ЛА7 писал(а):но вот только как часто?

Так часто, как вы в нее что-нибудь записываете

Re: EEPROM у атмелок

yak-40 » 02 мар 2011, 23:50

к561ЛА7 писал(а):икс меняю кнопками в обработчике прерываний и вывожу его на экран

Ну дык, меняешь-же. Вот он и прописывается каждый раз.
к561ЛА7 писал(а):не закончиться ли таким образом запас по записи в в еепром в 100.000 ?

Конечно закончится.

Re: EEPROM у атмелок

SERGEY_M » 03 мар 2011, 00:11

икс меняю кнопками в обработчике прерываний и вывожу его на экран

"х" меняется только когда кнопки жмешь или при каждом входе в прерывание?
если первое, то нормально, никуда от этого не денешься, ты-же меняешь значение переменной и соотв. ее перезаписываешь
а если в прерывании все время "х" перезаписывается, независимо от нажатий кнопок, то это плохо
хотя в любом случае не мешает сравнивать записаное и записываемое значение, если конечно время позволяет))

Re: EEPROM у атмелок

к561ЛА7 » 03 мар 2011, 15:25

В обработчике прерывания, которое идет с частотой 100 герц меняю кнопками значения Х

if (кнопка_нажата == 1) {
Х = Х++;
}
команды же записи в еепром никакой не делаю.

вроде писаться не должно, так как это все равно что в бесконечный цикл вставить.

Re: EEPROM у атмелок

avr123.nm.ru » 03 мар 2011, 16:11

достаточно if (кнопка_нажата)

А что должно происходить по Х =

Re: EEPROM у атмелок

-= Александр =- » 03 мар 2011, 16:38

Красивый вариант был бы сделать выключение программно с кнопки и по ее нажатию запоминать все переменные, а потом отключать ключ питания одной из ног контроллера. Ну или просто в спячку его отправлять.

Re: EEPROM у атмелок

SERGEY_M » 03 мар 2011, 18:16

вроде писаться не должно

а оно пишется...
eeprom unsigned char x - это кто написал?
т.к. компилятору указано расположить переменную "х" в eeprom, то при присваивании ей какого либо значения он сам ее перезаписывает
и особо его упрашивать не нужно :)

Re: EEPROM у атмелок

к561ЛА7 » 20 апр 2011, 21:56

а почему код вижн вонингом ругается " неинициализирован ЕЕПРОМ" если
eeprom insigned char пишешь?

Re: EEPROM у атмелок

igel » 20 апр 2011, 22:37

просто предупреждает что переменной не присвоено значение
для обычных переменных это приводит к глюкам в программе, а тут из еепрома просто вытащите в нужный момент


Rambler\'s Top100 Mail.ru counter