avr-gcc ,hazudik az if:-)

Papp Zoltán zombi at c2.hu
Tue Sep 5 15:57:37 CEST 2006


Szima Gábor írta:
>
> On Tue, 5 Sep 2006, Pal Lukacs wrote:
>
>>  A fenti formaban nem jol ertekelodik ki hosszabb kifejezes az if
>> -ben.Ha rakok a ciklusba egy 10ms delayt,akkor kiertekelodik,csak
>> forditva mukodik.Tehat igaz feltetel eseten az else agat hajtja vegre
>> es forditva
>>  Tapasztalt hasonlot mar valaki?
>
> Igen, par honapja irtam is a listara. Ott az if _mindket_ aga lefutott,
> mivel menet kozben a globalis valtozo IRQ-bol megvaltozott (valoszinuleg).

Hát igen, ha volatile változót vagy regisztert vizsgálsz és kétszer
szerepel a kiértéklésben, akkor számítani kell arra, hogy az érték közben
megváltozhat.
Megoldás: interruptot letiltani, vagy ideiglenes változót bevezetni

A lényeg:
TESSÉK MINDIG ÁTNÉZNI A LEFORDÍTOTT ASM KÓDOT, MERT EGYBŐL KIBUKIK A BAKI.

Üdv

-- 
Papp Zoltán
OneWay Electronics


--------------------------------- Hirdetés ---------------------------------

Mi a C2? http://mail.c2.hu




More information about the Elektro mailing list