Hallo,
ich versuche schon seit einiger Zeit eine bestimmte Konfiguration des
Timers an PortE bei einem Xmega128A3 AU zu realisieren. Der Timer soll
im Modus "WGMODE_Normal" betrieben werden und beim Event den jeweiligen
Pin umschalten. Hier der Quellcode:
1 | TCE0.CTRLB |= TC_WGMODE_NORMAL_gc; // TimerMode
|
2 | TCE0.CTRLB |= TC0_CCDEN_bm|TC0_CCCEN_bm; // enable channels
|
3 | TCE0.PER = 1000; // Top
|
4 | TCE0.CCC = 100;
|
5 | TCE0.CCD = 100;
|
6 | TCE0.CTRLA = TC_CLKSEL_DIV1024_gc; // select Prescaler
|
7 |
|
8 | AWEXE.CTRL |= AWEX_DTICCCEN_bm; // enable AWEXx channel
|
9 | AWEXE.OUTOVEN = 0b00111111; // Initial override value.
|
Leider gibt es keine Veränderung an den Pins. Verwende ich mit dem
Timer die internen Overflow Interrupts und lasse einen Pin per Software
toggeln funktioniert dies. --> Der Timer läuft also, aber es wird kein
Event auf die Pins ausgelöst.
Seltsam ist, dass der Code am PortC funktioniert (dieser ist laut
Datenblatt baugleich zum PortE) aber nicht an Port E.
Ich habe auch schon mehrere Controller (neuste Serie) versucht aber alle
zeigen das gleiche Ergebnis. Betreibe ich den Timer im Modus "WGMODE_SS"
funktioniert alles problemlos.
Kann es jemand bei seinen Controllern testen oder hat jemand schon die
gleiche Erfahrung gemacht? Oder ist das ein Bug?
Grüße Martin