一、需求

  1、PWM输出需要相应的管脚配置

  2、周期配置、占空比配置

  3、中断配置

二、设计

  PB4输出指定脉冲:周期和占空比变化的脉冲

  合泰单片机5-PWM_学习

  寄存器分布

       合泰单片机5-PWM_寄存器_02

 

  周期和占空比可以调只有一种:6+2模式,这个比较难以理解,这边我详细讲下:

  首先pwmc确定下时钟频率,也就是说对应的PWM的时钟周期其实只有几种:

  合泰单片机5-PWM_学习_03

   假如时钟是8M,那对应的PWM的频率只有125k,62.5k,31.25k,15.625,7.8125k,3.90625K,1.95312k,0.97656k

  2、占空比和模式

    PWM寄存器设置的是占空比和调制模式,低2位设置调制模式,高6位设置占空比

  合泰单片机5-PWM_寄存器_04

  合泰单片机5-PWM_学习_05

  HT45F000这款的PWM时钟不分频默认是125k,8us

  假如我设定:

_pwmc = 0x00; //fsys/1 = 125k 8us
_pwm = 0b10000000; //AC=0,DC=32 ;fpwm=3.90625k,duty=50% //持续为这个脉冲
//改变周期
_pwmc = 0x05; //fsys/32 = 3.90625k 256us _pwm = 0b10000000; //AC=0,DC=32 ;fpwm=3.90625k,duty=50% //持续为这个脉冲
//改变占空比
_pwmc = 0x05; //fsys/32 = 3.90625k 256us _pwm = 0b01000000; //AC=0,DC=32 ;fpwm=3.90625k,duty=50% //持续为这个脉冲
//改变调制方式3
_pwmc = 0x05; //fsys/32 = 3.90625k 256us _pwm = 0b01000011; //AC=0,DC=16 ;fpwm=3.90625k//第0、1、2个脉冲为duty=(17/64)%脉冲 3为duty=(17/64)% 脉冲
//改变调制方式2
_pwmc = 0x05;	//fsys/32 = 3.90625k 256us
_pwm = 0b01000010;	//AC=0,DC=16 ;fpwm=3.90625k//第0、1个脉冲为duty=(17/64)%脉冲  2、3为duty=(17/64)% 脉冲

  以此类推。。。。