PWM(Pulse Width Modulation)脉冲宽度调制
首先,明确GD32中寄存器的名称:
Counter 计数器 【TIMER_CNT】
Prescaler 预分频器 【TIMER_PSC】
Auto Reload Register 自动重装载寄存器 【TIMER_CAR】
Capture/Compare Register捕获比较寄存器 【TIMER_CHxCV】
【 PSC_CLK = TIMER_CK / TIMER_PSC 】
- 预分频器将定时器时钟(TIMER_CK)频率按1-65536(TIMER_PSC)分频,分频后时钟PSC_CLK驱动计数器计数。
- 预分频寄存器TIMER_PSC带有缓存器(影子寄存器),它能够在运行时被改变,新的预分频器的参数在下一次更新事件到来时被采用。
边沿对齐PWM(EAPWM)
向上计数:计数器值CNT<捕获/比较寄存器值(时序图中为VAL),PWM_MODE0输出高电平;
计数器值CNT>=捕获/比较寄存器值(时序图中为VAL),PWM_MODE0输出低电平;
PWM频率 = PSC_CK / (PSC+1) / (CAR+1)
PWM占空比 = CHxCV / (CAR+1)
PWM分辨率 = CAR / (CAR+1)