Hallo Leute hab da ein Problem soll bis morgen früh in Assembler ein Progrämmchen schreiben mit dem man einen Wert aus dem EEPROM liesst diesen inkrementiert und dann wieder ins eeprom schreibt beim entfernen der Stromzufuhr und wiederherstellung soll dies geschehen sprich strom weg strom drann wert im eeprom inkrementieren da ich noch totaler anfänger auf diesem gebiet bin und auch keine Interrupts verwenden möchte habe ich folgendes Programm geschrieben: Ich würde mich freuen wenn ihr es hinbekommt dass es auch wirklich funktioniert ergänzen der main usw da ich wirklich nicht weiss was ich machen muss danke im vorraus
.include "4433def.inc"
eep_print:
ldi r16, 0
;;;;out EEAR, r16;; Bei Controllern mit mehr als 256 Byte EEPROM, z.B. dem ATmega8,
;;;;;passt die EEPROM-Adresse nicht mehr in ein Byte alleine. Statt einem Adressregister (EEAR)
;;;;;gibt es bei diesen Controllern deshalb 2 Register, eines für das Low-Byte (EEARL) und eines für das High-Byte
out EEARH, r16 ; Hi-Byte: 0*256
out EEARL, r16 ; Lo-Byte: +0 = Adresse 0
sbi EECR,EERE ;Lesevorgang starten
in r17,EEDR ;gelesenes Byte nach r17
inc r17 ;inkrementiere r17
out EEDR, r17 ;EEPROM data register
sbi EECR, EEMWE ;Prepare EEPROM to write to
sbi EECR, EEWE ;Write to EEPROM
sbic EECR, EEWE ;EEWE is zero when previous write cycle is finished
rjmp Eeprom_wait ;If not completed yet, then try again
reti
rjmp eep_print ; ... und zum Anfang der Funktion
Lesezeichen