Hallo. Ich habe eine Frage zum Mega644 und dem AVRStudio-Simulator: Da die Register vom Counter/Timer1 Memory Mapped sind, benutze ich folgenden code, um das entsprechende Register zu setzten: ldi temp1, 0b00000011 sts TCCR1B, temp1 ich habe das Ganze im Simulator getestet und es werden die Register, die ich versuche so zu modifizieren, nicht geändert !? was mache ich falsch ? Eigentlich müsste ich doch nach "sts TCCR1B, temp1" 0x03 im Register stehen haben. Das Register ändert aber nicht den wert. Mfg Simon
Ja, den gibts wirklich. Is fast wie der Mega64 nur n anderes Gehäuse und ist schwer zu bekommen. Nur funktioniert das mit dem Memory mapped irgendwie nicht.
Wie ist TCCR1B definiert? Bei den ATmegas muss Du bei memory-mapped einen Offset von 20hex addieren. Die ersten 32 Adressen werden von den CPU-Registern belegt. Gruß, Stefan
ich hab mal einen teil auf der definitionsdatei vom avrstudio ausgeschnitten. (siehe anhang) .equ TCCR1B = 0x81 ; MEMORY MAPPED hab jetzt durch den simulator festgestellt, dass das der wert (bei meinem beispiel oben) korrekt in den ram geschrieben wird, aber am register TCCR1B tut sich laut "I/O View" (das feld im simulator, wo man die register etc. sehen kann) nichts. MfG Simon
Habe gerade im Manual geschaut, die 0x81 ist die korrekte memory-mapped-Adresse. Ist der Simulator korrekt auf den 644 eingestellt? Im Zweifelsfall würde ich dem Simulator nicht blind vertrauen. Hast Du eine Debug-Möglichkeit über jtag? Viele Grüße, Stefan
Aktuelle Version AVR Studio 4.12 SP1 Build 462 im Einsatz ? Ebenso sind im Simulator gerade für noch nicht in Massenproduktion befindliche Controller einige Bugs drin, die aber zum grössten Teil auch dokumentiert sind.
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.