鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    在使用fishros的esp32主板时,我用定时器中断对电机进行pid控制,遇到的问题是中断放一个upspeed函数,有卡中断的问题,现象是板子一直在重启

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    esp32 代码求助
    3
    7
    304
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 诸
      诸葛马后
      最后由 编辑

      我尝试把中断时间给50ms,100ms也没有

      721685f1-a396-4d7f-b5f7-f40e8eea8aae-111dab586cf58b724d2e6bc507e809b.png
      56cef65d-78c9-41d9-b13f-dc3670750088-dc3a9199b4889b6e8f3eeda173f1327.png

      e7afc6c1-833d-4250-aeaf-6005b0409ff9-image.png

      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        在使用ESP32主板配合fishros进行开发时,遇到定时器中断导致板子重启的问题,这通常与中断处理不当有关。以下是对该问题的分析和解决建议:

        问题分析

        1. 中断处理函数阻塞:

          • ESP32的中断处理函数需要快速执行,避免阻塞。如果upspeed函数执行时间较长或者包含阻塞操作(如串口通信、大量计算等),可能会导致中断处理不及时,进而触发看门狗定时器(WDT)复位。
        2. 看门狗定时器超时:

          • ESP32内置看门狗定时器用于监控程序的运行状态。如果中断处理函数或其他任务长时间占用CPU资源,未能在看门狗定时器设定的时间内“喂狗”(即重置看门狗定时器),则看门狗定时器会触发复位,导致板子重启。
        3. 中断优先级和嵌套:

          • 如果中断优先级设置不当或发生中断嵌套,也可能导致程序运行异常,进而触发复位。

        解决建议

        1. 优化中断处理函数:

          • 尽量减少中断处理函数中的计算量和阻塞操作。如果必须在中断中执行复杂任务,可以考虑将任务拆分为多个小任务,并在主循环中处理。
          • 使用标志位来标记中断的发生,并在主循环中检查该标志位,根据标志位执行相应的任务。
        2. 调整看门狗定时器设置:

          • 如果确定中断处理函数需要较长时间执行,可以尝试增加看门狗定时器的超时时间。但请注意,这可能会掩盖其他潜在的问题,因此应谨慎使用。
        3. 检查中断优先级和嵌套:

          • 确保中断优先级设置合理,避免高优先级中断被低优先级中断长时间阻塞。
          • 如果发生中断嵌套,确保嵌套的中断处理函数能够快速执行完毕。
        4. 使用硬件定时器而非软件定时器:

          • 硬件定时器具有更高的精度和可靠性,建议在需要精确控制时间间隔的场景下使用硬件定时器。
        5. 调试和测试:

          • 使用串口调试助手等工具输出中断处理函数中的关键信息,以便跟踪和定位问题。
          • 逐步排除可能的原因,通过对比测试确定问题的根源。

        结论

        ESP32板子在定时器中断中调用upspeed函数导致重启的问题,很可能是由于中断处理函数阻塞或看门狗定时器超时引起的。建议优化中断处理函数,减少阻塞操作,并使用标志位在主循环中处理复杂任务。同时,检查中断优先级和嵌套情况,确保程序能够稳定运行。如果问题依旧存在,可以考虑调整看门狗定时器的设置或进一步调试和测试程序。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        诸 1 条回复 最后回复 回复 引用 0
        • 诸
          诸葛马后 @小伊
          最后由 编辑

          @小伊 看门狗怎么看

          1 条回复 最后回复 回复 引用 0
          • 小伊小
            机器人小伊
            最后由 编辑

            “看门狗”一词具有多重含义,以下是对不同含义下“看门狗”的看法:

            一、作为狗的种类

            “看门狗”通常指的是那些能够看守门户、守护人类安全与财产的狗的统称。这类狗一般灵敏性较强,嗅觉和听觉敏锐,晚上即使睡觉也保持着高度的警觉性,对陌生的声音很敏感,一旦发现异动就会发出警叫声。它们是人类忠实的守护者,为主人的安全提供了有力的保障。因此,从这一角度来看,“看门狗”是值得赞扬和信赖的。

            二、作为媒体的定位

            在经典自由主义传播学说中,“看门狗”(watchdog)被用来定位媒体的角色。秉持公正、客观立场的媒体被视为代表民众监督政府行为的“看门狗”,或又称为“人民的忠犬”。例如,20世纪70年代越战期间,《纽约时报》刊发《美国的越南战争决策史》,构成最终迫使美国政府停止越战的重要因素之一,这一行为被视为“看门狗”履行职能的典型体现。从这一角度来看,“看门狗”象征着媒体的监督力量和为民发声的职责,是维护社会公正和民主的重要力量。

            三、作为计算机术语

            在计算机领域中,“看门狗”(watchdog)通常指的是一个定时器电路,用于监控系统的运行状况。当系统程序出现错误或陷入死循环时,“看门狗”会发出复位信号,使系统重新启动,从而避免系统崩溃或数据丢失。这一机制对于保障计算机系统的稳定性和可靠性至关重要。因此,从这一角度来看,“看门狗”是计算机系统不可或缺的安全保障措施。

            四、作为贬义词

            在某些语境下,“看门狗”可能被用作贬义词,用来形容那些仗势欺人、为虎作伥的人。然而,这种用法并不符合“看门狗”一词的本意,也不应成为主流理解。在使用时应避免将其误解或滥用为贬义词。

            综上所述,“看门狗”一词具有多重含义,在不同语境下可能具有不同的象征意义。在理解和使用时,应根据具体语境进行准确解读和恰当运用。


            以上为生成回答,仅供参考~

            我是小伊,已接入ChatGpt,所有回复,仅供参考~

            1 条回复 最后回复 回复 引用 0
            • 小鱼小
              小鱼 技术大佬 @诸葛马后
              最后由 编辑

              @诸葛马后 不要用中断了,改任务

              新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

              诸 1 条回复 最后回复 回复 引用 0
              • 诸
                诸葛马后 @小鱼
                最后由 编辑

                @小鱼 在 在使用fishros的esp32主板时,我用定时器中断对电机进行pid控制,遇到的问题是中断放一个upspeed函数,有卡中断的问题,现象是板子一直在重启 中说:

                改任务
                改任务什么意思?

                小鱼小 1 条回复 最后回复 回复 引用 0
                • 小鱼小
                  小鱼 技术大佬 @诸葛马后
                  最后由 编辑

                  @诸葛马后 建议学一下freertos

                  新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                  1 条回复 最后回复 回复 引用 0
                  • 第一个帖子
                    最后一个帖子
                  皖ICP备16016415号-7
                  Powered by NodeBB | 鱼香ROS