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.

[参考译文] TMS320F28075:获得外部中断。

Guru**** 2979400 points

Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/862281/tms320f28075-getting-external-interrupt

器件型号:TMS320F28075
Thread 中讨论的其他器件:SYSBIOS

您好!

我在 GPIO2上有一个外部中断。

在 SYS/BIOS 中定义的 ISR 函数、如所附的屏幕截图所示。

初始化时、我按以下方式配置它、但我没有到达 ISR 函数。  

在示波器上、我看到每100ms 发出1ms 的宽信号。

请告知可能出错的地方。 我错过了什么吗?

感谢您的帮助、

Alex。

EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; // GPIO2
GpioCtrlRegs.GPADIR.bit.GPIO2 = 0; //显式输入
GpioCtrlRegs.GPAQSEL1.bit.GPIO2 = 0; //// XINT1同步到 SYSCL
EDIS;

EALLOW;
InputXbarRegs.INPUT4SELECT = 2; // XINT1为 GPIO2
EDIS;

XintRegs.XINT1CR.bit.polarity = 1; //中断被选为正边沿触发。
XintRegs.XINT1CR.bit.ENABLE = 1; //启用 XINT1

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

    我看不到您的代码有什么问题。 您能否在寄存器视图中确认所有中断均已正确启用(IER 设置、PIEIER1.INTx4设置)? 如果您在寄存器视图中手动设置 PIEIFR1、您的 ISR 是否会被触发?

    如何测试 ISR? 断点来控制它吗?

    惠特尼

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

    所有寄存器看起来都正常、但我仍然没有到达 ISR (是的、我在其中设置一个断点):

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

    在您共享的这些屏幕截图中、PIEIFR1.INTx4是设置的、因为您手动设置它(就像我在上一篇文章中询问的实验)、还是仅通过运行代码并可能检测 GPIO2上的边缘来设置它。

    如果只通过运行代码进行设置、请查看清除 PIEACX.ACK1是否足以使中断运行。

    如果这是因为您手动设置它、请检查内核寄存器下的 IER。INT1和 ST1.INTM。 此外、检查 ROV 以查看 SYSBIOS 是否检测到错误、并确保 Hwi 实例按预期显示在 Hwi 段中。

    惠特尼

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

    它是在运行代码时设置的。

    清零 ACK1不会产生任何结果-在100ms 内、我得到另一个脉冲、该脉冲会将该位重新置位。

    从屏幕截图中可以看到、我有2个来自不同 GPIO (GPIO2和 GPIO78) XINT1和 XINT2的外部中断。 它们的定义方式相同。 它可能会产生麻烦吗?

    Alex。

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

    在 ROV 中、我没有看到任何错误。

    在 Hwi 部分中、我看到以下内容:

    IRP 显示我从未进入 ISR。  

    对于两个外部中断、DisableMask 和 RestoreMask 是否应该相同?

    Alex。

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

    感谢您提供更多信息。 最好确认检测到边沿并且 PIE 寄存器至少看起来运行正常。

    这些屏蔽默认为中断所处的 IER 组。 由于 XINT1和 XINT2位于同一组中、因此屏蔽是相同的。 这不是问题。

    您是否检查了 IER.INT1和 ST1.INTM? INTM 可能还不错、因为您的 CAN ISR 和时钟节拍似乎正常工作、但我想至少确保内核寄存器 IER。INT1。

    惠特尼

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

    已解决!

    实际上、IER 未启用...

    非常感谢。

    对我来说很遗憾