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