Zur erkennen ob das ein Bord-Spannung induzierte Reset ist wurde ich dich empfehlen die StatusLED(RED); Befehlen raus zu nehmen. Wann es dann noch Rot-Grün wechselt (Gelb leuchtet) dann ist das wirklich ein Hardware/Spannung Problem. Wann es nur Grün bleibt dann geht das Programm irgendwie merkwürdig. Nächste Schritt wurde ich sagen ist einer Art von Telemetrie Funktion hin zu fügen, das die Aktuelle Messwerten zum Rechner sendet. (Zum Beispiel die Bordspannung und Linie-werten in deinem Fall)
Außerdem ist mir noch etwas aufgefallen. Was aber wahrscheinlich nicht dein Problem verursacht. Den Ordnung der Befehlen zur Berechnung von ADOffset ist meines wissen nicht in eine Logische Folge. Du berechnet erst diese wert mit FrontLED aus, und danach schaltest du diese ein. Dann seit Linien-fahren mit FrontLED an berechnet er die Ist-wert i auf Basis der (Dunkle) ADOffset. Ist den Ist-wert mit FrontLED an immer noch 0 wann er nicht über eine Linie steht?
Code:
...
FrontLED(ON);
LineData(lineData);
ADOffset = lineData[LEFT] - lineData[RIGHT];
speedLeft = speedRight = SPEED;
// FrontLED(ON); //Nicht hier! Weil ADOffset auf Basis von leuchtende FronLED sein soll.
Lesezeichen