Forum: Mikrocontroller und Digitale Elektronik Variablen mit CodeVision auf LCD ausgeben


von Colin Weiss (Gast)


Lesenswert?

Hallo, allerseits.

Ich hab hier ein Problem mit CodeVision, welches wahrscheinlich trivial
ist.

Ich versuche, eine Variable (im Moment ein unsigned char) auszugeben,
jedoch klappt das irgentwie nicht...

Zum debuggen will ich an einer Stelle des LCD-Displays den aktuellen
State angezeigt bekommen, was mir leider immer mit einer Fehlermeldung
verweigert wird.



// Declare your global variables here

//state Machine Statusflags
unsigned char state = 0;
unsigned char sub_state;
unsigned char substate = 1;
unsigned char old_substate;

<hier steht noch diverses anderes>

while (1)

<hier steht noch viel mehr anderes>

lcd_gotoxy(0,18);
lcd_puts(substate);


Die Zeile "lcd_puts(substate);" mag der Compiler gar nicht. Er
schreibt "parameter #1 of type 'unsigned char' is incompatible with
type 'unsigned char *' specified in the function 'lcd_puts'
declaration."

Leider finde ich die Hilfe vom CodeVision Compiler da nicht sonderlich
hilfreich. Hat da jemand reinzufällig eine Idee was da los ist?

Vielen Dank im Voraus,
schönen Sonntag noch,

Colin

von Hubert.G (Gast)


Lesenswert?

lcd_puts(substate);
Diese Funktion erwartet einen Zeiger auf einen String.
Wie ich aus der Variablendeklaration lese ist der von dir Übergebene
substate jedoch ein einzelnes Zeichen.
Für die Ausgabe eines einzelnen Zeichens ist die Funktion lcd_putc
geeignet.

Wenn du einen String ausgeben möchtest sollte es so aussehen:
unsigned char text []= "hallo welt";
lcd_puts(text);

Hubert

von Thorsten (Gast)


Lesenswert?

Der Compiler sagt Dir doch recht deutlich, was nicht stimmt. Du
übergibst ein "unsigned char", die Funktion lcd_puts() erwartet
jedoch einen Zeiger auf ein "unsigned char". Entweder Du verwendest
lcd_putc() statt lcd_puts, falls vorhanden oder Du musst eine mit 0
terminierte Zeichenkette an lcd_puts() übergeben.

von Colin Weiss (Gast)


Lesenswert?

Vielen Dank, ihr habt mir sehr geholfen!

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
Noch kein Account? Hier anmelden.