so hab mich jetz endlich mal am sonntag morgen in ner freien stunde hingesetzt und das interruptzeugs mal durchgeackert. so sieht der quellcode jetz aus.

aktuelle funktion: fährt wo rein und dreit dann rechts zurück.

#include "asuro.h"

#define FULL_L 240
#define FULL_R 220



void Fahren(void) /* Vorwärts fahren */
{
StatusLED(GREEN);
BackLED(OFF,OFF);
MotorDir(FWD,FWD);
MotorSpeed(FULL_L,FULL_R);

}


void Zurueck(void) /* Zurück fahren */
{
StatusLED(YELLOW);
BackLED(ON,ON);
MotorDir(RWD,RWD);
MotorSpeed(FULL_L,FULL_R);
}


void KurveLR(void) /* Kurve rückwärts Links */
{
StatusLED(YELLOW);
BackLED(ON,OFF);
MotorDir(RWD,RWD);
MotorSpeed(FULL_L,0);
}


void KurveRR(void) /* Kurve rückwärts Rechts */
{
StatusLED(YELLOW);
BackLED(OFF,ON);
MotorDir(RWD,RWD);
MotorSpeed(0, FULL_R);
}


void Anhalten(void) /* Anhalten */
{
StatusLED(RED);
BackLED(OFF,OFF);
MotorSpeed(0,0);
}



int main (void)
{
Init ();
switched = 0;
StartSwitch ();
while (1)
{
if (switched == 1)
{
Anhalten();
Msleep(250);

Zurueck();
Msleep(250);

Anhalten();
Msleep(250);

KurveRR();
Msleep(1000);

Anhalten();
Msleep(250);

switched = 0;
StartSwitch ();
}

else

Fahren();
}

return 0;

}

sodele. soweit so gut - habs noch nicht testen können - asuro is in der schule und ned bei mir zuhause, aber weiter im text!

folgendes problem: wie kann asuro entscheiden ob er zum ersten mal wo reingefahren ist oder ob er unmittelbar zuvor schon eine kollision hatte?

das ziel ist, dass falls es das erste mal war, dass er die 90° zurück macht standardmässig. falls es das zweite mal ist soll er eine 180° drehung machen.

ich bitte um ziemlich ausführliche erklärungen :S bin noch absoluter noob was C angeht.

danke schon im voraus

lg sebastian