在上一篇博文通用定时器的中断中,描述了通用定时器中断的流程,这一节除了需要时钟源和时基单元外,还需要输出通道,这里涉及一个非常重要的寄存器,输出比较寄存器,如图
通过设置该寄存器(CCRX)来调整pwm输出的占空比,如下图所示:
CNT计数器计的值超过CCRx的值时候,输出高电平,低于时输出低电平。在上一篇博文中设置溢出时间Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk,可见设置ARR和PSC可以设置pwm的输出频率。
以通道1为例说明pwm的工作过程:
首先通过设置CCR1(捕获比较(值)寄存器)设置设置比较值。
然后通过设置CCMR1: OC1M[2:0]位以及CCER:CC1P位(输入/捕获1输出极性)来设置高低电平的输出模式,具体如图所示