Volatile

Z MAM wiki

Přejít na: navigace, hledání

Klíčové slovo volatile v jazyce C (v překladu 'živý' či 'těkavý', jako třeba líh) znamená, že daná proměnná je přístupná ještě jiným způsobem, o kterém překladač C neví, a je nutno její obsah vždy zapsat do paměti, nebo si ho naopak z paměti přečíst, i když se to zdá zbytečné a optimalizace by umožnily čtení či zápis vynechat.

Jistě takto musíme označit registry, které ovládají periferie, protože hodnota v nich zapsaná třeba ovládá výstupy mikroprocesoru a má tedy význam ji uložit, i když ji program nikdy později nečte.

Chceme-li zapsat na určité paměťové místo a mít jistotu, že zápis opravdu v hardwaru proběhne, můžeme to udělat třeba takto:

*(volatile char*)0x25 = 0xFF;

(U procesoru ATmega88 je na této adrese PORTB.)

Osobní nástroje