Цитата
а работает странно, как будто бы при включении питания нет какой-то инициализации.
Конечно странно, почему вы не дожидаетесь факта помещения данных в EEDR при чтении.
нужно дождаться когда бит EERE в EECR будет сброшен, и только тогда вытаскивать данные из EEDR..
Код
.def AL = R24
.def AH = R25
; Read Byte from EEPROM
; --> ZL = Address of EEPROM cell
; <-- AL = value of cell EEPROM[ZL]
EEPROMReadByte:
out EEAR, ZL
sbi EECR, (EERE)
_wait_R:
sbic EECR, (EERE)
rjmp _wait_R
in AL, EEDR
ret