Liu6889 2023-10-17 00:02 采纳率: 80%
浏览 46
已结题

STM32定时器,一个定时器的中断影响另一个定时器的pwm输出

最近在玩平衡小车,用一个定时器产生定时中断处理数据,另一个定时器产生PWM波,然后会因为进入中断而影响PWM波的输出,然后车轮就一抽一抽的,特别诡异

  • 写回答

2条回答 默认 最新

  • 嵌入式开发梦水 2023-10-17 00:07
    关注

    总结平衡小车出现的各种问题汇总

    平衡小车的设计确实需要考虑很多因素,包括定时中断和PWM波的控制。如果你的车轮出现抽搐的问题,可能是由于定时中断和PWM波之间的冲突所导致的。

    首先,你可以确保两个定时器的中断优先级设置正确。如果一个中断的优先级较高,它会在另一个中断之前被处理,从而可能导致不稳定的PWM波输出。

    其次,定时中断处理数据的时间应该尽可能短,以避免对PWM波输出的干扰。你可以使用中断处理函数内部的一些优化技巧,例如使用一些临时变量和缓存,以减少处理时间。

    此外,你还可以考虑对PWM波的输出进行缓冲处理,以平滑输出。可以使用一个缓冲数组来存储每个周期的PWM波占空比值,并在定时中断处理数据时对缓冲数组进行更新。然后,在PWM波产生的中断中,从缓冲数组中读取占空比值,以确保稳定的输出。

    最后,如果以上方法没有解决问题,还可以考虑使用更高级的控制算法,例如PID控制,以更精确地控制平衡小车的运动和PWM波的输出。

    总之,解决平衡小车抽搐问题需要综合考虑多个因素,包括中断优先级、处理时间、缓冲处理等。希望以上建议能对你有所帮助!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月17日
  • 已采纳回答 10月17日
  • 创建了问题 10月17日

悬赏问题

  • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
  • ¥50 苹果MGIE项目部署缺少emb权重
  • ¥15 采用ansys进行机翼在特定路径下的打孔过程中的受力分析
  • ¥15 单片机adb主机连接手机,usb调试密钥无法保存
  • ¥15 已知X和Y有以下关系,求X和Y的关系式
  • ¥15 net core 同时编辑怎么防止数据多保存了
  • ¥15 matlab做ba模型让其在ba和er规则下生长
  • ¥15 请问Quartus的Verilog代码怎么写?
  • ¥100 Mac 版foxmail 收邮件问题
  • ¥15 QWebEngineView