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.

[参考译文] TMS320F28377S:XINT4触发

Guru**** 2470720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1007613/tms320f28377s-xint4-triggering

器件型号:TMS320F28377S

您好!

我使用 XINT4在信号的上升沿触发中断。 配置如下:

XintRegs.XINT4CR.bit.ENABLE = ENABLE_XINT;
XintRegs.XINT4CR.bit.Polity = XINT_POSITIVE_EDGE_TRIGGER;
InputXbarRegs.INPUTSELECTLOCK.bit.INPUT13SELECT = 0;
InputXbarRegs.INPUT13SELECT = 91;
InputXbarRegs.INPUT13SELECT = 1;
GpioCtrlRegs.GPCLOCK.bit.GPIO91=0;
GpioCtrlRegs.GPCCSEL4.bit.GPIO91 = 2;
GpioCtrlRegs.GPCLOCK.bit.GPIO91=1;
PieVectTable.XINT4_INT =&Fault_ISR;
PieCtrlRegs.PIEIFR12.bit.INTx2 = 0;
PieCtrlRegs.PIEIER12.bit.INTx2 = 1;

出于某种原因、GPIO91从低电平变为高电平不会触发该中断。 我们对另一个 XINT 使用相同的设置、但使用不同的 GPIO、它按预期工作。 这两个函数都在同一函数中初始化、并且正在调用该 init 函数。

任何见解都值得赞赏。

谢谢、

Cameron

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

    是否可以共享您的工作 XINT 设置?

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

    你好、Nima、

    请参阅以下内容:

    XintRegs.XINT3CR.bit.ENABLE = ENABLE_XINT;
    XintRegs.XINT3CR.bit.Polity = XINT_POSITIVE_EDGE_TRIGGER;
    InputXbarRegs.INPUTSELECTLOCK.bit.INPUT6SELECT = 0;
    InputXbarRegs.INPUT6SELECT = 92;
    InputXbarRegs.INPUTSELECTLOCK.bit.INPUT6SELECT = 1;
    GpioCtrlRegs.GPCLOCK.bit.GPIO92 = 0;
    GpioCtrlRegs.GPCCSEL4.bit.GPIO92 = 2;
    GpioCtrlRegs.GPCLOCK.bit.GPIO92=1;
    PieVectTable.XINT3_INT =&Fault2_ISR;
    PieCtrlRegs.PIEIFR12.bit.INTx1 = 0;
    PieCtrlRegs.PIEIER12.bit.INTx1 = 1;

    该设置在一个上升 GPIO92信号上触发 ISR。

    谢谢、

    Cameron

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

    我在 XINT4的设置中发现了一个拼写错误。

    InputXbarRegs.INPUTSELECTLOCK.bit.INPUT13SELECT = 0;
    InputXbarRegs.INPUT13SELECT = 91;
    InputXbarRegs.INPUT13SELECT = 1;

    应为:

    InputXbarRegs.INPUTSELECTLOCK.bit.INPUT13SELECT = 0;
    InputXbarRegs.INPUT13SELECT = 91;
    InputXbarRegs.INPUTSELECTLOCK.bit.INPUT13SELECT = 1;

    不幸的是,这仍然没有解决我的问题。

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

    您可以尝试不同的 INPUTXABR + XINT 通道吗?

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

    另一个函数是重新写入 PieCtrlRegs.PIEIER12.bit.INTx2 = 0;因此我的中断被禁用。

    全部设置。 感谢你的帮助。

    Cameron