Code:
     $regfile = "m16def.dat"
$crystal = 7372800
 Dim A As Double
 Dim B As Double
 Dim C As Double
 Dim Comfeld(12) As Byte
 Dim X As Double
 Dim Y As Double
 Dim Z As Double
 Dim W As Double
 Dim K As Double
 Dim M As Double
 Dim N As Double
 Dim Auflosung As Double
 Dim Xstart As Integer
 Dim Ystart As Integer
 Dim Zstart As Integer

 Dim Xziel As Double
 Dim Yziel As Double
 Dim Zziel As Double
 Dim Zwischenwert1 As Double
 Dim Zwischenwert2 As Double
 Dim Zwischenwert3 As Double
 Dim Zwischenwert4 As Double
 Dim Zwischenwert5 As Double
 Dim Zwischenwert6 As Double
 Dim Aa As Double
 Dim Bb As Double

 Dim Xzwischenziel As Double
 Dim Yzwischenziel As Double
 Dim Zzwischenziel As Double
  Dim Realposx As Integer
  Dim Realposy As Integer
  Dim Realposz As Integer
  Dim Stposx As Double
  Dim Stposy As Double
  Dim Stposz As Double
 Dim Motoraus As Double
 Dim Absx As Double
 Dim Absy As Double
 Dim Absz As Double
 Dim Pc1alt As Double
 Dim Pc0alt As Double
 Dim F0 As Bit
 Dim F1 As Bit : Dim F2 As Bit : Dim F3 As Bit : Dim F4 As Bit
 Dim F5 As Bit : Dim F6 As Bit : Dim F7 As Bit : Dim F8 As Bit

  Auflosung = 2
Config Porta = Output
Config Portd = Input
'Config Portd.6 = Output
Config Portc = Input
Config Portb.1 = Input
Config Portb.0 = Output
   Realposx = 1
   Realposy = 1
Realposz = 1

   'Enable

    Xziel = 300                                             '10 umdreungen
    Yziel = 30
     Porta = 255

    Portc = 255
    Stposx = 1                                              'Realposx
    Stposy = 1                                              'Realposy
    Stposz = 1                                              'Realposz


     For Aa = 0 To 2 Step 0.1
     Bb = Aa - 2

     Zwischenwert1 = Stposx * Bb
     Zwischenwert2 = Xziel * Aa
     Zwischenwert3 = Stposy * Bb
     Zwischenwert4 = Yziel * Aa
     Zwischenwert5 = Zwischenwert2 - Zwischenwert1          'zwischen punkt erechnungs zeug
     Zwischenwert6 = zwischenwert4 - Zwischenwert3

     X = Zwischenwert5 / 2                                  'realpos damit ich immer vom wirklichen wert ausgehe und der fehler nicht größer wird
     Y = Zwischenwert6 / 2

     'X = 50.5
     Motoraus = 0
     X = Int(x)
     X = X - Realpos
     If X = 0 Then : Porta.0 = 0 : Else : Porta.0 = 1 : End If  'test ob x null ist
    Do
   If Pinc.0 = 0 Then Pc0alt = 1
   If Pinc.0 = 1 And Pc0alt = 1 Then : Pc0alt = 0 : X = X + 1 : Realposx = Realposx + 1 : End If       'pos holen

   If Pinc.1 = 0 Then Pc1alt = 1
   If Pinc.1 = 1 And Pc1alt = 1 Then : Pc1alt = 0 : X = X - 1 : Realposx = Realposx -1 : End If       'pos holen
   If X = 0 Then : Porta.1 = 0 : Else : Porta.1 = 1 : End If

      Absx = Abs(x)

    If X > 0 Then : Porta.4 = 0 : Porta.5 = 1 : Waitus 50 : End If       'Pos anfahren
    If X < 0 Then : Porta.4 = 1 : Porta.5 = 0 : Waitus 50 : End If       'pos anfahre
    If Absx < 15 Then : Porta.4 = 0 : Porta.5 = 0 : End If
    If X = 0 Then Motoraus = Motoraus + 1
    Loop Until Motoraus = 1000                              'sicher gehen das der motor wirklich steht und keinen schwung mehr hat
    Next Aa
    Do
    Loop

das ist er gestern ging garnichts der test ob x null ist war positiv die led leuchtete jetzt gehts nur das der motor ein paar um drehungen mehr macht (schätze 10* soviele) noch was pinc0 bekommt die impulse der geberscheibe wenn der motor sich nach rechts dreht und pinc1 wenn er sich nach links dreht also die geber scheibe und die lichschranken haben auch noch eine logik die geht aber 100%ig