单片机中断优先级及中断嵌套,以STC8G为例。

以STC8G单片机为例,存在4个中断优先级,最高优先级(3)>较高优先级(2)>较低优先级(1)>最低优先级(0)。

4个中断优先级则代表着STC8G可以实现4级中断嵌套。

例如:设置外部中断0为优先级3,定时器0为优先级2,串口1为优先级1,定时器1为优先级0

则当中断同时到来时,以最高优先级排序依此进入中断服务函数中。

当定时器1中断到来,进入中断服务函数之后,串口1中断来了,则会从当前的中断服务函数跳转到串口1的中断服务函数中,只有当串口1的中断服务函数执行完成后,才会再次返回定时器1中断服务函数,定时器1中断服务函数执行完成后返回主循环。

在该优先级设置下,外部中断0可打断定时器0,定时器0可打断串口1,串口1可打断定时器1;此时即为4级中断嵌套。

但如果中断同级时怎么办?

此时需要引入一个中断查询优先级的概念,查看MCU手册,可以看到中断号。

中断号就对应着中断查询优先级。

如:

中断查询优先级可以理解为所有中断优先级同级的情况下,存在排序。

所有中断优先级同级的情况下,中断同时到来时,必定依次先执行中断号靠前的中断服务函数。

且低查询优先级的中断服务函数也不会被高查询优先级的中断服务函数打断,必须等低查询优先级的中断服务函数执行完成后才执行高查询优先级的中断服务函数。(因为此时大家的中断优先级是同级,无法打断别人的中断服务函数,无法进行中断嵌套)。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值