AVRstudio simulator

Jan Waclawek konfera na efton.sk
Sobota Duben 19 23:55:10 CEST 2014


> > To asi taky ale hlavne davat 1e6 jako celociselnou hodnotu.... to teda 
> > vubec netusim, co udela. Spravne by se melo napsat 1000000UL
>
> Kupodivu např. (avr-)gcc to nevadí, pochopí to správně. 

Nie je na tom nic "kupodivu", je to normalna konverzia z konstanty typu double (C99 6.4.4.2) na integer (6.3.1.4#1). Kym sa "nevytecie" z rozsahu mantisy double na danej platforme (co je u avr-gcc identicke s float, co je zase "single precision" 32-bitovy binarny IEEE754 format), ani z rozsahu int na ktory sa konvertuje (v tomto pripade uint32_t), tato konverzia dopadne ocakavanym sposobom. "Vubec netusim co to udela" je na druhej strane chvalyhodny defenzivny pristup, 

Mimochodom, aj ked ta nutnost pouzitia volatila je v tomto pripade vskutku instuktivne, v konecnom dosledku by som nedoporucoval pouzivanie takychto samodomo loop delayov. Ked uz z akychkolvek (obvykle pochybnych) dovod vznikne potreba loop delay, vrealo doporucujem pouzit funkcie z <avr/delay.h>.

wek


Další informace o konferenci Hw-list