PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fließkommawerte auf LCD Display darstellen.



28.04.2004, 23:53
Hallo !

Nachdem ich ich jetzt endlich Texte auf mein LCD Display bekomme habe ich noch ein Problem mit dem Darstellen von Messwerten in Form von Fließkommazahlen.
Ich habe mir mal eine Testprogramm geschrieben was einen berechnenten Wert (der Float oder double ist) in ein Char-Feld schreibt welches ich auf einem Display darstellen kann.
Also z.B Floatwert 1.6355 im chat Feld sollen dann die einzelnen Zeichen 1;.;6;3;5;5 stehen.

**** Hier mal der Quellcode der unter UNIX so läuft...


#include <stdlib.h>
#include <stdio.h>

main()
{

int AD_low=163, AD_high=0, AD_wert=0; /* Lower und Higher Byte vom AD Wandler, jeweils 8 Bit */
float messung=0,ergeb=0;

char mess_char[9]={"TEST"}; /* Buffer für 10 Zeichen schaffen*/


AD_high = AD_high<<8; /* Higer Byte um 8 Stellen verschieben */
AD_wert=AD_low + AD_high; /* Higher und Lower Byte Addieren für Gesamtwert */

/* Irgend eine Psydoberechnung durchführen */

sprintf(mess_char,"%f",AD_wert * 0.019531); /* Messwert berechnen und char-Buffer schreiben*/

messung = AD_wert * 0.019531; /* Messwert nochmal als float speichern*/

printf("Ausgabe *** AD_low: %i AD_high: %i AD_wert: %i \n",AD_low, AD_high, AD_wert);
printf("Ausgabe *** Messwert (floatwert) : %f \n", messung);
printf("Ausgabe *** Messwert (char-Feld) : %s \n",mess_char);

}


*****

Interessant ist nur die Zeile mit

sprintf(mess_char,"%f",AD_wert * 0.019531);

mess_char soll der Text sein der auf dem LC-Display dargestellt werden soll. AD_wert ist irgend ein Wert von z.b. von einem AD Wandler

Leider macht AVR-GCC das nicht,..in dem char feld stzeht nur ein "?" was ich später auf dem LC Display sehe...

Was mache ich da falsch... welche anderen möglichkeiten gibt es noch ?

Gruß Daniel

28.04.2004, 23:54
die printf Ausgaben waren nur Testausgaben zum programmieren unter unix... die sind logischerweise nicht im Quellcode vom AVR

Dino Dieter
29.04.2004, 12:30
Hallo

Zu deiner Ausgabe eines Float auf deiner LCD Anzeige gibt es hier eine schöne Routine http://www.mikrocontroller.net/forum/read-4-46127.html

Schau dir mal die outfloat Funktion an. Das putchar ersetzt du dann mit deiner Ausgabefunktion für dein LCD Display.

MFG
Dieter