Hallo Touby_van,
in deiner Funktion linien_verfolgen() benutzt du innerhalb der dortigen while()-Schleife den Befehl SerRead() im blokierenden Mode. (Der letzte Parameter ist eine 0) Das bedeutet, dass immer erst 3 Zeichen empfangen werden müssen, bevor die Schleife, und damit die aufzurufenden LineData()- / Odometrie_zaehler()-Funktion überhaupt einmal zum Arbeiten kommen.
BTW: Du solltes auch auf das Senden mit "SerWrite ("falsch", 6);" verzichten, da dies sehr viel Zeit (6*ca.4ms) in Anspruch nimmt in der du die Sensoren nicht bearbeitest. Da wirst du wahrscheinlich dann sehr viele schwarz/weiss-Wechsel an der Odometrie nicht mitbekommen.
Ich vermute, dass der Asuro sich keinen Millimeter von der Stelle bewegt.
Gruß Sternthaler
@damaltor
Ich muss es einfach noch mal erwähnen: Deine Fußzeilen (nicht nur die) sind immer wieder gut.![]()
Lesezeichen