hallo *C-3PO*
ich habe mir gerade dein programm durchgelesen und mir ist folgendes aufgefallen:
du fragst zwei mal in einer if den wert von status ab, ich habe aber nichts gesehen wo du diesen änderst
wenn ich dein programm richtig interpretiert habe müsstest du doch diesen wert in den beiden if-schleifen ändern:
Code:
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);
status[0]=HIGH; //hier das 1. mal
} //!//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);
status[0]=LOW; //und hier das 2. mal
}
noch etwas:
so viel ich gesehen habe hast du status als array mit 2 elementen definiert, verwendest aber nur eins. dh. du könntes speicherplatz sparen (hat aber auf das programm keinen einfluss)
ich hoffe, dass dier das weiter hilft
Lesezeichen