hi allerseits,
so weit klar. Ich habe jetzt stochris "kleines geheimnis" um das einlesen und auswerten der taster ergänzt (wird nocht nicht ausgewertet) und probeweise um ein paar defines ergänzt:
Code:
#include "asuro.h"  // bitte die neue Datei benutzen 
                    // asuro.h und asuro.c vom 31.03.05 

#define aus MotorDir(BREAK,BREAK) 
#define go {MotorSpeed(150,150);MotorDir(FWD,FWD);} 
#define back { MotorSpeed(150,150);MotorDir(RWD,RWD);Msleep(1000);}
#define backturn { MotorSpeed(150,250);MotorDir(RWD,RWD);Msleep(1000);} 
#define backleft { MotorSpeed(150,250);MotorDir(RWD,RWD);Msleep(1000);} 
#define backright { MotorSpeed(250,150);MotorDir(RWD,RWD);Msleep(1000);}
#define stop { MotorSpeed(0,0);}

/************************************************************************************* 

  ASURO discovers your apartment 

  program made by stochri july, 2005 

*************************************************************************************/ 

int speed() 
{ 
   int rightspeed,leftspeed; 
   int leftold,rightold; 

   Encoder_Set(0,0);      // reset encoder 


   leftold=encoder[LEFT]; 
   rightold=encoder[RIGHT]; 
   Msleep(300); 
   leftspeed=encoder[LEFT]-leftold; 
   rightspeed=encoder[RIGHT]-rightold; 

   //SerWrite("  speed Left,Right ",19); 
   //PrintInt(leftspeed); 
   //PrintInt(rightspeed); 
   return leftspeed+rightspeed; 
} 

int main(void) 
{ 
   int v,nullspeed, sw, sw0, sw1, sw2; 

   Init(); 
   Encoder_Init(); 
   StatusLED(OFF); 
   SerWrite("\n\rASURO OK\n\r",8); 

   go; 
   Msleep(500); 

   nullspeed=speed()-10; 

   while(1) 
   { 
	sw0=PollSwitch(); // Schalter einlesen und für eine Runde speichern
	sw1=PollSwitch();
	sw2=PollSwitch();
	if ((sw0==sw1) && (sw0==sw2)) sw=sw0; else sw=0;

      v=speed(); 
      SerWrite("\n\r speed ",9); 
      PrintInt(v); 

      if(v<nullspeed) 
      { 
        backturn;
		 go;
         Msleep(500); 
      } 

   } 
   return 0; 
}
wenn ich das programm starte, macht der asuro einen leichten rechtsbogen, beim "stochri pur" aber nicht. Wieso???