Horniak
27.05.2007, 21:46
Hallo,
zur Simulation einer Bremslichtansteuerung müsste ich eine Lampe getaktet ansteuern, d. h. mit einem Tastverhältnis von 25% oder mit einem Tastverhältnis von 100 %, wenn ein Schalter gedrückt wird. Da ich mich grad erst in Bascom einarbeite und ein Neuling bin, habe ich mir mal die Infos zu Bascom und PWM hier bei RN reingezogen. Ich verwende hier noch nen alten AT90S2313 und nen 10MHz-Quarz. Ich habe aber keine Einstellung für Prescale gefunden, dass ich den 8Bit-Timer auf genau 100 Hz bringe. Ein Bekannter hat das wohl ohne Timer hingekriegt, doch ich verstehe das nicht so ganz:
If Fahrlicht = 1 And Pwm < 11 And Bremse_err = 0 Then
Bremse_o = 1
Waitus 20
If Bremse_chk = 0 Then '"Warmprüfung"
Error = 1
Bremse_err = 1
Bremse_o = 0 'bei Defekt abschalten
End If
Else
Waitus 20
Bremse_o = 0
End If
End If
.
.
.
Counters:
Incr Pwm
Incr Blinkercounter
If Blinkercounter >= 4000 Then
Blinkercounter = 0
End If
If Pwm >= 48 Then
Pwm = 0
End If
Return
Ich weiss nicht, ob die beiden Ausschnitte reichen. Ich frag mich halt, wie man mit den beiden wait-Befehlen von je 20 µs das hinkriegen will, da 100 Hz ja ner Periodendauer von 10ms entsprechen. Bremse_o ist übrigens der Ausgangspin des Controllers zum Profet, der dann die Lampe schaltet.
Grüße
Horniak
zur Simulation einer Bremslichtansteuerung müsste ich eine Lampe getaktet ansteuern, d. h. mit einem Tastverhältnis von 25% oder mit einem Tastverhältnis von 100 %, wenn ein Schalter gedrückt wird. Da ich mich grad erst in Bascom einarbeite und ein Neuling bin, habe ich mir mal die Infos zu Bascom und PWM hier bei RN reingezogen. Ich verwende hier noch nen alten AT90S2313 und nen 10MHz-Quarz. Ich habe aber keine Einstellung für Prescale gefunden, dass ich den 8Bit-Timer auf genau 100 Hz bringe. Ein Bekannter hat das wohl ohne Timer hingekriegt, doch ich verstehe das nicht so ganz:
If Fahrlicht = 1 And Pwm < 11 And Bremse_err = 0 Then
Bremse_o = 1
Waitus 20
If Bremse_chk = 0 Then '"Warmprüfung"
Error = 1
Bremse_err = 1
Bremse_o = 0 'bei Defekt abschalten
End If
Else
Waitus 20
Bremse_o = 0
End If
End If
.
.
.
Counters:
Incr Pwm
Incr Blinkercounter
If Blinkercounter >= 4000 Then
Blinkercounter = 0
End If
If Pwm >= 48 Then
Pwm = 0
End If
Return
Ich weiss nicht, ob die beiden Ausschnitte reichen. Ich frag mich halt, wie man mit den beiden wait-Befehlen von je 20 µs das hinkriegen will, da 100 Hz ja ner Periodendauer von 10ms entsprechen. Bremse_o ist übrigens der Ausgangspin des Controllers zum Profet, der dann die Lampe schaltet.
Grüße
Horniak