www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 16x2 LCD, Ausgabe der Daten


Autor: Sam (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

brauche Hilfe!
Ich arbeite mit dem AT89S8252 in C.
Mein Hauptproblem ist nicht das Ansprechen, noch die Initialisierung,
sondern dass ich nicht weiss, wie ich meine Daten am LCD ausgebe.

Die Daten kommen von zwei Temperatursensoren und von einem
Uhrenbaustein und sind eigentlich schon vorhanden.
Diese sollten so am LCD ausgegeben werden:
  1234567890123456
1 hh:mm:ss T1 xx,x
2 dd.mm.yy T2 xx,x

Programm ist im ZIP file
Danke für Hilfe!!!
Sam

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

Bewertung
0 lesenswert
nicht lesenswert
Am einfachsten wird es wohl sein
sprintf einzusetzen.
Das ist ein normaler printf, nur dass er die Ausgabe
als C-string in ein char-Array macht. Dir stehen
dann alle Formatierfunktionen von printf zur Verfuegung.
Damit sollte es ein leichtes sein, dass von Dir gewuenschte
Format hinzukriegen.
Danach: Den String in die String-Ausgabe Funktion Deiner
LCD 'Bibliothek' stecken und gut ists.

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aha...
sorry, verstehe nur bahnhof.
kannst du mir bitte ein beispiel schreiben?
thx

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

Bewertung
0 lesenswert
nicht lesenswert
Du hast doch eine Funktion die einen String (also Text) auf
dem Display ausgibt. Oder nicht?
Wenn nicht, dann solltest Du Dich schnellstens darum kuemmern.
(Benutz doch einfach eine fertige LCD Bibliothek, die hat sowas.
Z.b. bei http://jump.to/fleury findet man sowas).

Weiters hast Du doch Funktionen die Dir die Sensoren
und die Uhr als Zahlenwerte auslesen, oder nich?

Also: Wir haben: Eine Mange Zahlenwerte
      Wir brauchen: Einen Text (String) der den Zahlenwerten
                    entspricht.

   char Buffer[20];

   int Hour = ......     /* Irgendwie kommst Du auf die Stunden */
   int Minute = ......   /* dito fuer Minuten */
   int Sekunden = ...... /* dito fuer Sekunden */
   float T1 = .......    /* In T1 steht der Wert vom Temp Sensor 1 */

   sprintf( Buffer, "%d:%d:%d T1 %4.1f", Hour, Minute, Sekunde, T1
);
   lcd_puts( Buffer );  /* Funktion zur Stringausgabe aus der oben
                           genannten LCD-Bibliothek */

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.