Forum: Mikrocontroller und Digitale Elektronik Timerproblem


von Birgit (Gast)


Lesenswert?

Hallo!!

Ich hätte da mal eine Anfängerfrage bzgl. Timer:
Nachdem ich den Timer initialisiert habe und die Interrupts frei gebe 
mit sei(), wird beim nächsten Zählschritt sofort in die ISR gehüpft. 
Nachdem die ISR abgearbeitet wurde, läuft der Timerinterrupt korrekt - 
d.h. bei einem nächsten Zählvorgang (Vergleichswert z.b. 0xF7) wird der 
Interrupt bei 0xF7 ausgeführt.
Was mache ich falsch, dass die ISR sofort nach der Initialisierung und 
der Interruptfreigabe aufgerufen wird?

Danke
Birgit

von Hannes L. (hannes)


Lesenswert?

Birgit wrote:
> Hallo!!
>
> Ich hätte da mal eine Anfängerfrage bzgl. Timer:
> Nachdem ich den Timer initialisiert habe und die Interrupts frei gebe
> mit sei(), wird beim nächsten Zählschritt sofort in die ISR gehüpft.

Dann hast Du vermutlich erst den Timer gestartet (Vorteiler-Wert 
gesetzt) und dann erst den OCR-Wert gesetzt, worauf der Timer beim Start 
den OCR-Wert 0 vorgefunden hat und darauf (ganz korrekt) seinen 
Interrupt angemeldet hat...

> Nachdem die ISR abgearbeitet wurde, läuft der Timerinterrupt korrekt -
> d.h. bei einem nächsten Zählvorgang (Vergleichswert z.b. 0xF7) wird der
> Interrupt bei 0xF7 ausgeführt.
> Was mache ich falsch, dass die ISR sofort nach der Initialisierung und
> der Interruptfreigabe aufgerufen wird?

Erst Vergleichswert setzen, dann (mittels Vorteiler) Timer einschalten.
Kann nicht ausgeschlossen werden, dass noch ein "alter" Interrupt in 
TIFR steht, dann vor dem Setzen von TIMSK eine Eins (keine Null) in das 
entsprechende Bit von TIFR schreiben, um es zu löschen.

>
> Danke
> Birgit

Nix zu danken

...

von Birgit (Gast)


Lesenswert?

super danke dir!! das ist vermutlich mein problem!!

von Birgit (Gast)


Lesenswert?

noch eine frage: kann ich den counter auch wieder stoppen, wenn ich den 
Vorteiler auf 0 setze??

von Kupfer Michi (Gast)


Lesenswert?

Ja.

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.