Sowas zum Beispiel? Ist auch nur aus irgendeiner Appnote.
.DEF EEVAL = r0 ;Daten aus/in EEPROM
.DEF EEADL = r30 ;EEPROM-Adr Low Byte, auch Z-Pointer
.DEF EEADH = r31 ;EEPROM-Adr High Byte
;******* EEPROM lesen *******
;* bekommt : EEADH, EEADL
;* verwendet: EEADH, EEADL, EEVAL
;* liefert : EEVAL
read_eeprom:
sbic EECR,EEWE ;If EEWE Not Clear
rjmp read_eeprom ;
out EEAR,EEADL ;Output address
sbi EECR,EERE ;Set EEPROM Read strobe (4 cycle)
in EEVAL,EEDR ;get data
ret
;******* EEPROM schreiben *******
;* bekommt : EEADH, EEADL, EEVAL
;* verwendet: EEADH, EEADL, EEVAL
;* liefert :
write_eeprom:
sbic EECR,EEWE ;If EEWE Not Clear
rjmp write_eeprom ;
out EEAR,EEADL ;Output address
out EEDR,EEVAL ;Output data
sbi EECR,EEMWE ;Set Master write Enable, remove If 1200 is used
sbi EECR,EEWE ;Set EEPROM write strobe (4 cycle)
ret
Mußt Du eventuell noch anpassen mit korrekten Register-Namen und
EEPROM-Größe, bei größer 256 Byte muß die high-Adresse eventuell mit
ausgegeben werden, weiß ich jetzt nicht.
Sven