/***************************************************************
做定時(shí)器用:
WDTCTL = WDT_ADLY_1000; // 以ACLK延遲1000ms
WDTCTL = WDT_MDLY_32; // 以SMCLK延遲32ms
// 記得要開(kāi)IE1中的WDTIE和_EINT();
做看門狗用:
WDTCTL = WDT_ARST_1000; // 以ACLK設(shè)定1000ms的看門狗
WDTCTL = WDT_MRST_32; // 以SMCLK設(shè)定32ms的看門狗
// 由于在看門狗的定義里面包含WDTCNCTL
// 所以需要喂狗的時(shí)候只需要再寫一邊WDTCTL = WDT_MRST_32; 就行了
***************************************************************/
//使用看門狗定時(shí)器功能產(chǎn)生一個(gè)方波(周期的取反P3.4)。
#include <msp430x14x.h>
#include "BoardConfig.h"
void main(void)
{
BoardConfig(0xbf);
WDTCTL = WDT_ADLY_1000;//250;//
//WDTCTL = WDT_MDLY_32; // 以SMCLK進(jìn)行32ms的延遲
IE1 |= WDTIE; // 開(kāi)WDT中斷
P3DIR |= 0x10; // 信號(hào)輸出
_EINT(); // 總中斷開(kāi)
while(1)
{
_NOP();
}
}
// 看門狗 中斷服務(wù)子程序
#pragma vector = WDT_VECTOR
__interrupt void WDT_IRQ(void)
{
P3OUT ^= 0x10; // 對(duì)引腳取反
}