Guteen Abend liebe Mikrocontroller Community Ich schlage mich gerade bei einem Projekt mit einem blöden SW Problem zu tode. Ich verwende aktuell einen ATXMEGA32E5 und bin gerade den Timer am testen. Ich verwende Timer 5 nur um in eine Interrupt Service Routine zu springen und da sehe ich ein Problem: Der Timer beginnt erst wieder zu zählen wenn ich die Service Routine verlasse. Ich habe mich durch das Datenblatt geschlagen bin jedoch nicht fündig geworden und da die XMEGAE5 Serie neu ist auch nicht wirklich in Foren. Kann mir da jemand helfen? Init und ISR sehen so aus:
1 | void TIMER_INIT(void) |
2 | {
|
3 | TCC5.CTRLB = 0x40; // Timer auf Byte Mode einstellen |
4 | TCC5.INTCTRLA = 0x01; // Overflow Interrupt freigeben |
5 | PMIC.CTRL |= PMIC_HILVLEN_bm |PMIC_MEDLVLEN_bm|PMIC_LOLVLEN_bm; |
6 | sei(); // Interrupts freigeben |
7 | TCC5.CTRLA = 0x04; // Timer Prescaler gleich 8 und Timer starten |
8 | }
|
9 | |
10 | ISR (TCC5_OVF_vect) |
11 | {
|
12 | TCC5.INTFLAGS &=0xFE; |
13 | PORTD.OUT = 0x10; |
14 | entprell_counter++; |
15 | Zeit.usekunde++; |
16 | if(Zeit.usekunde>=15625) |
17 | {
|
18 | Zeit.usekunde = 0; |
19 | Zeit.sekunde++; |
20 | }
|
21 | PORTD.OUT = 0x00; |
22 | }
|
Besten Dank und mfG Sebi