中断

中断是为使CPU具有对外界紧急事件的实时处理能力而设置的
当CPU正在处理某件事时,外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完后,再回到原来被中断的地方,继续原来的工作,这个过程被称为中断


中断程序流程

在这里插入图片描述

左侧图:在主程序执行期间,发现有中断请求到来,会先打个断点,然后进行中断响应,执行中断处理程序,完成后返回断点,继续执行主程序
右侧图:以程序地址空间的形式展示处理中断的过程,发生中断时,会跳转到中断处理程序的地址空间,执行完再跳转回主程序的地址空间


中断资源
中断源个数:8个(外部中断0、定时器0中断、外部中断1、定时器1中断、串口中断、定时器2中断、外部中断2、外部中断3)

中断优先级个数:4个

如果使用C语言编程,中断查询次序号就是中断号
在这里插入图片描述

其中 Timer0_Routine(void) 为定时器T0的中断处理函数,中断号为1,Timer1_Routine(void)为定时器T1的中断处理函数,中断号为3,以此类推

注意:中断资源和单片机型号是关联在一起的,不同型号可能会有不同的中断资源,例如中断资源个数不同,中断优先级个数不同等

如下是一个较为简单的中断结构图,只有两个优先级
在这里插入图片描述

左侧的INT0INT1 为外部中断0和1,T0T1 为定时器中断0 和 1
可以看到,要想让中断启用,还需要连通电路。例如想让定时器中断0启动,还需要将ET0 = 1EA = 1PT0选择一个优先级,0或1都可


上一篇:保研考研机试攻略:python笔记(2)


下一篇:ComfyUI | 比IPAdapter更简化操作的风格迁移!