打印
[STM8]

TIMx_ARR的值计算问题。求解啊啊。。。

[复制链接]
4161|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qq824314222|  楼主 | 2012-4-28 20:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用内部默认8分频主时钟,使用TIM1,2分频后,赋值给ARR 10000(而不是9999)就可以定时1ms。
但是在PWM输出模式中,若仍然使用内部默认的时钟,仍然使用TIM1但是不分频,为什么若要产生2KHz的PWM脉冲,ARR的值是999(而不是1000)?
附上公式:PWM output signal frequency = TIM2 counter clock/(TIM2_ARR + 1)
是不是与是否带预装载有关?
沙发
qq824314222|  楼主 | 2012-4-28 20:28 | 只看该作者
在线等。。。

使用特权

评论回复
板凳
zchong| | 2012-5-1 13:14 | 只看该作者
1ms定时,你是如何测试的,毕竟10000与9999仅差1,可以认为1/10000的误差

使用特权

评论回复
地板
qq824314222|  楼主 | 2012-5-5 01:43 | 只看该作者
3# zchong 恩恩。10000分之一还情有可原,万一我分频分到Hz级别,问题就很严重了。那个1ms是老师给我们的公式计算的,ARR无需减1,但是我看了文档,PWM的时候,ARR要减一,我就不懂了。。不知道是不是老师错了。。你可以告诉我为什么吗?

使用特权

评论回复
5
zchong| | 2012-5-5 20:55 | 只看该作者
采用upcounting mode时,ARR设置成9999是对的

使用特权

评论回复
6
zchong| | 2012-5-5 20:57 | 只看该作者
这个就像你说的那样,你可以验证的,将定时器的时钟调到很低,通过管脚输出验证一下吧

使用特权

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

本版积分规则

0

主题

13

帖子

0

粉丝