Thread 中讨论的其他器件:C2000WARE
工具与软件:
您好!
定时器1 (INT13)直接连接到 CPU。
计时器 o (INT1)通过 PIE 组进行连接。
我希望 在 timer0和 timer1之间知道哪个具有最高优先级。
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.
工具与软件:
您好!
定时器1 (INT13)直接连接到 CPU。
计时器 o (INT1)通过 PIE 组进行连接。
我希望 在 timer0和 timer1之间知道哪个具有最高优先级。
您好!
编号较低的中断由 CPU 设置优先级、因此计时器0中断(来自 ePIE)的优先级将高于计时器1。 如果您需要更改这些优先级、可以提供一个 C2000ware 示例、该示例使用 CPU 计时器中断进行中断嵌套:[C2000ware install]/driverlib/f2837xd/examples/cpu1/interrupt/interrupt_ex3_sw_prioritization.
此致、
Delaney
尊敬的 Sagar:
您是否在运行 我提到的 interrupt_ex3_sw_priorityTM 示例? 计时器1 ISR 似乎嵌套在计时器0 ISR 中、这正是示例使用软件优先级配置的情况。 如果没有实现这个软件优先级、计时器0将在跳转到计时器1 ISR 之前具有完成执行的最高优先级。 该示例有效地交换了所有 CPU 计时器中断的优先级顺序。
在 CPU 级别、中断按数字方式进行优先级排序(与 ePIE 在一个组内的优先级相同)、低编号中断组具有更高的优先级(包括 INT13和 INT14组)。 每次 CPU 准备好执行另一个中断时、它将转到已启用的最高优先级中断。
此致、
Delaney
尊敬的 Delaney:
感谢您的快速响应。
在这里、我已附上我的软件、请仔细查看、如果您有任何建议、请告诉我。
尊敬的 Sagar:
您看到的这种行为看起来不是由于定时器1具有比定时器0更高的优先级、而是定时器1中断将首先进入、并且由于没有启用嵌套、即使定时器0的中断在执行期间进入、它也将运行到完成。 默认情况下、ISR 将在为下一个 已启用并已标记的中断提供服务之前完成执行。 如果你希望无论什么情况总是能立即处理计时器0、你必须启用计时器1中断内部的嵌套。
测试两个定时器中断之间的优先级的一个更好方法是将它们的周期和预分频器设置为相同的值、这样、两个中断总是同时触发。 在这种情况下、您应该会看到始终首先处理计时器0、因为它的中断编号较低、因此 ePIE 中的优先级较高。
此致、
Delaney