打印
[STM32F1]

TIM 定时器使用问题

[复制链接]
2504|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fanxsd|  楼主 | 2014-9-9 14:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 fanxsd 于 2014-9-10 09:17 编辑

当我把定时器TIM4 的 OC1-OC3设为输出 冻结模式, 使用TIM_Cmd(TIM4,DisABLE);之后,TIM4_CNT里边的数据会不会自动清零,。
我想在下次使用TIM_Cmd(TIM4,ENABLE);TIM4_CNT从零计数。
还有就是使用TIM_Cmd(TIM4,ENABLE);这个指令之后,硬件有没有延迟。还是只是一个指令周期的延时。


TIM的定时器的各个通道可不可以工作在这种模式下:
1.设为输出冻结模式,达到定时的TIMX->CCRX 值之后,输出一个中断信号(这个已经解决), CNT不是从0开始重新计数,而是处于停止状态。
2.当有外部触发信号的时候 CNT 从0 开始计数,达到 CCR之后 输出中断,停止计数
沙发
21ID| | 2014-9-9 15:41 | 只看该作者
应该不会清零

使用特权

评论回复
板凳
diweo| | 2014-9-9 16:07 | 只看该作者
本帖最后由 diweo 于 2014-9-9 16:08 编辑

1,CNT应该不会自动清零,
2,我的理解是有个二输入与门,一个输入是时钟源,一个输入是CEN。CEN设为0时,不论时钟源如何变化,输出都是0,那么对于定时器来说就是没有时钟,就是停止工作了。所以,一旦CEN设为1,定时器是可以立即工作的。

使用特权

评论回复
地板
fanxsd|  楼主 | 2014-9-9 17:42 | 只看该作者
TIM4_CNT=0;这样写不知可以不?

使用特权

评论回复
5
mmuuss586| | 2014-9-9 18:45 | 只看该作者
1、不会清0;
2、有延迟;
3、超过一个指令周期(毕竟是库函数);

使用特权

评论回复
6
fanxsd|  楼主 | 2014-9-9 22:09 | 只看该作者
mmuuss586 发表于 2014-9-9 18:45
1、不会清0;
2、有延迟;
3、超过一个指令周期(毕竟是库函数);


TIM4_CNT=0;这样写,CNT的数据能清零吗?

使用特权

评论回复
7
fanxsd|  楼主 | 2014-9-9 23:18 | 只看该作者
TIM的定时器的各个通道可不可以工作在这种模式下:
1.设为输出冻结模式,达到定时的TIMX->CCRX 值之后,输出一个中断信号(这个已经解决), CNT不是从0开始重新计数,而是处于停止状态。
2.当有外部触发信号的时候 CNT 从0 开始计数,达到 CCR之后 输出中断,停止计数

使用特权

评论回复
8
fanxsd|  楼主 | 2014-9-10 09:17 | 只看该作者
顶 , 我顶 不能沉水 啊!

使用特权

评论回复
9
香水城| | 2014-9-10 10:03 | 只看该作者
不用一直顶贴,你自己试一下就知道了。

使用特权

评论回复
10
菜鸟同学| | 2014-9-10 10:15 | 只看该作者
TIM_DeInit();
外加手动清零试试!

使用特权

评论回复
11
fanxsd|  楼主 | 2014-9-10 19:27 | 只看该作者
菜鸟同学 发表于 2014-9-10 10:15
TIM_DeInit();
外加手动清零试试!

TIM_DeInit();
如果加了这一句,恢复重置,那重新配置的时间就太长了。对于我的高速控制延迟太大,


TIM-》CNT = 0 是可以清零的。我以为不能清零  是程序bug 造成的

使用特权

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

本版积分规则

13

主题

559

帖子

3

粉丝