新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 430頭文件的解釋

        430頭文件的解釋

        作者: 時間:2016-11-17 來源:網絡 收藏
        __no_initvolatileunion

        {

        本文引用地址:http://www.104case.com/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后面這段是什么意思呢。聯合體?

        unsignedshortWDTIS0:1;//1表示字段寬度(2進制),這表示WDTISO要么是1要么是0

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

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

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

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

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

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

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

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

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

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

        PUC上電清零powerupclear



        關鍵詞: 430頭文

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 白城市| 浦北县| 福贡县| 青州市| 许昌县| 碌曲县| 昂仁县| 马鞍山市| 宝丰县| 彰化县| 刚察县| 珲春市| 开阳县| 页游| 万安县| 沙坪坝区| 武强县| 哈尔滨市| 凤阳县| 忻城县| 兴文县| 荥经县| 怀集县| 隆子县| 眉山市| 上林县| 会昌县| 耒阳市| 闽清县| 阿鲁科尔沁旗| 封丘县| 克拉玛依市| 兴城市| 曲水县| 霞浦县| 丽江市| 神池县| 淄博市| 金塔县| 宿州市| 洪湖市|