Hallo zusammen,
ich habe eine Frage zu dem Beispiel Software PWM aus dem Forum :
http://www.mikrocontroller.net/articles/Soft-PWM
Meine erste Frage ist eine Verständnis Frage zu der ISR Compare.
Im Datenblatt steht das der Interrupt Vector aufgerufen wird wenn das
TOV1 Flag gesetzt wird also in Normal Mode bei erreichen von MAX Value
des Timer Counters. Hab ich das so richtig verstanden ?
Ich habe nun versucht den intelligenten Lösungsansatz auf einen ATxMega
256A3 zu portieren. Atmel schreibt für ein Output Compare muss der Timer
in normal mode laufen und der Compare Output Enable muss aktiviert
werden.
1 | TCC0.CTRLA = TC_CLKSEL_DIV8_gc; // Presacler 8
|
2 | TCC0.CTRLB = 0b00010000; // select Modus: Normal; Enable Compare Output A
|
3 | TCC0.PER = PWM_STEPS; // Zähler Top-Wert -> PWM-Steps (256)
|
4 | TCC0.CNT = 0x00; // Zähler zurücksetzen
|
5 | TCC0.INTCTRLA = 0b00000011; // Interrupt Highlevel
|
müsste also so passen oder ?
Hab das ganze dann mal debuggt und das Problem ist nun das die Interrupt
Routine nicht aufgerufen wird.
Hat damit jemand schon Erfahrungen gemacht und kann mir helfen ?
Hab den auf Xmega abgeänderten Code angehängt.
Vielen Dank schonmal
Gruß Stefan