Hallo, ich verwende in meinem Atmega32 den Code aus dem AVR-Tutorial für das Lesen und Schreiben eines Registers im EEprom. Betrachte ich nun den Ladevorgang des Z-Pointer im AVR- Studio Simulator muss ich leider feststellen, dass weder R30 noch R31 irgend eine Änderung aufweisen. In Hardware funktionierts ebenfalls nicht. Weis jemand was ich falsch mach? Danke schonmal tanka ldi ZL,low(daten) ; Z-Zeiger laden ldi ZH,high(daten) rcall EEPROM_read ; Daten aus EEPROM lesen ... ... EEPROM_read: sbic EECR,EEWE ; 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 r16, EEDR ; Daten in CPU Register kopieren ret ; Daten im EEPROM definieren .eseg daten: .db 0b10101010 http://www.mikrocontroller.net/articles/AVR-Tutorial:_Speicher
Hallo,hast du auch die eep datei in den mega32 geschrieben? gruss Paul
Ja hab ich mit programmiert. Ich vermute das irgendwas am Syntax nicht stimmt, denn im Simulator zeigt der Zpointer auch nichts an.
Der Simulator hat 'ne Macke, er erkennt die EEP-Datei nicht automatisch. Da gibt's im Menü einen Punkt zum Up/Download Memories (nur bei aktivem Simulator verfügbar), mit dem man die EEP-Datei einbinden kann. Überprüfen kann man das auch im Memory-Fenster mit Einstelliung EEPROM. ...
> denn im Simulator zeigt der Zpointer auch nichts an.
Doch, er zeigt 0 an. Denn "Daten" liegt an Adresse 0 im EEP.
...
Hallo,also in dem abschnitt den du geschickt hast ist alles in Ordnung. Der Fehler muss in dem Rest stecken.Häng es doch mal an. gruss Paul
Hi >Ja hab ich mit programmiert. Muss aber im Simulator separat geladen werden. -> Debug->Up/Download Memory >Ich vermute das irgendwas am Syntax nicht stimmt, denn im Simulator >zeigt der Zpointer auch nichts an. Was soll er anzeigen? 'daten' liegen auf Adresse $0000. Mach mal ein ' .org 10' zwischen '.eseg' und 'daten:' dann ändert sich das. MfG Spess
Ok kann sein. Allerdings liest er dann von Adresse 0 im EEP einen Registerinhalt 0xFF, welchen ich nicht brauch. Ich würde gerne diese Bitfolge gemeldet bekommen. .eseg daten: .db 0b10101010 Sehr komisch.
Hi Nochmal: Du musst das eep-File in den Simulator laden . MfG Spess
@tanka: Lies erst nochmal alle Antworten, ich vermute, Du hast welche übersehen. ...
ahhh... sehr richtig. Dem Simulator hat das eep file gefehlt. Mit Debug-> Up/Download Memory klappt das. Mal schaun wie es jetzt um die Hardware steht. Besten Dank. Vergelts Gott.
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.