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.

[参考译文] TMS320F28069:TI TMS320F28069上的定时器中断

Guru**** 2540720 points
Other Parts Discussed in Thread: TMS320F28069

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/623385/tms320f28069-timers-interrupt-on-ti-tms320f28069

器件型号:TMS320F28069

TI TMS320F28069上的定时器中断:

 

我正在使用三个计时器中断例程(计时器0、1、2)。 Timer1和 Timer2是我的问题。

Timer1每秒运行一次、持续2毫秒(执行长例程)。

定时器2每60微秒运行20微秒(执行一个短例程)。

 

问题:Timer2 是否有办法中断 Timer1、以便 Timer2始终可以每60微秒运行一次而不丢失任何中断?

 

当前、当 Timer1正在运行时、Timer2必须等待 Timer1完成2毫秒代码执行。

感谢你的任何帮助

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

    您好!

    您的问题是具有嵌套中断。 默认情况下、C2000不支持嵌套中断。 但是、您可以使用软件来实现该目的。

    本主题中讨论了类似的问题: https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/21121

    Frank Borman 的以下回答将帮助您了解代码的顺序:

    C28x 关于中断的默认操作模式为"否-嵌套"。 但是、您可以通过自己的代码将其覆盖到"嵌套"系统中。

    默认的非嵌套序列如下所示:

    ISR1:

    1.保存硬件上下文,包括 INTM 和 IER

    2.硬件禁用 INTM 和相应的 IER 位

    执行 ISR1代码、包括 PIE 的 ACK

    4.硬件上下文恢复,包括 INTM 和 IER 在进入时设置的状态。

    嵌套 中断-系统如下所示:

    ISR1:

    1.保存硬件上下文,包括 INTM 和 IER

    2.硬件禁用 INTM 和相应的 IER 位

    3.启用这些 IER 线路,以便在 ISR1仍在运行时中断 ISR1。 此外、立即启用 INTM。 如果您的优先级更高的 INT 在同一 PIE 组内、请在此处执行 PIE-ACK。

    4.在此处执行您的 ISR1代码。  如果触发了优先级更高的 ISR (在步骤3中启用)、并且 ISR 将中断正在运行的 ISR1代码。

    5.硬件上下文恢复,包括在步骤1进入时 INTM 和 IER 的原始状态。

    ISR2:

    与 ISR1的序列相同。 在步骤3中、您可以限定其他中断源具有比 ISR2更高的优先级。"

    请尝试一下。 如果您需要任何进一步的帮助、请告诉。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢、这解决了我的中断问题