我们看下官方数据手册上面是如何计算周期的:
PWM周期=(PR2+1)*4*Tosc*TMR2分频数 这个公式里有2个地方需要注意:
① Tosc是4MHz,而不是1MHz
② 乘以4这个就是CCPR1L<<2(右移2位)的意思
假设我想实现10kHz占空比90的方波,改怎么填写相关寄存器的值?
首先计算10kHz周期也就是100us
100=(PR2+1)*4*0.25*1(分频数)
则PR2=99
CCPR1L:X:Y=90*4*0.25*1
可以取X:Y=0:0(等式两边同时右移2位)
则CCPR1L=90
到这里我还没有回答为什么分子比分母大?其实分子和分母都是10bit,只不过分母的最低2bit始终是0; 而分子的10bit都是可以设置的,这样的好处是可以精确的设计出想要的占空比,比如27%,61%,84%...
|