Forum: Compiler & IDEs Arduino Nano: Timer2 im CTC-Modus funktioniert nicht


von PhilippN (Gast)


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

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Hast du dafür überhaupt einen Interrupthandler geschrieben?

von PhilippN (Gast)


Lesenswert?

Ja, habe ich. Im Rahmen des Debugging habe ich den Code jedoch auf den 
geposteten Teil reduziert. Trotzdem geht's nicht ...

von Magnus M. (magnetus) Benutzerseite


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.

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.