TI TMS320F28069上的定时器中断:
我正在使用三个计时器中断例程(计时器0、1、2)。 Timer1和 Timer2是我的问题。
Timer1每秒运行一次、持续2毫秒(执行长例程)。
定时器2每60微秒运行20微秒(执行一个短例程)。
问题:Timer2 是否有办法中断 Timer1、以便 Timer2始终可以每60微秒运行一次而不丢失任何中断?
当前、当 Timer1正在运行时、Timer2必须等待 Timer1完成2毫秒代码执行。
感谢你的任何帮助
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.
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更高的优先级。"
请尝试一下。 如果您需要任何进一步的帮助、请告诉。