应广单片机11bitPWM配置

        应广单片机有两种硬件pwm,一种是8bit,另外一种是11bit,8bit的配置稍微简单一些.现在以pms133/psm134为例子,贴一个11bit pwm配置的例子.修改一下可以应用于应广其他系列的单片机中.要注意的是pms152的11bit pwm无法仿真,配置也稍微有点不同.在使用的时候要注意一下.再强调一遍,pms152的 11bit pwm 无法用仿真器仿真.只能通过烧片测试.

计算公式如下:

配置

/*11bit pwm输出OK*/
void PwmG0Init(void)
{
    word usTmr;
    usTmr=800;    
    /*上限低3位*/
    pwmg0cubl=(usTmr<<6);
    /*上限高8位*/
    pwmg0cubh=(usTmr>>2);

    usTmr=300;
    /*占空比低3位*/
    pwmg0dtl=usTmr<<6;
    /*占空比高8位*/
    pwmg0dth=usTmr>>2;

    
     /*b7@0=计数值为0产生中断
       b6:5@01=预分频为4
       4:0@1-32分频*/
    pwmg0s=0b1_10_10011;

    
   /*b7@1=启用pwm
     b6@默认,生成器输出状态
     b5@0=输出极性不反转
     b4@1=g2计数值清零
     
     b3:b1@001=PB5;011=PA0;100=PB4
     
     b0@1=(IHRC*2)*/
     pwmg0c=0b1_0_0_1_100_0;
 
}

/*设置占空比*/

void SetRightPwmDt(void)
{

   /*重新开启,可能出现关闭pwm的状况,因此设置占空比的的时候重新打开*/

    pwmg0c=0b1_0_0_1_100_0;
    /*占空比低3位*/
    pwmg0dtl=usPwmCnt<<6;
    /*占空比高8位*/
    pwmg0dth=usPwmCnt>>2;


}

        注意:8bit的pwm在使用的时候,即使设置占空比为0,仍有零星的波形输出.为了安全起见,11bit的pwm还是采用关闭pwm输出的策略去设置占空比为0 

/*关闭*/

void ClosePwm(void)

{

  pwmg0c=0b1_0_0_1_000_0;

/*对应的端口设置成0*/

}

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值