Hallo,
ich speichere für ein Programm auf einem ATTiny2313 ein paar
Konfigurationsdaten im EEPROM. Das Programm ist noch in der Entstehung,
daher flashe ich ab und an eine neue Version.
Meistens lassen sich die Konfigurationsdaten durch einfaches
überschreiben des EEPROMs (mit avrdude) aktualisieren, aber manchmal
lassen sich einzelne Bytes nicht ändern nachdem sie einmal auf 0 gesetzt
wurden. Das geht dann erst wieder, wenn ich auch den Flash neu
programmiere (mit dem gleichen Programm, das auch zuvor geflasht war).
Es hat den Anschein, dass jeweils das Byte, dass ich zuletzt im Programm
gelesen habe gegen das Überschreiben gesperrt ist.
Hier mein Code zum lesen des EEPROMs:
1 | EE_READ: ; Read Byte from EE_ADDR to TEMP_EE
|
2 | sbic EECR, EEWE
|
3 | rjmp EE_READ
|
4 | out EEAR, EE_ADDR
|
5 | sbi EECR, EERE
|
6 | in TEMP_EE, EEDR
|
7 | ret
|
Kennt einer von euch das Phänomen und weiß, wie es zu beheben ist?
Danke & Grüße
Ladde