看门狗当做计数器设想
我使用PIC12F629,想使用器看门狗当作长时间定时的计数器。根据TO==0 来判断是否是由看门狗引起的复位
例如:
我需要一个1分钟左右的事件(精度要求并不高),当GPIO ==0时,一分钟后执行这个事件,想利用看门狗实现,当看门狗定时器在最大分频时,复位时间为2.3 秒。计数30次就激发这个时间。
下面是 我的伪代码,大家帮我推断一下,此方案是否可行。
#include <pid.h>
unsigned char nWtdReset = 0;
voidmain(void)
{
if( TO == 0)
{
//// 看门狗复位后的 初始化 代码
nWtdReset++;
if(nWtdReset >30)
{
//激发事件
nWtdReset =0;
}
}
else
{
// 正常初始化 代码
}
while( GPIO1 == 1)
{
//处理数据
CLRWTD();
nWtdReset = 0;
}
} 正常情况下 GPIO==1 时,系统工作,并且要求很高实时性,我试过如果定时器中断代码太多时,会引起其他代码的延时准确性。
当GPIO ==0 时,认为设备已经掉线,一分钟后报警,
故意设计成这样
少写了点代码,让人误会了。
while(1)
{
while(GPIO==1)
{
//Do Someting
CLRWTD();
.........
}
}
页:
[1]