Forum: Mikrocontroller und Digitale Elektronik Timer0 CTC-Mode zickt rum, oder ich mache einen Fehler.


von FrankH (Gast)


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

von Stefan E. (sternst)


Lesenswert?

> TCCR0B   |= (1 << WGM01); //CTC-Mode

WGM01 ist nicht in TCCR0B.

von FrankH (Gast)


Lesenswert?

D A N K E

Ich wußte das es irgendwas simples ist... tztztz, kann ja nicht wahr 
sein.
Besten Dank nochmal
Frank

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.