单片机中如果我开放了中断,但是在中断程序中关闭中断,那么中断程序中剩下的程序还会执行吗
2个回答
展开全部
还会执行的,关闭中断的话只是关闭对中断的响应,而正在执行的中断服务函数只是一个稍微特别一些的函数,而且一般情况下都是会在中断服务函数中关闭中断的,这是因为在中断服务函数执行过程中,一般来说都是希望一次性执行完这个中断服务函数,而不希望被其它的中断打断,所以如果系统不是特别复杂,要求不是特别高的话都会在进入中断服务函数后立刻关闭中断,中断服务函数的最后再打开中断,这样一个中断服务函数就可以完全执行完成,避免了因为其它原因导致的中断服务函数无法执行完成,这点在用按键引起的中断时非常有用,因为按键按下一次并不一定就是真正的一次,可能会有轻微的抖动或是其它原因,这也是按键消抖的原因,如果不进行按键消抖或是在中断服务函数中关闭中断的话,很有可能会导致中断服务函数执行出错,而且很有可能会导致程序反反复复重复进入中断,如果中断服务函数比较短小的话可能当你按下一次按键触发中断的时候中断服务函数执行了N多次而自己却不知道。
总结来说,关闭中断只是关闭对中断的响应,所以是不会影响到现阶段的程序的执行,所以中断程序中剩下的程序还会执行。只是在中断关闭期间无法响应新的中断请求而已。
总结来说,关闭中断只是关闭对中断的响应,所以是不会影响到现阶段的程序的执行,所以中断程序中剩下的程序还会执行。只是在中断关闭期间无法响应新的中断请求而已。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询