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.

[参考译文] TMS320F28379D:中断

Guru**** 2609955 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/959447/tms320f28379d-interrupt

器件型号:TMS320F28379D

我使用 ePWM 创建了一个中断。 当我设置  EPwm1Regs.TBPRD= 1000时、它工作正常;但是当我设置  EPwm1Regs.TBPRD= 500时、它无法激活。 我的中断程序需要大约50毫微秒来执行其命令。 我正在连接我的中断程序

中断空 ePWM_INT_ISR () //每100微秒调用一次的函数
{

EALLOW;

PieCtrlRegs.PIEACX.ALL = 0xFFFF; //确认此中断以接收来自所有组的更多中断

EPwm1Regs.ETCLR.bit.INT = 0x01;

PieCtrlRegs.PIEIFR3.bit.INTx1 = 0x0;

EINT;

} 

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

    您是如何检测到它没有触发中断的? PWM 波形是否处于活动状态?

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

    我放置一个断点。 有时、我会通过在中断中定义一个变量来进行检查。 PWM 工作正常。 并且中断在时工作正常  

    EPwm1Regs.TBPRD = 300;

    我对 ePWM 中断使用了以下配置

    EPwm1Regs.ETSEL.bit.INTEN = 1; //启用 ePWM 中断"生成"。 0 -表示禁用、1 -表示启用
    EPwm1Regs.ETSEL.bit.INTSEL = 0x2; // 010 -启用事件 TBCTR=TBPRD
    EPwm1Regs.ETPS.bit.INTPRD = 0x1; // ePWM 中断(ePWMx_INT)周期选择。 01-Generate an interrupt on the first event INTCNT = 01 

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

    如果您可以检查中断是否正在触发、是否有一个值出现故障?

    NIMA

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

    谢谢! 现在我创建了一个新程序。 在该程序中、一切都很好。 非常感谢 Nima Eskandari