Zápis a čtení na EEPROM ATmega32A

Máš chybu ve čtecích rutinách. Na začátku máš SBIC EECR, EERE, ale v datasheetu je na začátku čtení SBIC EECR, EEWE. Bit pro start čtení se nuluje prakticky okamžitě, ale vždy (i před čtením) musíš kontrolovat, zda ještě neprobíhá zápis - tedy EEWE. Ve Tvém případě pořád ještě probíhá zápis, ale Ty už se snažíš číst.

Datasheet o čtení z EEPROM :
The user should poll the EEWE bit before starting the read operation. If a write operation is in
progress, it is neither possible to read the EEPROM, nor to change the EEAR Register.

Pro Martina (a nejenom pro něj) : Osobně nepoužívám čistě jenom zápis do EEPROM, ale vždy si před zápisem kontroluju, jestli je na dané adrese stejná hodnota a zapisuju až v případě neshody - v Cčku je to eeprom_update, v assembleru prostě vložím adresu do adresních registrů, přečtu a porovnám a zápis dávám až v případě neshody. Šetří se tím počet zápisů do EEPROM - a tedy EEPROMka, která má omezený počet zápisů, jako taková.