int- und char- Werte im Display ausgeben

Gast #284919
Lesenswert?

Hallo!

Ich bin mir sicher, ihr könnt mir helfen. Ich möchte auf meinem Display
z.B: zum Bugfixing Zahlen-Werte aus einer AD-Wandlung sowie
Zeichenfolgen, empfangen von UART ausgeben.

Ein Beispiel zu letzterem:

char buffer;
if (rbuffcnt) {
  buffer = ser_getc(); //Empfängt ein Zeichen vom uart
  lcd_write_s(buffer); //Schreibt eine Zeichenfolge auf das Display
  if(buffer == "1") {sm_go(1);} //Läßt einen schrittmotor fahren, wenn
1 empfangen wurde
}

Ich hoffe, ihr könnt mir helfen.
Weiterhin suche ich eine Dokumentation, wo ich Grundlegende
Programmierfragen wie diese suchen kann, das Tutorial reicht da nicht.

Besten Dank

Eric
#284920
Lesenswert?

Kauf Dir ein C-Buch. Das brauchst Du immer wieder.
Tutorials sind da kein Ersatz dafuer.

Schau Dir speziell den Unterschied an, den C zwischen
einem einzelnen Zeichen (einem char) und einer Zeichenfolge
(einem char-Array, \0-terminiert) macht.

Das s in lcd_write_s deute ich mal als 'String'. D.h. diese
Funktion erwartet keinen einzelnen char, sondern einen Pointer
auf eine Abfolge (ein Array) von char, wobei nach dem letzten
gewollten Zeichen noch ein '\0' folgen muss, um das Ende zu
markieren.

Auch kann man Strings in C nicht mit == vergleichen.
Dazu gibt es die Funktion strcmp(). Einzelne char kann mann
allerdings mittels == vergleichen. Nur ist "1" kein einzelner
char sondern ein String (also eine \0 terminerte Abfolge von
chars). '1' hingegen waere ein einzelnes char. Man beachte
die unterschiedlichen Anfuehrungszeichen:
   "   String
   '   einzelnes Zeichen

Dein Hauptproblem ist, dass Du in Deinem Code char und C-Strings
wie wild durcheinanderwuerfelst. Es gibt daher mehrere Moeglichkeiten
wie eine Korrektur aussehen muesste, je nachdem was eigentlich
gewuenscht wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren