-
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
-
Vielen dank für das vorrechnen.
Ich habe beide werte mal ausprobiert und bei PWM=10 Fängt der motor merklich an zu fiepen, was ja dafür spricht das es eine geringe Frequenz ist.
wenn ich nochmal fragen habe werde ich sie stellen.
es hat mir sehr geholfen.