Hi, ich arbeite mich gerade in die Assemblerprogrammierung von AVRs ein. Habe hier ein kleines Programm, dass im Sekundentakt über den 16bit Timer einen ausgang ein und ausschalten soll. Leider funktioniert das ganze nicht. Kann mir evtl jemand weiterhelfen? Ich finde keinen Fehler. Gruß Jojo
Hallo, falls ich es nicht übersehen habe: ich vermisse die Initialisierung des Stackpointers. Nach dem ersten Aufruf der Interrupt-Routine findet der AVR also sowieo nicht zurück in die Schleife. Gruß aus Berlin Michael
Außerdem ist in "sekunde" ein Fehler: in r17,portd ldi r17,0b10000000 < hier sollte wohl eher r18 stehen eor r17,r18 out portd,r17
hi, habe beides jetzt mal geändert. Aber er scheint einfach nicht ins Unterprogramm zu gehen. Was mache ich im Umgang mit dem timer 1 falsch?
ldi r16, 0x1F ; PD0-4 Ausgang Rest eingang out DDRD, r16 ; Richtung in PortD schreiben ... in r17,portd ;Relais mit Hilfe von Exclusiv oder im Sekundentakt klicken lassen ldi r18,0b10000000 eor r17,r18 out portd,r17 Anscheinend hängt das Relais an Pin PD7, der ist aber als Eingang konfiguriert.
Hi, oh man manchmal sieht man den Wald vor lauter Bäumen nicht. Danke für eure Hilfe. Habe beim EOR MSB LSB vertauscht. Das Relais ist an PD0 Gruß Jojo
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.