AT32UC3 / Timer

Gast #2622182
Lesenswert?

Hallo Jungs,

ich arbeite mich gerade in den 32-Bit uC AT32UC3L064 von Atmel mit dem 
Simulator Tool im AVR-Studio ein. Beim Versuch den Timer zu starten 
scheitere ich aber kläglich. Es hat den Anschein, als ob der Timer 
einfach nicht anlaufen möchte.

Beim ATMEGA ist das Starten des Timers ja denkbar einfach:
1
TCCR0 = 1;

...und schon läuft der Timer vom ATMEGA8 und ich kann auch im Simulator 
schön das Timer-Counter-Register anschauen wie es hochgezählt wird.

Beim AT32UC3L064 funktioniert das einfach nicht. Hier mal meine main.c. 
Den Optimization Level habe ich auf None(-O0) gesetzt und somit sollte 
hier auch nichts wegoptimiert werden.
1
int main(void)
2
{
3
     // Timer0 Konfiguration
4

5
     AVR32_TC0.channel[0].CMR.capture.cpctrg = 1;
6
     AVR32_TC0.channel[0].CMR.capture.wave = 1;
7
     AVR32_TC0.channel[0].CMR.capture.cpctrg = 1;
8
     AVR32_TC0.channel[0].rc = 1000;
9
     AVR32_TC0.channel[0].IER.cpcs = 1;
10
     AVR32_TC0.channel[0].CCR.clken = 1;
11
     AVR32_TC0.channel[0].CCR.swtrg = 1;
12

13
     while (1)
14
     {
15
         i = AVR32_TC0.channel[0].CV.cv;
16
     }
17
}

Hat mal jemand einen Tipp für mich.

Besten Dank,
Sebastian
Gast #2622890
Lesenswert?

Für alle die sich auch mal mit dem Timer des AT32UC3L im Simulator 
auseinandersetzen wollen. Folgende Einstellungen starten den Timer und 
das CV (Count Value)Register wird brav hochgezählt.

AVR32_TC0.channel[0].CMR.capture.tcclks = 1;
AVR32_TC0.channel[0].CCR.clken = 1;
AVR32_TC0.channel[0].CCR.swtrg = 1;

Ach ja, ein Clean und Rebuild hilft beim AVR-Studio (fast) immer...

Sebastian

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