Forum: Compiler & IDEs int- und char- Werte im Display ausgeben


von Eric Reum (Gast)


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

von Karl H. (kbuchegg)


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.

von Eric Reum (Gast)


Lesenswert?

Super!
Allerbesten Dank für die schnelle Antwort!!
nun funktioniert es prima!

Gruß Eric

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.