www.mikrocontroller.net

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


Autor: Colin Weiss (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Colin Weiss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, ihr habt mir sehr geholfen!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.