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.

DSP28335MailBox延迟触发超时CAN中断的配置?



希望DSP28335中MailBox收到数据帧后从mailbox收到数据那时刻开始计时,延迟一定的时间再触发CAN中断,但是无法实现。测试发现:CANTSC为时钟计数器,MOTS为消息收到时的时间戳,MOTO为超时时间,超时判定的方法就是直接用MOTO与CANTSC比较,如果CANTSC大于MOTO则触发超时中断,并CANTOS记录状态。MOTO设定的时间都是绝对时间,很难控制的。为了达到我的目的,希望MOTO是相对时间,即不是以CANTSC零计时为起点的绝对时间,而是以MOTS为计时起点的相对超时时间。实际上DSP28335的eCAN不是这样设计。我该如何实现从mailbox收到数据那时刻开始计时,延迟一定的时间再触发CAN中断呢?非常感谢所有的建议。

  • 楼主你好。

    目前的CAN模块应该是收到数据产生中断,请问楼主为什么有这样的要求?

  • 当CAN总线传输的数据量较大时,如果CAN的每个邮箱收到数据后均触发中断,那么中断非常频繁,使得程序的其他模块效率降低。希望高优先级的邮箱收到数据后,延迟一段时间,这期间部分低优先级的邮箱也可能收到数据,再触发中断,几个接收邮箱的数据在一个中断服务函数里一并被读走。

    目的一个:减少中断次数,又不丢数据。