Ich verdeutliche das ganze nochmal mit meinem code:

Code:
$crystal = 6000000
Config Portb = Output
Config Portc = Input
Config Portd = Output
Config Portd.6 = Input
Config Portd.7 = Input

Config Adc = Single , Prescaler = Auto

Dim Xstandart As Integer
Dim Ystandart As Integer
Dim Xwert As Integer
Dim Ywert As Integer
Dim A As Integer
Dim B As Integer
Dim Minmove As Integer
Dim Xdirectionf As Integer
Dim Ydirectionf As Integer
Dim Xtime As Integer
Dim Ytime As Integer


Start Adc
Xstandart = Getadc(1)
Start Adc
Ystandart = Getadc(0)


Xtime = 0
Ytime = 0
Minmove = 21
A = 1
B = 1
Do
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Start Adc
Xwert = Getadc(1)

If Xwert < Xstandart Then
   A = Xstandart - Xwert
   A = 160 - A
   A = A / 10
   Xdirectionf = 1
   If A < 1 Then
      A = 1
   End If
Elseif Xwert > Xstandart Then
   A = Xwert - Xstandart
   A = 250 - A
   A = A / 10
   Xdirectionf = 0
   If A < 1 Then
         A = 1
   End If
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
Start Adc
Ywert = Getadc(0)

If Ywert < Ystandart Then
   B = Ystandart - Ywert
   B = 140 - B
   B = B / 10
   Ydirectionf = 1
   If B < 1 Then
      B = 1
   End If
Elseif Ywert > Ystandart Then
   B = Ywert - Ystandart
   B = 300 - B
   B = B / 10
   Ydirectionf = 0
   If B < 1 Then
         B = 1
   End If
End If
'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
'XXXXX --- MOVE --- XXXXXXXXXXXXXX
If A < Minmove Then

   If Xdirectionf = 1 Then

      Xtime = Xtime + 1

      If Xtime = 5 Then
         Xtime = 1
      End If

      If Xtime = 1 Then
      Portb.0 = 1
      Portb.1 = 0
      Portb.2 = 1
      Portb.3 = 0
      Elseif Xtime = 2 Then
      Portb.0 = 1
      Portb.1 = 0
      Portb.2 = 0
      Portb.3 = 1
      Elseif Xtime = 3 Then
      Portb.0 = 0
      Portb.1 = 1
      Portb.2 = 0
      Portb.3 = 1
      Elseif Xtime = 4 Then
      Portb.0 = 0
      Portb.1 = 1
      Portb.2 = 1
      Portb.3 = 0
      End If

   Else

      Xtime = Xtime + 1

      If Xtime = 5 Then
         Xtime = 1
      End If

      If Xtime = 1 Then
      Portb.0 = 1
      Portb.1 = 0
      Portb.2 = 1
      Portb.3 = 0
      Elseif Xtime = 2 Then
      Portb.0 = 0
      Portb.1 = 1
      Portb.2 = 1
      Portb.3 = 0
      Elseif Xtime = 3 Then
      Portb.0 = 0
      Portb.1 = 1
      Portb.2 = 0
      Portb.3 = 1
      Elseif Xtime = 4 Then
      Portb.0 = 1
      Portb.1 = 0
      Portb.2 = 0
      Portb.3 = 1
      End If

   End If

   Waitms A                                                 '<<<< PROBLEM! B + A vvv = Für beide Motoren die gleiche, zu lange wartezeit

End If
'XXXXX --- MOVE --- XXXXXXXXXXXXXX
'YYYYY --- MOVE --- YYYYYYYYYYYYYY
If B < Minmove Then

   If Ydirectionf = 1 Then

      Ytime = Ytime + 1

      If Ytime = 5 Then
         Ytime = 1
      End If

      If Ytime = 1 Then
      Portd.0 = 1
      Portd.1 = 0
      Portd.2 = 1
      Portd.3 = 0
      Elseif Ytime = 2 Then
      Portd.0 = 1
      Portd.1 = 0
      Portd.2 = 0
      Portd.3 = 1
      Elseif Ytime = 3 Then
      Portd.0 = 0
      Portd.1 = 1
      Portd.2 = 0
      Portd.3 = 1
      Elseif Ytime = 4 Then
      Portd.0 = 0
      Portd.1 = 1
      Portd.2 = 1
      Portd.3 = 0
      End If

   Else

      Ytime = Ytime + 1

      If Ytime = 5 Then
         Ytime = 1
      End If

      If Ytime = 1 Then
      Portd.0 = 1
      Portd.1 = 0
      Portd.2 = 1
      Portd.3 = 0
      Elseif Ytime = 2 Then
      Portd.0 = 0
      Portd.1 = 1
      Portd.2 = 1
      Portd.3 = 0
      Elseif Ytime = 3 Then
      Portd.0 = 0
      Portd.1 = 1
      Portd.2 = 0
      Portd.3 = 1
      Elseif Ytime = 4 Then
      Portd.0 = 1
      Portd.1 = 0
      Portd.2 = 0
      Portd.3 = 1
      End If

   End If

   Waitms B                                                 '<<<< PROBLEM! B + A^^^= Für beide Motoren die gleiche, zu lange wartezeit

End If
'YYYYY --- MOVE --- YYYYYYYYYYYYYY

Loop