Цитата(smk @ Mar 20 2007, 21:31)

В программе используется переменная "char n". Всякий раз при включении она инкременируется и по достижении определенного значения - обнуляется. Чтение-запись происходит примерно 1 раз в секунду. При количестве циклов 100 000, надолго одной ячейки не хватит. Есть необходимость писать поочередно во все ячейки EEPROM. Как это сделать правильно, при условии что между любыми двумя циклами чтения-записи контроллер отправляется в "powerdown". Кто-то делал подобное? Как это можно сделать вообще, ведь адрес тоже нужно где-то помнить?
Буду крайне признателен за подсказки и примеры!

1. Обычно делают так, чтобы данные в EEPROM записывались только при выключении питания. Если питание не батарейное, то нет проблем. Если батарейное... Наверно, тоже возможно - проснуться, проверить напряжение на батарее и, если мало, то сохраниться. Только нужно сделать программнй гистерезис, чтобы не было проблем при питании близком к критическому.
2.
Цитата
Выделяем кусок ЭПРОМ, в котором храним счетчик
... При каждом сохранении в старых ячейках пишем $FF а в новых счетчик
... При чтениии от начала ищем not $FF и тем самымым выходим на запись.
... Таким образом при счетчике в 4 байта и перезаписи с частотой 1 Гц всей памяти хватит на 148 суток. Не густо.
Это неэффективный путь, так как ресурс ячейки используется не полностью. Нужно писать не char, а int. Тогда младший байт будет перезаписан 65000 раз.
Или комбинировать предложенное использование кода Грея с адресацией.
Уходя, оставьте свет...