Gast
#1627307
Hallo,
ich versuche auf dem Mega32 mit 16Mhz eine Software PWM zu bauen.
Wenn ich eine Taktfrequenz von ca. 122Hz erzeugen will, dann sollte das
doch mit einem prescaler von 256 zu machen sein ?!
Das erzeugt aber nur ein wirres hektisches blinken, <Erst mit einem
prescaler von 1 ist soetwas wie dimmen zu erkennen.
Was mach ich da falsch ??
$regfile = "m32def.dat"
$crystal = 16000000
$lib "mcsbyte.lbx"
Dim Pwm_stufen As Byte
Dim Pwm_wert As Byte
Dim Pwm_zaehler As Byte
Config Portd.4 = Output
Config Portd.5 = Output
Led1 Alias Portd.5
Led2 Alias Portd.4
Const An = 1
Const Aus = 0
Pwm_stufen = 254
Pwm_wert = 0
Pwm_zaehler = 0
'-------- Timer initialisieren ---
Config Timer0 = Timer , Prescale = 1
Enable Timer0
Enable Interrupts
On Timer0 timer0_ueberlauf
Do
' no loop
Loop
End
timer0_ueberlauf:
If Pwm_zaehler >= Pwm_stufen Then
Pwm_zaehler = 0
Incr Pwm_wert
Else
Incr Pwm_zaehler
End If
If Pwm_wert >= Pwm_stufen Then
Pwm_wert = 20
End If
If Pwm_zaehler < Pwm_wert Then
Led2 = An
Else
Led2 = Aus
End If
Return