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.

[参考译文] TMS320F28027:ePWM#39中的 Iq ISR 超前 ISR 运行缓慢

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1133280/tms320f28027-iq-in-epwm-s-isr-lead-isr-run-slowly

器件型号:TMS320F28027

大家好、

我们的客户发现以下代码导致 ePWM 的 ISR 运行缓慢:

Fullscreen
1
2
spwmiqvar.sinvale = _IQsin(_IQmpy( (_IQ(spwmiqvar.spwm_cnt)+_IQ(0.75)),_IQ(SIN_B) ) ) ;
spwmiqvar.sina =_IQmpy(spwmiqvar.sinvale,_IQ(spwm_factor)) ;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

spwmiqvar.spwm_cnt :uint16_t

通过 使用#define、SIN_B 为0.02456

spwm_factor :float

spwmiqvar.sinvale & spwmiqvar.sina :_iq

程序加载到闪存中、从 RAM 运行。 但没有针对 IQ 类型实施此类操作。

如何加速 IQ 类型计算速度?

谢谢、此致

耶鲁李

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

    您好、Yale、

    两个乘法和正弦函 数的组合操作仍应仅为~314个执行周期(不对转换进行计数、这几乎可以忽略不计)。

    [引用 userid="514648" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1133280/tms320f28027-iq-in-epwm-s-isr-lead-isr-run-slowly 文件]\n 程序被加载到闪存中、从 RAM 运行。 但没有针对 IQ 类型实施此类操作。[/quot]

    这样、您是否意味着 IQ 库未加载到 RAM 中、而是从 RAM 运行? 您能就此澄清一下吗?

    此致、

    Omer Amir

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

    您好  Omer Amir、

    感谢您的回复!

    客户的程序被下载到闪存中、Memcopy 函数在主函数的开头被用来将其传输到 RAM 以运行。 但 IQ 库是直接使用的、不会执行类似的操作。  IQ 库能否执行类似的操作来加速计算速度?

    谢谢、此致

    耶鲁李

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

    您好、Yale、

    如果客户调试程序、并且可以通过查看"Disassembly"来验证程序是否正在从 RAM 运行、那么我不太确定导致此问题的原因。 查看用于 IQmath 的头文件、大多数代码都进行了相当优化。 没有实际的函数调用、因为它使用宏、并且宏不会过于复杂。 用户是否可以对这些代码行进行计时并查看所需的周期数? 此 链接 应提供有关如何查看周期的说明。

    此致、

    Omer Amir