Hallo

Obwohl man das hinter dem schlichten "Timer1=Pwm" nicht vermutet, Bascom betreibt den Timer so im "Phase Correct PWM Mode". Das Zählregister zählt dabei nicht nur von 0 nach 255 ("Pwm = 8") sondern von dort auch wieder zurück. Jedesmal wenn der Zähler gleich dem Inhalt des OCR1x-Register ist ("Compare x Pwm"), wird der entsprechende Hardwareausgang OC1x geschaltet. Wenn die Übereinstimmung beim Runterzählen auftritt, wird der Ausgang Low ("Clear Down"), beim Hochzählen High.

Eine Periode dauert einmal hoch und wieder runterzählen, also 2*256=512 Timertakte. Mit 16MHz Kontrollertakt und Prescaler /8 würde die PWM-Frequenz dann 16000kHz/8/512 oder 2000Khz/512=3,9kHz betragen. (Ich hoffe, dass stimmt so;)

Das wäre ja zu hoch, oder? Für einfache Tests könnte man an den Bits schrauben:

Pwm = 9 ergibt 1,9kHz (PWM-Werte 0 bis 511)
Pwm = 10 knapp 1kHz (PWM-Werte 0 bis 1023)

Gruß

mic