一、需求
1、PWM输出需要相应的管脚配置
2、周期配置、占空比配置
3、中断配置
二、设计
PB4输出指定脉冲:周期和占空比变化的脉冲
寄存器分布
周期和占空比可以调只有一种:6+2模式,这个比较难以理解,这边我详细讲下:
首先pwmc确定下时钟频率,也就是说对应的PWM的时钟周期其实只有几种:
假如时钟是8M,那对应的PWM的频率只有125k,62.5k,31.25k,15.625,7.8125k,3.90625K,1.95312k,0.97656k
2、占空比和模式
PWM寄存器设置的是占空比和调制模式,低2位设置调制模式,高6位设置占空比
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)% 脉冲
以此类推。。。。