Forum: Mikrocontroller und Digitale Elektronik Compare Reg. OC1B beim 8515 fkt. nicht!


von Andi (Gast)


Lesenswert?

Hallo,

ich habe eine Frage zu den Compare Registern (Timer1) vom 8515.
Es ist doch richtig, dass sich die Ausgänge OC1A und OC1B gleich
verhalten, oder?
Beide besitzen ein eigenes Compare Register welches mit dem
Timer1-Register verglichen werden kann um
dann ggf. einen Interrupt zu erzeugen.
In der Praxis funktioniert dass mit dem OC1A wunderbar, nur der OC1B
funktioniert nicht.

Habe hier einmal die Einstellungen mit denen ich den Timer
initialisiere:

// zunaechst mal alle Register deaktivieren!
TIMSK  = TCCR1A = TCCR1B = 0x00; SREG  = 0x00;

SREG  = 0x80; // Global Interrupt Enable
TIMSK  = BV(OCIE1B); // CompareB Match Interrupt Eneble

TCCR1A = BV(COM1B0); // Output toggle

OCR1B = 200;//Compare Register beschreiben
TCCR1B =  BV(CTC1)|BV(CS12); // Timer1=0, wenn TCNT1=OCR1B ; CPU-Takt
7.3728MHz


Später möchte ich dann in dieser Routine den Wert in meinem Compare
Register ändern:

SIGNAL(SIG_OUTPUT_COMPARE1B)
{
//irgendetwas tun


}

Aber leider komme ich noch nicht einmal so weit eine Frequenz
auszugeben.
Wäre nett wenn mir jmd. helfen könnte.

Gruß,
Andi

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.