打印

TIMx_EGR UG位 请教香主

[复制链接]
4710|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhiyonghe|  楼主 | 2011-5-6 17:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
14.3.9  PWM 模式
脉冲宽度调制模式可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCRx寄存器确定占空比的信号。
在TIMx_CCMRx寄存器中的OCxM位写入’110’(PWM模式1)或’111’(PWM模式2),能够独立地设置每个OCx输出通道产生一路PWM。必须设置TIMx_CCMRx寄存器OCxPE位以使能相应的预装载寄存器,最后还要设置TIMx_CR1寄存器的ARPE位,(在向上计数或中心对称模式中)使能自动重装载的预装载寄存器。
仅当发生一个更新事件的时候,预装载寄存器才能被传送到影子寄存器,因此在计数器开始计数之前,必须通过设置TIMx_EGR寄存器中的UG位来初始化所有的寄存器。

UG:产生更新事件 (Update generation)
该位由软件置’1’,由硬件自动清’0’。
0:无动作;
1:重新初始化计数器,并产生一个更新事件。注意预分频器的计数器也被清’0’(但是预分频系数不变)。若在中心对称模式下或DIR=0(向上计数)则计数器被清’0’,若DIR=1(向下计数)则计数器取TIMx_ARR的值。
//----------------------------------------------------------//

这个怎么理解?软件难道要每次计数前写1??
沙发
zhiyonghe|  楼主 | 2011-5-6 17:21 | 只看该作者
好像不设置这个UG位,对产生PWM没影响

使用特权

评论回复
板凳
香水城| | 2011-5-6 17:58 | 只看该作者
如果你要求开始计数前初始化寄存器,就要设置UG位;如果没有这个要求,则下个计数周期定时器会自动地产生更新事件,加载所有寄存器。所以不设置这个UG位,照样可以产生PWM,但第一个周期不一定正确。

使用特权

评论回复
地板
zhiyonghe|  楼主 | 2011-5-6 21:49 | 只看该作者
谢谢

使用特权

评论回复
5
vipsongyan| | 2011-10-7 16:51 | 只看该作者
3# 香水城

请问香主:

(1)关于对UDIS的描述中有一句话,最后一句“如果设置了UG位或从模式控制器发出了一个硬件复位,则计数器和预分频器被重新初始化”,这里面的计数器和预分频器被重新初始化是不是指将当时计数器里的值清零,但是不会更新预分频的影子寄存器(如果之前写了新的预分频器)?

(2)关于对UG的描述中有一句话,“1:重新初始化计数器,并产生一个更新事件。注意预分频器的计数器也被清‘0’(但是预分频系数不变)。”预分频系数是不是指影子寄存器里的值,如果之前写了新的预分频器,产生更新事件了,难道预分频系数不更新吗?

谢谢!

使用特权

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

本版积分规则

个人签名:zhiyonghe  ~ 学 以 致 用 ~

131

主题

1265

帖子

1

粉丝