Hallo,
Entschuldigung für den sinnlosen Post!!
Ich habe ein bisschen an switch rumprobiert, aber bei
if (t1 == t2 == t3) switch (t1){
dreht er sich wie wild mal in die eine, mal in die andere Richtung, er meint dauernd dass er irgendwo anstösst!
bei
if ((t1 =! 0) && (t2 =! 0) && (t3 =! 0)) switch (t1){
meint er, dass er immer an der gleichen Stelle anstößt, und macht so einen Kreis nach rückwärts rechts!
Ich weiß nicht, was ich diesmal falschgemacht hab, oder ob ich nur einen dummen Syntaxfehler gemacht hab!

so sieht das Programm im Moment aus:
Code:
#include "asuro.h"

//Metoden
void TurnR (void);
void TurnL (void);

int main(void)
{
	//Inizialisieren
	Init();
	//Variablen
	unsigned char t1 = 0;
	unsigned char t2 = 0;
	unsigned char t3 = 0;
	// losfahren
	MotorDir(FWD, FWD);
	MotorSpeed(200, 200);
	//endlosschleife
	while(1)
	{
	  //tastenabfrage
	  t1 = PollSwitch();
	  Sleep(10);
	  t2 = PollSwitch();
	  Sleep(10);
	  t3 = PollSwitch();
	  //tastenauswertung
	  if ((t1 =! 0) && (t2 =! 0) && (t3 =! 0)) switch (t1){
	    case 32: TurnR(); break;
	    case 16: TurnR(); break;
	    case  8: TurnR(); break;
	    case  4: TurnL(); break;
	    case  2: TurnL(); break;
	    case  1: TurnL(); break;
	    case  0: MotorDir(FWD, FWD); break;
	  };
	};
	//wegen int:
	return(0);
};

void TurnR (void)
{
  //variablen
  int i=0;
  //stueck zurueck
  MotorDir(RWD,RWD);
  for (i=0;i<50;i++)
    {Sleep(255);}
  //drehen
  MotorDir(FWD, RWD);
  for (i=0;i<50;i++)
    {Sleep(255);}
  BackLED(OFF,ON);
};

void TurnL (void)
{
  //variablen
  int i=0;
  //stueck zurueck
  MotorDir(RWD,RWD);
  for (i=0;i<50;i++)
    {Sleep(255);}
  //drehen
  MotorDir(RWD, FWD);
  for (i=0;i<50;i++)
	{Sleep(255);}
  BackLED(ON,OFF);
};
mfg Chrissi