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:
noch etwas: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 }
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