Die Antwort hast Du Dir schon selber gegebenwahrschienlich muss man den int-wert in ascii umrechnen. Wie mache ich das?
inttoascii also itoa
Gruß Sebastian
Hi,
wie gebe ich integer Werte aus? Ich wollte mit den Odometriedaten spielen und dazu die Werte mir ausgeben lassen:
Es kommen nur seltsame Zeichen, wahrschienlich muss man den int-wert in ascii umrechnen. Wie mache ich das?Code:#include <asuro.h> int main(void) { unsigned int data[2]; Init(); MotorDir(FWD, FWD); MotorSpeed(120,120); StatusLED(GREEN); do { OdometrieData(data); SerWrite(data[0], sizeof(data[0])); } while(1); while(1); return 0; }
Grüße
Alex
Die Antwort hast Du Dir schon selber gegebenwahrschienlich muss man den int-wert in ascii umrechnen. Wie mache ich das?
inttoascii also itoa
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Ich habe sowas immer mir Strings gemacht.
Die Werte werden mittels sprintf() als in ein char umgeschrieben. Diesen Wert musst du dann halt nur noch statt den Textin die SerWrite Funktion einsetzten.
Dazu benötigst du aber noch eine andere Libary (Hab gerade vergessen wie die heißt)
Ich erinner mich aber, dass aus solchen Gründen, diese Methode auf Widerstand stößt. Auch hier im Forum.
Gruß Roboaktiv
It is öde to be blöde
stdio.h heißt sieDazu benötigst du aber noch eine andere Libary (Hab gerade vergessen wie die heißt)
itoa braucht stdlib.h
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
mach folgendes:
dein int wert ist in der variable "wert" gespeichert. mach folgendes:
das sollte wohl helfen.Code:unsigned char text[6]; itoa(wert,text,10); SerWrite(text,6);
@damaltor: Es muss
heißen, da die Funktion itoa einen nullterminierten String erzeugt. Der größtmögliche int + ein Minuszeichen + ein Terminatorzeichen sind eben 7 Zeichen. Bei SerWrite reicht dann die 6, da man das Terminatorzeichen nicht mitsenden muss.Code:unsigned char text[7]; itoa(wert,text,10); SerWrite(text,6);
Gruß farratt
da hast du wohl recht... ich hab etwas zu sehr gespart =)
Lesezeichen