www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit Float in String umwandeln


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Jörg (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi und hallo zusammen,

ich versuche eine Float-Variable in einen String umzuwandeln, um diesen 
dann über UART auszugeben. Leider funktioniert das nicht so wie es soll.

Wenn ich das wie folgt mache, erhalte ich nur ein Fragezeichen als 
Ergebnis, wenn ich mir die gesendeten Daten auf dem PC im 
Terminalprogramm anschaue.
char data[8];

sprintf(data, "%f", "3.125");
puts(data);

Wenn ich eine Variable habe, in der z.B. 20,123 ; mit dem Debugger 
überprüft; drin steht und ich nun Folgendes schreibe, erhalte ich 
ebenfalls nur ein Fragezeichen als Ausgabe am PC:
float val;
.....

sprintf(data, "%f", val);


Jemand eine Idee, was ich da falsch mache?

Jörg

Autor: float (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Jörg schrieb:
> char data[8];
>
> sprintf(data, "%f", "3.125");
> puts(data);

printf("%f", 3.125);

Autor: g457 (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
> nur ein Fragezeichen als Ergebnis

Kuckst Du Doku -> Linkeroptionen anpassen.

HTH

Autor: Jörg (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo,

g457 schrieb:
> Kuckst Du Doku -> Linkeroptionen anpassen.

Ich habe jetzt Folgendes gemacht:
Unter
Project Properties -> Toolchain -> AVR/GNU C- Linker -> Libraries
in Libraries (-WI, -I), libprintf_flt.a und libm.a eintragen.

dann unter
Project Properties -> Toolchain -> AVR/GNU C- Linker -> Miscellaneous
in Other Linker Flags, -Wl,-u,vfprintf eintragen


Aus Beitrag Beitrag "Re: AVR Studio 5, sprintf, float und linken?"
oder http://www.mikrocontroller.net/articles/FAQ#sprintf.28.29


Damit funktioniert es dann.

Danke!
Jörg

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net