Forum: Mikrocontroller und Digitale Elektronik probleme mit sprintf


von Holger (Gast)


Angehängte Dateien:

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

von holger (Gast)


Lesenswert?

Mach mal das l vor dem f weg.

von Karl H. (kbuchegg)


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#Aktivieren_der_Floating_Point_Version_von_sprintf_beim_WinAVR_mit_AVR-Studio

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

von Holger (Gast)


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.

von Holger (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von holger (Gast)


Lesenswert?

In der Docu zur avr-libc steht das so drin:

-Wl,-u,vfprintf -lprintf_flt -lm

Vieleicht hilfts. Probiert habe ich es nicht.

von Holger (Gast)


Angehängte Dateien:

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!!!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und was für Optionen werden Dir unter "Libraries" angeboten?

von Holger (Gast)


Lesenswert?

leider gar keine!!!
Das genau ist ja das Problem.

von Karl H. (kbuchegg)


Lesenswert?

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

von Karl H. (kbuchegg)


Angehängte Dateien:

Lesenswert?

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

von Holger (Gast)


Lesenswert?

Kaum macht mans richtig schon gehts!!!!
Vielen Dank für eure schnelle Hilfe!!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.