Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сброс EEPROM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
smk
Контроллер Tiny24. В программе предусмотрен счетчик включений питания. Значение хранится в EEPROM. Инкремент счетчика происходит при инициализации контроллера, сначала наращивается счетчик, затем разрешаются глобально прерывания. Так вот один раз обнаружилось, что значение счетчика обнулилось именно в момент выключения (включения??? возможен дребезг) питания. Кто сталкивался сподобным, может подскажите что делать и ждать ли повторения подобного?
Спасибо всем заранее!
mse
Цитата(smk @ Oct 22 2007, 12:35) *
Контроллер Tiny24. В программе предусмотрен счетчик включений питания. Значение хранится в EEPROM. Инкремент счетчика происходит при инициализации контроллера, сначала наращивается счетчик, затем разрешаются глобально прерывания. Так вот один раз обнаружилось, что значение счетчика обнулилось именно в момент выключения (включения??? возможен дребезг) питания. Кто сталкивался сподобным, может подскажите что делать и ждать ли повторения подобного?
Спасибо всем заранее!

Ессно, жди ещо. Сделай выдержку при фкл. для подавления и пиши.
shamray
А еще должен быть включен Brown-out, а лучше внешняя микруха на Reset. И еще, бывают проблемы при записи в eeprom по адресу 0. Лучше вообще не использовать эту ячейку. Для надежности можно ввести проверку с помощю CRC или просто хранить несколько копий переменной и потом при старте по мажоритарному призноку определять. Хранить лучше инвертированные и неивертированные значения, тогда при порче памяити (чаще всего сбросе в 0) не будет ложной загрузки.
smk
Цитата
бывают проблемы при записи в eeprom по адресу 0

хм... вообщето там и находится этот счетчик... смотрел когда-то возможность указания адреса размещения переменной в EEPROM при написании программы в CVAVR, так и не нашел.
mse
Цитата(smk @ Oct 22 2007, 13:28) *
хм... вообщето там и находится этот счетчик... смотрел когда-то возможность указания адреса размещения переменной в EEPROM при написании программы в CVAVR, так и не нашел.

А-а-а...точно. Это-ж classic Mega. Так что желательно ещё, помимо указанного, грузить в указатель адреса ЕЕПРОМ адрес непользуемой ячейки. Например, "0" А сам счётчик хоть с "1".
D H
Цитата(smk @ Oct 22 2007, 13:28) *
хм... вообщето там и находится этот счетчик... смотрел когда-то возможность указания адреса размещения переменной в EEPROM при написании программы в CVAVR, так и не нашел.

В даташите, с примерами на C, показано как писать/читать в/из eeprom по произвольному адресу. Стр 21-22. Rev.2486
smk
Цитата
В даташите, с примерами на C, показано как писать/читать в/из eeprom по произвольному адресу. Стр 21-22. Rev.2486

Уже читаю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.