定时器自身能否中断自己???

2019-07-21 08:48发布

我一直是觉得定时器自身是不能中断自己的,但是有一些事让我很不理解。
1:TIMx_ARR是自动重装载寄存器,里面存放了自动重装载的值。TIMx_CNT是定时器计数值。我的理解是TIMx_CNT=TIMx_ARR时,就开始进入定时器中断,进入中断以后TIMx_CNT=0。在定时器中断测试中读取了TIMx_CNT值,发现其是明显变化的。
2:用定时器中断得到六轴软件拟合的数据,后来用lcd屏幕显示,如果定时器中断溢出时间短,lcd屏幕上就只能显示半截字符串,如果不能自身打断,不是应该慢慢的都把字符串显示出来嘛。
第三个问题比较私人,定时器中断时的TIMx_CNT的值是否不能人工清零,用了TIM_SetCounter()也不可以。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
xiedonghui258
1楼-- · 2019-07-21 12:12
TIM图片20180507183154.png
闲来无事,翻了翻数据手册上确实是这样写的:TIMx_CNT = TIMx_ARR时,重新从0开始计数,并产生溢出事件。
如果你需要精确的定时,可以在进入中断是,失能定时器,退出时,在使能。
曾洪涌
2楼-- · 2019-07-21 14:11
xiedonghui258 发表于 2018-5-7 18:38
闲来无事,翻了翻数据手册上确实是这样写的:TIMx_CNT = TIMx_ARR时,重新从0开始计数,并产生溢出事件。 ...

谢谢你的帮助
xiatianyun
3楼-- · 2019-07-21 14:41
自身的中断属于同一抢先优先级,正在执行服务程序会被同一抢先级的中断打断吗?这个还真不好说,还是做实验吧。
xiatianyun
4楼-- · 2019-07-21 20:40
 精彩回答 2  元偷偷看……
xiatianyun
5楼-- · 2019-07-22 01:00
我刚才做了试验,自身无法中断自己,必须等中断完毕才能再次中断。读取的计数值不是0是因为中断服务执行时其实计数值仍然继续的缘故。

一周热门 更多>