www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Festkomma Wert ausgeben


Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Fehler liegt in Zeile 42

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns dir auf ein bischen Speicherverschwendung nicht ankommt, kannst du 
auch folgendes machen
   char buffer[10];
   sprintf( buffer, "%d.%02d", Wert / 100, Wert % 100 );

   lcd_puts( buffer );

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

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.