中断(NVIC)

中断(NVIC)

1.1 中断基本组成:

​ 断点:中断事件产生的时间点—压栈,出栈

​ 中断源:中断事件

​ 中断服务函数:

  1. 无返回值,无传参,void xxxx(void)

  2. 快进快出

  3. 避免while(1)

  4. 不可写printf(),但是调试程序时,可以。

  5. 不可调用,不可声明

在这里插入图片描述

1.2 单片机异常

中断向量:中断服务程序的入口地址。

中断向量表:当中断来临的时候,首先取向量,每个中断的中断向量不一样,然后根据向量查询中断向量表,根据里面的地址找到中断服务函数,从而实现整个中断的响应过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZMYVdFaI-1665712305889)(C:\Users\16028\AppData\Roaming\Typora\typora-user-images\image-20221008101002949.png)]

1.3 框图

产生中断必须先配置中断线,通过映射的方式将通用I/O口连接到外部中断线/事件线上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1C9bzAIb-1665712305889)(C:\Users\16028\AppData\Roaming\Typora\typora-user-images\image-20221008101926269.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tvMahXsK-1665712305890)(C:\Users\16028\AppData\Roaming\Typora\typora-user-images\image-20221008102020435.png)]

1.4 中断优先级分组

中断嵌套:当发生一个中断时,又来了一个中断

中断优先级:数字越小,优先级越高

抢占优先级:高优先级可以打断低优先级

次级优先级:高优先级不可以打断低优先级----同时到时,先执行优先级高的

​ 抢占优先级 次级优先级

​ 任务 1 1 5

​ 任务 2 1 3

​ 任务 3 3 2

Eg: 任务1和任务3同时到时,先执行任务1;

任务1和任务2同时到时,先执行任务2;

任务1执行时,任务2到了,执行任务1;

​ NVIC控制器:按照优先级开辟CPU资源

先执行任务2;

任务1执行时,任务2到了,执行任务1;

​ NVIC控制器:按照优先级开辟CPU资源

​ 就是从中断向量表内找到中断服务函数的入口地址;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值