Hi,
ich arbeite auch grade an der Auswertung von RC-Kanälen, ich habe
Dir mal ein paar Auszüge aus meinem Bascom-Programm beigefügt - das ganze Programm ist ellenlang und hat viele Inhalte, die nichts mit der RC-Auswertung zu tun haben.
Manches ist sicher noch optimierungsfähig, aber die Sache funktioniert!
Der RC-Kanal hängt an Portd.2, Portc hat LED´s von denen ich einige zur Statusanzeige nutze.
Masse vom Empfänger und Testboard müssen natürlich verbunden sein.
Wird der RC-Kanal abgesteckt, schlägt der Errorhandler zu...
Ist aber kein vollständiges Programm, Variablendeklarationen etc. fehlen!
Ich hoffe, es hilft Dir trotzdem weiter.
Viele Grüße
Torsten
Code:
'Timer 1 for RC-Channel measurement
Config Timer1 = Timer , Prescale = 1
'==========================================
' Interrupt Handlings
'==========================================
On Timer1 Read_error
Enable Interrupts
'==========================================
' Initializing Timers
'==========================================
Enable Timer1
Stop Timer1
Timer1 = 0
'==========================================
' Main Program Loop
'==========================================
do
'Jump to RC-channel subroutine
Enable Interrupts
Timer1 = 0
Start Timer1
Bitwait Pind.2 , Reset
Stop Timer1
Gosub Read_channel
Disable Interrupts
.....
Hier der Rest des Programms...
...
Loop
'RC-channel reading
Read_channel:
Timer1 = 0
Start Timer1
Bitwait Pind.2 , Set
Timer1 = 0
Bitwait Pind.2 , Reset
Stop Timer1
Error = 0
Toggle Portc.0
Return
'Error handler
Read_error:
Error = Error + 1
Timer1 = 0
While Error = 10
Stop Timer1
Portc.2 = 0
Waitms 30
Portc.2 = 1
Waitms 200
Wend
Return
Lesezeichen