Forum: Mikrocontroller und Digitale Elektronik float-Zahl ausgeben


von Exodus (Gast)


Lesenswert?

Hallo allerseits

Sitze hier vor einem kleinen Problem:

Ich habe hier in meinem Programm diverse Berechnungen etc..Resultat 
dieser sind jeweils float-Zahlen.

Nun möchte ich diese gerne auf meinem Display anzeigen, doch genau an 
diesem Punkt scheitert mein Vorhaben.

Ich kann die Zahlen sehr wohl nach ASCII konvertieren und anzeigen, 
klappt perfekt. Nur leider fehlen mir danach die Nachkommastellen.

Hat hier jemand einen Tipp für mich, wie ich das am elegantesten lösen 
könnte?
Verwende übrigens den CCS Compiler.

Danke und Gruss

von holger (Gast)


Lesenswert?

printf("%f",floatvar);
sprintf(buffer,"%f",floatvar);

von Exodus (Gast)


Lesenswert?

Danke für die Antwort, jedoch funktioniert das leider nicht.
Der Compiler meldete:

STDOUT not defined (may be missing #USE RS232)  In call_1

Habe daraufhin mal nachgesehen und testweise über "#use rs232" die 
Schnittstelle aktiviert, da der Befehl ja scheinbar nur dann geht.
Jedenfalls funktioniert es auch jetzt noch nicht, der Mikrocontroller 
macht immer einen Reset an der Codestelle, wo meine float-Zahl gewandelt 
werden soll.

Gibts noch einen anderen Weg, eine float-Zahl auszugeben?

von aha (Gast)


Lesenswert?

>printf ...

Muaaahhhhh. Dauert viel zu lange. Besser als Longint rechnen uns dann 
das Komma schieben. Es gibt natuerlich Funktionen, die Float bedingen. 
Dann braucht man die eben. --> Library hinzulinken.

von Bastard (Gast)


Lesenswert?

Hallo,

> Muaaahhhhh. Dauert viel zu lange....
Das war mal, die heutigen uC haben viel mehr Leistung wie früher und da 
fällt das nicht mehr so sehr ins Gewicht!
Ich hab beide Versionen ausprobiert und wenn dein Prog nicht 
zeitkritisch ist und du jede µs einsparen musst ist folgendes sicher 
viel besser:


Bsp("stdio.h" einfügen nicht vergessen):

   char out[16];
   float u = 2.456;

   sprintf( Out, "t=%5.2fs", u);
       //Die Floatzahl wird in das Char-array "Out" gespeichert.
       //Inklusive Komma!

Nun brauchtst du nur mehr dein Char out Zeichenweise auf dein Display 
ausgeben.

Welchen µC verwendest du?

lg
Bas

von Karl H. (kbuchegg)


Lesenswert?

aha schrieb:
>>printf ...
>
> Muaaahhhhh. Dauert viel zu lange.

Zitat:
Ich habe hier in meinem Programm diverse Berechnungen etc..Resultat
dieser sind jeweils float-Zahlen.


Da dürfte dann ein einzelner printf auch nicht mehr ins Gewicht fallen.

von Exodus (Gast)


Lesenswert?

Vielen Dank für den Hinweis, funktioniert nun alles einwandfrei.
Habe soeben mein LCR-Projekt komplett fertiggestellt, basierend auf 
einem PIC16F877A.

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
Noch kein Account? Hier anmelden.