This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LC4357:为电机控制生成中断

Guru**** 2466550 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1053762/tms570lc4357-generating-interrupt-for-motor-control

器件型号:TMS570LC4357

大家好、我需要一些帮助来生成用于电机控制目的的中断服务例程。

目前、我有一个嵌入式系统 、它在一个开关案例上安排了任务。 每个任务都计划运行1 毫秒、总共有10个任务、总共10毫秒。

这些任务包括:

  • 根据编码器值计算电机转速
  • 检查障碍物
  • 正在检查 CAN 通信
  • 用于更改状态、目标速度的监控逻辑
  • 电机控制- PID 控制器、用于确定输出 PWM
  • (和其他功能)

但是、由于此电机控制功能每10ms 运行一次、因此输出 PWM 仅每10ms 更新一次、这会导致 不良的控制性能、因为实际速度系统配置无法 密切跟踪所需的速度系统配置。

为了改进电机控制、我想知道是否有可能生成一个中断服务例程、此例程能够在一个高于10ms 的频率上运行一个 PID 控制功能(例如、在1kHz 或者10kHz 的频率上)。 而不是在任务调度程序内部、而不会影响其他10ms 任务的性能。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您可以将 RTI0比较0用于 PID 控制功能、并将其他 RTI 比较用于其他任务。  

    RTI0比较0中断的优先级高于其它 RTI 比较中断。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是否可以在不更改其他任务的调度的情况下完成此操作?  

    我想为电机控制创建一个中断、该中断与10ms 任务的循环调度相互排斥和分离。 这是因为其他任务涉及许多其他函数、这些函数可能用于通信或安全相关函数、我不想更改其任务调度的架构。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ke、

    如果电机控制中断具有更高的优先级、则任务执行将延迟。