新聞中心

MSP430看門狗定時器

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


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



2.WDT interrupt:

看門狗有兩種工作模式,watchdog mode, interval mode。

WDTIFG 置位的兩種情況:在看門狗模式下發(fā)生看門狗溢出。在間隔定時模式下發(fā)生定時溢出,且全局中斷使能GIE和WDTIE均開啟。

WDTIFG在中斷服務(wù)程序后會自動清除該標記。

3.WDTCTL

WDTPW:必須寫0x5A.WDTHOLD:停止看門狗就設(shè)為1.WDTNMIES: NMI下降沿為1,上升沿為0.WDTNMI: NMI為1.WDTTMSEL:間隔定時器模式設(shè)為1.WDTCNTCL:通過該位來清除WDT計數(shù)器的值 通常設(shè)為1表示清除到0.WDTSSEL:設(shè)置時鐘源 ACLK(輔助系統(tǒng)時鐘)為1,SMCLK(子系統(tǒng)時鐘)為0.WDTISx:設(shè)置時間間隔。0-3對應(yīng)不同的分頻。

4.WDT程序:

默認在中斷中SR清零,也就是GIE是0,所以默認不會發(fā)生中斷嵌套。只有在中斷服務(wù)程序中打開GIE才能發(fā)生中斷嵌套。

#include  <msp430x14x.h>unsigned int i=0;void main(void){WDTCTL = WDT_MDLY_32;                     // Set Watchdog Timer interval to ~30msIE1 |= WDTIE;                             // Enable WDT interruptP2DIR =0xFF;                            // Set P1.0 to output directionP2OUT = 0xFF;_BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt}// Watchdog Timer interrupt service routine#pragma vector=WDT_VECTOR__interrupt void watchdog_timer(void){P2OUT = ~(0x80>>(i++));                            // Toggle P1.0 using exclusive-ORif(8==i) i=0;}



關(guān)鍵詞: MSP430看門狗定時

評論


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

關(guān)閉