中断服务程序清除标志的顺序问题
使用中遇到的问题是,中断服务程序中相关SR的中断标志到底应该是服务前先清除还是服务后清除呢?有些中断似乎后清除的话会增加进入中断的次数,即一次事件可能导致2次进入服务程序。进入中断就可以清除了, 我一般是,退出中断函数前才清除的。 如果是中断使能的话,一进入中断就disable,退出前再enable
如果是中断标志的话,退出前再清除flag 一般的用法都是进入中断的时候清除相应的标志位 奇怪的是先清标志和后清标志竟然会有不同的效果,这在资料上找不到答案。 wenyangzeng 发表于 2018-11-18 09:12
进入中断就可以清除了,
根据资料,先清和后清效果上应该没有区别,但实际应用中却遇到结果不同的情况,一般而言,中断不频繁的情况下似乎无所谓,如果中断较频繁,或出现连续中断的情况下,可能先清会好些。 无薪税绵 发表于 2018-11-18 09:17
我一般是,退出中断函数前才清除的。
一般教程也是这样做的。 andeyqi 发表于 2018-11-19 10:15
一般的用法都是进入中断的时候清除相应的标志位
这个分为先清除标志位和后清除标志位的做法,根据资料没有做出明确的次序要求。 stm1024 发表于 2018-11-19 08:36
如果是中断使能的话,一进入中断就disable,退出前再enable
如果是中断标志的话,退出前再清除flag ...
嗯。
页:
[1]
2