bucker 发表于 2018-11-17 20:47:33

中断服务程序清除标志的顺序问题

使用中遇到的问题是,中断服务程序中相关SR的中断标志到底应该是服务前先清除还是服务后清除呢?有些中断似乎后清除的话会增加进入中断的次数,即一次事件可能导致2次进入服务程序。

wenyangzeng 发表于 2018-11-18 09:12:10

进入中断就可以清除了,

无薪税绵 发表于 2018-11-18 09:17:06

我一般是,退出中断函数前才清除的。

stm1024 发表于 2018-11-19 08:36:42

如果是中断使能的话,一进入中断就disable,退出前再enable
如果是中断标志的话,退出前再清除flag

andeyqi 发表于 2018-11-19 10:15:19

一般的用法都是进入中断的时候清除相应的标志位

bucker 发表于 2018-11-19 18:28:33

奇怪的是先清标志和后清标志竟然会有不同的效果,这在资料上找不到答案。

bucker 发表于 2018-11-19 18:32:39

wenyangzeng 发表于 2018-11-18 09:12
进入中断就可以清除了,

根据资料,先清和后清效果上应该没有区别,但实际应用中却遇到结果不同的情况,一般而言,中断不频繁的情况下似乎无所谓,如果中断较频繁,或出现连续中断的情况下,可能先清会好些。

bucker 发表于 2018-11-19 18:33:26

无薪税绵 发表于 2018-11-18 09:17
我一般是,退出中断函数前才清除的。

一般教程也是这样做的。

bucker 发表于 2018-11-19 18:34:51

andeyqi 发表于 2018-11-19 10:15
一般的用法都是进入中断的时候清除相应的标志位

这个分为先清除标志位和后清除标志位的做法,根据资料没有做出明确的次序要求。

bucker 发表于 2018-11-19 18:35:34

stm1024 发表于 2018-11-19 08:36
如果是中断使能的话,一进入中断就disable,退出前再enable
如果是中断标志的话,退出前再清除flag ...

嗯。
页: [1] 2
查看完整版本: 中断服务程序清除标志的顺序问题