Timer-Interrupt mit dem ATMega16

Gast #366378
Lesenswert?

Hallo liebe µC-Freunde!

Ich habe in AVRStudio mit WinAVR als Plugin folgenden Code
geschrieben:

#include <avr/interrupt.h>
#include <avr/iom16.h>

volatile uint8_t test=0;


ISR (TIMER2_COMP_vect)
{
  test++;
}

int main(void)
{
  cli();
  DDRD = 0xFF;
  PORTD = 0;
  TCCR2 = 0b00011010;
  OCR2 = 100;
  sei();
  while (1);
}

Das Programm sollte über den Timer2 alle 100 µs (CPU-Takt 8 Mhz) OC2
togglen und die zugehörige Interruptroutine ausführen. Das togglen
klappt auch (sichtbar in der I/O-Ansicht), die Interruptroutine wird
jedoch nie erreicht (einmal sichbar am Wert von "test" und am
Breakpoint, den ich in die Routine gesetzt habe). Dies pasiert sowohl
wenn ich über den JTAG ICE direkt auf dem µC debugge, als auch wenn ich
den Mega16 vom AVR Studio simulieren lasse. Ich habe stundenlang
rumprobiert, das Manual zum ATMega16 studiert und mich im Internet
totgesucht, habe aber keinen Fehler gefunden. Ich hoffe, ihr könnt mir
helfen!

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