EEPROM schreiben-lesen

Gast #27473
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren