Wenn du es einigermaßen genau haben möchtest, wirst du um die Odometrie wohl nicht herumkommen.
Zum einlesen von Zahlen musst du deren ASCII-Darstellung (also den String) nach int (etc.) wandeln. Bspw. könntest du die einzelnen Bytes in ein Array einlesen bis du einen Zeilenumbruch bekommst, danach hängst du eine 0 an und steckst den Zeiger auf das Array in die Funktion atoi(char*). Schon hast du dein Int![]()
Wenn du noch ein wenig Fehlerüberprüfung machen willst, kannst du die Funktion auch selbst schreiben - die Ansätze dazu hast du in deinem Code oben ja schon:
Code da oben ist ohne Gewähr, aber ich denke man sieht ungefähr, wie es funktionieren sollte ...Code:int iVal = 0; char c; int count=0; const int MAX_COUNT = 6; char multiplier = 1; for (SerRead(&c,1,0); ((c >= '0') && (c <= '9')) || (c=='-'); //nur Zahlen und Minus SerRead(&c,1,0)) { count++; if ( count > MAX_COUNT ) break; //Zu viele Zeichen else if ( c=='-' ) { if (count == 1) multiplier = -1; else break; // Minus an der falschen Position else { iVal *= 10; iVal += c-'0'; } } iVal *= multiplier; //evtl. Vorzeichen beachten //iVal enthält jetzt ein signed intWenn man will, kann man noch auf Überlauf prüfen und vorne bspw. ein Plus-Zeichen zulassen etc.pp.







Zitieren

Lesezeichen