• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

看门狗喂狗位置

liangeeg 2019-02-13 浏览量:1433
请问大家看门狗都在什么位置喂狗,我的程序中延时不固定时间。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 应该是在main中的while中,不可以在中断中,有时主程序不运行,可以中断是可以运行的,这样发现不了问题。

    要计算一下主程序中每一段代码的运行时间,在中间插上喂狗的代码函数

    • 发布于 2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:13
  • 喂狗的位置是程序运行的必经路上喂狗。建议不要放到中断里面去喂狗。

    另外,喂狗的时间要大于单次循环的最大时间。

    比如STM32F1的最大喂狗时间是4S。

    • 发布于2019-02-13
    • 举报
    • 评论 1
    • 2
    • 0
liangeeg 回复了 川楠 :F1的最大喂狗时间是4S??? 回复

  • 估算程序运行时间,然后根据看门狗设置的超时时间喂狗。

    一般情况下,看门狗超时时间需要超过主循环的一个最长周期,这样在主循环的任意位置喂狗都不会造成系统复位。同时还要注意主循环里尽量不要再使用while之类的阻塞性语句,不然看门狗可能会因为程序阻塞在这样的语句里来不及喂狗而触发复位中断。

    • 发布于2019-02-13
    • 举报
    • 评论 0
    • 1
    • 0

  • 定时器中断专门喂狗,优先级最高,如果不喂够肯定死机了,在其他地方喂狗时间不确定的
    • 发布于2019-02-13
    • 举报
    • 评论 0
    • 1
    • 0

  • 循环耗时较长的,没有实参的循环里可以考虑添加看门狗
    • 发布于2019-02-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般都是在大循环里面喂狗,其它中断不好用!
    • 发布于2019-02-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般是放在main函数,如果是操作系统就放到最低优先级的任务里面
    • 发布于2019-02-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 看门狗家在循环中或者定时器中断中都行,只要是固定时间内的都行。
    • 发布于2019-02-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 需要的代码之前开启看门狗,代码中添加喂狗程序,代码执行完成后关闭看门狗
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般都是放在大循环里面喂狗,把长延时替换成状态延时,检测延时变量
    • 发布于2019-02-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 程序里面延时波动大的,最好用变量记录延时时长来做延时。

    • 发布于2019-02-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 最好是直接在主循环里面喂狗,这样可以保证你的延时状态
    • 发布于2019-03-22
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

看门狗喂狗位置