Forum: Mikrocontroller und Digitale Elektronik Timer0 Output Compare bei AtXmega


von Samuel (Gast)


Lesenswert?

Hallo zusammen

Ich möchte mit dem Timer0 (TCC0) bei meinem AtXmega16A4U an einem 
Ausgang ein PWM erzeugen.

Dazu habe ich folgenden Code:
1
  PORTC.DIR = 0x01;
2
  
3
  TCC0.CTRLB = TC_WGMODE_SINGLESLOPE_gc;
4
  TCC0.PER = 0xFFFF;  //Maximum Periodendauer
5
  TCC0.CCA = 0xAAAA;  //DutyCycle
6
  
7
  TCC0.CTRLB = TC0_CCAEN_bm;  //Aktiviere Output Compare A
8
  
9
  TCC0.CTRLA = TC_CLKSEL_DIV1_gc;

Laut Datenblatt ist OC0A von TCC0 an PC0.
Deshalb das:
1
 PORTC.DIR = 0x01;

Leider kommt da nichts raus...

Was mache ich falsch?

von spess53 (Gast)


Lesenswert?

Hi

Ist es Absicht, das du

>  TCC0.CTRLB = TC_WGMODE_SINGLESLOPE_gc;

mit

>  TCC0.CTRLB = TC0_CCAEN_bm;  //Aktiviere Output Compare A

überschreibst?

MfG Spess

von Samuel (Gast)


Lesenswert?

Vielen Dank!

Nun läuft es!

1
TCC0.CTRLB |= TC_WGMODE_SINGLESLOPE_gc;
2
  TCC0.PER = 0xFF;  //Maximum Periodendauer
3
  TCC0.CCA = 0x50;  //DutyCycle  
4
  TCC0.CTRLB |= TC0_CCAEN_bm;  //Aktiviere Output Compare A  
5
  TCC0.CTRLA = TC_CLKSEL_DIV1_gc;

von Samuel (Gast)


Lesenswert?

Wie viele eigenständige Zähler hat eigentlich der AtXmega16A4U?

Ich bräuchte für meine Anwendung:

2x 16bit und einmal 8bit

Im Datenblatt steht: five 16bit Counters.

Aber ich finde nur zwei.

Nämlich TCC0 unc TCC1

TCC2 scheint eine variante von TCC0 zu sein, wenn man diesen splitet.

Was stimmt nun?

von Robert W. (robwa)


Lesenswert?

Hi,

TCC0
TCC1
TCD0
TCD1
TCE0

... macht 5 16-Bit Timer, jeder TCx0-Timer kann in 2 8-Bit-Timer 
gesplittet werden. Siehe XMEGA A4U Datasheet Seite 34.

von Samuel (Gast)


Lesenswert?

Robert W. schrieb:
> Hi,
>
> TCC0
> TCC1
> TCD0
> TCD1
> TCE0
>
> ... macht 5 16-Bit Timer, jeder TCx0-Timer kann in 2 8-Bit-Timer
> gesplittet werden. Siehe XMEGA A4U Datasheet Seite 34.

Genial!

Vielen Dank!!!

von spess53 (Gast)


Lesenswert?

Hi

>Aber ich finde nur zwei.

>Nämlich TCC0 unc TCC1

Du verwechselst Timer und Timer Typ (TC0,TC1,TC2).

Timer:

TCC0 Timer/Counter 0 on port C
TCC1 Timer/Counter 1 on port C
TCD0 Timer/Counter 0 on port D
TCD1 Timer/Counter 1 on port D
TCE0 Timer/Counter 0 on port E

MfG Spess

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.