Hallo!
Bei 4 Mhz und einem Prescale von 64
wird eine PWM-Frequenz von 122 erreicht.Code:Config Timer0 = Pwm , Compare A Pwm = Clear Down , Prescale = 64
4000000 (Quarz) / 64 (Prescale) = 62500 (Ticks)
62500 (Ticks) / 256 (Gesamt Pulsweite) = 244,140625 (in eine Richtung)
244,140625 (in eine Richtung) / 2 = 122,0703125 (in beide Richgungen = Hz)
Es wird zuerst von 0 bis 255 hoch gezählt. Stimmt während diesem Hochzählen der Wert PWM0A mit dem Zähler überein, dann wird die LED ausgeschaltet. Kommt der Zähler bei 255 an, dann zählt er nach unten von 255 bis 0. Stimmt während diesem Herunterzählen der Wert PWM0A mit dem Zähler überein, dann wird die LED eingeschaltet. Ein mal Hochzählen und ein mal Herunterzählen ergeben insgesamt einen Impuls. Mit einem Vorteiler von 64 kann somit eine PWM-Frequenz von 122 Hz erreicht werden. Was für das Dimmen von LEDs genügt.
Ich habe das jetzt nachgeprüft. Wenn man im Bascom den TIMERx auf PWM setzt, dann wird rauf und runter gezählt. CLEAR UP oder CLEAR DOWN entscheidet, ob die LED bei einem hohen oder bei einem niedrigen Vergleichswert (PWMxA oder PWMxb) hell oder dunkel ist.
Das war mein erster Versuch mit Hardware-PWM. :-) Scheint gar nicht so schlecht zu funktionieren. :-b
mfg
Gerold
:-)