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