Hallo Leute,

ich möchte ein Linienverfolgungsprogramm mit einem Kollisionsprogramm verbinden aber leider habe ich noch große Probleme beide mit einander zu verbinen.
Ich hoffe es kann mir jemand weiterhelfen.

Hier die beiden Teilprogramme.

Kollisionsprogramm:

#include "asuro.h"

int main(void){
unsigned int i;
Init();

while(1){


while(PollSwitch()==0)
{StatusLED(GREEN);
MotorDir(FWD,FWD);
MotorSpeed(120,120);} //fahre vorwärts


if(PollSwitch()!=0) // bis Schalter gedrückt wird
{StatusLED(RED); // Rote Lampe an

MotorDir(RWD,RWD); //Rückwärtsgang mit 120
MotorSpeed(120,120);
for (i=0;i<280;i++){Sleep(255);} //für 1 Sek zurückfahren
MotorSpeed(0,0); // Motoren stoppen
MotorDir(FWD,FWD); // Und Drehung einleiten für 1 Sek
MotorSpeed (0,120);
for (i=0;i<280;i++){Sleep(255);}
MotorSpeed(0,0);
}
}
return 0;
}

Linienverfolgung:

#include "asuro.h"

int main(void)
{
Init();

while(1)
{
int line_data[2];
LineData(line_data); // line_date[0]: linker Sensor, [1]: rechter Sensor
// schwarzer Untergrund: kleine Werte; heller Hintergrund: große Werte

FrontLED(ON); // liefert bessere bzw. konstrastreichere Werte
int limit = 45; // Dieser Vergleichswert ist an die Lichtverhältnisse anzupassen
int speed = 120;
int debug_mode = 0; // 0: aus; 1: an, ASURO sendet die Werte der Sensoren zurück

while (line_data[1] > limit)
{
if (debug_mode)
{
SerWrite("rechts\r\n", 8 );
PrintInt(line_data[1]);
SerWrite("\r\n", 2);
}
BackLED(OFF, ON);
MotorSpeed(0, speed);
LineData(line_data);
}

while (line_data[0] > limit)
{
if (debug_mode)
{
SerWrite("links\r\n", 7);
PrintInt(line_data[0]);
SerWrite("\r\n", 2);
}
BackLED(ON, OFF);
MotorSpeed(speed, 0);
LineData(line_data);
}
MotorDir(FWD, FWD);
MotorSpeed(speed, speed);
}

return 0;
}