PDA

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);

EDH
24.11.2006, 14:42
du kannst die funktion PrintInt() hernehmen, die will einen integer als parameter

Osser
24.11.2006, 14:45
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???

EDH
24.11.2006, 15:25
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

Downad
28.11.2006, 20:59
ich hab noch folgende includes für die STRING-Funktionen

#include <stdlib.h>
#include <string.h>

EDH
28.11.2006, 21:12
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?

Downad
29.11.2006, 14:39
stimmt du hast recht die <stdlib.h> ist unnötig