Hi, ich bin totaler AVR Anfänger und habe mir ein Test-Board mit Atmega32 zugelegt. Mit Assembler kenne ich mich ein wenig aus, jedoch bekomme ich keinen Timer Interrupt zum Laufen. Ich benutze den Timer0 und bekomme ihn auch zum zählen, jedoch wird beim Überlauf nicht zur Adresse für den Timer überlauf gesprungen. Vielleicht kann mir ja jemand weiterhelfen und mir Vielleicht die erforderlichen Befehle schreiben. Irgendwo muss ich ja etwas vergessen haben. Vielen Dank im Vorraus, die Hupe
Zeig doch einfach mal deinen Code, dann wird dir bestimmt einer sagen können, was nicht stimmt. Keine Sorge, auslachen wird dich hier keiner, wenn der Code nicht allzu professionell aussieht.
Ich habe den Assembler Code mit Hilfe von anderen Beispielen aus diesem Forum geschrieben. Allerdings kenne ich mich mit den Fuse Bits nicht so gut (oder eher gar nicht) aus, was muss ich denn bei denen beachten? MfG, Hupe
> Allerdings kenne ich mich mit den Fuse Bits nicht so > gut (oder eher gar nicht) aus, was muss ich denn bei denen > beachten? Ich wüßte jetzt nichts, hab aber mit dem Mega32 noch nicht gearbeitet. Was den Code betrifft: Dein Setup stellt den Timer0 ein, aber dein Interrupt-Handler wird bei Timer1-Overflow aufgerufen.
Hab ich wohl irgendwann bei den ganzen herum experementieren vertauscht. Werd es heut abend gleich mal ausprobieren. Melde mich morgen nochmal. Vielen Dank
Das funktioniert trotzdem nicht. Wie ist das denn mit den fuse und lockbits? was muss ich denn dabei beachten?
> Wie ist das denn mit den fuse und lockbits? Die kannst du am besten erstmal so lassen, wie sie ab Werk sind. Höchstens mal JTAGEN abstellen, da sonst ein paar I/O-Ports vom JTAG-Interface belegt sind, soweit ich weiß.
Die Interrupt-Vektoren des Mega32 sind nicht im Wortabstand (16 Bit) sondern im Doppelwortabstand (32 Bit). Du musst also statt rjmp jmp verwenden. Und statt reti zwei Befehle, um das zweite Wort zu füllen. Nachzulesen im Datenblatt des Mega32 unter Interrupt sources (oder ähnlich)... ...
wenns aber so gemacht ist wie hier, spielt das keine Rolle. .org $002 reti ; IRQ0 Handler .org $004 reti ; IRQ1 Handler .org $006 reti ; IRQ2 Handler usw. Beachten muss man das von dir angesprochene, wenn man alle nur mit nur einer .org-Anweisung schreibt.
@crazy horse: Ja, gut, dachte ich nicht dran... Die Dinger sind übrigens gut angekommen, danke nochmals... Bit- & Bytebruch... ...HanneS...
nimmt dir avr studio und den simulator dann siehst du ja was schief geht...
Hi, danke für eure Hilfe. Hat wirklich an der Vektor-Tabelle gelegen. Jetzt läuft alles einwandfrei. Danke
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.