jianhong_wu 发表于 2014-7-26 08:15:26

为什么进入定时中断要先关闭中断再写程序?

本帖最后由 jianhong_wu 于 2014-7-26 08:19 编辑

风雪--重庆提问:
鸿哥,为什么进入中断时,必须先清除中断标志,并且关闭中断,然后再写代码,最后出来时,记得重装初始值,并且打开中断?

鸿哥解答:
进入定时中断时,先关闭中断标志这一点相信大家都能理解,我就不解释了。网友争议最大的是为什么还要关闭中断?关闭了中断这段时间定时器不是已经停止工作了吗?我现在一一解释如下:
(1)首先在这个问题上,我本人也不敢确定我的做法是最标准的,最正确的,我也不要求网友必须像我这样做,网友可以按照自己的方式来处理这个问题。
(2)我的这种做法是我多年来的使用习惯,我本人也不想再改变这种习惯,因为即使这种做法是有瑕疵的,它也不会影响到我的系统。即使因为这样使用,时间精度没有那么准,对我的系统也没有影响。所以我一直坚持这种写法。
(3)我回想了一下为什么我当初一开始就这样处理定时中断,是因为我担心单片机正在处理本中断函数时又发生本中断,那岂不是进入递归中断乱套了?实际上这种担心不一定存在,我只是担心而已。
(4)我印象中,有一次在一个小项目上,我进入定时中断的时候没有关闭中断是出了一点小问题,后来关闭中断再打开中断感觉能把问题解决了,所以我就坚持以后凡是进入定时中断都先关闭中断,到退出定时中断的时候再打开中断。

又一个暑假 发表于 2014-7-28 16:30:31

鸿哥说的第三点 我也是一直在担心,但是会不会进入递归中断乱套就不懂
页: [1]
查看完整版本: 为什么进入定时中断要先关闭中断再写程序?