Hallo,
ich habe den besagten AT90USB1287 und möchte mit dem Timer2 ein
PWM-Signal erzeugen (FastPWM mit Phase Correct)
Ich verstehe nicht so recht wie ich nun einen variablen Dutycycle
erzeugen kann. Ich kann über OCR2A nur die Grundfrequenz ändern, wobei
der Dutycycle immer 50% beträgt.
1 | int main(void)
|
2 | {
|
3 | // OC2A auf Ausgang setzen
|
4 | DDRB |= (1<<PB4);
|
5 |
|
6 | // Mit den COM2An bin ich mir nicht sicher was ich brauche
|
7 | TCCR2A = (1<<COM2A0) | (0<<COM2A1) | (1<<WGM20) | (0<<WGM21);
|
8 |
|
9 | //Prescaler 1024, WGM2n für Mode 5 konfiguriert
|
10 | TCCR2B = (1<<WGM22) | (1<<CS22) | (1<<CS21) | (1<<CS20);
|
11 |
|
12 | OCR2A = 0x80; //128
|
13 |
|
14 | while(1)
|
15 | {
|
16 | }
|
17 |
|
18 | }
|
Wie erhalte ich jetzt einen variablen Dutycycle, bei gleichbleibender
Grundfrequenz?
Die Beispiele im AVR-Tutorial helfen mir nicht wirklich weil es die
Parameter wie z.B. ICRn gar nicht gibt.
Ist das mit diesem Timer überhaupt möglich?
Viele Grüße und vielen Dank im voraus
Christian