OpenEdv-开源电子网

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

STM32定时器中断标志位在什么时候清除比较好?

[复制链接]

20

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-3-24
在线时间
6 小时
发表于 2017-2-27 15:53:44 | 显示全部楼层 |阅读模式
1金钱
用STM32写了一个8通道输入捕获PWM的程序,使用的定时器2/4共8个通道来作为输入捕获中断通道的,基本上就完成这一个功能,所以基本上都是在中断中来处理的,所以中断里的代码有点长,那么在进定时器中断后是立即清除中断标志位好,还是在出中断之前最后一步再清除中断标志好呢?
定时器四个通道的中断处理函数一样,要在中断里面判断是哪个通道发生的捕获中断,并相应的处理,清除这个通道上的中断,如图:
QQ截图20170227155147.png
中断清除放在哪比较合适呢?

还有就是在处理第一通道的时候,第二通道也可能发送捕获中断,不知道中断是否能重入。。

最佳答案

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

就看你的程序要求了,放最前面,可以立即清除,下一次中断来的早(还在处理中断),那么还可以记录一次。 下一次可以继续接收。 放最后,那么下一次中断如果来得早,那么就会丢失一次中断。不过,如果你中断里面一次处理不过来,后续如果是规律性的中断,那么无论你放前面,还是放后面,都会丢失。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-2-27 15:53:45 | 显示全部楼层
就看你的程序要求了,放最前面,可以立即清除,下一次中断来的早(还在处理中断),那么还可以记录一次。   下一次可以继续接收。  放最后,那么下一次中断如果来得早,那么就会丢失一次中断。不过,如果你中断里面一次处理不过来,后续如果是规律性的中断,那么无论你放前面,还是放后面,都会丢失。。。
回复

使用道具 举报

20

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-3-24
在线时间
6 小时
 楼主| 发表于 2017-2-27 15:54:54 | 显示全部楼层
昨天代码跑了两个小时,感觉突然出错了一次,复位后正常,然后就没有在发送错误
回复

使用道具 举报

20

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-3-24
在线时间
6 小时
 楼主| 发表于 2017-2-28 09:03:52 | 显示全部楼层
正点原子 发表于 2017-2-27 15:53
就看你的程序要求了,放最前面,可以立即清除,下一次中断来的早(还在处理中断),那么还可以记录一次。   ...

不同通道的中断会不会相互影响呢,因为一个定时器的四个通道是一个中断函数,但通道不同中断的标志位也不同,pwm频率也不算高,大约100Hz的样子
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-8-23
在线时间
12 小时
发表于 2019-8-23 10:58:27 | 显示全部楼层
请问问题解决了吗,我的问题也跟你一样,我是关中断,但是感觉没有立刻关闭,因为我需要在500us前关闭,但是没有立刻关,不知道是跟你一样多通道进中断还是标志位没有清除干净
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 15:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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