Forum: Compiler & IDEs Timer0 Atmega 1280


von Jens Fischer (Gast)


Lesenswert?

Hallo,

ich versuche nun schon seit längerem den Timer0 des Atmega 1280 im CTC 
Modus zu nutzen. Jedoch leider ohne Erfolg.

Hier mein Code:
1
ISR(TIMER0_COMPA_vect)
2
{
3
  // Testnachricht
4
  testnachricht();
5
6
}
7
8
int main(void)
9
{
10
  
11
/* Timer0 A
12
 * Prescaler=1024
13
 * Clear Timer on Compare
14
 * Compare Register A = 125 (16MHz / 1024 Presc / 125 = 125 Interrupts pro Sek)
15
      * Timer 0 Compare Interrupt freigeben  
16
      */
17
      OCR0A = 125;
18
      TIMSK0 |= 1 << OCIE0A;
19
      TCCR0A = TCCR0A | (1<<CS00) | (1<<CS02) | (1<<WGM01);
20
21
        
22
  // Global Interrupts freigeben
23
  sei();
24
25
while (1) {
26
27
}

Leider wird der Interrupt nicht ausgeführt...
Hab bisher nur Atmega32 programmiert, fehlen mir für den 1280 vllt. noch 
Einstellungen?

Bin für jede Hilfe dankbar!
Vielen Dank im Voraus...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jens Fischer wrote:

> Leider wird der Interrupt nicht ausgeführt...

Weil zwar WGM01 im Register TCCR0A gelegen ist, aber CS00 und CS02
gehören nach TCCR0B. =:-)

von Jens Fischer (Gast)


Lesenswert?

OK, jetzt funktioniert es!
Vielen Dank für deine Hilfe! Habs jetzt auch im Datenblatt gesehen... 
wer lesen kann... :)

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.