Guten Tag Zusammen, ich versuche mit einem Xplained -Atxmega128a1 einen Timer Interrupt hinzubekommen. Der µC soll nur in die ISR und LED an Port E deaktivieren. Ich möchte nur sehen dass er prinzipiell geht. Habe dazu einen Code fehlerfrei compilliert. Jedoch wird die Interrupt Routine nie aufgerufen. Kann mir jemand helfen und sagen wo das Problem liegen könnte? Danke für die Hilfe ! Gruß, Markus #include <avr/io.h> #include <avr/interrupt.h> void initialisierung(void); int main (void) { PORTE.DIR = 0xff; //port as output PORTR.DIR = 0x00; // PORTD PIN0 as input PORTR.PIN0CTRL= 0b00011000; PORTE.OUT = 0xff; initialisierung(); int k = 1; while (1) { k++; } } void initialisierung(void) { cli(); // Interrupts deaktivieren TCC0.CTRLA = TC_CLKSEL_DIV1024_gc; // Presacler 1024 TCC0.CTRLB = 0x00; // select Modus: Normal TCC0.PER = 0x32; // Zähler Top-Wert TCC0.CNT = 0x00; // Zähler zurücksetzen TCC0.INTCTRLA = 0b00000011; // Interrupt Highlevel //################# Interrupts High-,Medium- und Lowlevel freigeben PMIC.CTRL |= PMIC_HILVLEN_bm |PMIC_MEDLVLEN_bm|PMIC_LOLVLEN_bm; sei(); // Interrupts aktivieren } ISR(TCC0_OVF_vect) { PORTE.OUT = 0x00; }
>> PORTR.DIR = 0x00; // PORTD PIN0 as input und >> PORTR.PIN0CTRL= 0b00011000; Hier hast du dich wohl verschrieben: PORTD
Hallo Alexxx, du hast recht der Kommentar hat einen fehler. Danke. Der C-Code ist jedoch davon nicht betroffen. Weißt du warum der Interrupt nie aufgerufen wird? Gruß, Markus
Probelem gelöst: Interrupt wird aufgerufen ABER der Breakpoint funktioniert in der ISR nicht. Gruß, Markus
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.