Hallo,
ich arbeite mit AtmelStudio 6.2 und dem AVR Compiler. Bis zur
Vertigstellung meines Programms arbeitete ich immer im Debug Modus. Da
funktioniert alles wie gewollt. In meinem Programm arbeite ich mit allen
Spannungen in Millivolt. Die Ergebnisse der Spannungen sende ich via
GSM-Modul als SMS auf mein Smartphon. Dort sollen die Spannungsangaben
in Volt erscheinen. Diese Wandlung und das Zuammensetzen des zu
übertragenden String geschieht mit folgender Programsequenz.
Jetzt habe ich in den Relaese Modus gewechselt und habe nun folgendes
Problem. Auf meinem Smartphon erscheint statt der Spannungswerte nur ein
"?". Ich vermute dass ich einen Fehler in der Konfiguration im
AtmelStudio habe. Kann diesen jedoch nicht finden. Kennt jemand dieses
Problem und kann mir weiterhelfen?
Gruß
Sebastian
Sebastian W. schrieb:> sprintf(U_array_fl[LiIon],"%4.2f",((double)mVLiIon/1000));
ohne mir absolut sicher zu sein
probier mal:
sprintf(U_array_fl[LiIon],"%4.2f",((double)mVLiIon/1000.0F));
Wie bereits geschrieben, deuten die Fragezeichen auf fehlende
Unterstützung der Floating-Point Operationen (in printf) hin. Das ist
übrigens die Default-Vorgabe der Toolchain, solange man es nicht
ausdrücklich aktiviert.
Axel R. schrieb:> "Wie geht das?" wird sicher gleich gefragt werden ...>> Nein - ich weis es auch nicht
Hat Stefan doch schon geschrieben:
Stefan U. schrieb:> Im Makefile:>> # Enable floating-point support in printf> LDFLAGS += -Wl,-u,vfprintf -lprintf_flt -lm
Und wenn man kein Makefile hat trägt man die entsprechenden Optionen
halt in seiner IDE ein.
guest schrieb:> Axel R. schrieb:> Stefan U. schrieb:>> Im Makefile:>>>> # Enable floating-point support in printf>> LDFLAGS += -Wl,-u,vfprintf -lprintf_flt -lm>> Und wenn man kein Makefile hat trägt man die entsprechenden Optionen> halt in seiner IDE ein.
Falls das make-File tatsächlich benutzt wird. Es ist einfach verdächtig,
wenn eine Build-Version geht, die andere nicht.
Ich benutze immer Eclipse, daher bin ich kein guter Ratgeber für die
AtmelStudio-Details, kenne aber das Problem aus meiner Welt.
Zum Test einfach mal aus dem make-File rausnehmen. Wenn Debug-Build dann
immer noch funktioniert ...
Carl D. schrieb:> Falls das make-File tatsächlich benutzt wird. Es ist einfach verdächtig,> wenn eine Build-Version geht, die andere nicht.
Da er das Atmel Studio benutzt w
Carl D. schrieb:> Falls das make-File tatsächlich benutzt wird. Es ist einfach verdächtig,> wenn eine Build-Version geht, die andere nicht.>> Ich benutze immer Eclipse, daher bin ich kein guter Ratgeber für die> AtmelStudio-Details, kenne aber das Problem aus meiner Welt.
Da er das Atmel Studion benutzt, wird wohl eher kein Makefile benutzt
(bzw. es wird vom Studio dynamiych erzeugt).
Im Atmel Studio kann man in den Projekteigenschaften die meisten
Parameter halt für jede Build-Konfiguration einzeln einstellen. Und wenn
man da nicht aufpasst ist es eigentlich auch gar nicht mehr so
verdächtig wenn nur eine davon geht.
guest schrieb:> Da er das Atmel Studion benutzt, wird wohl eher kein Makefile benutzt> (bzw. es wird vom Studio dynamiych erzeugt).> Im Atmel Studio kann man in den Projekteigenschaften die meisten> Parameter halt für jede Build-Konfiguration einzeln einstellen. Und wenn> man da nicht aufpasst ist es eigentlich auch gar nicht mehr so> verdächtig wenn nur eine davon geht.
Meine Rede!
Ich hab auch hauptsächlich geschrieben wie man diese "Theorie"
überprüfen kann.
Bei Eclipse-CDT kann man solche Settings auch "für alle Konfigurationen"
machen, Default ist aber die aktuelle. Mangels Debug-Hardware mache ich
in der Regel nur "Release"-Builds, damit immer nur eine Konfiguration,
ergo dieses Problem nicht.
Hallo,
erstmal Entschuldigt, dass ich mich so lange nicht gemeldet habe. War
bis heute Abend unterwegs. Und ein großes Danke für eure Hilfe.
Ja, der Fehler liegt meistens beim Programmierer. Ich arbeite nicht mit
selbstgeschriebenen Makefiles sonder stelle im AtmelStudio im
Projektmanager\Toolchain die Parameter ein. Und genau da habe ich nicht
beachtet, dass im Release Modus das Häkchen in "Use vprintf
Library(-WI,-u,vprintf) nicht gesetzt war.
Nochmals vielen Dank allen
Gruß
Sebastian