Hallo Wsk8,
der ungleich-operator war das Problem!
Es bedurfte nur noch einer kleinen änderung an den Turn() Methoden, da in switch bei einer abfrage auf != 0 ein case 0: natürlich unsinnig ist!
So funktioniert es:
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) && (t1 = t2 = t3)) 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;
};
};
//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);
MotorDir(FWD,FWD);
};
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);
MotorDir(FWD,FWD);
};
mfg Chrissi
Lesezeichen