PWM xmega128a1

#5350541
Lesenswert?

Moin,

ich versuche gerade die PWM des xmega128a1 in Betrieb zu nehmen. Leider 
scheitere ich jetzt daran. Konkret möchte ich den Timer0 von Port C 
nutzen. Hier mein Code zur Initialisierung:
1
PORTC.DIR = 0xFF;
2

3
TCC0.PER = 0xFFFF;
4
TCC0.CTRLA = 0x03; //Prescaler 4
5
TCC0.CTRLB = 0x23; //Ausgabe an Port C0 & Single Slope
6
TCC0.CCB = 0xFEE0;

Gruß
#5350619
Lesenswert?

Hallo,

hier mein Code:

alle vier Ports auf PWM geschaltet


void sinus_init(void)
{

PORTC.DIRSET   = PIN0_bm; // Ausgang
PORTC.DIRSET   = PIN1_bm; // Ausgang
PORTC.DIRSET   = PIN2_bm; // Ausgang
PORTC.DIRSET   = PIN3_bm; // Ausgang

TCC0_CTRLA = TC_CLKSEL_DIV1_gc; // Prozessortakt keine Teilung
TCC0_CTRLB = TC_WGMODE_SS_gc | TC0_CCAEN_bm | TC0_CCBEN_bm | 
TC0_CCCEN_bm | TC0_CCDEN_bm;
TCC0_PER = 0xE1FF; // setze die Anzahl der Periode

TCC0_CCA = 0; //0x5FFF hell, 0x2FFF dunkel
TCC0.CCB = 0;
TCC0.CCC = 0;
TCC0.CCD = 0;

}
#5350670
Lesenswert?

Vielen Dank für den Codeauschnitt. Ich hatte ihn gleich mal ausprobiert. 
Erst hat es nicht funktioniert, interessanterweise aber auf einmal doch.
Danach habe ich zu testzwecken meinen Code verwendet, welcher auch 
funktioniert. :/

Aber dennoch vielen Dank für den Denkanstoß. Wahrscheinlich habe ich den 
Wald vor lauter Bäumen nicht gesehen.

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