PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bauen eines Beleuchtungssystem für RC-Cars



Cybererror
25.10.2009, 13:42
Hallo.

Habe mal eine Frage ich will bei meinen Nitro RC-Car beleuchtung einbauen. aber nicht nur leuchten sondern auch Bremslicht.
Will dazu das PWM Signal vom Empänger zm Servo nutzen beziehungsweise auslesen.

Hat jemand erhafrung damit.

Wegen Anschießen das da sich das Signal verlängert oder verkürzt.

Will das mit ein Atmega8 machen.
kann ich diese an einen Normalen Port anscheißen. oder an einen Interrupt.
da ich ja die Zeit des Signal lesen muss!

Weiß jemand wie ich das machen kann?

Sauerbruch
25.10.2009, 15:45
Am elegantesten geht das mit ´nem Interrupt, den Du auf "Change" konfigurierst.



Config INT0 = Change
Enable INT0
Enable Interrupts


In der ISR startest Du einen Timer bei steigender Flanke, und bei fallender Flanke stoppst Du ihn und setzt ein Flag-Bit. Da so´n RC-Impuls maximal 2,2ms lang ist, darf der Timer in dieser Zeit nicht überlaufen!



ISR:
If PIND2=1 then
Start TimerX
Else
Stop TimerX
Flag = 1
End if
Return

In der Hauptschleife fragst Du das Flag-Bit ab - und wenn´s 1 ist (dh. Impuls ist fertig) checkst Du den Stand des TimerX. Hat er einen gewissen Wert über- oder unterschritten (je nachdem, ob der Impuls beim bremsen länger oder kürzer wird), schaltest Du Dein Bremslicht ein oder aus.



If Flag = 1 then
Flag = 0
If TimerX > ... then PORTX.Y=1 else PORTX.Y=0
TimerX=0
End if

Willa
25.10.2009, 15:49
Wenn du nur einen Kanal auswerten willst könnte das mit "PulseIn" funktionieren (siehe Bascom Hife).

kann ich diese an einen Normalen Port anscheißen
Du kannst einen normalen Port anscheißen. \:D/

Cybererror
25.10.2009, 16:20
Pulsein klappte sehr gut. Danke für den einfachen Tipp,