关于中断的两个问题.. 求助~~

2019-03-24 19:53发布

刚学单片机没多久.. 有些问题想请教下..

1. 程序里设置了一个外部中断,一个计时器中断, 假如程序正在运行外部中断时, 刚好也出发了计时器中断, 那么计时器中断是否要等到外部中断内的代码都执行完后再执行?
2.当程序里设置了多个中断时, 每次进入某个中断时,关闭总中断(结束时候在打开)是否合理? 这样处理会不会引起丢失其他可能发生的中断? 怎样处理比较合理?

请大家帮帮忙.. 先谢谢了~ 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
chunyang
1楼-- · 2019-03-24 23:48
A1、首先要看中断优先级,高优先级的可以打断低优先级的,反之则不能,默认情况下,外中断的优先级高于定时器中断,但可以通过中断优先级设定寄存器来改变。
A2、相应中断后关闭总中断允许是否可行要看你的系统功能,这时新的中断将不会被执行,但有时却可以利用此法,多数情况下则不应该如此设计。
leang521
2楼-- · 2019-03-25 03:45
问题1:建议仔细阅读51中关于中断优先级的设计
问题2:这个是中断冲突处理的问题。其产生的原因是程序设计不合理导致的。合理的软件结构可以尽量避免中断冲突。
lingxiabadu
3楼-- · 2019-03-25 04:01
先感谢上面两位的回答。。

因为现在做的小项目里要用到 定时器中断和外部中断,其中定时器中断当然是定时发生,而外部中断是不定期发生的。 理论上来讲,很可能会出现相冲突的情况。所以想了解一下相冲突的时候如何处理才好。。
还有就是在没有用软件控制优先级的情况下,在执行某个中断时,如果又发生了其他中断,那么后面这个中断会丢失? 还是会延迟执行?
leang521
4楼-- · 2019-03-25 04:11
首先把SPI读写独立起来,用缓冲区替换。其次要做互锁。
lingxiabadu
5楼-- · 2019-03-25 09:55
。。。
对我这个初学者来说..都是没怎么听过的概念....就不麻烦你给我解释了...
不过如果有相关上面内容的参考资料的话,能不能给介绍下...
lalahu
6楼-- · 2019-03-25 11:12
 精彩回答 2  元偷偷看……

一周热门 更多>