Цитата(GSK @ Oct 23 2006, 09:11)

Как сделать, чтобы значение этой переменной не пропадало?
Я думаю, что подобная задача решаеться в электронных часах. Нет ли у кого примера на С.
Решение зависит от того, насколько пропадает питание. Я использую два подхода.
1. Питание пропадает ненадолго (происходит только сброс контроллера, а сам микроконтроллер без питания не остается - такая ситуация происходит и при воздействии помех)
В этом случае достаточно перед именем переменной поставить __no_init
Она не будет инициализироваться после сброса.
Риск того, что значение действительно не изменилась, сейчас не обсуждаем.
2. Выключение питания надолго приводит к сохранению нужных значений в EEPROM.
Для этого нужно знать о падении напряжения питания (АЦП или компаратор), измеряя до стабилизатора.
Тогда в в основной цикл добавить:
if (LowPower())
{ SaveVarIntoEEPROM();
for (;;)
}
Ну а после сброса прочитать из EEPROM.
3. В часах все не так. В электронных часах сами часы питаются от батарейки. Кстати, некоторые микросхемы часов имеют несколько байтов ОЗУ, в которые можно писать свою информацию.