新手入门
- 积分
- 6
- 金钱
- 6
- 注册时间
- 2022-7-23
- 在线时间
- 0 小时
|
我遇到了一个问题:
按照中断优先级来说,中断的执行会先比较“抢占优先级”,如果前者相同再比较“子优先级”,如果“子优先级”也相同在比较各自的“序号”。
那么如果一个中断函数执行时,该中断又被触发了,两者的优先级都是相同的,此时该如何执行呢?
我了解到的一种说法是虽然两者的优先级相同,但是还是会发生“中断的嵌套”,即前一个同优先级的中断会被后一个中断打断。
如果是这样的话,对于按照一定时间进入一次中断函数的中断一定是无法执行的了,因为该中断会被无限的嵌套下去。
但是如果在以下的使用情景中,中断嵌套还会很大的影响程序的运行吗?
即:通过IO口检测外部的上升沿,进而触发中断,而该上升沿由按键按下产生,按键按下时会产生抖动,如果不进行消抖的话,可能会导致单片机的IO口接收到很多的上升沿信号,进而产生多个中断,但是该种中断的数量是有限的,中断函数也比较简单(这里中断函数的内容即使执行多次对程序也无任何不良影响),所以此时即使产生了多个中断的嵌套,单片机应该也可以快速的将这些嵌套处理完毕,即此时可以将中断嵌套的影响忽略不计。
请问我上面的想法对吗?
|
|