Hallo! Ich habe ein Problem beim Programmieren von einem Atmega 162. Ich programmiere mit AVR Studio 4 Assembler und möchte die pin change Interrupts von Port A und C nützen. Hierzu muss ich die pin change Masken (PCMSK0, PCMSK1) setzen. Jetzt ist es aber leider so, dass ich im Simulator immer den Fehler bekomme, dass ich beim Laden der Register anscheinend den falschen Typ verwende. Ich kann die Masken also nicht setzen. Wenn ich mir dann im I/O Fenster die Register anschaue, steht da zwar ne Adresse, aber als Wert "na", also not available. In der Definitionsdatei, die AVR Studio beiliegt und ich auch inkludiert habe, werden aber extra Labels für diese Register vergeben. In der Doku stehn sie ja auch drin. Nur scheint AVR Studio ein Problem damit zu haben. Dann habe ich noch gelsen, dass die Register nicht ansprechbar sind, wenn sich der Controller im Atmega161 Kompatibilitätsmodus befindet. Diesen habe ich aber nicht aktiviert, da man ihn über das Programmieren einer Fuse aktivieren muss und ich noch kein Plan hab, wie das überhaupt geht. omit dürfte der ja nicht eingeschaltet sein. So, viel Text, ich hoffe jemand hats bis hierher durchgelesen Zwinkern und kann mir bei der Lösung meines Problems helfen.
Hättest du genauer in die m162def geguckt, hättest du gesehen, dass darüber ein Kommentar steht: Memory Mapped I/O Register Definitions Diese Register liegen also nicht mehr im IO-Adressbereich, folglich kannst du nicht mit in/out sbi/cbi darauf zugreifen sondern musst diese wie SRAM behandeln. Viel Spass ;)
Da staunt der Fachmann und der Laie wundert sich! Schwubdiwups - es funktioniert!!! Vielen dank für den Tip. Werde wohl etwas mehr auf das Kleingedruckte schauen müssen ;-)
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.