Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausgabe von int Werten
Hi,
wie gebe ich integer Werte aus? Ich wollte mit den Odometriedaten spielen und dazu die Werte mir ausgeben lassen:
#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;
}
Es kommen nur seltsame Zeichen, wahrschienlich muss man den int-wert in ascii umrechnen. Wie mache ich das?
Grüße
Alex
wahrschienlich muss man den int-wert in ascii umrechnen. Wie mache ich das?
Die Antwort hast Du Dir schon selber gegeben
inttoascii also itoa
Gruß Sebastian
Roboaktiv
15.09.2007, 17:27
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.
Dazu benötigst du aber noch eine andere Libary (Hab gerade vergessen wie die heißt)
stdio.h heißt sie
itoa braucht stdlib.h
Gruß Sebastian
damaltor
16.09.2007, 16:57
mach folgendes:
dein int wert ist in der variable "wert" gespeichert. mach folgendes:
unsigned char text[6];
itoa(wert,text,10);
SerWrite(text,6);
das sollte wohl helfen.
@damaltor: Es muss
unsigned char text[7];
itoa(wert,text,10);
SerWrite(text,6);
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.
Gruß farratt
damaltor
17.09.2007, 14:18
da hast du wohl recht... ich hab etwas zu sehr gespart =)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.