Hallo Thund3r,

ich habe ein Kollisions und Linienprogramm seperat erstellt.
Diese beiden möchte ich nun zusammen bringen.

Hier der Quellcode.


unsigned int data[2];
unsigned char t, t1, t2;
int i;

int main (void)
{
Init();
do
{
MotorFwd();
FrontLED(ON);
BackLED(OFF,OFF);
StatusLED(GREEN);

while (1)
{
t1 = PollSwitch();
t2 = PollSwitch();

LineData(data);

if (t1 == 0 && t2 == 0)
{
if ((data [0] > 50) || (data [1] > 50 ))
{
if ((data [0] < 32) && (data [1] > 32 ))
{
MotorDir(RWD,FWD);
MotorSpeed(0,160);
BackLED(OFF,ON);
StatusLED(RED);
}
if ((data [1] < 32) && (data [0] > 32 ))
{
MotorDir(FWD,RWD);
MotorSpeed(160,0);
BackLED(ON,OFF);
StatusLED(RED);
}
if ((data [1] < 32) && (data [0] < 32 ))
{
MotorFwd();
BackLED(ON,ON);
StatusLED(GREEN);
}
}
else
MotorFwd();
BackLED(ON,ON);
StatusLED(GREEN);
}
else
while(1)
{
t = PollSwitch();
t1 = PollSwitch();
t2 = PollSwitch();
if(t==0 || t1==0 || t2==0)
{
MotorFwd(); FrontLED(ON);
BackLED(OFF,OFF);
}
else
{
if (t && t1 && (t == t1) && (t1 == t2) && (t == t2))
{
MotorStop();
if (t1 & 0x07)
{
MotorRwd();
BackLED(ON,ON);
StatusLED(RED);
for (i=0;i<400;i++){Sleep(255);}
MotorRwdL();
BackLED(ON,OFF);
StatusLED(RED);
for (i=0;i<100;i++){Sleep(255);}
}
if (t2 & 0x3
{
MotorRwd();
BackLED(ON,ON);
StatusLED(RED);
for (i=0;i<400;i++)
{Sleep(255);}
MotorRwdR();
BackLED(OFF,ON);
StatusLED(RED);
for (i=0;i<100;i++)
{Sleep(255);}
}
}
}
break;
}
}
}
while ((data [0] > 50) && (data [1] > 50 ));
for (i=0;i<100;i++){Sleep(255);}
return 0;
}


Gruß Hamlet83