Forum: Mikrocontroller und Digitale Elektronik OC1A Output Compare wann gesetzt?


von Sven (Gast)


Lesenswert?

Hallo,

ich arbeite mit einem Atmega8 und Timer1 im Output Compare Mode, sodass 
OC1A high oder low gesetzt wird.
Ob high oder low lege ich durch COM1A0 bzw. COM1A1 im TCCR1A fest. Das 
ist soweit auch klar. Aus dem Datenblatt ist mir alles klar, bis auf 
eine Sache.
Was nicht ganz klar ist, ist die Triggerung. Immer wenn der Zählerstand 
(TCNT1) den Wert von OCR1A wird das Output Compare geschaltet. Ist dies 
wirklich nur durch den Vergleich abhängig?
Was ist, wenn ich keinen Interrupt Vektor dazu programmiere und damit im 
Register TIFR das OCF1A gesetzt wird, aber nicht gelöscht (durch 
Ausführung des Interrupts). Wird OCR1A von diesem Interrupt Flag OCF1A 
getriggert oder tatsächlich rein durch den Vergleich von Zählerstand und 
Comparematch-Wert?

Danke.

LG
Sven

von Michael K. (Gast)


Lesenswert?

IF und Output sind 'normalerweise' völlig unabhängig.
So kann man den output nutzen ohne recourcen für IRQs zu opfern, oder 
eine TimeX_IRQ mit dem OC IRQ machen ohne tatsächlich den OC Output 
dafür zu nutzen.

Also:
Wenn aktiviert setzt compare match output und IF.
IF bleibt bis Du was damit machst, aber IF setzt nicht Output.

Würde mich sehr wundern wenn das beim ATmega8 anders wäre.

von Oliver (Gast)


Lesenswert?

Sven schrieb:
> Ist dies
> wirklich nur durch den Vergleich abhängig?

Ist es. Die Pins werden direkt von der Hardware geschaltet. Die Funktion 
ist völlig unabhängig von der Interruptlogik.

Oliver

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.