Forum: Mikrocontroller und Digitale Elektronik Wird ein Interrupt beim setzen von OC0A = TCNT0; ausgelöst? (AVR ATMega48)


von Quirin D. (Gast)


Lesenswert?

Hallo,

ja meine Frage steht eigentlich schon im Titel,
mich interessiert, ob das Interruptflag gesetzt wird, wenn OCR0 = TCNT0 
gestezt wird. Der Timer läuft dabei im im Normalmodus in dem OCR0 nicht 
gepuffert (Update of OCR0: Immediate) wird.
Im Datenblatt steht auf Seite 82:
1
The 8-bit comparator continuously compares TCNT0 with the Output Compare
2
Register (OCR0). Whenever TCNT0 equals OCR0, the comparator signals a match.
3
A match will set the Output Compare Flag (OCF0) at the next timer clock
4
cycle.

Wenn ich das richtig interpretiere wird der Inerrupt also immer am 
"Ende" des Compare-events (OCR0 == TCNT0) ausgelöst. Was bedeutet, dass 
durch die Zeile
OCR0 = TCNT0;
das Interruptflag gesetzt wird, sobald der Timer das nächste mal 
weiterzählt.
Seht ihr das auch so?

Vielen Dank
Quirin

von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Lesenswert?

Quirin D. schrieb:
> Hallo,
...
> Im Datenblatt steht auf Seite 82:
>
1
> The 8-bit comparator continuously compares TCNT0 with the Output Compare
2
> Register (OCR0). Whenever TCNT0 equals OCR0, the comparator signals a
3
> match.
4
> A match will set the Output Compare Flag (OCF0) at the next timer clock
5
> cycle.
6
>
>
> Wenn ich das richtig interpretiere wird der Inerrupt also immer am
> "Ende" des Compare-events (OCR0 == TCNT0) ausgelöst.
>
Also, ein Interrupt wird nicht einfach so ausgelöst, er muß erst 
initialisiert und freigeben werden.
Bei OCR0 = TCNT0 wird erstmal nur das FLAG OCF0 gesetzt - mehr passiert 
erstmal nicht.
>
> Was bedeutet, dass
> durch die Zeile
> OCR0 = TCNT0;
> das Interruptflag gesetzt wird, sobald der Timer das nächste mal
> weiterzählt.
> Seht ihr das auch so?
>
Nein. Das FLAG OCF0 wird "erst" den nächsten Timertakt
nach dem Match gesetzt.


Bernd_Stein

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.