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.

[参考译文] CCS/TMS320F28377S:EPWM1 ISR

Guru**** 2481075 points
Other Parts Discussed in Thread: TMS320F28377S

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/729470/ccs-tms320f28377s-epwm1-isr

器件型号:TMS320F28377S

工具/软件:Code Composer Studio

对于器件 TMS320F28377S、是否可以指定由 C 定义的 ISR 加载到闪存中并在 RAM 中运行。 例如、我定义了一个 ISR、如下所示:

#pragma CODE_SECTION (Svpwm_ISR、"ramfuncs ")

_interrupt void Svpwm_ISR (void)

{xxxx;

xxxx;

EPwm1Regs.ETCLR.bit.INT = 1;

PieCtrlRegs.PIEACX.ALL =PIEACK_Group3;

在 CMD 文件中、指定了 ramfuncs 段存储在 FLASHD 中并在 RAMLS1中运行。

 我的程序通过以下语句启用上述 ISR:

EPwm1Regs.TBCTR =0;

EPwm2Regs.TBCTR =0;

EPwm3Regs.TBCTR =0;

EALLOW;

PieVectTable.EPWM1_INT=&Svpwm_ISR;

EDIS;

EPwm1Regs.ETCLR.ALL =5;

EPwm1Regs.ETSEL.ALL =0xA09;

是否存在任何问题?每次以相同的方式启用 ISR 时、ISR 都有6%的机会无法正确启用、导致 ePWM 模块输出顺序不一致的 SVPWM 波、或导致看门狗超时(大约26ms)复位。 我不知道为什么。 但是、一旦启用 ISR、它可以连续运行。

EPWM1中断频率为6.4k。

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

    您好!

    当您说中断未启用时、您是否通过读回寄存器来检查中断、以确保其已更新或未更新?
    如果不是、您可以在代码中读回寄存器、如果未更新到预期值则停止。
    这将确切地告诉您启用 ISR 是否存在问题。
    但是、我想知道问题是否是其他问题、而不是启用 ISR。
    无论如何、您可以排除这种可能性、并查看其他可能触发看门狗的设置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否能够解决此问题? 如果未解决、请随时发布更新。