新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430教程10:MSP430單片機(jī)WDT看門狗定時(shí)器

        MSP430教程10:MSP430單片機(jī)WDT看門狗定時(shí)器

        作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
        看門狗定時(shí)器用來防止程序因供電電源、空間電磁干擾或其它原因引起的強(qiáng)烈干擾噪聲而跑飛的事故。程序中設(shè)置看門狗清零指令WDTCTL=WDTPW+WDTCNTCL,當(dāng)程序跑飛不能及時(shí)清零看門狗,導(dǎo)致看門狗溢出復(fù)位,這樣程序可以恢復(fù)正常運(yùn)行狀態(tài)。

        本文引用地址:http://www.104case.com/article/201611/316501.htm

        一、WDT寄存器包括WDTCNT和WDTCTL,兩個(gè)寄存器在上電和系統(tǒng)復(fù)位內(nèi)容全部清零

        1.記數(shù)單元WDTCNT:WDTCNT是16位增記數(shù)器,由MSP430選定的時(shí)鐘電路產(chǎn)生的固定周期脈沖信號(hào)對(duì)記數(shù)器進(jìn)行加法記數(shù)。WDTCNT不能直接軟件存取,必須通過看門狗定時(shí)器的控制寄存器WDTCTL來控制。

        2.控制寄存器WDTCTL:WDTCTL由兩部分組成,高8位用作口令,即5AH(頭文件中定義為WDTPW),低8位是對(duì)WDT操作的控制命令。寫入WDT控制命令時(shí)先寫入口令WDTPW,口令寫錯(cuò)將導(dǎo)致系統(tǒng)復(fù)位。讀WDTCTL時(shí)不需口令,低字節(jié)WDTCTL的值,高字節(jié)讀出始終為69H。
        bit 15-8 765 4 32 10
        口令HOLDNMIES NMITMSELCNTCL SSELIS1 IS0

        IS1 SI0選擇看門狗定時(shí)器的定時(shí)輸出,T為WDTCNT的輸入時(shí)鐘源周期。TMSELWDT工作模式選擇
        00 T*2的15次方0看門狗模式
        01 T*2的13次方1定時(shí)器模式
        10 T*2的9次方NMI選擇RST/NMI引腳功能
        11 T*2的6次方0RST/NMI為復(fù)位端
        SSEL選擇WDTCNT的時(shí)鐘源 1RST/NMI為非屏蔽中斷輸入
        0 SMCLK
        1 ACLK
        NMIES選擇NMI中斷的邊沿觸發(fā)方式HOLD停止看門狗定時(shí)器工作
        0上升沿觸發(fā)NMI中斷0看門狗功能激活
        1下降沿觸發(fā)NMI中斷1時(shí)鐘禁止輸入,記數(shù)停止

        二、WDT的操作

        1.用戶通過設(shè)置WDTCTL中的TMSEL和HOLD控制位使WDT工作在看門狗模式定時(shí)器模式低功耗模式三種模式。

        a.看門狗模式(TMSEL=0 ,HOLD=0)如果記數(shù)時(shí)間到,就會(huì)產(chǎn)生復(fù)位和激活系統(tǒng)上電清除信號(hào),系統(tǒng)從上電復(fù)位的地址重啟動(dòng)中斷向量為RESET_VECTOR

        b.定時(shí)器模式(TMSEL=1,HOLD=0)這一模式產(chǎn)生選定時(shí)間的周期性中斷中斷標(biāo)志位為WDTIFG中斷向量為WDT_VECTOR

        c.低功耗模式(TMSEL=X,HOLD=1) WDTCTL=WDTPW+WDTHOLD;

        2.WDT通過SSEL和IS0 IS1 3位可以確定與8種時(shí)鐘源相關(guān)的時(shí)間(ACLK=32768Hz,SMCLK=1MHz)
        WDT_MDLY_32WDT_MRST_32
        WDT_MDLY_8WDT_MRST_8
        WDT_MDLY_0_5WDT_MRST_0_5
        WDT_MDLY_0_064 WDT_MRST_0_064

        WDT_ADLY_1000 WDT_ARST_1000
        WDT_ADLY_250 WDT_ARST_250
        WDT_ADLY_16WDT_ARST_16
        WDT_ADLY_1_9WDT_ARST_1_9

        三、看門狗應(yīng)用
        使用看門狗定時(shí)器產(chǎn)生一個(gè)方波(周期性取反P1.0)

        #include "msp430x201x.h"
        void main(void)
        {
        WDT=WDT_MDLY_32;
        IE1 |=WDTIE;
        P1DIR |=0x01;
        _EINT();
        for(;;)
        {
        _BIS_SR(CPUOFF);
        _NOP();
        }
        }

        interrupt[WDT_VECTOR] void watchdog_timer(void)
        {
        P1OUT^=0x01;
        }



        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 新平| 屯昌县| 古丈县| 云浮市| 屯留县| 乐东| 梅河口市| 法库县| 泰安市| 凭祥市| 阿克苏市| 汽车| 梅河口市| 赣州市| 济阳县| 东至县| 灵山县| 德安县| 邹平县| 盐城市| 阜新市| 昌黎县| 花莲市| 贵州省| 石城县| 正镶白旗| 通道| 汨罗市| 巴楚县| 黄石市| 平顺县| 新蔡县| 白银市| 慈利县| 门源| 山西省| 武平县| 镇雄县| 永靖县| 昔阳县| 武乡县|