avr lebegopontos muveletek -frekimero-
Andras Tantos
andras at tantosonline.com
Fri Sep 15 22:48:31 CEST 2006
>> Nos en tudom hogy a szabvany C nyelv reszei,de nekem valahogy nem
>> mukodott.Igaz sprintf-ben probaltam,de ott nem mukodott(hulyesegek
>
> Igy mar erthetobb a kerdes.
>
>> jelentek meg a kijelzon) sem float,sem double..int viszint igen
>> mukodott.
>
> Valoszinuleg a programodban van a hiba. Megint csak jobban kene ismerni a
> korulmenyeket, de elkepzelheto pl. olyan, hogy az sprintf() felzabalja az
> SRAM-ot (sokat hasznal), es akkor ilyesfajta anomaliak jelentkeznek, vagy
> akar durvabbak is (a stack is az SRAM-ban lakik).
>
> A *printf() kisebb mikrokontrollereken erosen ellenjavallt, erdemes
> megirni celiranyosan a szukseges rutinokat.
>
> A nem futasideju programozasi hibak kozul egy csomot kidob a gcc -Wall
> opcioja, erdemes hasznalni (es addig reszelni, amig nincs warning). A uC
> programozasi tapasztalatot meg valamennyire potolhatja a JTAG debug.
>
Sok embedded C runtime-ban nem rakjak a lebegopontos-string atalakitast
alapbol bele a printf variansokba, hogy ne foglaljanak feleslegesen sok
helyet. Az AVR-libc is ilyen. Specialisan kell linkelni, ha lebegopontos
szamokat is akarsz hasznalni. Reszletekert lasd:
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#ga3b98c0d17b35642c0f3e4649092b9f1
Udv,
Tantos Andras
More information about the Elektro
mailing list