TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS320F28055:在 TMS320F28055中、我已经配置了 PWM4、但是不会生成中断

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/701574/tms320f28055-in-tms320f28055-i-had-configure-pwm4-but-interrupt-is-not-generating

器件型号:TMS320F28055
Thread 中讨论的其他器件:controlSUITE

您好、先生、

我已将 PWM 4配置为以固定的间隔生成中断、我正在获取中断标志、但控制不会进入 ISR。 下面是我的设置。

如果我缺少任何设置、请告诉我。

EALLOW;
SysCtrlRegs.PCLKCR1.bit.EPWM6ENCLK = 1;// ePWM7
//设置 TBCLK
EPwm6Regs.TBPRD = 3000;//设置计时器周期3000 TBCLK
EPwm6Regs.TBPHS.Half.TBPHS = 0x0000;//相位为0
EPwm6Regs.TBCTR = 0x0000;//清除计数器
//设置计数器模式
EPwm6Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;//向上计数
EPwm6Regs.TBCTL.bit.PHSEN = TB_DISABLE;//禁用相位加载
EPwm6Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;//时钟与 SYSCLKOUT 的比率
EPwm6Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm6Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;
//中断使能
EPwm6Regs.ETSEL.bit.INTEN = 1;//
EPwm6Regs.ETSEL.bit.INTSEL = ET_CTR_PRD;//从计数器选择 Int = PRD
EPwm6Regs.ETPS.bit.INTPRD = et_1st;//在发生第一个事件时生成脉冲

PieVectTable.EPWM6_INT =&timer50us_ISR;
IER |= M_INT3;//为捕捉中断启用 CPU INT3
PieCtrlRegs.PIEIER3.bit.INTx6=1;//在 PIE 组3中启用 EPWM7 int
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;//停止所有 TB 时钟
EDIS;

谢谢  

Yogesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、我也检查了 PWM 4和 PWM 6。 我在这里附加了 PWM 6的代码。 对于两个 PWM、我将获得相同的结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是我的 ISR 例程、
    中断空 timer50us_ISR (空)

    while (1);
    EPwm6Regs.ETCLR.bit.INT = 1;

    PieCtrlRegs.PIEACX.ALL = PIEACK_Group3;


    直到这里才开始进行控制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否启用了全局中断

    //启用全局中断和更高优先级的实时调试事件:
    EINT;//启用全局中断 INTM
    ERTM;//启用全局实时中断 DBGM

    BTW 中提供了一些示例
    C:\ti\controlSUITE\device_support\f2805x\v104\F2805x_examples_ccsv5\ePWM_timer_interrupts

    希望这将有助于解决问题。

    我现在要关闭这个线程。 如果问题未解决、您可以回复、如果在30天内、该主题将重新打开。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我启用了 GLOBLE 中断。 那么、我也没有收到中断。  

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

    我在回复一个有点类似的帖子、但遇到了中断生成问题。
    e2e.ti.com/.../2584970
    您能否检查以下内容?

    1.模块是否产生中断?
    请检查相应 ePWM 的 ETFLG 寄存器是否设置。 如果已设置、请清除该设置并确保在预定时间设置。
    如果此步骤不起作用、则表示模块或中断配置有误。
    一旦中断从模块生成、它就会传输到 PIE。 检查 IER/ACK 等
    CPU 正在执行 ISR -它是否正在执行一些随机/未初始化的代码? 如果是、则应检查 PieVector 表 ISR 地址。

    禁用系统中的所有其他中断并仅为调试目的启用此中断也是不错的选择。