📄 internalwatchdog.c
字号:
#include "..\..\includes.h"
#if CFG_INTERNAL_WATCH_DOG_TIMER_EN>0
//------------------------------------------------------
// 看门狗定时器初始化
//------------------------------------------------------
extern void WDT_Init(void)
{
WDT_INT_DIS();
WDT_RESET_DIS();
WDT_CLEAR();
WDT_SetTimeoutValue( 3 );
}
//------------------------------------------------------
// 设置看门狗定时器的超时值
//
// 参数含义:
// value 看门狗中断响应 看门狗溢出复位系统
// 0 2^17 2^17 + 512
// 1 2^20 2^20 + 512
// 2 2^23 2^23 + 512
// 3 2^26 2^26 + 512
//------------------------------------------------------
extern void WDT_SetTimeoutValue( INT8U value )
{
INT8U mask;
value &= 0x03;
mask = CKCON;
mask &= 0x3F;
mask |= (value<<6);
CKCON = mask;
}
//------------------------------------------------------
// 看门狗定时器中断服务程序
//------------------------------------------------------
void WDT_ISR( void ) interrupt WATCH_DOG_VECTOR_NUMBER
{
// 清除看门狗定时器中断
TA = 0xAA;
TA = 0x55;
WDIF = 0;
// 清0看门狗定时器,相当于定时器从新计数
WDT_CLEAR();
//CommSendString( UART0, "Watchdog Timer interrupt occured.\n" );
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -