|
|
  |
Запись во Flash ROM ATmega128A |
|
|
|
Feb 1 2012, 07:26
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 5-05-09
Пользователь №: 48 683

|
Вопрос банальный, но как мне записать переменную (float) в постоянную память?
|
|
|
|
|
Feb 1 2012, 08:28
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 5-05-09
Пользователь №: 48 683

|
необходимо хранить данные в энергонезависимой памяти
|
|
|
|
|
Feb 1 2012, 08:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Цитата(ADEPTPS @ Feb 1 2012, 10:28)  необходимо хранить данные в энергонезависимой памяти EEPROM, о котором Палыч сказал, тоже энергонезависим. А Flash писать может только бутлоадер. Если пишете на CvAVR, объявляйте переменную: eeprom float a; Компилятор сам сделает всё остальное. Но помните, что EEPROM имеет ограниченный ресурс. 10000 циклов по ДШ. Некоторые говорят, что гораздо больше, но это у кого как ... Если начнёте писать туда как попало на каждом углу, убъёте его довольно бстро
Сообщение отредактировал hd44780 - Feb 1 2012, 08:46
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Feb 1 2012, 08:52
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 5-05-09
Пользователь №: 48 683

|
pgmspace.h вроде чарез эту библиотечку можно это сделать Но если EEPROM так же энергонезависим, то опять же вопрос как это сделать? Цитата(hd44780 @ Feb 1 2012, 12:41)  Если пишете на CvAVR, объявляйте переменную: eeprom float a;
Компилятор сам сделает всё остальное. Но помните, что EEPROM имеет ограниченный ресурс. 10000 циклов по ДШ. Некоторые говорят, что гораздо больше, но это у кого как ...
Если начнёте писать туда как попало на каждом углу, убъёте его довольно бстро Работаю в AVR Sudio 5 таким образом у меня все надежды на avr/eeprom.h Как тут?
|
|
|
|
|
Feb 1 2012, 09:26
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(Палыч @ Feb 1 2012, 15:02)  Производитель гарантирует 100 000 циклов "запись-стирание" Ага. Причем, заметьте, это в самом худшем варианте. Плюс еще немного запаса для поддержания марки. Итого примерно 30-ти кратный запас для нормальных условий. Несколько лет назад я специально так "высасывал" ресурс EEPROM -- проверял __реальное__ количество циклов записи-стирания. Убил две или три TINY2313, у всех примерно 3-3.5 миллиона циклов на одну и ту же ячейку. Причем, на соседние ячейки "расход" ресурса не распространяется. Условия проведения эксперимента были следующие: комнатная температура, питалово +5В, частота вроде как была 8 МГц. Примерно за час или (три часа?) микросхема "убивалась". Топик, где обсуждалось "убивание" EEPROM, был где-то здесь же на electronix-e. После этого я сделал вывод, что AVR-ки обладают практически неисчерпаемым количеством циклов записи-стирания. Чтобы убить микросхему, нужно либо целенаправленно ее "высаживать", либо быть законченным идиотом.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Feb 1 2012, 12:18
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(rx3apf @ Feb 1 2012, 17:04)  Типично байт в EEPROM пишется около 5 mS. 3 миллиона циклов - это 15000 секунд, больше четырех часов.... Ну, если за три часа убилось - ладно. А если за час - то это ну никак не три миллиона. Да ладно Вам докапываться-то до деталей! Повторите, если уж так хочется. Не помню я, давно это было. Помню, что не сидел и не ждал окончания. Помню, что в общей сложности потратил на эксперимент два дня. Возможно это -- каждый час бегал смотреть на счетчик... Короче, на продолжительности эксперимента на заморачивался. Помню, только цифру -- более трех миллионов.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|