Avr Studio Float printf

#1286531
Lesenswert?

Hallo Profis,
ich habe folgendes Problem, Ich kann mit Printf kein double anzeigen ich 
krige nur ?f !
Ich verwende das AVR Studio und WinAvr 20080403 ich habe im Avr Studio 
unter includs "libc.a" und "libprintf_flt.a"zum Linken hinzugefügt !

Nach suche hier im Forum habe ich einen Beitrag gefunden das es mit Win 
AVR 20061009 anscheinend fuktioniert und so hab ich das auch ausprobiert 
leider ohne Erfolg

Bitte klärt mich über meine Fehler auf !

Danke im Voraus
MFG

Pier
#1286539
Lesenswert?

Pier S. schrieb:
> Hallo Profis,
> ich habe folgendes Problem, Ich kann mit Printf kein double anzeigen ich
> krige nur ?f !
> Ich verwende das AVR Studio und WinAvr 20080403 ich habe im Avr Studio
> unter includs "libc.a" und "libprintf_flt.a"zum Linken hinzugefügt !

Das reicht noch nicht.
http://www.mikrocontroller.net/articles/FAQ#Aktivieren_der_Floating_Point_Version_von_sprintf_beim_WinAVR_mit_AVR-Studio
Gast #3874997
Lesenswert?

Jürgen M. schrieb:
> Leider ist hier die libprintf_flt.a nicht verfügbar, gibt es dafür eine
> andere Lösung?

Das aktuelle Studio nutzt (AFAIR) newlib-nano. Um float-Unterstützung zu 
aktivieren, füge folgendes zu den Linker-Flags hinzu:

> -u _printf_float

Ob damit auch double funktioniert, weiß ich nicht. Aber double sollte 
man auf einem kleinen MCU sowieso nicht verwenden. Das wäre einfach viel 
zu langsam.
#3875858
Lesenswert?

Danke für den Tip, die newlib-nano hatte ich in den Linkereinstellungen 
auch schon aktiviert, die von Dir erwähnte _printf_float Lib wird aber 
vom Linker nicht gefunden und befindet sich auch nicht in meinem System.

Muss ich die erst hinzufügen und wenn, woher bekomme ich die?

ok, habs nun hinbekommen:

Bei den Compilersymbolen stand noch printf=iprintf, dieses Symbol habe 
ich entfernt.
Mit der Linkeroption -u _printf_float werden nun float-Werte korrekt 
aufgegeben.

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