float->ASCII?

OP #1591451
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?
#1591458
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:
1
-Wl,-u,vfprintf -lprintf_flt -lm

Siehe auch 
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#ga3b98c0d17b35642c0f3e4649092b9f1

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren