hier ist mal mein programm ich hoff man verstehts einigermasen wenn was nicht verstanden wird fragt bitte!! (habs so gut wie möglich komentiert)

Code:
$regfile = "m16def.dat"
$crystal = 1000000

'Konfiguration der Ausgangspins
Config Pind.2 = Output                     'Richtung Motor rechts
Config Pind.3 = Output                     'Richtung Motor links
Config Pind.4 = Output                     'Takt Motor rechts
Config Pind.5 = Output                     'Takt Motor links

'Konfiguration der Einganspins
Config Pinb.0 = Input                       'Sensor vorne links
Config Pinb.1 = Input                       'Sensor vorne rechts
Config Pinb.2 = Input                       'Sensor hinten links
Config Pinb.3 = Input                       'Sensor hinten rechts


'Deklaration Ausgänge
Motre Alias Portd.2                           'Variable für Richtung Motor rechts
Motli Alias Portd.3                            'Variable für Richtung Motor links
Taktre Alias Portd.4                         'Variable für Takt des Rechten Motors
Taktli Alias Portd.5                          'Variable für Takt des linken Motors

'Deklaration Eingänge
'Vornli Alias Pinb.0                          'Variable für Sensor vorne links
'Vornre Alias Pinb.1                        'Variable für Sensor vorne rechts
'Hintli Alias Pinb.2                           'Variable für Sensor hinten links
'Hintre Alias Pinb.3                         'Variable für Sensor hinten rechts


Declare Sub Vornli
Declare Sub Vornre
Declare Sub Hintli
Declare Sub Hintre




Wait 2

'Bewegung nach vorne

Motre = 0                                        'motor rechts vorwärts
Motli = 0                                          'motor links vorwärts
Do

 Taktre = 1
 Taktli = 1

 Waitus 1000
Taktre = 0
 Taktli = 0

 Waitus 1000


'Aufruf Unterprogramm für Sensor vorne links
If Pinb.0 = 0 Then Gosub Vornli 

'Aufruf Unterprogramm für Sensor vorne rechts
 'If Pinb.1 = 0 Then Gosub Vornre                           

'Aufruf Unterprogramm für Sensor hinten links
 'If Pinb.2 = 0 Then Gosub Hintli                         

'Aufruf Unterprogramm für Sensor hinten rechts
 'If Pinb.3 = 0 Then Gosub Hintre                         



Loop


'Unterprogramm für Sensor vorne links

Sub Vornli


'rückwärts fahren
  
 Dim A As Integer

     A = 0
  Motre = 1                                       'Motor rechts rückwärts
  Motli = 1                                         'Motor links rückwärts
  Do

   Taktre = 1
   Taktli = 1

   Waitus 1000
   Taktre = 0
   Taktli = 0

   Waitus 1000
   A = A + 1

'Aufruf Unterprogramm für Sensor vorne rechts
     'If Pinb.1 = 0 Then Gosub Vornre                        
     
Aufruf Unterprogramm für Sensor hinten links
      'If Pinb.2 = 0 Then Gosub Hintli                       
     
 'Aufruf Unterprogramm für Sensor hinten rechts
     'If Pinb.3 = 0 Then Gosub Hintre                       
 

 Loop Until A > 500                             'Dauer der Rückwärtsbewegung


  'Rechtsdrehung 90°

  Dim B As Integer

      B = 0
  Motre = 1                                                 'drehung nach rechts
  Motli = 0

  Do

   Taktre = 1
   Taktli = 1

   Waitus 1000
   Taktre = 0
   Taktli = 0

   Waitus 1000

   B = B + 1

'Aufruf Unterprogramm für Sensor vorne rechts
     'If Pinb.1 = 0 Then Gosub Vornre                        
   
'Aufruf Unterprogramm für Sensor hinten links
     'If Pinb.2 = 0 Then Gosub Hintli                     
   
'Aufruf Unterprogramm für Sensor hinten rechts
    'If Pinb.3 = 0 Then Gosub Hintre                       

  Loop Until B > 500                                    'winkel (dauer) der drehung

End Sub

'hier läuft das programm nicht weiter d.h. der bot dreht sich immer lustig im kreis!!
'eigentlich war es von mir geplant dass er wieder in die hauptschleife springt und wieder geradeausfährt

vielen dank wenn ihr mir helft!!!

mfg Arndt