Die rote zeilen machen nicht was du wunscht, denke ich.

[Edit: doch das machen sie, ich habe mir geirrt die prioritat ist richtig... bitte vergesse diesen post]


while(counter[0]<40) //!//SOLANGE DURCHFÜHREN,BIS COUNTER 40 IMPULSE
{ //!// 40 IMPULSE ANALOG 1REIFENUMDREHUNG ERREICHT HAT
OdometrieData(odata); //!//ODOMETRIEWERTE EINLESEN

if(status[0]==LOW&&odata[0]>SCHWELLENWERT+HYSTERSIS)
//!//HAT WECHSEL DER GEBERSCHEIBENFARBE
{ //!//VON SCHWARZ AUF WEIß STATTGEFUNDEN ???
counter[0]++;
MotorDir(RWD,RWD);
MotorSpeed(150,150);
} //!//WECHSEL?-ANWEISUNG SCHLIEßEN

if(status[0]==HIGH&&odata[0]<SCHWELLENWERT-HYSTERSIS)
//!//HAT WECHSEL DER GEBERSCHEIBENFARBE
{ //!//VON WEIß AUF SCHWARZ STATTGEFUNDEN ???
counter[0]++; //!//ZÄHLER EINEN IMPULS HOCHSETZEN
MotorDir(RWD,RWD);
MotorSpeed(150,150);
} //!//WECHSEL?-ANWEISUNG SCHLIEßEN
} //!//counter-anweisung geschlossen, wenn counter<40 ist,
Meinst du vieleicht:

Code:
if(status[0]== (LOW && (odata[0]> (SCHWELLENWERT+HYSTERSIS) ) ) )
Die "relational operator" (<> => =<) hat höhere priorität uber die logische AND, OR operator ( && || ). Und die gleichungs operator (==) hat höhere priorität uber logische AND.