谁玩过看门狗?200的,怎么玩啊? 点击:769 | 回复:5



chinacupor

    
  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-03-18 18:36:11
楼主

(WDR)这个指令只是个喂狗的指令啊。

 

假如程序跑飞了,会发生神马?

 

听说,会自动把CPU转入STOP状态。。。

 

又听说,不转STOP,直接跳到程序第一行重新开始运行。。。。

 

到底怎么个意思啊?假如程序跑飞了,在规定的时间内,看门狗没有得到复位信号,会发生神马?

 

200可以设定看门狗允许的最大扫描时间么?在哪里设?还是说要自己编程??




通讯网-原创军团

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2013-03-18 19:55:31
1楼
看门狗是指,当程序跑飞了。。。有可能掉入一个死循环,比如 LJMP $。。你在原程序里编一句比如四秒钟触发一个脉冲,这个脉冲叫做喂狗脉冲。。如果看门狗一直可以接到这个脉冲,它就认为程序是正常的,如果你的程序跑飞了,掉入上面类似的陷阱,则肯定不会执行原程序里每四秒的那一个脉冲的程序,那么狗如果在超过四秒仍然收不到喂狗信号,就会产生一个复位信号,让程序复一下位。继续从0000开始执行。。。

chinacupor

  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-03-18 20:05:59
2楼
引用 通讯网-原创军团 的回复内容: 看门狗是指,当程序跑飞了。。。有可能掉入一个死循环,比如 LJMP $。。你在原程序里编一句比如四秒钟触发一个脉冲,这个脉冲叫做喂狗脉冲。。如果看门狗一直可以接到这个脉冲,它就认为程序是正常的,如果你的程序跑飞了,掉入上面类似的陷阱,则肯定不会执行原程序里每四秒的那一个脉冲的程序,那么狗如果在超过四秒仍然收不到喂狗信号,就会产生一个复位信号,让程序复一下位。继续从0000开始执行。。。


噢?怎么理解从0000开始执行这句话?

 

具体的原理我明白,我不明白的是要怎么来用他。。。

 

比如,(WDR)前面的触点有什么讲究么?是不是一个SM0.0就行了?反正只要循环不出错,那就意味着每个循环WDR都会被能流通过一次。如果程序走死了,超过一定时间能流没走到这里,WDR就没执行,然后狗就叫了。。。是这样么?

 

如果我想用WDR的报警信号干点别的,应该怎么得瑟?

chinacupor

  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-03-18 22:19:15
3楼

山寨了一个看门狗,各路高人批判一下,看看这是否也能达到目的?

NN的,立即指令只能支持Q区,为了计时能精确一点,牺牲了一个输出点。不过如果不考虑那点精度的话,其实用其他区的点也可以的,从功能上应该不影响。。。

 

chinacupor

  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-03-18 22:24:18
4楼

突然想到,如果程序走死了,T5的触点会不会闭合?

 

看来还是得弄个独立于主CPU之外的计时动作,否则无法山寨。。。

chinacupor

  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-03-19 15:17:42
5楼
晕,咋没人关注呢?看门狗这么关键的技术。。。是敝帚自珍么?

热门招聘
相关主题

官方公众号

智造工程师