Archiv verlassen und diese Seite im Standarddesign anzeigen : SERWRITE-Funktion
Robotik84
24.11.2006, 14:37
Servus leutz,
also i habe mal eine dringende frage:
beim asuro lasse i einen zähler hochlaufen der jeden schwarz weiss wechsel zählt und denn möcht i auf mein pc anzeigen lassen.
zur zeit zeigt er mir nur immer nullen an. weiss aber net warum.
frage: serwrite erwartet ein unsigned char und mein zähler is als unsigned int deklariert - habe au schon einen typecast probiert aber geht net.
wie kann i denn nu z.B. wenn der zähler bis 2000 gezählt hat au diese auf meinen pc anzeigen???
bitte um hilfe ...
der_andi
24.11.2006, 14:41
char stellt nur einzelne Zeichen dar, um aus einem Int-wert zeichen zu machen muss man ihn in seine Stellen zerlegen.
Vor ner weile hab ich damit einfach die Werte ausgegeben die die sch... Odometrie-Sensoren zurückliefern, sah bei mir dann so aus:
funktioniert so mit der standart-asuro.h/c
char data[2]; //Datenfeld fürs Odometrie-dingens
char ausgabe[14]; //string zur Ausgabe
char T, H, Z, E, eingabe; //Tausender, Hunderter, Zehner, Einer
FrontLED(ON); //Licht
LineData(data); //dürfte klar sein
//Linke Seite
eingabe = data[0];
T = eingabe / 1000;
eingabe = eingabe - (T * 1000);
H = eingabe / 100;
eingabe = eingabe - (H * 100);
Z = eingabe / 10;
eingabe = eingabe - (Z * 10);
E = eingabe;
ausgabe[0] = T + 48;
ausgabe[1] = H + 48;
ausgabe[2] = Z + 48;
ausgabe[3] = E + 48;
ausgabe[4] = ',';
ausgabe[5] = ' ';
//Rechte Seite
eingabe = data[1];
T = eingabe / 1000;
eingabe = eingabe - (T * 1000);
H = eingabe / 100;
eingabe = eingabe - (H * 100);
Z = eingabe / 10;
eingabe = eingabe - (Z * 10);
E = eingabe;
ausgabe[6] = T + 48;
ausgabe[7] = H + 48;
ausgabe[8] = Z + 48;
ausgabe[9] = E + 48;
ausgabe[10] = '\n';
ausgabe[11] = '\r';
ausgabe[12] = '\n';
ausgabe[13] = '\r';
SerWrite(ausgabe, 14);
du kannst die funktion PrintInt() hernehmen, die will einen integer als parameter
Hi Robotik84,
ohne Source-Code kann ich nicht sehn was falsch sein könnte...
Post bitte mal deinen Code.
Doan moooch mer deees scho, goi.
O.
Robotik84
24.11.2006, 15:14
wenn i die PrintInt funktion nutzt, dann sagt der mir als Warnung "implicit declaration of function 'strlen' ... was bedeutet das???
mhh, also ich würde sagen, dass das eigentlcih ja nicht weiter stört
bei der neuen lib gibt es halt dessöfteren warnings.
auserdem:
letzlich hat m.a.r.v.i.n daruafhingewiesen, dass es mit der funkiton PrintInt() prbleme beim flashen geben kann. du solltest vieleicht ein update der lib runterladen.
Robotik84
24.11.2006, 17:02
kk hab die ignoriert und es läuft super mit der PrintInt ... vielen Dank EDH
ich hab noch folgende includes für die STRING-Funktionen
#include <stdlib.h>
#include <string.h>
da müsste es doch auch warnings geben!?
die stdlib..h wird in der in der asuro.h inkludiert und die string.h wird in der asuro.c?
wieso brauchst du eigentlioch die stdlib? strlen() ist in der string.h?
stimmt du hast recht die <stdlib.h> ist unnötig
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.