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?
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.