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.
工具/软件:Code Composer Studio
您好!
是否有人知道如何在"controlSUITE \ device_support \ F2837xD \ V200 \ F2837xD_examples_CPU1 \ eQEP_pos_speed"示例中增加执行速度计算的频率?
谢谢你
您好!
是否要更频繁地调用速度计算函数?
它似乎应该增加 prdTick()函数调用的频率。
这由来自 ePWM 的中断生成。 您可以增加 PWM 模块的频率。
您好! 感谢您的答复、我将对其进行修改。
我希望更频繁地执行计算功能、因为它大约每200次中断执行一次速度计算。
您好!
更改 PWM 频率只会加快仿真 QEP 输入。 因为在本测试用例中、PWM 输入用于仿真 QEP 信号。
//! 到 QEP 外设的 GPIO 引脚(模拟 QEP 传感器)。
//! - GPIO20/eQEP1A <- GPIO0/ePWM1A (模拟 eQEP A 相信号)
//! - GPIO21/eQEP1B <- GPIO1/ePWM1B (模拟 eQEP B 相信号)
//! - GPIO23/eQEP1I <- GPIO4 (模拟 eQEP 索引信号)
如果我正确理解您的需求- 为了使计算更加频繁、您需要更改单位计时器周期。
EQep1Regs.QUPRD = 2000000;//频率为200MHz 时、频率为100Hz 的单位定时器
// SYSCLKOUT
您好!
是的、我将 PWM 引脚放置在 eQEP 输入上。
我修改了中的值:
EQep1Regs.QUPRD = 200000;// 100Hz 至200MHz 的单位定时器// SYSCLKOUT
您好!
正如我之前所说、本示例中的 EPWM1用于仿真 QEP 输入。 ePWM 中断用于触发速度计算。
PieVectTable.EPWM1_INT=&prdTick;
该中断被配置为在每个 ePWM 周期生成。
EPwm1Regs.ETSEL.All=0x0A;// PRD 上的中断
EPwm1Regs.ETPS.All=1;
如果希望在计数器0和 PRD 上生成中断、则可以更改 EPwm1Regs.ETSEL.All=0x0B;
如果您希望更频繁地进行计算、则可以使用不同的 PWM 模块(配置为更高的频率)以更快的速率触发中断。
您好!
您是否尝试过上述建议? 您能否解释一下您的观察结果、以及您的问题为何未能解决?
我每20kHz 执行一次中断、它向我显示相同的速度值200个样本、即每200个中断更新一次该值。
您好!
为什么您会因为测量频率更高而获得不同的速度值? 如果要更改速度值、则必须更改 QEP 信号输入的频率。
您好! 抱歉、我大约每50个样本更改一次速度、但它没有检测到速度、而是在200个样本中检测到速度。
您好!
您能否进一步调试并提出更具体的观察结果?
QEP 计数是否不正确? 单元计时器是否未按照您的预期运行?
您是否在示波器上监控了输入信号? 预期速度与实际速度是多少?
尝试找出根本原因、这可能有助于我们识别和修复实现目标所需的任何软件。
您最初的问题是能够更频繁地进行速度计算-这应该通过更频繁地调用函数来完成、正如我们在上面讨论的那样。 如果不发生这种情况或导致一些错误值、那么深入探究并查看错误的确切来源将会很有帮助。
感谢您的帮助! 但我将放弃该项目。 此致。
您好!
我希望您能在稍后回到这个项目。 祝你好运。
请继续并关闭此主题。 如果您需要任何帮助、请随时开始新的主题。