发新帖我要提问
12
返回列表
打印

急问:关于TIM2输入捕获问题

[复制链接]
楼主: mousie
手机看帖
扫描二维码
随时随地手机跟帖
21
不进行测量时,最好关闭捕获功能,否则虽然关闭了中断,但捕获还是会照常进行并设置寄存器标志位,在重新允许中断后,就会读到关闭中断期间的数值。

使用特权

评论回复
22
mousie|  楼主 | 2010-9-2 09:30 | 只看该作者
那还是要用TIM_Cmd(TIM2, DISABLE)来禁止捕获是吗?

使用特权

评论回复
23
香水城| | 2010-9-2 10:05 | 只看该作者

使用特权

评论回复
24
lixiaoxu2meng| | 2010-9-13 09:28 | 只看该作者
mark

使用特权

评论回复
25
mousie|  楼主 | 2010-9-25 10:14 | 只看该作者
刚刚出差回来,对我遇到的这个问题总结一下:
我想我这个问题特殊地方,就是不要求定时器连续测量,而是收到触发信号之后开始测量,没有触发信号停止测量。这样一来定时器就不能简单只在初始化配置一下就完了,否则上电后第一次测量没问题,后面的测量头几个数值可能就会出问题。
一开始我是在收到触发信号之后配置定时器,TIM ENABLE,然后结束测量时TIM DISABLE,下次测量时再重新配置再TIM ENABLE。这样一开始在我调程序的板子上使用没啥问题,但是在那块装到控制柜的板子上发现二次测量时第一个值总是错成一个固定值(就是我开贴时提出的问题)。后来听取楼下人的意见,改在上电初始化是配置定时器,测量时只允许中断,结束时中断禁止。这样二次测量时虽然不在出现固定错误值,但是有时会出现测量比实际多出一个值(这个是我在第一页末提的问题)。现在我的解决办法是在每次测量结束和下次测量开始分别用TIM_GetCapture1/2/3/4读取定时器的各个捕获值,再用TIM_ClearFlag清除CC2/CC3待处理标志位,目前即使是控制柜里的板子也还没出现过问题。这样做肯定是有多余的地方,只是我不确定是哪块,所以保险起见就都加上了。
我遇到的就是这个问题,希望对其他有类似需求的朋友有帮助,也希望版主能有更权威的解释和处理方案。
——菜鸟敬上:loveliness:

使用特权

评论回复
26
香水城| | 2010-9-25 10:23 | 只看该作者
不知道你实现的详情,请楼主做一个小项目,能够反映你说的问题,我这里测试之后,可以给你一个更权威的解释和处理方案。

使用特权

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

本版积分规则