Hi bei experimentieren mit Funktionen habe ich folgendes gebastelt:
Code:
 #include "asuro.h"
 int i=0;

	void Wende_r(void)						//Funktion Wende rechts
		{MotorDir(RWD,RWD);
		MotorSpeed(100,200);
		for(i=0;i<200;i++){Sleep(255);}
		}
		
	void Wende_l(void)						// Funktion Wende links
		{MotorDir(RWD,RWD);
		MotorSpeed(200,100);
		for(i=0;i<200;i++){Sleep(255);}
		}
int main(void)
{
  

   Init(); 
   while(1)									 // Endlosschleife
   {
      StatusLED(RED);						// Status Rot
	  MotorDir(FWD,FWD);					// Fährt geradeaus
	  MotorSpeed(200,200);
       while((PollSwitch()>=2)&&(PollSwitch()<8)) // bei Kollisieon recht
      {
         StatusLED(GREEN);					// Status Grün
		 MotorDir(BREAK,BREAK);				// beide Motoren Stop
		 MotorSpeed(0,0);					// Geschwindigkeit 0
         for(i=1;i<300;i++) Sleep(255);	// kurze Pause
        Wende_l();							// oben definierte Funktion Wende links ausführen, und danach wieder geradeaus
		
      } 
	 
	  while((PollSwitch()>=8)&&(PollSwitch()<=32)) // bei Kollisieon links
      {
         StatusLED(YELLOW);					// Status gelb
		 MotorDir(BREAK,BREAK);				// beide Motoren Stop
		 MotorSpeed(0,0);					// Geschwindigkeit 0
         for(i=1;i<300;i++) Sleep(255);	// kurze Pause
        Wende_r();							// oben definierte Funktion Wende rechts ausführen, und danach wieder geradeaus
		
      } 
   }
   return 0; // wird nie erreicht
}
Mein ASURO spinnt aber bei diesem Programm. Mal fährt er geradeaus, und fängt plötzlich mit dem abarbeiten der Funktionen an, manchmal fährt er garnicht erst los, und macht gleich Quatsch.
Mit dem Tasterausleseprogramm bekomme ich korrekte Werte;1;2;4;8;16;32
Woran kanns liegen???