Hallo,

Weiss jemand warum mein Code nicht richtig funktioniert?

Asuro soll einer schwarzen Linie mit Ecken und Gabelungen folgen.
Beide Lichtsensoren sind bestenfalls ausserhalb der Linie.

Code:
#include <asuro.h>                                    
#include <stdbool.h>

//Prototyp
bool isBlack(int seite);

//Variable für Vergleichswerte der Lichtsensoren
unsigned int black [2];

unsigned int lineData [2];



int main(void) {
    Init ();
    FrontLED (ON);
    MotorDir(FWD,FWD);
    
    unsigned int speed [2];
    
    unsigned int i;
    //255 Messungen auf schwarzem Untergrund
    for (i = 0; i < 255; i++) {
        LineData(black);
    }
    
    GoTurn (30,  0, 150); // Zum Start der Linie fahren
    
    while (1) {
        speed[0] = 150;
        speed[1] = 150;
        
        //Solange nicht beide Sensoren auf der Linie sind, also auf keiner Gabelung...
        while (isBlack(0) == false && isBlack(1) == false) {
            MotorSpeed(speed[0], speed[1]);
            
            if (isBlack(0)) {
                speed[0] = 100;
                speed[1] = 200;    
            } else if (isBlack(1)) {
                speed[0] = 200;
                speed[1] = 100;    
            } else {
                speed[0] = 150;
                speed[1] = 150;
            }
        }
        
        //Bei einer Gabelung solange nach rechts drehen bis Asuro gerade auf dem rechten "Ast" steht
        if (isBlack(0) && isBlack(1)) {
            while (isBlack(0)){
                MotorSpeed(250, 0);
            } 
        }
    }

    return 0;
}


//Wenn Messung dunkler als Anfangsmessung + 10 als Toleranz
bool isBlack(int seite) {
    LineData(lineData);
    
    if (lineData[seite] < black[seite] + 10) {
        return true;
    } else {
        return false;
    }
}
}
Der Asuro fährt einfach immer gerade aus. Was ist das Problem?