mikrocontroller.net

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


Autor: Eric Reum (Gast)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Eric Reum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super!
Allerbesten Dank für die schnelle Antwort!!
nun funktioniert es prima!

Gruß Eric

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.