單片機(jī)
大家好:
我在用單片機(jī)向外寫地址的時候不知道什么時候該用(volatile unsigned char near*)和 ,應(yīng)用的場合有什么不同??
最好不要解釋成以下類似的了,我只是想知道二者所訪問的地址空間有什么不同。假設(shè)我現(xiàn)在有一個16位的單片機(jī),最好是舉個例子。
#define SREG (*(volatile unsigned char *)0x5F);
(unsigned char *)0x5F,AVR的SREG是八位寄存器,所以0x5F強(qiáng)制轉(zhuǎn)換為指向unsigned char類型;
volatile(可變的)這個關(guān)鍵字說明這變量可能會被意想不到地改變,這樣編譯器就不會去假設(shè)這個變量的值了。這種“意想不到地改變”,不是由程序去改變,而是由硬件去改變——意想不到;