OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2118|回复: 7

中断疑惑

[复制链接]

18

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2017-3-27
在线时间
76 小时
发表于 2018-12-3 16:23:02 | 显示全部楼层 |阅读模式
1金钱
问下大家,假如我在中断函数里加个延时,在这个延时的过程中又触发了一次一样的中断,那等到中断函数处理完后,还会再进入中断吗?如果触发更高优先级的中断呢?谢谢


最佳答案

查看完整内容[请看2#楼]

首先,更高优先级的中断会立即被执行。 第一个问题:同一个中断再次触发,本次中断执行完毕后会再次进入中断。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4523
金钱
4523
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-12-3 16:23:03 | 显示全部楼层
首先,更高优先级的中断会立即被执行。

第一个问题:同一个中断再次触发,本次中断执行完毕后会再次进入中断。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1769
金钱
1769
注册时间
2015-6-11
在线时间
313 小时
发表于 2018-12-3 16:38:03 | 显示全部楼层
1.中断触发的流程是 信号源触发->置相应的中断标志位->相应中断位使能,则触发中断,因此根据清中断标志位置决定是否继续触发
方式一:
clr_int
delay延时(再次触发中断,中断标志位置位)
中断退出,此时中断标志位仍然置位,继续触发中断,不影响
方式二:
delay延时(再次触发中断,中断标志位置位)
clr_int
中断退出,此时再次触发的中断标志位就被清了,丢失
2.触发更高等级中断和delay在某些状态下效果一致,同上。所以一般进中断后读取标志位后就清中断,然后在处理,这样连续两次触发的相同中断不容易漏掉
回复

使用道具 举报

18

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2017-3-27
在线时间
76 小时
 楼主| 发表于 2018-12-3 20:34:28 | 显示全部楼层
zc123 发表于 2018-12-3 16:38
1.中断触发的流程是 信号源触发->置相应的中断标志位->相应中断位使能,则触发中断,因此根据清中断标志位 ...

好的,谢谢
回复

使用道具 举报

18

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2017-3-27
在线时间
76 小时
 楼主| 发表于 2018-12-3 20:34:59 | 显示全部楼层
warship 发表于 2018-12-3 20:28
首先,更高优先级的中断会立即被执行。

第一个问题:同一个中断再次触发,本次中断执行完毕后会再次进入 ...

如果清除标志位了,也会执行?
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4523
金钱
4523
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-12-3 22:19:36 | 显示全部楼层
1213333 发表于 2018-12-3 20:34
如果清除标志位了,也会执行?

中断是否执行是由标志位决定的。
标志位清除了,当然不会进入中断服务了。
所以一般进入中断服务的第一件事就是清除标志,避免重复执行。
但是,
你问的问题是执行中断过程中又有引发中断的事件发生,
此时刚清除的标志位将会又被置位,引发下一轮的中断。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4523
金钱
4523
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-12-3 22:21:29 | 显示全部楼层
有兴趣看看我曾经写过的帖子
http://www.openedv.com/forum.php?mod=viewthread&tid=275496
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

18

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2017-3-27
在线时间
76 小时
 楼主| 发表于 2018-12-4 11:37:51 | 显示全部楼层
warship 发表于 2018-12-3 22:21
有兴趣看看我曾经写过的帖子
http://www.openedv.com/forum.php?mod=viewthread&tid=275496

感谢!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 08:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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