首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在msp430fr5969上处理多优先级中断

在msp430fr5969上处理多优先级中断
EN

Stack Overflow用户
提问于 2018-10-06 11:12:44
回答 2查看 269关注 0票数 2

目前正在开发msp430fr5969。我有多个中断,如SPI,I2C,Timer,所要求的是SPI协议是最高优先级。但是,根据数据表,I2C(eUSCI_B0)的优先级高于SPI(eUSCI_A1),不能改变中断优先级。

链接:http://mikrokontroler.pl/wp-content/uploads/pliki/msp430fr5969.pdf (第21页)。

如何在I2C进程中尽可能快地进入SPI中断?

我被卡在I2C的读数和它有一个数据从另一个单片机发送。在这种情况下,MCU会通知超时。它很少,但我想修复它。

注意:使用SPI与另一个单片机通信,所以它的重要性数据。使用I2C从传感器读取信息。

EN

回答 2

Stack Overflow用户

发布于 2018-10-06 13:35:01

只有在CPU能够处理其中一个中断标志之前设置了两个中断标志,并且CPU必须决定首先处理哪个中断标志,中断优先级才会起作用。在实践中,这种情况几乎从未发生过。

当中断处理程序执行时,所有其他中断都会被阻塞(默认情况下会清除GIE),而不管优先级如何。这意味着当I 2 C中断处理程序当前正在执行而SPI中断发生时,SPI处理程序仅在I 2 C处理程序完成后才开始执行。

要执行具有高优先级的SPI处理程序,您必须确保所有其他中断都不会阻塞它,至少在很长一段时间内不会阻塞它。这通常由那些中断处理程序完成,只设置一个标志,指示设备需要注意,然后在应用程序的主循环中处理这些条件。

票数 2
EN

Stack Overflow用户

发布于 2018-11-05 11:36:41

您可以在技术上重新启用gie与其他中断一起启用中断嵌套。这样,您就可以通过在中断中添加一些逻辑作为前导来管理中断执行顺序。就我个人而言,我宁愿避免它,并保留它作为最后的手段。尽量保持其他中断代码的简短性,管理外部中断的逻辑,如果还不够,请禁用其他中断,同时您预计会出现关键中断(如果可能的话)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52678463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档