<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MSP430學習點滴——看門狗定時器

          MSP430學習點滴——看門狗定時器

          作者: 時間:2016-11-21 來源:網(wǎng)絡 收藏
          看門狗有三種工作模式:停止模式,計時器模式,看門狗模式。
          控制寄存器WDTCTL由兩部分組成,高8位用作口令,低8位實現(xiàn)對WDT的控制操作。要實現(xiàn)對WDT的操作控制,必須先寫入高字節(jié)看門狗口令。口令為5AH,頭文件里一般將WDTPW宏定義為5AH.WDTCTL寄存器各位定義如下:
          15~8 7 6 5 4 3 2 1 0
          口令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1 IS0
          IS0 IS1 選擇看門狗定時器的定時輸出,其中T是WDTCNT的輸入時鐘源周期。一般宏定義WDTIS0為0x0001,WDTIS1為0x0002.
          0 T*2^15(PUC復位后的值)
          1 T*2^13
          2 T*2^9
          3 T*2^6
          SSEL 選擇WDTCNT的時鐘源。一般宏定義WDTISSEL為0x0004.
          0 SMCLK (PUC復位后的值)
          1 ACLK
          CNTCL 當該位為1時清除WDTCTL。一般宏定義WDTCNTL為0x0008.
          TMSEL 工作模式的選擇。一般宏定義WDTTMSEL為0x0010.
          0 看門狗模式(默認)
          1 定時器模式
          NMI 選擇RST/NMI引腳功能,在PUC后被復位。一般宏定義WDTNMI為0x0020.
          0 RST/NMI引腳為復位端
          1 RST/NMI引腳為邊沿觸發(fā)的非屏蔽中斷輸入。
          NMIES 選擇中斷的邊沿觸發(fā)方式。一般宏定義WDTNMIES為0x0040.
          0 上升沿觸發(fā)NMI中斷
          1 下降沿觸發(fā)NMI中斷
          HOLD 停止看門狗定時器工作降低功耗。一般宏定義WDTHOLD為0x0080.
          0 WDT功能激活
          1 時鐘禁止輸入,計數(shù)停止。
          因此,可以根據(jù)WDTCTL寄存器的TMSEL和HOLD控制位設置WDT工作在看門狗模式、定時器模式和低功耗模式。
          C語言實現(xiàn)低功耗模式的語句:
          WDTCTL = WDTPW + WDTHOLD;
          C語言實現(xiàn)定時器模式的語句:
          WDTCTL =WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0;
          C語言實現(xiàn)看門狗模式的語句:
          設置看門狗:WDTCTL = WDT_MRST_0_5 =WDTPW+WDTCNTCL+WDTIS1;
          清看門狗:WDTCTL = WDTPW+WDTCNTCL;(默認32ms)


          關鍵詞: MSP430看門狗定時

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();