英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 4551|回复: 1
打印 上一主题 下一主题

看门狗当做计数器设想

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-26 00:31:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用PIC12F629,想使用器看门狗当作长时间定时的计数器。
根据TO==0 来判断是否是由看门狗引起的复位
例如:

我需要一个1分钟左右的事件(精度要求并不高),当GPIO ==0时,一分钟后执行这个事件,想利用看门狗实现,当看门狗定时器在最大分频时,复位时间为2.3 秒。计数30次就激发这个时间。
下面是 我的伪代码,大家帮我推断一下,此方案是否可行。

#include <pid.h>
unsigned char nWtdReset = 0;
void  main(void)
{
if( TO == 0)
{
   //// 看门狗复位后的 初始化 代码
  nWtdReset++;
  if(nWtdReset >30)
  {
   //激发事件
nWtdReset =0;
  }
}
else
{
  // 正常初始化 代码
}
while( GPIO1 == 1)
{
  //处理数据
        CLRWTD();
  nWtdReset = 0;
}
}
2#
 楼主| 发表于 2009-4-26 00:31:33 | 只看该作者
正常情况下 GPIO==1 时,系统工作,并且要求很高实时性,我试过如果定时器中断代码太多时,会引起其他代码的延时准确性。

当GPIO ==0 时,认为设备已经掉线,一分钟后报警,

故意设计成这样



少写了点代码,让人误会了。



while(1)

{

while(GPIO==1)

{

//Do Someting

CLRWTD();

.........



}



}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-4-30 22:51 , Processed in 0.079995 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表