/***************************************************************
做定時器用:
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; // 對引腳取反
}