Timer0 Output Compare bei AtXmega

Gast #3518124
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?
Gast #3518200
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;
Gast #3518229
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?
Gast #3518266
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

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