Forum: Mikrocontroller und Digitale Elektronik avr SRTING TO FLOAT


von jupp (Gast)


Lesenswert?

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 ?

von Daniel V. (danvet)


Lesenswert?

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.
von jupp (Gast)


Lesenswert?

char buf10]

buf[4] =0 ist natürlich falsch

von Daniel V. (danvet)


Lesenswert?

bevor hier jetzt groß rumgeraten wird:
zeige bitte deinen kompletten und kompilierbaren Code.

von jupp (Gast)


Lesenswert?

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

von Johannes S. (Gast)


Lesenswert?

jupp schrieb:
> es fehlte :
>
> #include <stdlib.h>

Nun ja, wenn man 51 Warnungen ignoriert ist das kein Wunder das man dann 
lange suchen muss.

von jupp (Gast)


Lesenswert?

So läuft

falsche linker einstellung usw.

Danke

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.