工具/软件:Code Composer Studio
您好!
是否有人知道如何在"controlSUITE \ device_support \ F2837xD \ V200 \ F2837xD_examples_CPU1 \ eQEP_pos_speed"示例中增加执行速度计算的频率?
谢谢你
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"示例中增加执行速度计算的频率?
谢谢你
您好!
更改 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 模块(配置为更高的频率)以更快的速率触发中断。
您好!
您能否进一步调试并提出更具体的观察结果?
QEP 计数是否不正确? 单元计时器是否未按照您的预期运行?
您是否在示波器上监控了输入信号? 预期速度与实际速度是多少?
尝试找出根本原因、这可能有助于我们识别和修复实现目标所需的任何软件。
您最初的问题是能够更频繁地进行速度计算-这应该通过更频繁地调用函数来完成、正如我们在上面讨论的那样。 如果不发生这种情况或导致一些错误值、那么深入探究并查看错误的确切来源将会很有帮助。