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
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.
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.
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.
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.
In der Docu zur avr-libc steht das so drin: -Wl,-u,vfprintf -lprintf_flt -lm Vieleicht hilfts. Probiert habe ich es nicht.
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!!!
Rechts, ziemlich in der Mitte, ist das Eingabefeld. Dort schreibst du deinen Text hinein. Gleich daneben ist der 'Add' Button.
Dort wird der Text für die Linkeroptionen eingegeben. Danach auf 'Add' drücken.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.