Цитата
bodja74
А зачем два раза подряд устанавливать EERE ,или контроллеру с первого раза не доходит
_______
_С этим двойным чтением непонятный момент.
У меня на диске "Атмел2003" в примерах
AVR100: Accessing the EEPROM (12 pages, updated 12/98)
указано именно такое двойное чтение
и в файле AVR100.ASM (Last updated: 97.07.17; Target: AT90S1200)
и в DOC0932.PDF (0932B–12/98/xM)
Но сейчас на сайте лежит обновленный
AVR100.ASM (Last updated: 98.10.14; Target: AT90S8515)
там применяется однократное чтение.
Хотя в doc0932.pdf (0932C-AVR-09/05) по прежнему:
"...The routine then sets the EEPROM Read Strob - EERE twice. ..."
Но, наверное, это просто забыли убрать при переделке.
_Причиной двойного чтения может быть какой нибудь глюк в первых AVR.
Который в последующих устранили.
Так полагает Вадим Баранов, автор книги "Применение микроконтроллеров AVR:..." , я с ним согласен.
________________________________________________
________________________________________________
Цитата
defunct
... нужно дождаться когда бит EERE в EECR будет сброшен, ..."
__________
_Наверное, все таки, не бит EERE, а бит EEWE.
А бит EERE после этого установить
и только после этого забрать данные из EEDR.
________________________________________________
________________________________________________
для oleg_lwd_______
1- может быть имеет смысл инициализировать также и верхний
байт адреса, а не только нижний.
Может он где нибудь, как нибудь, меняется и чтение происходит
из верхней части еепром.
2- может не стОит использовать нулевую ячейку EEPROM.
3- ожидание очистки EEWE я все таки ввел бы, хотя,
насколько я понимаю, если перед этим не было записи в еепром,
то это не должно вызывать проблем.
__________
Александр
2006 05 29