关于中断状态保持的问题

2020-02-03 10:07发布

工作也有一段时间了,但是有时候很基础的问题搞得不是很清楚。

最近用STC的单片机,遇到这样一种情况,希望不是STC的问题:单片机的主程序的一部分在进行实时操作,不能被中断打断,所以自然的,加入关闭总中断予以保护。
但是呢,在关闭总中断的期间,如果有中断发生呢,事实上是需要记录中断状态的,稍后的时间内进行处理,而不是完全不理会此消息。

所以,小弟在此想问的是:
1、51中是不是有比较完美的解决关闭中断过程中,记录期间中断响应,之后可以再进入中断处理的方法;
2、其他的高级的单片机包括现在的M3等的,是不是可以做到这些。

谢谢大家
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
eduhf_123
2020-02-04 16:01
BDXing6 发表于 2012-10-19 00:56
51中断逻辑:无论那类中断,到来时,相关中断标志置位。如果中断被关闭,则不会响应该中断,标志也不会被清除。因此,在打开中断允许后,仍然会产生中断。也就是中断挂起。但应该注意的是,如果中断关闭期间,来了两次中断,则打开中断允许后只会响应一次,对于用于计时或计数类的中断就可能会产生误差。


楼上说的基本上对,除了一种例外情况:当外部中断是电平触发时,如果中断信号的有效电平在开中断前就撤消了的话,那么这次中断请求是不会被响应的。

如果想不漏掉中断请求,那么要么使用边沿触发、要么在外部使用硬件锁存器来锁存中断请求信号。

一周热门 更多>