新聞中心

430頭文件的解釋

作者: 時間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
__no_initvolatileunion

{

本文引用地址:http://m.butianyuan.cn/article/201611/315510.htm

unsignedshortWDTCTL;/*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進制),這表示W(wǎng)DTISO要么是1要么是0

后面這個8個位和WDTCTL共享存儲單元??磚serguide,WDTCTL是一個16位的寄存器,WDTIS0位于其bit0,以此類推,WDTHOLD是bit7,復(fù)位之后這幾個位都是0。在MSP的C語言中,并不支持位變量。在430的IO頭文件中,用這種定義方式實現(xiàn)了對寄存器的位變量訪問。

WDTCTL=WDTPW+WDTHOLD;//停止看門狗這個停止看門狗的操作如何解釋?

WDTCTL很明顯,是看門狗控制寄存器,而WDTPW是一個宏定義,頭文件里面是這樣子的,#defineWDTPW(0x5A00u),userguide中WDTCTL是一個16位的寄存器,其中bit15-bit8名字是WDTPW,mustbewrittenas0x5a,這8個位必須初始化成0x5a。這句也就是完成了WDTPW的初始化并且將WDTHOLD置位,WDTHOLD置位的結(jié)果是看門狗定時器停止。

unsignedshortWDTNMIES:1;//看門狗定時器非屏蔽中斷邊沿選擇位。

unsignedshortWDTNMI:1;//看門狗定時器非屏蔽中斷選擇

unsignedshortWDTTMSEL:1;//看門狗定時器模式選擇

unsignedshortWDTCNTCL:1;//看門狗定時器計數(shù)器清零選擇位

unsignedshortWDTSSEL:1;//看門狗定時器時鐘源選擇

unsignedshortWDTIS0:1;//看門狗定時間隔選擇

unsignedshortWDTIS1:1;//時間間隔選擇

PUC上電清零powerupclear



關(guān)鍵詞: 430頭文

評論


技術(shù)專區(qū)

關(guān)閉