Hallo zusammen,
hat hier schon jemand mit einem Timer1 (16-Bit) in meinem Fall ein
Atmega 168 eine Phasen und Frequenz korrekte PWM Mode 9 hinbekommen?
Nach Datenblatt habe ich den Timer folgendermaßen konfiguriert.
1 | //TIMER1 PWM Generator initialisieren
|
2 | void timer1_init(void)
|
3 | {
|
4 | //Timer1 stop
|
5 | TCCR1B &=~ ((1<<CS12)|(1<<CS11)|(1<<CS10));
|
6 | //Modus auf Phase und Frequenz korrekt Mode 9
|
7 | TCCR1B = ((1<<WGM13)|(1<<WGM10));
|
8 | //Topwert 255 also 8 Bit
|
9 | OCR1A=255;
|
10 | //Starte Timer mit Preascaler 64
|
11 | //fpwm=4000000Hz/2*64*255
|
12 | //fpwm=122,5Hz
|
13 | TCCR1B = ((1<<CS11)|(1<<CS10));
|
14 | }
|
OCR1A dient zur Frequenzeinstellung bzw. Einstellung der Auflösung.
Ich denke meine Frequenzberechnung sollte stimmen,aber in welches
Register soll denn nun der Vergleichswert gesetzt werden um das
Pulsverhältnis einzustellen. An dieser Stelle komme ich leider nicht
weiter.
Vielen Dank schonmal im Vorraus, und ja ich weiß, Timer Threads gibts
wie Sand am Meer aber die meisten doch noch zu anderen Modi, möchte aber
gerne Diesen nutzen.
Bye Oli