ATmega16: EEPROM

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
proton
Родился
Сообщения: 6
Зарегистрирован: Вс июн 17, 2007 19:16:52
Откуда: Дубна МО

Сообщение proton »

Нашёл подходящую тему, чтобы задать вопрос.
Подскажите "красивый" код на СИ для чтения/записи в EEPROM 32-х разрядных чисел(unsigned long int и long int). Для двухбайтных есть примеры выше по тексту (архив для скачивания - для старшего байта используется*256) и в апноуте (AVR035 - для старшего байта используется <<8).
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Просто объявляй такие переменные в еепром и используй.

пример в линке в профиле - страница 05a.htm
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Skrrmrchoh
Нашел транзистор. Понюхал.
Сообщения: 185
Зарегистрирован: Чт сен 06, 2007 22:36:09
Откуда: Санкт-Петербург

Сообщение Skrrmrchoh »

У меня сейчас было:

написал eeprom int i , выставил BODEN, записал бит, записал программу, в программе значение i приращалось кнопкой и выводилось на дисплей...Выключил питание- на дисплее какая- то ерунда...Прочитал фьюзы- BODEN не включен...включил, еще раз перезаписал- работает....
Но это так....

У меня вопрос вот в чем: в даташите что- то сказано про 1000 циклов перезаписи EEPROM....Допустим, у меня информация записывается только при отключекнии питания, а читается при включении....Получается, что гарантированный срок жизни аппарата- 1000 циклов включение- выключение....Не маловато ли ?
Аватара пользователя
moLCHec
Мявтор!
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.
Контактная информация:

Сообщение moLCHec »

1000 циклов это гарантированное значение, так например если у паяльника гарантия 1 год это же не значит что он через год перегорит.
Настоящий кот всегда либо голоден,
либо невыспался ...
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Я писал на встроенной ЕЕПРОМ счетчик наработки с записью каждые 5 минут.
Заводил в ЕЕПРОМ специальную ячейку-счетчик количества записей и при ее приближении к критическому значению "переезжал" в новую область ЕЕПРОМ с копированием данных. Вполне себе нормально работает. :)
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
kamikadze
Потрогал лапой паяльник
Сообщения: 391
Зарегистрирован: Пт авг 31, 2007 19:58:52
Откуда: Украина, Сум обл., г. КоНоТоП

Сообщение kamikadze »

А про "переезжал" и "критическое" можно подробнее?
Бригада дежурных телепатов ответит на ваши вопросы
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Попробую..
Предположим, я использую 10 последовательных ячеек ЕЕПРОМ.
В начале адресного пространства ЕЕПРОМ завожу еще 1 ячейку, в которой храню адрес первой ячейки из моего массива в 10 ячеек.
При каждом акте записи в ЕЕПРОМ значение в определенной ячейке из моего массива увеличивается (счетчик записей). При включении МК сначала считывает адрес начала массива (1 служебная ячейка в начале, помните?), потом проверяет значение в счетчике записей. Если оно больше заданной величины, то МК записывает в первую служебную ячейку новый адрес начала массива (старый + 10), потом копирует все данные из массива в ячейки с тем же сдвигом 10 (ну кроме счетчика, разумеется, его надо обнулить). Вот такой примерно алгоритм.:)
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
kamikadze
Потрогал лапой паяльник
Сообщения: 391
Зарегистрирован: Пт авг 31, 2007 19:58:52
Откуда: Украина, Сум обл., г. КоНоТоП

Сообщение kamikadze »

:shock: Это на асме все ?
Бригада дежурных телепатов ответит на ваши вопросы
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Да нет, на Си... :)
По сути - косвенная адресация, так что ничего страшного в этом нет..
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
kamikadze
Потрогал лапой паяльник
Сообщения: 391
Зарегистрирован: Пт авг 31, 2007 19:58:52
Откуда: Украина, Сум обл., г. КоНоТоП

Сообщение kamikadze »

8) Недры для меня это, пока что недосягаемые ))))
Бригада дежурных телепатов ответит на ваши вопросы
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Вопрос времени и желания. Правильной дорогой идете, товарищ.. :)
Оптимизм х (Опыт + Знания) = const
Resp
Родился
Сообщения: 8
Зарегистрирован: Вс сен 09, 2007 22:29:15

Сообщение Resp »

Цитата из даташита на Мегу16 (1 страница)
– 16K Bytes of In-System Self-Programmable Flash
Endurance: 10,000 Write/Erase Cycles
– 512 Bytes EEPROM
Endurance: 100,000 Write/Erase Cycles
Аватара пользователя
Brutaller
Встал на лапы
Сообщения: 87
Зарегистрирован: Пн ноя 05, 2007 12:44:43
Откуда: C:\Russia\SPb
Контактная информация:

Сообщение Brutaller »

skrrmrchoh писал(а):У меня вопрос вот в чем: в даташите что- то сказано про 1000 циклов перезаписи EEPROM....Допустим, у меня информация записывается только при отключекнии питания, а читается при включении....Получается, что гарантированный срок жизни аппарата- 1000 циклов включение- выключение....Не маловато ли ?


Читаем постом выше. Resp правильно вырезку из даташита привел.

10000 (десять тысяч) циклов перезаписи флэша (памяти программ)
100000 (сто тысяч) циклов перезаписи EEPROM

P.S. Даташиты надо читать внимательно ;)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»