430頭文件的解釋
{
本文引用地址:http://www.biyoush.com/article/201611/315510.htmunsignedshortWDTCTL;/*WatchdogTimerControl*/
struct
{
unsignedshortWDTIS0:1;/**/
unsignedshortWDTIS1:1;/**/
unsignedshortWDTSSEL:1;/**/
unsignedshortWDTCNTCL:1;/**/
unsignedshortWDTTMSEL:1;/**/
unsignedshortWDTNMI:1;/**/
unsignedshortWDTNMIES:1;/**/
unsignedshortWDTHOLD:1;/**/
}WDTCTL_bit;
}@0x0120;
enum{
WDTIS0=0x0001,
WDTIS1=0x0002,
WDTSSEL=0x0004,
WDTCNTCL=0x0008,
WDTTMSEL=0x0010,
WDTNMI=0x0020,
WDTNMIES=0x0040,
WDTHOLD=0x0080
};
WDTCTL的地址單元是0x0120后面這段是什么意思呢。聯(lián)合體?
unsignedshortWDTIS0:1;//1表示字段寬度(2進(jìn)制),這表示W(wǎng)DTISO要么是1要么是0
后面這個(gè)8個(gè)位和WDTCTL共享存儲(chǔ)單元。看userguide,WDTCTL是一個(gè)16位的寄存器,WDTIS0位于其bit0,以此類(lèi)推,WDTHOLD是bit7,復(fù)位之后這幾個(gè)位都是0。在MSP的C語(yǔ)言中,并不支持位變量。在430的IO頭文件中,用這種定義方式實(shí)現(xiàn)了對(duì)寄存器的位變量訪(fǎng)問(wèn)。
WDTCTL=WDTPW+WDTHOLD;//停止看門(mén)狗這個(gè)停止看門(mén)狗的操作如何解釋?zhuān)?/p>
WDTCTL很明顯,是看門(mén)狗控制寄存器,而WDTPW是一個(gè)宏定義,頭文件里面是這樣子的,#defineWDTPW(0x5A00u),userguide中WDTCTL是一個(gè)16位的寄存器,其中bit15-bit8名字是WDTPW,mustbewrittenas0x5a,這8個(gè)位必須初始化成0x5a。這句也就是完成了WDTPW的初始化并且將WDTHOLD置位,WDTHOLD置位的結(jié)果是看門(mén)狗定時(shí)器停止。
unsignedshortWDTNMIES:1;//看門(mén)狗定時(shí)器非屏蔽中斷邊沿選擇位。
unsignedshortWDTNMI:1;//看門(mén)狗定時(shí)器非屏蔽中斷選擇
unsignedshortWDTTMSEL:1;//看門(mén)狗定時(shí)器模式選擇
unsignedshortWDTCNTCL:1;//看門(mén)狗定時(shí)器計(jì)數(shù)器清零選擇位
unsignedshortWDTSSEL:1;//看門(mén)狗定時(shí)器時(shí)鐘源選擇
unsignedshortWDTIS0:1;//看門(mén)狗定時(shí)間隔選擇
unsignedshortWDTIS1:1;//時(shí)間間隔選擇
PUC上電清零powerupclear
評(píng)論