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