看门狗是为了避免程序跑飞而设定的,可是由于看门狗是一个相似于守时器,因而能够把他当作守时器来运用
示例代码:用看门狗守时器使一个led闪耀
#include
void main( void )
{
// Stop watchdog TImer to prevent TIme out reset
WDTCTL = WDT_MDLY_32;//宏界说
IE1 |=WDTIE; //答应看门狗守时器中止
P2DIR |= BIT7;
_BIS_SR(LPM0_bits+GIE);//在这儿的话将cpu进入低功耗形式
}
#pragma vector = WDT_VECTOR
__interrupt void watchdag_TImer(void)
{
P2OUT ^=BIT7;//异或操作基本上是取反操作
}
留意这儿有一个比较好的宏界说:WDTCTL = WDT_MDLY_32;进入该宏界说会发现相似的宏界说有许多
/* WDT-interval TImes [1ms] coded with Bits 0-2 */
/* WDT is clocked by fSMCLK (assumed 1MHz) */
#define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL) /* 32ms interval (default) */
#define WDT_MDLY_8 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0) /* 8ms “ */
#define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1) /* 0.5ms ” */
#define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0) /* 0.064ms “ */
/* WDT is clocked by fACLK (assumed 32KHz) */
#define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL) /* 1000ms ” */
#define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms “ */
#define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms ” */
#define WDT_ADLY_1_9 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /* 1.9ms “ */
/* Watchdog mode -》 reset after expired time */
/* WDT is clocked by fSMCLK (assumed 1MHz) */
#define WDT_MRST_32 (WDTPW+WDTCNTCL) /* 32ms interval (default) */
#define WDT_MRST_8 (WDTPW+WDTCNTCL+WDTIS0) /* 8ms ” */
#define WDT_MRST_0_5 (WDTPW+WDTCNTCL+WDTIS1) /* 0.5ms “ */
#define WDT_MRST_0_064 (WDTPW+WDTCNTCL+WDTIS1+WDTIS0) /* 0.064ms ” */
/* WDT is clocked by fACLK (assumed 32KHz) */
#define WDT_ARST_1000 (WDTPW+WDTCNTCL+WDTSSEL) /* 1000ms “ */
#define WDT_ARST_250 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms ” */
#define WDT_ARST_16 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms “ */
#define WDT_ARST_1_9 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /* 1.9ms ” */
这儿咱们能够依据一般的需求,挑选适宜的守时时刻
提到守时时刻,这儿又不得不讲一下中止函数,在IAR这个编译环境中,一般中止函数的写法是
#pragma vector = 中止向量
__interrupt void 中止函数名(void)
{
用户程序;
}
留意,中止向量能够在430的头文件中查找,中止函数的声明有必要是void 中止函数名(void),这是由于中止函数没有返回值,也没有中止的形式参数
可是自己又在网站上看到别的一种用switch来写的,便是一个中止源对应几个中止向量,这种写法现在我还没有见过源码,所以欠好总结