Gast
#72771
Hallo,
habe versucht aus dem Tutorial das Programm EEprom nach Mega 8
umzuändern aber ich bekomme immer bei den Befehlen
ldi r19, HIGH(address) ; Adresse laden
ldi r20, LOW(address)
Eine Fehlermeldung Undifinierd Variabel
Was kann das sein ?
Vielen Dank im vorraus
Gruß
Jürgen
anbei noch der vollständige Code
.include "m8def.inc"
.def temp = r16
.def address = r17
.def data = r18
.def temp1 = r19
.def Temp2 = r20
.def temp3 = r21
ldi temp1, LOW(RAMEND) ; LOW-Byte der obersten
RAM-Adresse
out SPL, temp
ldi temp1, HIGH(RAMEND) ; HIGH-Byte der obersten
RAM-Adresse
out SPH, temp
ldi temp, 0xFF ;Port C = Ausgang
out DDRC, temp1
rcall lcd_init ;Display initialisieren
rcall lcd_clear ;Display löschen
ldi temp1, 'M' ;Zeichen anzeigen
rcall lcd_data
ldi temp1, 'e' ;Zeichen anzeigen
rcall lcd_data
ldi r19, HIGH(address) ; Adresse laden
ldi r20, LOW(address)
rcall eep_print
loop: rjmp loop
eep_print:
out EEARH, r19
out EEARL, r20
sbi EECR, EERE ; Lesevorgang starten
in data, EEDR ; gelesenes Byte nach
"data"
tst data ; auf 0 (Stringende testen)
breq eep_print_end ; falls 0, Funktion beenden
rcall lcd_data ; ansonsten Byte senden...
inc address ; ... Adresse um 1
erhöhen...
rjmp eep_print ; ... und zum Anfang der
Funktion
eep_print_end:
ret
.include "m2.asm" ;LCD-Routinen werden hier eingefügt
.eseg
text1:
.db "Strings funktionieren auch ", 0