Технический форум по робототехнике.
к561ЛА7 » 02 мар 2011, 23:11
Задаю переменную
eeprom unsigned char x
икс меняю кнопками в обработчике прерываний и вывожу его на экран
После выключения питания икс как положено выводиться уже запомненное снова.
Но не понятно как она работает: каждое прерывание икс пишется в еепром заново или записть происходит туда только при изменении икса?
а то прерывания идут постоянно , не закончиться ли таким образом запас по записи в в еепром в 100.000 ?
Michael_K » 02 мар 2011, 23:16
А вы сравнивайте то, что хотите записать с тем, что там уже записано. Если совпадает, то не мучайте еепромку.
к561ЛА7 » 02 мар 2011, 23:27
дак втом то и дело что я ничего туда не зписываю .
я только ввместо
unsigned char написал в программе eeprom unsigned char, и оно само записывавется.
но вот только как часто?
Сергей » 02 мар 2011, 23:48
к561ЛА7, мне всегда нравились Ваши темы
к561ЛА7 писал(а):но вот только как часто?
Так часто, как вы в нее что-нибудь записываете
yak-40 » 02 мар 2011, 23:50
к561ЛА7 писал(а):икс меняю кнопками в обработчике прерываний и вывожу его на экран
Ну дык, меняешь-же. Вот он и прописывается каждый раз.
к561ЛА7 писал(а):не закончиться ли таким образом запас по записи в в еепром в 100.000 ?
Конечно закончится.
SERGEY_M » 03 мар 2011, 00:11
икс меняю кнопками в обработчике прерываний и вывожу его на экран
"х" меняется только когда кнопки жмешь или при каждом входе в прерывание?
если первое, то нормально, никуда от этого не денешься, ты-же меняешь значение переменной и соотв. ее перезаписываешь
а если в прерывании все время "х" перезаписывается, независимо от нажатий кнопок, то это плохо
хотя в любом случае не мешает сравнивать записаное и записываемое значение, если конечно время позволяет))
к561ЛА7 » 03 мар 2011, 15:25
В обработчике прерывания, которое идет с частотой 100 герц меняю кнопками значения Х
if (кнопка_нажата == 1) {
Х = Х++;
}
команды же записи в еепром никакой не делаю.
вроде писаться не должно, так как это все равно что в бесконечный цикл вставить.
avr123.nm.ru » 03 мар 2011, 16:11
достаточно if (кнопка_нажата)
А что должно происходить по Х =
-= Александр =- » 03 мар 2011, 16:38
Красивый вариант был бы сделать выключение программно с кнопки и по ее нажатию запоминать все переменные, а потом отключать ключ питания одной из ног контроллера. Ну или просто в спячку его отправлять.
SERGEY_M » 03 мар 2011, 18:16
вроде писаться не должно
а оно пишется...
eeprom unsigned char x - это кто написал?
т.к. компилятору указано расположить переменную "х" в eeprom, то при присваивании ей какого либо значения он сам ее перезаписывает
и особо его упрашивать не нужно
к561ЛА7 » 20 апр 2011, 21:56
а почему код вижн вонингом ругается " неинициализирован ЕЕПРОМ" если
eeprom insigned char пишешь?
igel » 20 апр 2011, 22:37
просто предупреждает что переменной не присвоено значение
для обычных переменных это приводит к глюкам в программе, а тут из еепрома просто вытащите в нужный момент