Timer0 CTC-Mode zickt rum, oder ich mache einen Fehler.

Gast #1359515
Lesenswert?

Mahlzeit,

ATmega168 20PU
ext. 20MHZ Oszilator

ich möchte gerne den Timer0 im CTC-Mode laufen lassen.
Wenn der µC startet soll der Timmer0 im OCR0A einen Wert einlesen,
und immer beim Match toggle ich den PD6.
Soweit so gut, das funktioniert auch, aber ich kann den OCR0A - Wert 
nicht verändern. Er zählt immer bis zum Überlauf bzw. 255. Ich hätte 
aber gerne 25kHz.
Ich möchte auch keine Interrupt-Routine auslösen da ich schon mit dem 
16Bit-Timer1 was anderes mache und diese Routine sollte nicht 
unterbrochen werden.

Das ist meine Initialisierung:

//Timer0 (8Bit) Konfiguration
//CTC-Modus

TCCR0B   |= (1 << WGM01); //CTC-Mode
TCCR0A   |= (1 << COM0A0);
OCR0A = 49;
TCCR0B  |= (1 << CS01);

Muss ich den OCR0A-Wert immer in einer Interrupt-Routine nachladen oder 
warum geht das nicht.
Mit freundlichen Grüßen
Frank

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren