Hallo! Wie kann ich einen Dezimalwert auf´s LCD-Display bringen? Sascha
tolle frage.. mit einem lcd treiber... wie wärs etwas konkreter?
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
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_Wandlung.pdf ist ne gute Anleitung. Benutzt ich auch um eine AD - Kanal Auszuwertung zu machen und auf LCD darzustellen.
"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
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
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?
@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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.