AVR GCC a scanf
Slavomir Tomascik
hw_tomascik@credit.t-com.sk
Úterý Květen 6 22:33:37 CEST 2008
Nazdar,
neviem, ci to uz mas vyriesene, ale ked nie...
Vyskusal som to u seba, a dosiel som k zaveru, ze sscanf je
implementovana (funguje mi integer), a "iba" nepodporuje float.
Aby bolo jasne, tak s AVR-GCC sa iba zacinam hrat ;-) Normalne
totiz nefunguje ani float sprintf, a treba urobit dalsie kroky
napr. podla:
http://winavr.scienceprog.com/avr-gcc-tutorial/using-sprintf--function-for-float-numbers-in-avr-gcc.html
aby si rozbehol float pre sprintf. A kedze taka ista kniznica
(libscanf_flt.a) je aj pre sscanf, tak myslim, ze to bude v tom.
Treba ju tam dodat, a povedat o tom linkeru. Toto este nemam.
Slavo T.
> Dobry den,
>
> chcem sa opytat tych, co pouzivaju AVR-GCC (WinAVR), ci je
> implementovana funkcia sscanf a ci funguje, pripadne kde robim chybu.
> Mam takyto priklad:
>
> // needed for use of PSTR below
> #include <avr/pgmspace.h>
> #include <stdio.h>
> #include <stdlib.h>
>
> char PROGMEM fmt[] = "%f";
>
> int main( void ){
> char buffer[20] = {"1.25"};
> float flFaktor = 0.0;
> int result;
>
> result = sscanf( buffer, "%f", &flFaktor );
> flFaktor = 1.0;
> result = sscanf_P( buffer, fmt, &flFaktor );
> flFaktor = 2.0;
> flFaktor = atof( buffer );
> flFaktor = 3.0;
> result = sscanf_P( buffer, PSTR( "%f" ), &flFaktor );
> flFaktor = 4.0;
> flFaktor = strtod( buffer, (char**)NULL );
>
> return 0;
> }
>
> Je to prelozene s "gcc version 4.2.2 (WinAVR 20071221)" v AVR studiu, s
> vypnutou optimalizaciou, aby som videl vysledky:
>
> avr-gcc.exe -mmcu=atmega128 -Wall -gdwarf-2 -std=gnu99 -O0
> -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP
> -MT test-float.o -MF dep/test-float.o.d -c ../test-float.c
>
> Ked ten program v simulatore krokujem, tak atof a strtod funguju
> (flFaktor=1.25), ale sscanf tu hodnotu nemeni.
>
> Poradi niekto?
> Pripadne to vyskusajte u seba, ci vam to funguje.
>
> Richard Kaliciak
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list