Moin Arbeite zu ersten mal mit float werte. AVR Studio 4 Es soll der string 123.45 in einer float gewandelt werden. sprintf(buf,"123.45"); buf[4]=0; fl_wert=(atof(buf)); sprintf(buf,"%3.2f",fl_wert); usart_write_str(buf); / ausgabe über uart es wird 17142.00 vom uart gesendet was mache ich da falsch ?
Wie groß ist buf[] ? Du brauchst buf nicht extra mit 0 abschließen, außerdem ist dann buf[4] = 0 die falsche Stelle.
:
Bearbeitet durch User
Beitrag #5483991 wurde von einem Moderator gelöscht.
bevor hier jetzt groß rumgeraten wird: zeige bitte deinen kompletten und kompilierbaren Code.
ersten fehler gefunden es fehlte : #include <stdlib.h> es wird jetzt 123.45 gesendet. Nur wenn ich den float wert 123.45 + 1 berechne bekomme ich eine fehler meldung beim compilieren. avr-gcc -mmcu=atmega644 -Wl,-u,vfprintf timer.o usart.o main.o -lm -lprintf_flt -o 12072018 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib c.a(mulsf3x.o): In function `__mulsf3_pse': (.text.avr-libc.fplib+0x98): relocation truncated to fit: R_AVR_13_PCREL against symbol `__fp_inf' defined in .text.avr-libc.fplib section in c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr5\lib m.a(fp_inf.o) make: *** [12072018] Error 1 Build failed with 1 errors and 51 warnings...
jupp schrieb: > es fehlte : > > #include <stdlib.h> Nun ja, wenn man 51 Warnungen ignoriert ist das kein Wunder das man dann lange suchen muss.
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.