Clear Timer on Compare Match (CTC) funktioniert nicht - Atmega88PA

Gast #2983094
Lesenswert?
• ▲
▼
Hallo,

ich versuche mit einem Atmega88PA einen Ton variabler Frequenz zu 
erzeugen und lasse ihn daszu einen Pin toggeln, an dem ein Lautsprecher 
hängt.

Atmega wird mit dem RC-Oszi bei 8MHz betrieben.

Problem: Die Frequenz ändert sich sich trotz Änderung des 
CompareMatch-Wertes nicht! :-(
Ich erhalte konstant etwa 242Hz an PORTB.1, was einem CTC-Wert von ca. 
255 entspricht (bzw. einem Overflow).
Eine Änderung des Prescalers führt zu einer Änderung der 
"Toggle"-Frequenz.

Benutzt wird Timer2, der das eigentlich können sollte.
Beim Timer1 funktioniert es.

bin um jede Hilfe dankbar.
1
program Timer2test;
2

3
procedure EnableTimer2();
4
begin
5
     WGM11_bit :=1; //CTC-Mode
6
     OCR2A := 10;  //counting value
7
     CS22_bit :=1;//8MHz /64 = 125KHz
8
     CS21_bit :=0;
9
     CS20_bit :=0;
10
     OCIE2A_bit :=1;  //Enable compare match interrupt
11
end;
12

13
procedure Timer2CompareMatch_ISR(); org IVT_ADDR_TIMER2_COMPA;
14
begin
15
     PORTB.1 := not PORTB.1;
16
end;
17

18
begin
19
  DDRB :=0xFF; //Outputs
20
  SREG_I_bit :=1; //global INT   enabled
21
  EnableTimer2();
22
end.


TNX
aXum

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.