大家好、
如果有多个消息对象被标记为中断、我不确定 CAN 中断是如何工作的。 遗憾的是、所有 CAN 样本都非常简单、每个方向只有一个消息对象。
我们在程序流程中禁用了中断、因此可能会发生中断、而 CAN0INT 的中断例程会在发送多个消息对象后得到服务。 在服务例程中、最新对象(中断原因 INT0ID)和服务例程的标志被清除:
CAN_clearInterruptStatus(CANIF_CAN_BASE, intCause);
CAN_clearGlobalInterruptStatus(CANIF_CAN_BASE, CAN_GLOBAL_INT_CANINT0);
Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);
然后是否预计 ISR 将再次调用、因为其他报文对象会将 CAN0INT 保持为高电平? 或者、我们是否需要循环、直到 INT0ID 返回0?
我希望根据图3-2再次调用 ISR。 中断传播路径和图21-8. CAN 中断拓扑2 (F28002x 技术参考中均有)。
非常感谢、
Andreas
