Hi Jungs,
ich hab die Variablentypen angeglichen und jetzt läufts. Nur leider erschien ein neues Problem:

Code:
$crystal = 8000000
$baud = 9600

Declare Sub Servo_move(byval Servo As Integer , Byval Servo_goto_pos As Integer)

$crystal = 8000000                                          'Quarzfrequenz

Dim Shoulder_curr_pos As Integer
Shoulder_curr_pos = 127

Dim Elbow_curr_pos As Integer
Elbow_curr_pos = 127

Hauptschleife:
   Wait 2
   Call Servo_move(1 , 255)
   Wait 2
   Call Servo_move(1 , 0)
Goto Hauptschleife



Sub Servo_move(byval Servo As Integer , Byval Servo_goto_pos As Integer)
   Local Schritt As Integer

   If Servo = 0 Then                                        'Schulter bewegen

      If Shoulder_curr_pos < Servo_goto_pos Then
         Schritt = 1
      Elseif Shoulder_curr_pos > Servo_goto_pos Then
         Schritt = -1
      Elseif Shoulder_curr_pos = Servo_goto_pos Then
         Exit Sub
      End If

      Open "comd.7:9600,8,n,1" For Output As #2
      For Shoulder_curr_pos = Shoulder_curr_pos To Servo_goto_pos Step Schritt
         Print #2 , "#s" ; Chr(1) ; Chr(shoulder_curr_pos)
         Print #2 , "#s" ; Chr(2) ; Chr(shoulder_curr_pos)
      Next Shoulder_curr_pos
      Close #2

      Shoulder_curr_pos = Servo_goto_pos
   End If

   If Servo = 1 Then                                        'Ellbogen bewegen

      If Elbow_curr_pos < Servo_goto_pos Then
         Schritt = 1
      Elseif Elbow_curr_pos > Servo_goto_pos Then
         Schritt = -1
      Elseif Elbow_curr_pos = Servo_goto_pos Then
         Exit Sub
      End If

      Open "comd.7:9600,8,n,1" For Output As #2
      For Elbow_curr_pos = Elbow_curr_pos To Servo_goto_pos Step Schritt
         Print #2 , "#s" ; Chr(3) ; Chr(elbow_curr_pos)
         Print "CURR: " ; Elbow_curr_pos ; "  GOTO: " ; Servo_goto_pos
      Next Elbow_curr_pos
      Close #2

      Elbow_curr_pos = Servo_goto_pos

   End If

End Sub

End

Der Code für Servo = 1 ist eigenlich 1:1 kopiert aus dem Servo=0-Teil aber er funktionert nicht. Ich hab per Terminal überprüft ob er wirklich in die For-Schleife rein geht und er tut es. Elbow_curr_pos wird vergrößert, definitiv. Anscheinend passiert dann bei
Print #2 , "#s" ; Chr(3) ; Chr(elbow_curr_pos)
gar nichts. Ich hab den Servo 100%ig am 3. Servoanschluss angeschlossen !!! Das komische ist, wenn ich das hier
Code:
      Open "comd.7:9600,8,n,1" For Output As #2
      For I = 127 To 255 Step 1
         Print #2 , "#s" ; Chr(3) ; Chr(i)
      Next I
      Close #2
direkt in die Haupschleife einbaue, dann bewegt er sich wie er soll. Ich bin ratlos.

EDIT: "funktioniert nicht" bedeutet er bewegt sich keinen Millimeter.

mfg
jagdfalke [/shadow]