www.mikrocontroller.net

Forum: Compiler & IDEs Wie kann ich einen Dezimalwert auf´s LCD-Display bringen?


Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Wie kann ich einen Dezimalwert auf´s LCD-Display bringen?

Sascha

Autor: BAB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tolle frage..
mit einem lcd treiber...
wie wärs etwas konkreter?

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jepp.

Also, mit CodeVison funzt es beispielsweise so:

   lcd_gotoxy(1,0);
   spintf(w_buffer,"Kanal 1 = %4u",i);
   lcd_puts(w_buffer);

Ich möchte einen AD-Kanal einlesen und auf dem LCD-Display darstellen.
Die Funktion "sprintf" habe ich hier aus der Codesammlung kopiert, weis 
jedoch nicht wie ich sie richtig aufrufen muß.

Die LCD-Routinen habe ich bereits, Text kann ich darstellen.


Sascha

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sascha,

da wirst du um etwas Rechnerei nicht rumkommen.
Du muß das binäre Wort in BCD umwandeln.

Schau mal da nach:
http://www.fh-pforzheim.de/fb05/labore/mclt/pdf/AD...

ist ne gute Anleitung. Benutzt ich auch um eine AD - Kanal
Auszuwertung zu machen und auf LCD darzustellen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Du muß das binäre Wort in BCD umwandeln."

Wie bitte ???

Las das mal lieber das sprintf() machen, dazu ist es doch schließlich 
da.

Du must Dir bloß mal die Syntax zu Gemüte führen, d.h. was z.B. "%4u" 
bedeutet.

Ich entwickle meine 8051-Programme immer unter nem alten Borland-C3.0, 
da ist eine deutschsprachige Hilfe mit bei. Da kann man dann alles in 
Ruhe nachschlagen.
Ich kenne ja auch nicht jede Funktion und deren Argumente auswendig.


Peter

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der AD-Wandler Wert liegt als Wert in einm 8 Bit breiten Register.
Das kannst Du ja nicht direkt ausgeben, versteht ja niemand.
Daher wandelt man das in BCD (Binary Coded Digit) um und
dann sieht die Ausgabe z.B. so aus 2,54. Ist doch etwas
verständlicher.

Jörn

Autor: Sascha Weitkunat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was hat das ganze mit BCD (was übrigens "Binary Coded Decimal" 
bedeutet) zu tun?! Ich würd mal eher sagen man wandelt den Binärwert aus 
dem besagten Register in einen Dezimalwert um, welchen man gleich 
ausgeben kann bzw. mit dem man weiterrechnen kann.

@Peter
Ich versteh nicht ganz...

>Ich entwickle meine 8051-Programme immer unter nem alten Borland-C3.0
Wie kann das gehen? Der AVR-GCC besitzt ja nicht alle Befehle wie der 
Borland, und kompilieren kannst du deine Programme ja wohl auch nicht?! 
Oder meinst du, dass du ihn nur als Editor benutzt?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörn

Ich glaube unter Fortran konnte man auch mit Dezimalzahlen rechnen. Aber 
C-Compiler rechnen grundsätzlich nur binär.
Nur zur Ausgabe werden dann die Zahlen je nach Formatangabe vom printf() 
dezimal dargestellt.
Aber Du hast mit der Umrechnung überhaupt nichts zu tun, das macht doch 
alles der C-Compiler.


@Sascha

Das ist ja der Witz an C, daß es auf verschiedenen Maschinen läuft. 
Natürlich laufen die AVR-Routinen nicht alle auf dem PC.
Die ganzen Hardware spezifischen Routinen lassen sich z.B. nicht testen.
Aber sich z.B. die verschiedenen Ausgaben von printf() anzusehen ist mit 
Borland-C möglich.
Ich teste eben nicht komplette AVR-Programme auf diese Weise sondern nur 
einzelne Routinen.
Ja, als Editor mit deutscher Hilfe zum Nachschlagen nehme ich ihn 
natürlich auch.



Peter

Autor: Michael Pohl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal ein danke jörn !!

das mit dem BCD hab ich jetzt schon ewig gesucht, wusste net woher ich 
das bekommen konnte (HEX -> BCD) danke für den Link

(progt ja net jeder mit nem "hochsprachen" kompiler)


@ peter: wenn sascha aber seien µC das umrechnen lassen will dann wird 
ihm der compiler da nix nützen weil der dir zur laufzeit nix umrechnet !

Michael

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.