找回密码
 立即注册
查看: 397|回复: 4

有关中断执行过程

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:434
  • 最近打卡:2025-05-01 20:16:58
已绑定手机

229

主题

328

回帖

1471

积分

金牌会员

积分
1471
发表于 2024-5-19 09:08:40 | 显示全部楼层 |阅读模式
{SL29X7]P~09X(0Z)U5N59A.png


这里有个死循环在等中断

41]EB(YRQI[6IF1`_QH@~PU.png


在中断里会清空这个标志,请问这样写会使while失效吗?
现在的现象有时运行正常,又是就卡死了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-5-19 16:09:11 | 显示全部楼层
会的,这样会有很大概率进入死循环的
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-04-25 16:31:21
已绑定手机

14

主题

600

回帖

2199

积分

荣誉版主

积分
2199
发表于 2024-5-19 17:20:26 | 显示全部楼层
保证中断触发的时间内,加个超时退出:
a = 0;
while(!DMA_UR1T_STA){
    //这里写个累加计算,超过一段时间,强行退出
    //delay(xxx);
    if(++a == 0) break;
}

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:434
  • 最近打卡:2025-05-01 20:16:58
已绑定手机

229

主题

328

回帖

1471

积分

金牌会员

积分
1471
发表于 2024-5-19 20:27:18 | 显示全部楼层
xiangz*** 发表于 2024-5-19 17:20
保证中断触发的时间内,加个超时退出:
a = 0;
while(!DMA_UR1T_STA){

已找到更优解了,谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-5-24 13:19:44 | 显示全部楼层
在外部程序(非中断程序)查询等待某个中断标志非0,而中断中又清除这个中断标志,则有很大的概率会死在等待上。如果要查询,则另外设置一个变量,查询这个变量,并在中断中清除这个中断标志后设置这个变量。
在项目程序中,不建议出现任何死等的代码,测试例子可以使用。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:47 , Processed in 0.120973 second(s), 76 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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