[讨论] 除了定时器我还能用啥来喂狗

simonprince   2010-2-4 12:25 楼主
我用了一个看门狗芯片LTC1232,想每100ms喂狗,程序如下,OK没问题。
但现在我的两个定时器都要用到别的地方,做计数器用,难道我要在主程序里面每过一段时间喂狗码?
请高手指教


void time0() interrupt 1//定时器中断time0
{
  TH0=(65536-60000)/256;
  TL0=(65536-60000)%256;
  count++;
  P0_4=1;
  if(count==2)
     {
       P0_4=0;//100ms喂狗
    count=0;
      }
}

[ 本帖最后由 simonprince 于 2010-2-4 13:33 编辑 ]
要把目标订的实现起来辛苦一点!

回复评论 (15)

你用的是51还是52
点赞  2010-2-4 14:24

回复 沙发 tiankai001 的帖子

AT89S52,
您是说P1口的第二功能吗
要把目标订的实现起来辛苦一点!
点赞  2010-2-4 14:38
S52有3个定时器啊,用一下那第三个定时器哦

还有:在主程序里面喂狗也是可行的,我们以前用会编写程序的时候就是在主程序里喂狗的。
汇编的优点就是能够根据指令准确计算一段程序运行了多长时间,所以在汇编程序里,看门狗在主程序中定时喂狗完全可以。
但是C语言的准确执行时间不好计算,所以如果在主程序中喂狗的话,一定要计算好每段程序执行的时间,确保按时喂狗。
点赞  2010-2-4 14:55

回复 4楼 tiankai001 的帖子

您是说P1口的第二功能吧,P1.0是有个T2的功能。但是已经用到别的地方了,没法更改了
要把目标订的实现起来辛苦一点!
点赞  2010-2-4 15:03
除了在主程序里喂狗,没有别的办法了吗?
要把目标订的实现起来辛苦一点!
点赞  2010-2-4 15:04
纠正一下你的问题。因为很晚了。不多说
首先,定时器喂狗,这本身就是错误的习惯,一个良好的嵌入式设计,是绝对不会出现定时器喂狗的。要知道定时器是中断,那么就会发生定时器正常单程序跑非的情况。
其次,喂狗是任何时间都可以喂的,哪怕你代码全部都是喂狗也没有问题。狗只需要你不大于规定时间喂即可。
那么关于你这里的问题,我建议应如下解决。如果你这个是顺序执行代码。也即没有操作系统一类的。应计算代码执行时间,定间隔喂狗。如果是任务切换式的操作系统类,则在操作系统调用分任务入口喂狗。

绝对不要出现定时器中断喂狗然后程序继续飞。
点赞  2010-2-5 00:22

回复 7楼 leang521 的帖子

谢谢 leang521
明白了
要把目标订的实现起来辛苦一点!
点赞  2010-2-5 07:22
引用: 原帖由 simonprince 于 2010-2-4 15:03 发表
您是说P1口的第二功能吧,P1.0是有个T2的功能。但是已经用到别的地方了,没法更改了



定时器是不需要用到单片机的引脚的,52单片机有3个定时器,你全部用来做外部计数端口用了吗?

如果没有,那就用这个做定时器定时喂狗。

6楼说的很有道理,领教了
点赞  2010-2-5 07:46

回复 9楼 tiankai001 的帖子

呃。六楼?
点赞  2010-2-5 10:02

回复 9楼 tiankai001 的帖子

呵呵是7楼
P1.0去控制继电器了
哦,明白了P1.0去控制继电器的同时也能做定时器用,呵呵谢谢
要把目标订的实现起来辛苦一点!
点赞  2010-2-5 12:13
引用: 原帖由 simonprince 于 2010-2-5 12:13 发表
呵呵是7楼
P1.0去控制继电器了
哦,明白了P1.0去控制继电器的同时也能做定时器用,呵呵谢谢


看楼上说的这句话我就知道你还没有明白。P1.0只不过是一个引脚而已,不要把它定义成定时器。定时器其实就是单片机内部的一个计数器,如果学过数字电路的话你应该了解计数器是什么东西,计数器都需要一个时钟信号,每一个时钟周期引起计数器的值加1或减1,而单片机内的定时器的时钟信号即可以是单片机内部的系统时钟,也可以是从单片机外部引脚输入的信号,这也就是为什么一般的书上都叫它为定时/计数器,使用内部时钟的话就一般都当作定时用,从外部引脚接入一般都是用来记录外部事件发生的次数。所以当你把外部输入的引脚当作它用的时候并不影响定时器使用内部系统时钟。从楼主的回答感觉楼主数电好像还不过关啊,还是补一补吧,要不然做和硬件相关的东西的时候总会出现问题的。

[ 本帖最后由 wangjiafu1985 于 2010-2-5 14:38 编辑 ]
只有求知欲,没有求偶欲的人是植物,只有求偶欲,没有求知欲的人叫动物,既没求知欲,又没求偶欲的人是矿物。
点赞  2010-2-5 14:35
长见识了,呵呵
点赞  2010-2-5 14:51

回复 12楼 wangjiafu1985 的帖子

恩,受教了,谢谢
要把目标订的实现起来辛苦一点!
点赞  2010-2-5 16:15
晕。以为你P1.0去看门狗喂狗。有一种看门狗只要定时输出一个脉冲就能喂狗。
如果你用P1.0做定时器第二功能输出还是不要了。那只是定时器脉冲。
点赞  2010-2-8 11:13
讲得很好
点赞  2014-3-22 16:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复