Forum: Mikrocontroller und Digitale Elektronik AT32UC3 / Timer


von Sebastian (Gast)


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

von Sebastian (Gast)


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

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
Noch kein Account? Hier anmelden.