Ich hab schon länger nichts mehr in Assembler gemacht - Ich meine aber das ist so richtig.Leider wird das Bit EEPE im EECR-Register nicht zurückgesetzt, so daß nur der erste Wert eingeschrieben wird. Alles andere nicht.
Das EEPROM muss innerhalb einer bestimmten Zahl von Taktzyklen beschrieben werden, sonst funktioniert das nicht.
Guck einfach noch mal ins Datenblatt.
Nachtrag:
Ist so wie oben beschrieben Zusätzlich sollen auch Interupts global gesperrt werden! Datenblatt ATMEGA8 Seite 22
EEPROM_write:; Wait for completion of previous writesbic EECR,EEWErjmp EEPROM_write ; Set up address (r18:r17) in address registerout EEARH, r18out EEARL, r17; Write data (r16) to data registerout EEDR,r16; Write logical one to EEMWEsbi EECR,EEMWE; Start eeprom write by setting EEWEsbi EECR,EEWEret
Lesezeichen