So ich hab es jetzt nach langem probieren hin bekommen. Mein Programm sieht jetzt so aus:
Code:
#include "asuro.h"

int main (void) 
{ 
Init(); 
int p; 
while(1){ 
MotorDir(FWD,FWD); 
MotorSpeed(125,125); 
if(PollSwitch()>0) //wenn ich hier 1 eingebe tritt der Fehler 
{                        //trotzdem ab und an auf!
MotorDir(RWD,RWD); 
MotorSpeed(125,125); 
for(p=0;p<300;p++) 
{Sleep(72);} 

MotorDir(BREAK,RWD); 
MotorSpeed(0,125); 
for(p=0;p<1000;p++) 
{Sleep(72);} 
}  
} 
while(1){} 
return 0; 
}
Allerdings Funktioniert es nicht so wie ich es mir Vorgestellt habe. Denn wenn ich PollSwitch()>0 Eingebe macht das Programm was es will und wenn ich >1 Eingebe Funktioniert es ganz gut, aber ich nehme ja den rechten Kollisionsschalter aus dem rennen da ich ja größer 1 vorgebe und ab und zu während des gerade ausfahren verhält sich das Programm so wie während einer Kollision.
Woran kann es liegen? Und wie oder was muss ich evtl. verändern damit ich PollSwitch()>0 Einstellen kann und es so einwandfrei Funktioniert das der ASURO wirklich nur während einer Kollission mit irgend einem der Schalter das restliche Programm ausführt und nicht wann er will