找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 825|回复: 4
收起左侧

51单片机定时器中断和外部中断同时使用为什么一定要设置优先级

[复制链接]
ID:1091094 发表于 2023-9-11 09:03 | 显示全部楼层 |阅读模式
我在使用普中51单片机开发板,设置了定时器10us执行一次PWM,还有外部中断0的程序,不设置外部中断为高优先级的时候,
程序是按键没有反应的。 加上优先级就可以了按键控制三个挡位了,为什么?
不应该是即使没有优先级也可以执行外部中断的吗?
回复

使用道具 举报

ID:123289 发表于 2023-9-11 10:39 | 显示全部楼层
学会阅读手册。
当你不设置时,CPU默认一套优先级。
当你设置时,按你设置的办。
当默认优先级满足你的需求,就不需发设置了。
回复

使用道具 举报

ID:213173 发表于 2023-9-11 12:57 | 显示全部楼层
你这不是中断优先级的问题,是中断函数不合理的问题。你首先想想10us时间能执行几行代码。
回复

使用道具 举报

ID:852274 发表于 2023-9-11 15:36 | 显示全部楼层
蛤?51什么时候需要设置中断的优先级了,不是都是默认的优先级嘛?
回复

使用道具 举报

ID:647261 发表于 2023-9-11 15:52 | 显示全部楼层
51单片机的中断规则:
不设置优先级时,中断源都是一个优先级,规则如下:
1.哪个中断先到,就先执行哪个中断。
2.中断执行过程中,不能被其他中断打断。
3.多个中断同时到来时,按查询号顺序执行。
查询号顺序:外部中断0(P3.2脚)-> 定时器 0 -> 外部中断1(P3.3脚) -> 定时器 1 -> 串口

假如按键是P3.2脚,定时器10us
要实现按键功能,就必须在10us的间隙中,完成按键下降沿的触发动作,才能进入外部中断
假如按键是P3.3脚,定时器是T0的话,难度就更大了,这个触发动作还不能刚好和10us时间同时产生

当设置了优先级后,中断就分成了高优先级和低优先级两种了,这时,规则多了一样:
低优先级的中断执行过程中,高优先级中断产生,可以打断低优先级中断,实现中断嵌套。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表