[STM8] TIMx_ARR的值计算问题。求解啊啊。。。

[复制链接]
4913|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要减一,我就不懂了。。不知道是不是老师错了。。你可以告诉我为什么吗?
zchong 发表于 2012-5-5 20:55 | 显示全部楼层
采用upcounting mode时,ARR设置成9999是对的
zchong 发表于 2012-5-5 20:57 | 显示全部楼层
这个就像你说的那样,你可以验证的,将定时器的时钟调到很低,通过管脚输出验证一下吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部