For-Next-Schleife läuft nicht so wie gewollt :(
Hi,
ich habe meinen Roboterarm jetzt schon fast fertig aufgebaut. Es fehlt nur noch der Greifer. Ich wollte jetzt ein bischen mit der Positionierung herumexperimentieren und bin auf ein sicherlich sehr einfach zu lösendes Problem gestoßen, nur komm ich nicht drauf.
Hier mal der Code:
Code:
$crystal = 8000000
$baud = 9600
Declare Sub Shoulder_move(byval Shoulder_goto_pos As Byte)
Dim Shoulder_curr_pos As Byte
Shoulder_curr_pos = 127
Hauptschleife:
Wait 2
Call Shoulder_move(255)
Goto Hauptschleife
Sub Shoulder_move(byval Shoulder_goto_pos As Byte)
Local Schritt As Integer
If Shoulder_curr_pos < Shoulder_goto_pos Then
Schritt = 1
Elseif Shoulder_curr_pos > Shoulder_goto_pos Then
Schritt = -1
End If
Open "comd.7:9600,8,n,1" For Output As #2
For Shoulder_curr_pos = Shoulder_curr_pos To Shoulder_goto_pos Step Schritt
Print #2 , "#s" ; Chr(1) ; Chr(shoulder_curr_pos)
Print #2 , "#s" ; Chr(2) ; Chr(shoulder_curr_pos)
Waitms 30
Print " SCHRITT: " ; Schritt ; " CURR_POS: " ; Shoulder_curr_pos ; " GOTO_POS: " ; Shoulder_goto_pos
Next Shoulder_curr_pos
Close #2
Shoulder_curr_pos = Shoulder_goto_pos
End Sub
End
Der kommt gar nicht aus der For-Schleife raus. Die Variable Shoulder_curr_pos geht immer auf 255 und springt dann auf 0. Damit bewegt er sich plötzlich auch 0 und dann gehts wieder weiter zu 255, usw.
Habs mit 255 und 0 für Shoulder_goto_pos probiert. In beiden Fällen passiert das gleiche. An der Variable Schritt liegts nicht. Die ist immer richtig.
Oh man, das ist bestimmt total einfach und ich checks wieder nicht. Naja hoffentlich eine von euch.
mfg
jagdfalke[/code]