Hi,

schau mal ins Datenblatt des 16F627 ( ich habe selber noch nicht mit PWM gearbeitet, aber schon viel mit PIC's gemacht) auf Seite 66.
Ich hoffe das klappt!

Also

Wenn du eine 8 Bit Auflösung haben möchtest errechnet sich die Frequenz deiner PWM (bei 8Mhz Takt) mit Fpwm = 8*10^6/(Timer2 Prescaler* 10^(8*log2)). Das wäre bei Dir dann eine Frequenz von 31250Hz oder für später mit dem Prescaler 4 (Vorzähler) 7812Khz. Das ist kein zwingender Wert, aber bis zu dieser Frequenz hast du eine 8 Bit auflösung. Rechnen wir weiter mit 3Khz Fpwm. Mit 1/Fpwm hast du die Periodendauer der PWM und das wären Tpwm=0.0003333s. Des weiteren steht auf Seite 66 die Formel zur Berechnung der Periodendauer, welche umgestellt dir den Wert für PR2 gibt (also wie weit du zählen musst). Umgestellt ergibt das PR2 = Tpwm*8Mhz/(4*Prescaler) - 1. Ergibt sich ein Wert für PR2 von 167.

-> Bei 8 Mhz muss Register PR2 167 erhalten, ein Prescaler von 4 muss gesetzt werden. Dann nur noch den Duty Cycle (Seite 67) einstellen und nicht den Prescaler von 4 bei dieser Brechnung vergessen. Dann läuft es hoffentlich. Schreib mal ob es geklappt hat.

So long...

Viel Erfolg