Torrentula
28.12.2010, 18:04
Dieser Artikel beschreibt, wie ich ein Windows Programm schreibe und dann mithilfe von BASCOM diese Daten dann weitervererbeite:
https://www.roboternetz.de/wissen/index.php/Joystick_am_PC_zur_Kontrolle_eines_Roboters
Nun habe ich eine Frage:
Mein Code sieht derzeit so aus:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000
$baud = 9600
Dim X As Integer
Config Portc = Output
Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Portc.3 = 1
Portc.4 = 1
Portc.5 = 1
Portc.6 = 1
Portc.7 = 1
Do
'Darauf warten dass irgendwas gesendet wird
Input "" , X
'Joystick nach rechts
If X = 0 Then
Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Portc.3 = 1
Portc.4 = 1
Portc.5 = 1
Portc.6 = 1
Portc.7 = 1
End If
If X = 1 Then
Portc.3 = 0
Else
Portc.3 = 1
End If
For X = 1 To 2
Portc.3 = 0
Portc.2 = 0
Next X
For X = 1 To 3
Portc.3 = 0
Portc.2 = 0
Portc.1 = 0
Next X
For X = 1 To 4
Portc.3 = 0
Portc.2 = 0
Portc.1 = 0
Portc.0 = 0
Next X
'Joystick nach links
If X = 0 Then
Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Portc.3 = 1
Portc.4 = 1
Portc.5 = 1
Portc.6 = 1
Portc.7 = 1
End If
If X = -1 Then
Portc.4 = 0
Else
Portc.4 = 1
End If
For X = -1 To -2
Portc.4 = 0
Portc.5 = 0
Next X
For X = -1 To -3
Portc.4 = 0
Portc.5 = 0
Portc.6 = 0
Next X
For X = -1 To -4
Portc.4 = 0
Portc.5 = 0
Portc.6 = 0
Portc.7 = 0
Next X
Loop
End
Wenn ich nun mein Windows-Programm starte, leuchten die ersten 4 LED's, d.h. PORTC.0 bis PORTC.3 sind Low, obwohl eigentlich keine Daten gesendet werden.
Wenn dann die Positionsdaten des Joystick gesendet werden, tut sich nichts; die 4 LED's leuchten weiterhin.
Hat irgendjemand eine Idee was das Problem ist? Liegt es möglicherweise an den For-Schleifen?
Torrentula
https://www.roboternetz.de/wissen/index.php/Joystick_am_PC_zur_Kontrolle_eines_Roboters
Nun habe ich eine Frage:
Mein Code sieht derzeit so aus:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000
$baud = 9600
Dim X As Integer
Config Portc = Output
Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Portc.3 = 1
Portc.4 = 1
Portc.5 = 1
Portc.6 = 1
Portc.7 = 1
Do
'Darauf warten dass irgendwas gesendet wird
Input "" , X
'Joystick nach rechts
If X = 0 Then
Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Portc.3 = 1
Portc.4 = 1
Portc.5 = 1
Portc.6 = 1
Portc.7 = 1
End If
If X = 1 Then
Portc.3 = 0
Else
Portc.3 = 1
End If
For X = 1 To 2
Portc.3 = 0
Portc.2 = 0
Next X
For X = 1 To 3
Portc.3 = 0
Portc.2 = 0
Portc.1 = 0
Next X
For X = 1 To 4
Portc.3 = 0
Portc.2 = 0
Portc.1 = 0
Portc.0 = 0
Next X
'Joystick nach links
If X = 0 Then
Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Portc.3 = 1
Portc.4 = 1
Portc.5 = 1
Portc.6 = 1
Portc.7 = 1
End If
If X = -1 Then
Portc.4 = 0
Else
Portc.4 = 1
End If
For X = -1 To -2
Portc.4 = 0
Portc.5 = 0
Next X
For X = -1 To -3
Portc.4 = 0
Portc.5 = 0
Portc.6 = 0
Next X
For X = -1 To -4
Portc.4 = 0
Portc.5 = 0
Portc.6 = 0
Portc.7 = 0
Next X
Loop
End
Wenn ich nun mein Windows-Programm starte, leuchten die ersten 4 LED's, d.h. PORTC.0 bis PORTC.3 sind Low, obwohl eigentlich keine Daten gesendet werden.
Wenn dann die Positionsdaten des Joystick gesendet werden, tut sich nichts; die 4 LED's leuchten weiterhin.
Hat irgendjemand eine Idee was das Problem ist? Liegt es möglicherweise an den For-Schleifen?
Torrentula