看门狗的使用方法例程(C语言)
源代码在线查看: wdt模块使用说明.txt
WDT模块使用说明:
1 必须#include "wdt.h"以及相应的芯片头文件
2 使用方法
第一步 选择WDT模式
(1) 关闭WDT模式 调用WDTStop(),完成。
(2) WDT定时模式 调用WDTTimerSet(),然后到第二步。
(3) WDT看门狗模式,默认选择,直接到第二步。
第二步 选择WDT时钟
选择SMCLK 调用WDTSMCLKSet(),选择ACLK,调用WDTACLKSet()。
第三步 选择WDT时间间隔
WDTTIMESet(BYTE interval)
使用ACLK=32768HZ时,interval可以直接调用T1000MS,T250MS,T16MS,T2MS。
使用SMCLK时,interval=0 WDTFREQ=SMCLK/32768
interval=1 WDTFREQ=SMCLK/8192
interval=2 WDTFREQ=SMCLK/512
interval=3 WDTFREQ=SMCLK/64
第四步 如果是看门狗模式 则在主循环或者中断中调用WDTRefresh(),不停的清零WDTCNT。
如果是定时模式,可以选择查询方式或者中断方式定时。
使用中断方式必须开GIE和WDTIE:
_BIC_SR(GIE); //close interrupt
IE1 |= WDTIE; //open WDT interrupt
_BIS_SR(GIE); //open interrupt
中断写法:
interrupt[WDT_VECTOR] void WDT_ISR(void)
{
}
主意:使用查询方式,不要开WDT定时中断。
3 NMI功能:RST/NMI引脚默认为RST功能。
需要设为NMI功能时调用void NMISet(BYTE edge)
edge=FALLING或者RISING 选择触发边缘。