Arduino Nano: Timer2 im CTC-Modus funktioniert nicht

Gast #3340034
Lesenswert?

Hallo,

ich bin mit meinem Latein am Ende ...

Ich möchte in meinem Arduino Nano (ATmega328) den Timer2 im Capture 
Compate-Modus laufen lassen. Der Code sieht wie folgt aus:
1
void setup() {
2
  noInterrupts();
3
  Serial.begin(38400);
4
  Serial.println("Init Timer");
5
  init_Timer();
6
  interrupts();
7
}
8

9
void loop() {
10
}
11

12
void init_Timer() {
13
  TCCR2A = (1<<COM2A1)|(1<<WGM21); // CTC-Modus im Timer2 einschalten
14
  OCR2A = 100;                     // CTC-Wert definieren
15
  TIMSK2 = (1<<OCIE2A);            // CTC-Interrupt einschalten
16
  TCCR2B = (1<<CS20)|(1<<CS21)|(1<<CS22);   // Prescaler
17
}

Das Ergebnis dieser paar Zeilen ist, dass ich dauerhaft "Init Timer" an 
den Rechner geschickt bekomme. Ich gehe daher davon aus, dass der ATmega 
hier Dauerresets wirft. Ich komme jedoch nicht auf die Ursache ...

Wenn ich im Register TIMSK2 einen anderen Interrupt aktiviere (z.B. 
OVF), dann ist das Verhalten i.O.

Kann mir jemand weiterhelfen?

Danke + Grüße
Philipp
Persönliche Seite #3340081
Lesenswert?

PhilippN schrieb:
> Im Rahmen des Debugging habe ich den Code jedoch auf den
> geposteten Teil reduziert.

- Du hast aber hoffentlich den Interrupthandler nicht auch
  wegreduziert, oder doch?

- Hast du den Namen des Handlers auch richtig geschrieben?

- Was sagen die Compilerwarnungen / -Fehlermeldungen?

...zeig doch mal deinen GANZEN reduzierten Testcode.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren