欢迎光临散文网 会员登陆 & 注册

应广PMS154C(1)--11位PWM输出

2021-05-27 16:55 作者:记帖  | 我要投稿

概述

    作者在以前已经讲解完PMS171B端口输出高低电平,PWM输出,在所用的PMS154C芯片有个为11位PWM输出,就写个11位PWM例程,方便大家快速上手。

    这里选用8PIN的单片机进行开发,引脚如下图所示,选取7号管脚进行开发。

    若使用PA5输出PWM,需要上拉电阻。

PMS171B之PWM配置

    pwmg0c寄存器是配置PWMG0控制,所以需要开启OWMG0,同时输出到PA0,时钟选择IHRC,故配置如下。

    pwmg0s寄存器是配置PWMG0分频。

    上述寄存器为计数寄存器和占空比寄存器。

PWM计算与配置

    在本文中我们设置输出为38kHz,三分之一占空比的PWM载波,根据上图公式,F为16M,需要输出PWM 为38kHz,故:

    38k = 16M÷[P * (K+1) * CB]

   求得[P * (K+1) * CB]需要等于421,设置P分频为1,即pwms[6:5]=00,设置K为4,即pwms[4:0]=0100,所以CB为84,即Counter_Bount[10:1]=00 0101 0100,代码配置如下。

    由上图可知,计时器Counter_Bount[10:0] = {pwmgxcubh[7:0], 所以Counter_Bount[10:0] = 000 1010 1000,转化为十进制为168。

    占空比可通过修改Duty[10:0]来改变,Duty_Bound[10:0] = {pwmgxdth[7:0],pwmgxdtl[7:5]} ,如果需要设置三分之一的占空比,即168/3=56,所以Duty[10:0] = 000 0011 1000,pwmgxdth[7:0]配置为0000 0111,pwmgxdtl[7:5]配置为000,如下。

11位PWM输出完整代码

    演示效果

    如下图所示,频率为37.6kHz,占空比为33.83%,配置成功。


应广PMS154C(1)--11位PWM输出的评论 (共 条)

分享到微博请遵守国家法律