mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik float->ASCII?


Autor: Andi C. (spex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, wollte mal nachfragen ob man mit dem sprintf-Befehl eine 
Float-Zahl nach Ascii umwandel kann und wie???

Autor: Daniel Nöthen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

sprintf(buf, "%f", floatvar);

Besser verwendest du aber um buffer overflows vorzubeugen snprintf:
snprintf(buf, sizeof(buf), "%f", floatvar);

Grüße,
Daniel

Autor: rigo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Allg. Syntax: int sprintf ( char * str, const char * format, ... );

Beispiel:
char string[50];
float floatzahl;
sprintf(string, "%f", floatzahl);

Autor: rigo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, da war einer schneller... ;-)

Autor: Andi C. (spex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, hab das ganze wie oben deklariert, die floatzahl sollte 2,54 
betragen, allerdings erscheint beim Terminal dann nur ein Viereck???

char string[50];
float floatzahl;
sprintf(string, "%f", floatzahl);

Kann der Fehler daher kommen das ich die floatzahl vorher in das TXREG 
schiebe und muss man eine Zahl od Char überhaupt in das TXREG schieben 
wenn man dann den Wert mit sprintf oder putc ausgibt?

Autor: David Madl (md2k7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Folgendes gilt nur für AVR-GCC - ich muss hier raten, da nichts 
angegeben wurde:)

Standardmäßig wird eine minimalistische printf-Version ohne 
Fließkomma-Unterstützung gelinkt. Die sollte aber eigentlich an den 
fraglichen Stellen Fragezeichen '?' anzeigen.

Um die volle Version zu bekommen, muss man mit diesen Optionen linken:
-Wl,-u,vfprintf -lprintf_flt -lm

Siehe auch 
http://www.nongnu.org/avr-libc/user-manual/group__...

Nachtrag: TXREG klingt doch eher nach PIC o.ä. -> prüfen, ob nicht 
vielleicht auf die gleiche Art Speicher gespart wird und dies mit 
entsprechenden Optionen abgeschaltet werden muss.

Gruß
David

Autor: Andi C. (spex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja stimmt benutze ein PIC aber das mit dem Linken versteh ich nicht 
richtig.

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.