Timer2 Interrupt

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.
Gast #4553615
Du toggelst beim erreichen des Vergleichswertes, deshalb sieht es aus, 
also ob die Periodendauer gleich bleibt (d.h. nur der Zeitpunkt des 
Toggelns verschiebt sich nur).
Ich glaub du erwartest eigentlich, dass bei 0 (Overflow Interrupt) 
eingeschattet wird und beim erreichen des Wertes (Comp Interrupt) wieder 
ausgeschaltet.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.