www.mikrocontroller.net

Forum: Compiler & IDEs Avr Studio Float printf


Autor: Pier S. (bigpier)
Datum:

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

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

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

Autor: Pier S. (bigpier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank,
jetzt läüft das ganze !!

Gruß
PIer

Autor: Jürgen M. (mheimer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe dasselbe Problem bei meinen Projekten mit SAM-Controller 
(Arduino Due SAM3).
Leider ist hier die libprintf_flt.a nicht verfügbar, gibt es dafür eine 
andere Lösung?

Autor: greg (Gast)
Datum:

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

Autor: Jürgen M. (mheimer)
Datum:

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

: Bearbeitet durch User

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.