www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik probleme mit sprintf


Autor: Holger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich grübel nun schon eine weile über diesem miniprog weil die Funktion 
sprintf nich so will wie ich.

Bei der Wandlung von double zu char erhalte ich immer ein ? .
Im makefile ist aber als verwendete lib die printf mit flt eingerichtet.

#include <avr/io.h>
#include <stdio.h>
double wert=1234;
char speicher[10];
int main(void)
{
sprintf(speicher, "%lf",wert);
while(1){}
return 0;
}

Seht ihr den Fehler?

Danke im vorraus

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach mal das l vor dem f weg.

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

Bewertung
0 lesenswert
nicht lesenswert
Holger wrote:
>
> Bei der Wandlung von double zu char erhalte ich immer ein ? .
> Im makefile ist aber als verwendete lib die printf mit flt eingerichtet.
>

Das reicht noch nicht.

Sieh dir mal das hier an:
http://www.mikrocontroller.net/articles/FAQ#Aktivi...

Ist zwar gedacht um mit AVR-Studio die Einstellung zu machen,
aber als alter Makefile-spezi kriegst du das im Makefile auch hin.

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
danke erst mal für die schnelle Hilfe.
Das l zu entfernen hat nix gebracht. Dürfte aber auch keine gravierende 
Unterschied machen ob float oder long float.

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube das Problem liegt noch tiefer. Wenn ich die Einstellung im 
Studio vornehmen will [wie Vorsclag von Karl Heinz B] habe ich keine 
Möglichtkeit bei Linker Options etwas einzufügen.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennoch, das Problem liegt eindeutig daran, daß Du mit der 
nicht-floating-Point-Version der printf-Library linkst. Die nämlich 
enthält keine Unterstützung für %f, was reichlich Code spart.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Docu zur avr-libc steht das so drin:

-Wl,-u,vfprintf -lprintf_flt -lm

Vieleicht hilfts. Probiert habe ich es nicht.

Autor: Holger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
nachdem ich jetzt unzählige Male das makefile erstellt habe und das 
Problem mit dem ? weiterhin bestand bin ich jetzt dazu übergegangen es 
im AVR Studio "einzurichten". Wie aber schon vorher erwähnt, habe ich 
keine Möglichkeit unter LinkerOption etwas hinzuzufügen.(siehe 
screenshot)
Was ist die Ursache???
Für Lösungsvorschläge bin ich nach wie vor dankbar!!!

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was für Optionen werden Dir unter "Libraries" angeboten?

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
leider gar keine!!!
Das genau ist ja das Problem.

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

Bewertung
0 lesenswert
nicht lesenswert
Rechts, ziemlich in der Mitte, ist das Eingabefeld.
Dort schreibst du deinen Text hinein. Gleich daneben
ist der 'Add' Button.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Dort wird der Text für die Linkeroptionen eingegeben.
Danach auf 'Add' drücken.

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kaum macht mans richtig schon gehts!!!!
Vielen Dank für eure schnelle Hilfe!!!!

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.