Das ständige versenden von Steuerbefehlen konnte mittels
DoEvents beseitigt werde (glaube ich zumindest)
Leider ist das Programm immernoch so langsam, dass der Motor bei einem Notstop immer noch ca. 5 Sekunden weiter läuft. Das ist schlecht und würde im Extremfall den "Treppenrunterfalltod" bedeuten!
Code:
Private Sub Timer1_Timer()
CheckInput
Timer1.Enabled = False
Timer1.Interval = 250
Dim Schleife&
Timer1.Enabled = True
DoEvents
For Schleife = 1 To Timer1.Interval
If Schleife = Timer1.Interval Then
If X = 1 Then
SendBefehl "#rma" & Chr(0), "Ok" 'Motor ausschalten
ElseIf X = 2 Then
SendBefehl "#rmo" & Chr(0), "Ok" 'Motor einschalten
Else
End If
End If
Next Schleife
End Sub
Hier ist mal ein Ausschnitt aus dem Programm.
An einer anderen Stelle im Programm (DInputModul) wird mittels Case Entscheidung festgelegt wie groß der X-Wert ist.
Code:
Select Case dblX
Case 0 To 10000
X = 1
Case 10001 To 20000
X = 2
Case 20001 To 30000
X = 3
End Select
Vielleicht ist das ja nicht die tollste Lösung, vor allem weil der Timer1 eigentlich den Abfrageintervall für das Auslesen der Joystickachsen festlegt. Aber ich habe auch schon einen zweiten Timer (Timer2) angelegt und wollte dort die Schleife reinpacken. Dort ist nichts passiert.
Wenn sich das Problem mit der Zeitverzögerung lösen lässt, dann kann jeder (der einen Joystick hat) ganz einfach das Programm für seine Bedürfnisse abändern.
BITTE HELFT MIR
gruß Devastator
Lesezeichen