Ja, Klasse, es wird.
Mit der Länge der Variablen:
-- int anzahldercodescheibensegmente_umfang = 1; //Breite eines Segmentes
solltes du vorsichtig sein.
Einige Compiler vertragen nur maximale Längen bei Namen. Dann kann es passieren, dass 2 Variablen mit so langen Namen nicht mehr unterschieden werden wenn sie sich nur hinten unterscheiden.
Wir hatten diese Problem mal bei einem Kunden, natürlich hektische Inbetriebname, und haben ein paar Stunden benötigt um den Fehler zu finden. Und der Compiler spuckte nur warnings aus, die man nicht beachtete. Selber Schuld also.
Zu deinem Programm:
Ich bekommen nach dem Übersetzten konstant 11 KByte (11.014) Hex-Datei mit immer 62 Blöcken zum Asuro.
Allerdings werden nur die Zeilen
- SerPrint("\t Telemetriedaten\n\r\n\r");
- SerPrint("\tVorwärts\n\r\n\r");
status-LED red
back-LED off
front-LED on
ausgeführt. Kein Motor läuft, und keine Daten werden gesendet.
Bei der Zeile
--- for (speed=80;speed>245;speed +=10)
steckt der Fehlerteufel
Nicht >, sondern < soll es heissen.
Nun ist das Programm mit 13 KByte (12.462 Byte) und 70 Blöcken zum Asuro ja noch gut handelbar.
Es werden nun Daten zum PC gesendet:
-- Rechtes Rad 0.00 cm 0.00 cm/s2.00 cm/s² - Linkes Rad 0.00 cm 0.00 cm/s 2.00 cm/s
Der Inhalt sieht mir noch nicht OK aus. Aber eins nach dem anderen. Da bist du ja der Rechenchef.
Gruß Sternthaler
Lesezeichen