中断系统
中断:在主程序运行过程 中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。例如:对于外部中断来说,可以是引脚发生了电平跳变;对于定时器来说,可以是定时的时间到了;对于串口通信来说,可以是接收到了数据。
中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先相应更加紧急的中断源。
中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中中断,CPU再次暂停当前的中断程序,转而去处理新的中断程序,处理完成后依次进行返回。
中断流程:
当主程序执行到某个地方,外设的中断条件满足了,那这时无论主程序在执行什么(比如OLED显示一半,Delay函数还在等待)中断来了,主程序都得立即暂停,程序由硬件电路自动跳转到中断程序中,当中断程序执行完之后,程序在返回被暂停的地方继续运行(例如:OLED没显示完就继续显示,Delay函数没执行完就继续延时)
在中断执行前,会对程序的现场进行保护,中断执行后会再还原现场
中断嵌套流程:当主程序执行时遇到中断,主程序会被打断执行中断程序,当中断程序执行过程中还有更优先级的中断程序出现,则会打断原先的中断程序,执行更高优先级的中断,更高优先级的中断执行完后执行原中断程序,原中断程序执行完后再回到主程序继续执行。