一、中断系统
中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续进行。
中断就是在正常主程序执行的某一时刻,发生了中断触发条件。对于外部中断来说,可以是引脚发生电平跳变;对于定时器来说,可以是定时的时间到了;对于串口通信来说,可以是接收到了数据。
当事件发生时,时间会比较仓促,比如外部中断来了,如果不处理,下一个跳变信号就会跟着过来,如果时串口接收中断来了,你不读取接收到的数据,那么下一个数据再过来,就会把原来的数据覆盖。
中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。
中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。(能否进行中断嵌套,是由中断优先级来决定的)
图1-1中断执行流程
图1-1中,左边的是普通的中断程序,而右边的是一个嵌套中断程序。