Hallo, ich arbeite mich gerade durch das Tutorial über den EEPROM.In einem eigenen Programm und dem Beispielprogramm aus dem Tutorial habe ich dasselbe Problem: Sobald ich an die Stelle "sbi EECR,EERE" komme, wird das Bit "EERE" nicht auf eins gesetzt, aber dafür das ganze Register EEDR, unabhängig, welche Adresse in EEAR steht. somit kommt immer 0xFF raus. Woran kann das liegen? Der oben beschriebene Fall ist im Simulator aufgetreten und das Programm selbst erzeugt auf dem µC denselben Output. Gruß Patrick
Patrick wrote: > Sobald ich an die Stelle "sbi EECR,EERE" komme, wird das Bit "EERE" > nicht auf eins gesetzt, aber dafür das ganze Register EEDR, unabhängig, > welche Adresse in EEAR steht. somit kommt immer 0xFF raus. Ist doch alles richtig. EERE wird nicht auf 1 "gesetzt", sondern das Schreiben der 1 löst das Lesen des EEPROMs aus. Das Ergebnis des Lesens steht dann in EEDR. Und das 0xFF ist das, was aus dem EEPROM gelesen wurde (ein leeres EEPROM enthält lauter 0xFF).
Eigentlich sollte das EEPROM aber nicht leer sein, ganz unten wurde ja ".eseg daten: .db 0b10101010" oder etwas in der Art definiert. Oder berücksichtigt das der Simulator im AVR Studio nicht?
Schau doch im Memory-Window einfach nach, ob es im EEPROM drin steht, oder nicht.
Ah okay, daran lag es. Wie du sagtest, alles voller FFs :). Aber wieso wurde der Teil für das EEPROM nicht mitübersetzt? Muss ich noch irgendwo ein Häkchen setzen?
Ich habe es gerade mal selber probiert. Du musst den EEPROM-Inhalt "von Hand" aus der .eep Datei laden (Debug -> Up/Download Memory).
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.