Array konfigurieren und benutzen

Gast #3524334
Lesenswert?
• ▲
▼
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
#3524385
Lesenswert?
• ▲
▼
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;
Gast #3524450
Lesenswert?
• ▲
▼
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.
Gast #3524495
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.