C-s kerdes
Moczik Gabor
pm at progzmaster.hu
Tue Jun 19 23:32:56 CEST 2007
Balla Zoltán wrote:
> Mondjuk, hogy ertem...
Pedig egyszeru. Ha bekapcsolod az optimalizalast, es van egy
programreszleted, ami sok muveletet vegez ugyanazzal a valtozoval, akkor
csinalhat olyat a fordito, hogy nem olvasgatja ki allandoan a valtozot,
hanem pl. a W regiszterben tartja. Kozben a hatterben meg a megszakitas
noveli a _memoriaban_ levo valtozot. Emiatt a foprogram esetleg hulyeseget
fog szamolni, mert neki van a W regiszterben egy korabban kiolvasott adat.
A volatile kulcsszo arra utasitja a forditot, hogy ne vegezzen ilyen
optimalizalast az atott valtozoval, hanem mindig a valodi helyerol olvassa ki.
> Azonban csak egy helyen szerepel a programban ez a valtozo, megpedig a megszakitaskezelo
> fuggvenyben! Ez egy 1 masodperces idozito flag letrehozasat kiszolgalo segedvaltozo csupan, csak
> abban az egy nyomorult fuggvenyben hivatkozok ra, mas helyen nem. Ezert nem ertem a mar elozoleg
> leirt viselkedeset...
Honnan tudod mennyi az erteke?
Valamivel debug-olsz (ICD?), vagy a foprogramba tettel egy UART-ra/LCD-re
kiiro utasitast?
Mert ez utobbi maris egy olvasasi hozzaferes a valtozohoz, az interrupton kivul.
--
((( Móczik Gábor )))--((( pm -> @ -> progzmaster -> . -> hu )))
((( Skype: moczik )))
More information about the Elektro
mailing list