Forum: Mikrocontroller und Digitale Elektronik Timer (+ IAR Debuger + JTAG)


von Peter (Gast)


Lesenswert?

Hallo,

hab ein Problem mit meinem Programm/IAR Debugger. Hab einen ATmega32 
über JTAG mit dem Debugger verbunden. Funktioniert soweit auch prima. 
Jetzt habe ich aber einen Timer im Code verwendet (CTC Mode). Beim 
debuggen sehe ich auch wie sich der Wert im TCNT0 Register ändert, aber 
der Interrupt wird nicht ausgeführt (Breakpoint in der ISR).
Hat jemand eine Idee woran das liegen könnte? Hab leider kein Oszi um 
mal zu messen. Hab über einen Teiler den Takt auf 1s runter geteil, aber 
LED blinkt auch nicht :(

Hier mein Code:
1
#pragma vector=TIMER0_COMP_vect
2
__interrupt void timerCompareHandler( void )
3
{
4
  if (--teiler == 0)
5
  {
6
    teiler = 125;
7
  }
8
}//timerCompareAHandler()
9
10
void init_timer0(void)
11
{
12
  DDRB |= (1<<PB3); //OC0 pin to output
13
  PORTB &= ~(1<<PB3);
14
  // presacler by 64, clear on compare with OCR0, Toggle OC0 pin
15
  TCCR0 = (1<<WGM01)|(0<<WGM00)|(0<<COM01)|(1<<COM00)|(0<<CS02)|(1<<CS01)|(1<<CS00);
16
  OCR0 = 199; //625Hz @ 16MHz system clock
17
  TCNT0 = 0;    // Timer startet mit 0
18
19
  SREG |= GIE;  //enable global interrupt
20
  TIMSK = 1<<OCIE1A;    // Interupt bei Vergleichswert (Compare Match)
21
}

Hat jemand eine Idee?

Gruß
Peter

von Spess53 (Gast)


Lesenswert?

Hi

Deine ISR ist für Timer0 . Timsk ist Timer1.

MfG Spess

von Peter (Gast)


Lesenswert?

Oh man, wie blöd von mir...
Hab ich irgendwie nicht gesehen. Blödes copy/past :(

Sorry das ich damit genervt habe, und Danke für den Hinweis Spess53 !
Peter

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.