Hallo, ich brauche etwas Hilfe zur Syntax in C. Ich will auf dem UART die Temperatur vom Pool ausgeben. Ich schreibe, wie ich mir das vorstelle, das der Compiler das nicht akzeptiert. Ich denke es wird jeder sofort wissen, was ich brauche. volatile unsigned char H2O_wert = 98; volatile unsigned char Wasser[6] = {"H2O=", H2O_wert}; Wie schreibe ich das richtig? Dem UART wird dann das Array Wasser (oder Wasser[0] mit & in der Routine übergeben. Einfache Frage. Natürlich bei google schon geguckt, aber die Beispiele sind eher nicht passend. Danke
Hi, Strings werden in C mit '0' terminiert, das heißt dein Beispielstring ist: "H2O=", das Zeichen nach der 0 (Dein Messwert) gehört dann nicht mehr zum String. Du kannst Strings auch nicht mit einem '=' kopieren. Ich würde mal schauen, welche von den Stringfunktionen Du in deiner Bibliothek hast. Irgendetwas wie Strcpy oder so, bin da selbst momentan nicht so fit drin. Einziger Hack der mir gerade einfallen würde, wäre, das ganze Zeichenweise zu setzen, also: Wasser[0] = 'H'; ... Wasser[4]=messwert; Wasser[5]=0;
:
Bearbeitet durch User
Henrik P. schrieb: > Wasser[4]=messwert; HALLO !!! STRING!!! Der Messwert wird als ASCII interpretiert werden! ... die einfache Art, lies die Besc hreibung zu "sprintf".
Ich probiere es noch mal, wenn ich darf :) Aktuell ist das beispielsweise so: > char Wasser[16]={"Wasser:"}; > char Wasser_wert[16]={"11°C"}; > Senden(&Wasser, &Arial_10x16, 0xF800); > Senden(&Wasser_wert, &Arial_10x16, 0xF800); hier ist natürlich die Temperatur zum Test als ASCII drin. Ausgegeben wird: "Wasser: 11°C". Das Funktioniert, aber natürlich ohne echte Wassertemperatur. Ich möchte es aber so: Wasser_wert = Ausgerechneter_wert; //kommt vom ADC ACSII (Wasser=) und der Wert sollen in einer Variable drin sein. So dass ich das etwa so ausgeben kann: Senden(&Wasser, &Arial_10x16, 0xF800); Hoffe, ich habe mich verständlich ausgedrückt.
Mike schrieb: >> char Wasser[16]={"Wasser:"}; >> char Wasser_wert[16]={"11°C"}; const char Wasser1[]={"Wasser:"}; const char Wasser2[]={"°C"}; char Wasser_wert[12]; itoa(messwert, Wasser_wert, 10); Und das ganze in der Reihenfolge Ausgaben: Wasser1 Wasser_wert Wasser2
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.