打印
[STM32F4]

如何临时开关定时器中断

[复制链接]
950|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Jsilcon|  楼主 | 2015-1-8 23:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在主程序中要读取某块全局变量区,而该变量区在定时器中断 TIM2 中更新。
如何临时开关定时器中断,以保证主程序读取变量区时,不会被定时器中断更改?
//不希望丢失定时器中断,只临时禁止。读取完再立即开放定时器中断。
//主程序操作时间很短,肯定远低于定时器中断的时间间隔。
沙发
as564335sa| | 2015-1-9 00:30 | 只看该作者
中断使能干啥使的

使用特权

评论回复
板凳
Jsilcon|  楼主 | 2015-1-9 08:58 | 只看该作者
as564335sa 发表于 2015-1-9 00:30
中断使能干啥使的

是这样吗?
TIM2->CR1 &= ~(0x01);   //关闭定时器2
TIM2->CR1|= 0x01;         //开启定时器2

使用特权

评论回复
地板
airwill| | 2015-1-9 11:42 | 只看该作者
本帖最后由 airwill 于 2015-1-9 11:56 编辑

楼上的是个办法. 不过这个办法将导致计时器误差. 如果没有严格时序要求, 可以采用.
你还可以使用中断使能寄存器 DIER, 如果时间非常短, 还可以使用全局中断.
另外 NVIC 里有中断使能寄存器应该也可以使用.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

77

帖子

2

粉丝