Forum: Mikrocontroller und Digitale Elektronik Festkomma Wert ausgeben


von Alexander (Gast)


Lesenswert?

Guten Abend,

ich habe mal eine Frage bezüglich der Ausgabe eines Festkomma Wertes per 
UART. Und zwar erhalte ich vom ADC einen Volt wert von ca. 512 was ja 
bei einer Aref von 5 Volt circa 2,56 Entspricht.Nun habe ich diesen in 
einen mV durch Festkomma arithmetik umgewandelt.Zur ausgabe auf die 
Nutze ich die funktionen von hier:

http://www.mikrocontroller.net/articles/Festkommaarithmetik

Das klappt auch alles wunderbar mit werten grösser als 1 Volt (Augbabe 
1,00) aber wenn ich zum beispiel nur 0,6 Messe kommt 6,00 aus der Uart 
und ich verstehe nicht ganz wie ich die führenden Nullen hin bekomm.

Ich hoffe mir kann jemand helfen, bin noch neu auf dem Gebiet µC.

Ich nutze einen Atmega 16 mit aktuellen AVR-GCC.

Mfg

Alexander

von ... (Gast)


Lesenswert?

Der Fehler liegt in Zeile 42

von Mark (Gast)


Lesenswert?

Das wollte woll mal wieder jemand witzig sein.Sorry Alex aber wegen 
solchen Idioten nimmt der Ruf dieses Forums immer mehr ab. Aber 
glücklicherweise sind die meisten nicht so.

Zum Thema:

Schau mal ob du es hinbekommst per If() zu filtern ob der wert kleiner 1 
ist dann könntes du einfach eine null ausgeben und das Komma 
verschieben.

Gruss

Mark

von Karl H. (kbuchegg)


Lesenswert?

Wenns dir auf ein bischen Speicherverschwendung nicht ankommt, kannst du 
auch folgendes machen
1
   char buffer[10];
2
   sprintf( buffer, "%d.%02d", Wert / 100, Wert % 100 );
3
4
   lcd_puts( buffer );

von Alex (Gast)


Lesenswert?

Vielen Dank für die Hilfe werde mal ein wenig speicher weghauen.Hab 
sosnt alles fertig und ist noch genug Platz da.

Schön das es noch Menschen gibt die nett miteinander umgehen.

Mfg

Alex

von Karl H. (kbuchegg)


Lesenswert?

Nun, ich weiß das hier im Forum viele anderer Meinung sind, aber ich 
steh dazu: Ich nehm eigentlich gerne sprintf für alles Mögliche her. 
Klar sprintf ist ein Resourcenfresser und der Schnellste ist er sicher 
auch nicht. Dafür kann man aber alle Formatierprobleme meistens sehr 
einfach lösen. Ich kann nur empfehlen, sich die Formatiermöglichkeiten 
von printf/sprintf genauer anzusehen. Da steckt ein enormes Potential 
drinnen.

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.