avr threads
Moczik Gabor
pm at progzmaster.hu
Sat Sep 16 15:06:39 CEST 2006
Pal Lukacs wrote:
> Egy valamit nem ertek.Miert volatile a valtozok egy resze es a tobbi nem ?Ugyanugy van hasznalva main() ban meg megszakitasban is,nem?
A volatile kulcsszo arra utasitja a forditot, hogy ne cache-elje
regiszterekben azt a valtozot, mert a hatterben megvaltozhat az erteke.
A peldaprogramban azert nem kell volatile-nek lennie a cnt1_threshold
valtozonak, mert azt alapvetoen csak a megszakitas hasznalja, a foprogramban
csak adsz neki egy kezdoerteket (amit egyebkent a deklaracioban is megtehetsz).
A cnt-nek nem kotelezo volatile-nek lennie, azt csak a megszakitas
hasznalja, ezt elirtam.
A flag valtozonak volatile-nek kell lennie, mert a hatterben a megszakitas
valtoztathatja. Ha a foprogram regiszterbe cache-eli az erteket, akkor
allandoan csak a cache-t fogja olvasni, nem az eredeti valtozot, amit az ISR
modosit.
A cache erteke pedig a foprogramban nem fog valtozni, mert nincs iras a flag
valtozora.
(csak a feltetelen belul, de oda igy soha nem jutna el, meg az egyebkent is
0-ra allitja nem 1-re...)
--
((( Móczik Gábor )))--((( pm -> @ -> progzmaster -> . -> hu )))
((( Skype: moczik )))--((( Website: http://www.progzmaster.hu )))
More information about the Elektro
mailing list