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.

[参考译文] AM2631:如何在后台断点之后使 PWM 中断保持正常工作

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1290765/am2631-how-to-keep-pwm-interrupts-working-after-a-background-breakpoint

器件型号:AM2631

我有一个基于 PWM0的主(FIQ) 40kHz 中断和一个使用 PWM31的低优先级(IRQ) 5kHz 中断。 如果我在调试器中暂停我的应用、并且恰好该暂停发生在这些中断之一之外、那么两个中断都不会再次发生(直到我重新加载应用程序)。 如果我碰巧在中断内停止、中断将继续工作。 我已将 PWM TBCTL FREE_SOFT 设置为0、因此它应该停止计数。 如果我在调试器寄存器视图中手动清除 PWM 事件(ETCLR=1)、我可以使 PWM-ISR 再次发生一次。 我查看了 VIM、PWM 和工程属性、以便查看我是否可以配置任何额外的东西、使中断在断点之后保持运行。 您对我可以查看的内容有什么建议吗?

谢谢。

吉姆

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

    Jim、您好!

    PWM 中断是否在您的应用程序中配置为"脉冲"中断?

    具体而言、 在构建 Hwi 参数时、hwiPrms.isPulse 是否设置为1?

    以下是配置 PWM 中断的示例:

    HwiP_Params_init (&hwiPrms);
    hwiPrms.intNum = CSLR_R5FSS0_CORE0_CONTROLSS_INTRXBAR0_OUT_0;
    hwiPrms.callback =&App_epwmIntrISR;
    hwiPrms.isPulse = APP_INT_IS_PULSE;
    状态= HwiP_structure (&gEpwmHwiObject、&hwiPrms);

    SDK 示例: epwm_hr_duty_cycle

    使用上述设置、我们观察到 PWM 中断在到达后台的断点后继续运行。

    您可以尝试一下这个例子吗?

    谢谢

    k. 桑杰耶夫