hallo,
kann mir bitte jemand sagen der Fehler in diesem Programm ist:
.include "m88def.inc"
; hier geht die Programmsektion los
.cseg
ldi r16, low(RAMEND) ; Stackpointer initialisieren
out SPL, r16
ldi r16, high(RAMEND)
out SPH, r16
ldi r16, 0xFF
out DDRB, r16 ; Port B Ausgang
ldi ZL,low(daten) ; Z-Zeiger laden
ldi ZH,high(daten)
rcall EEPROM_read ; Daten aus EEPROM lesen
out PORTB, r17
loop:
rjmp loop
EEPROM_read:
sbic EECR,EEPE ; prüfe ob der vorherige
Schreibzugriff
; beendet ist
rjmp EEPROM_read ; nein, nochmal prüfen
out EEARH, ZH ; Adresse laden
out EEARL, ZL
sbi EECR, EERE ; Lesevorgang aktivieren
in r17, EEDR ; Daten in CPU Register kopieren
ret
; Daten im EEPROM definieren
.eseg
daten:
.db 0b01010101
ich kriege als Ergebnis : 0xff
danke
Sieht soweit richtig aus. Also müsste es funktionieren. Hast du das EEPROM überhaupt beschrieben?
> Hast du das EEPROM überhaupt beschrieben?
wie meinst du das?
Gast
#1869160
Hallo Wenn in ein EEPROM noch nie etwas reingeschrieben wurde, kommt immer 0xff. Programmier das EEPROM erstmal mit beliebigen Werten und schau dann, ob das auch gelesen wird. Gruß Joachim
Bei flashen des Mikrocontrollers wird das eeprom nicht mit beschriben. Das muss man extra machen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.