Deine MSleep Pausen sind ziemlich langweilig (5 Sekunden). Dann wird es schwierig zu bemerken wann genau er die Taschenlampe erkennt hat. Er könnte einfach schneller als dich sein und deine Taschenlampe nicht auf das richtige Moment im Visier haben.
Auserdem wurde ich die BackLEDs als Zustand-ausgaben verwenden. Ein BackLED sollte nur an gehen wann die STOP-kondition an diesen Seite bemerkt ist. Nun geht es am Anfang der Auseren While-schleife bei beiden an. Und gerade am Ende wieder aus. Wo es ziemlich gleichzeitig wieder angeschalted wirt. (MotorDir und MotorSpeed dauern nur ein wenig fur den Asuro Prozessor.)
Ich vermutte es geht schief in den Do-While Schleife. Dort steht:
Ich vermute die do-schleife ist mit diesen letzte Punkt-Komma zu ende gekommen. Die While-Zeile danach funktioniert wie ein Endloss-Schleife, aber ohne erneute LineData() Funktion anrufen. Es ist nur im Endloss-lauf wann die STOP werten bei den beiden Sensoren erreicht sind. Muss dass unbedingt in einer UND-vergleichung stehen? Oder wurde ein ODER-vergleichung auch stimmen? Weil das Letzte öfter passieren wird. Setzte die Befehlen zwischen do und While zwischen {} Klammern. Dann ist das Punkt-Komma Problem erledigt.Code:do LineData(lineData);
Zu letzte: Ist diesen STOP-wert erhöhung von 60 auch realistisch? Erkennt Asuro die Taschen Lampe auch wann er kein Motor-Befehlen bekommt? Also nicht fahrt.
Lesezeichen