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.
每个 PWM 周期中断一次。 在25kHz PWM ISR 中中断代码的执行时间明显短于 50kHz PWM ISR 中。 此外、在25kHz 及以下情况下、执行时间相同。 在50kHz 及以上时、执行时间相同。
以下针对循环代码使用25kHz PWM ISR 中的32个时钟周期和50kHz PWM ISR 中的128个时钟周期。
之所以使用 for 循环、是因为当 PWM ISR 频率超过25kHz 时、运行 DELAY_US 函数将进入非法 ISR。
反汇编代码在不同频率下也相同。
SYSCLK = 200MHz
将 SVPWM_FULL 设置为5000或1000以更改频率。
--
谢谢、此致
耶鲁
你好,耶鲁,
由于只有您提供的信息、我最好查看编译器生成的汇编代码。 (CCS Options -> Build -> C2000 Compiler -> Advanced Options -> Assembler Options -> Keep 生成的汇编语言)
是否有任何东西可以表明行为在高于特定频率时发生变化的原因? 我不确定空的 for 循环如何受 PWM 执行时间的影响。
此致、
Jason Osborn
大家好、Jason、
以下是客户提供的反汇编代码:
100kHz
20kHz
似乎没有区别。
由于只有您提供的信息,我最好的建议是看一看编译器生成的汇编代码。 (CCS Options -> Build -> C2000 Compiler -> Advanced Options -> Assembler Options -> Keep 生成的汇编语言)
您提供的方式与客户用于生成.asm 代码的方式是否不同?
是否有任何东西可以表明为什么行为发生高于特定频率的变化? 我不确定空的 for 循环如何受 PWM 执行时间的影响。
您能进一步解释一下吗?
--
谢谢、此致
耶鲁
你好,耶鲁,
我看不到任何会导致此问题的东西。 您如何确定此过程所需的时钟周期数?
此致、
Jason Osborn
请注意:.asm 生成选项、如果我没记错、应该大家都可以使用。 这是 CCS 的一部分。