voll am verzweifeln......
hier ma mein code..... aber asuro fährt zwar nur er macht fünf taster das gleiche und einer nur macht das was er wirklich machen soll!
Code:
#include "asuro.h"
/* Um eventuelle Unterschiede zwischen linken und rechtem Motor auszugleichen
* definieren wir 2 Werte für fullspeed links und rechts
*/
#define FULL_L 250 /* Fullspeed linker Motor */
#define FULL_R 250 /* Fullspeed rechter Motor */
/* Motor vorwärts */
void MotorFwd(void)
{
MotorDir(FWD,FWD);
MotorSpeed(150,150);
}
/* Motor rückwärts */
void MotorRwd(void)
{
MotorDir(RWD,RWD);
MotorSpeed(50,50);
}
/* Motor rückwärts links */
void MotorRwdL(void)
{
MotorDir(RWD,RWD);
MotorSpeed(175,100);
}
/* Motor rückwärts rechts */
void MotorRwdR(void)
{
MotorDir(RWD,RWD);
MotorSpeed(100, 175);
}
/* Motor stop */
void MotorStop(void)
{
MotorSpeed(0,0);
}
int main(void)
{
unsigned char t1, t2, t3, t4, t5, t6;
Init();
while(1)
{
t1 = PollSwitch();
t2 = PollSwitch();
t3 = PollSwitch();
t4 = PollSwitch();
t5 = PollSwitch();
t6 = PollSwitch();
if(t1 == 0 && t2 == 0 && t3 == 0 && t4 == 0 && t5 == 0 && t6 == 0) /* keine Taste gedrückt*/
{
MotorFwd(); /* vorwärts fahren */
FrontLED(ON);
BackLED(OFF,OFF);
}
else if (t1 && t2 && t1 == t2)
{
MotorStop();
if(t1 & 0x01) /* Taste 1 links gedrückt?*/
{+
MotorRwdL(); /* Rückwärtskurve links fahren */
FrontLED(OFF);
BackLED(ON,OFF);
}
if(t2 & 0x02) /* Taste 2 links gedrückt?)*/
{
MotorRwdL(); /* Rückwärtskurve links fahren */
FrontLED(OFF);
BackLED(ON,OFF);
}
if(t3 & 0x04) /* Taste 3 gedrückt?)*/
{
MotorRwdL(); /* Rückwärtskurve links fahren */
FrontLED(OFF);
BackLED(ON,OFF);
}
if (t4 & 0x08) /* Taste 4 rechts gedrückt? */
{
MotorRwdR(); /* Rückwärtskurve rechts fahren */
FrontLED(OFF);
BackLED(OFF,ON);
}
if (t5 & 0x16) /* Taste 5 rechts gedrückt? */
{
MotorRwdR(); /* Rückwärtskurve rechts fahren */
FrontLED(OFF);
BackLED(OFF,ON);
}
if (t6 & 0x32) /* Taste 6 rechts gedrückt? */
{
MotorRwdR(); /* Rückwärtskurve rechts fahren */
FrontLED(OFF);
BackLED(OFF,ON);
}
Msleep(750); /* zeit zum rückwärtsfahren egal ob links oder rechts Msleep(1000) = 1sekunde*/
}
}
return 0;
}
PLEASE HELP!