probier mal
SerWrite("abcde",5);
Hab n kleines Problem mit SerWrite
Hier ein kleiner Ausschnitt
und dann kommt:Code:w=(char)a; SerWrite(w,10);
test.c:21: warning: passing arg 1 of `SerWrite' makes pointer from integer without a cast
und er kann des dann auch nicht schreiben. Hat wer ne Ahnung, wie ich des hinkrieg?
probier mal
SerWrite("abcde",5);
SRT noch was
w muss als char oder unsigned char deklariert sein
alternativ als array
char w[1];
der ausdruck
w = (char)a; wirkt so nicht ... um das ascii zeichen a zu erhalten musst du 'a' schreiben. (shift+"#" fürs einfache hochkomma)
und serwrite erwartet einen pointer auf ein char array ... wenn du nur eine variable hast musst du ihre adresse übergeben, also
serwrite(&a,1); & löst hier die adresse der varuiable a auf
bei einem array ist der bezeichner OHNE eckige klammer schon ein pointer auf den anfang also
char WA[1]; // bei der deklaration gibt die ziffer die anzahl der felder im array an
WA[0] = 'a'; // beim zugriff aufs array IMMER darauf achten das du mit dem index arbeitest und der beginnt bei 0 und hört bei (länge - 1) auf
serwrite(WA,1);
ansonsten
char w = 'a';
serwrite(&w,1);
thx für schnelle und kompetente Hilfe
\/ \/ \/ \/ \/ \/ \/ \/
Edit: zu früh gefreut : wenn a ein gemessener (integer) Wert sein soll,
Kommt der FehlerCode:char w[1]; int a; //a messen... w[0]=a; SerWrite(w[0],10);
test.c:19: warning: passing arg 1 of `SerWrite' makes pointer from integer without a cast
du musst den wert erst in zeichen umwandeln etwa so:
Code:char w[10]; int a; //a messen... itoa(a, w, 10); SerWrite(w,10);
Lieber am Asuro rumschrauben als alles andere.
Meine Homepage
da tut sich nur ein kleines Problem auf: Die Funktion itoa() gibt es scheinbar nicht
Code:test.c:18: warning: implicit declaration of function `itoa'
du must noch folgendes include reinschreiben:
mfg liggiCode:#include <stdlib.h>
Lieber am Asuro rumschrauben als alles andere.
Meine Homepage
jetzt kennt des Programm zwar itoa(), aber es kommen jetzt 2 andere fehler:
warning: passing arg 2 of `itoa' makes pointer from integer without a cast
warning: assignment makes integer from pointer without a cast
Hier das dazugehörige Programm:
Code:#include "asuro.h" #include "stdlib.h" int i,a; char w; unsigned int taster; int main(void){ Init(); while(1){ taster=PollSwitch(); if (taster!=0){ a=1; //wird später durch Messwert ersetzt w=itoa(a,w,2); SerWrite(&w,1); } }}
w muss ein char ARRAY sein ... strings also zeichenketten werden immer als arrays von char angelegt die auf eine NULL also binär null nicht ascii enden
mach auch char w; einfach char w[6]; maxwert von int ist 65000 das sind 5 zeichen + die abschliessende null
und im serwrite nicht vergessen das & vorn wieder wegzumachen, denn bei einem array ist der bezeichner selbst ein zeiger
und das dritte Parameter von itoa gibt nicht die Länge, sondern die Basis an, zum beispeil 10 für Dezimalsystem oder 16 für Hexsystem.
mfg liggi
Lieber am Asuro rumschrauben als alles andere.
Meine Homepage
Lesezeichen