Forum: Mikrocontroller und Digitale Elektronik atmel 2313 AVR und timer


von jojo (Gast)


Angehängte Dateien:

Lesenswert?

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

von Michael U. (amiga)


Lesenswert?

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

von Stefan E. (sternst)


Lesenswert?

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

von jojo (Gast)


Angehängte Dateien:

Lesenswert?

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?

von Stefan E. (sternst)


Lesenswert?

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.

von jojo (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.