/***************************************************************
做定时器用:
WDTCTL = WDT_ADLY_1000; // 以ACLK延迟1000ms
WDTCTL = WDT_MDLY_32; // 以SMCLK延迟32ms
// 记得要开IE1中的WDTIE和_EINT();
做看门狗用:
WDTCTL = WDT_ARST_1000; // 以ACLK设定1000ms的看门狗
WDTCTL = WDT_MRST_32; // 以SMCLK设定32ms的看门狗
// 由于在看门狗的定义里面包含WDTCNCTL
// 所以需要喂狗的时候只需要再写一边WDTCTL = WDT_MRST_32; 就行了
***************************************************************/
//使用看门狗定时器功能产生一个方波(周期的取反P3.4)。
#include <msp430x14x.h>
#include "BoardConfig.h"
void main(void)
{
BoardConfig(0xbf);
WDTCTL = WDT_ADLY_1000;//250;//
//WDTCTL = WDT_MDLY_32; // 以SMCLK进行32ms的延迟
IE1 |= WDTIE; // 开WDT中断
P3DIR |= 0x10; // 信号输出
_EINT(); // 总中断开
while(1)
{
_NOP();
}
}
// 看门狗 中断服务子程序
#pragma vector = WDT_VECTOR
__interrupt void WDT_IRQ(void)
{
P3OUT ^= 0x10; // 对引脚取反
}