关注 + 点赞 不错过精彩内容
大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作!
二、中断执行流程
(1)中断程序的执行流程
左边第一个图中,从上到下的一条线我们看成是主程序,当它执行到某个地方时,外设的中断条件满足了,那这时,无论主程序是在干什么事情,中断来了,主程序都得立即暂停,程序由硬件电路自动跳转到中断程序中。
当中断程序执行完之后,程序再返回被暂停的地方继续运行,比如Delay没延时完,现在就继续延时,那这个被暂停的地方,我们就称它为断点。
为了程序能在中断返回后继续原来的工作,在中断执行前,会对程序的现场进行保护,中断执行后,会再还原现场,这样可以保证主程序即使被中断了,回来之后也能继续运行当然我们用C语言编程。
保护现场和还原现场的工作并不需要我们来做,编译器自动帮我们做好了,所以这里了解一下即可
(2)中断嵌套的执行流程
左边半部分是正常的中断程序的执行流程,当这个中断正在执行时,又有新的优先级更高的中断来,那这里就会再次打断,然后执行新的中断,新的中断结束,再继续原来的中断,原来的中断结束,再继续主程序,这就是中断嵌套的执行流程
(3)带有中断的C语言程序
带有中断的程序如下图所示,上面是主函数,while(1)死循环里就是主程序,正常情况下,程序就是在主程序里不断循环执行,当中断条件满足时,主程序就会暂停,自动跳转到中断程序里运行,中断顺序执行完之后,再返回主程序继续执行
一般中断程序都是在一个子函数里的,当中断来临时,由硬件自动调用这个函数
作 者 :硬核王同学
------- END ------
关注公众号回复“加群”按规则加入技术交流群 回复“1024”查看更多内容