Gast
#4553580
Hallo Leute,
ich versuche mich mit den Interrupts vertraut zu machen. Will zur Übung
eine einfache Funktion am Timer2 in eine ISR packen...
Die funktionierende Funktion:
//Initialisierung//
TCCR2 = (1<<WGM21) | (1<<WGM20) | (1<<CS20) | (1<<COM21) ;
//TopValue beschreiben//
OCR2 = ADC_value;
So kann gebe ich am OC2 ein Signal von 62,49kHz aus und kann den
Tastgrad mit einem Poti verstellen.
Jetzt versuche ich das ganze per ISR zu realisieren:
//Initialisierung//
TCCR2 = (1<<WGM21) | (1<<WGM20) | (1<<CS20;
TIMSK |= (1<<OCIE2);
sei();
//TopValue beschreiben//
OCR2 = ADC_value;
//ISR//
ISR (TIMER2_COMP_vect)
{
PORTD ^= (1<<PD7);
}
Bekomme ein Signal mit 31.24kHz. Das beschreiben des OCR2 hat jedoch
keinen Einfluss.Das sich die Frequenz halbiert hat leuchtet mir ein.
Aber was mache ich falsch, dass OCR2 keinen Einfluss hat?
Benutze einen ATmega32.