这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 芯圣HC18M003的PWM实例:1组2路独立PWM输出

共2条 1/1 1 跳转至

芯圣HC18M003的PWM实例:1组2路独立PWM输出

专家
2023-10-09 13:51:35     打赏

  上次发帖简单说了下芯圣HC18M003PWM设备,这次给出示例程序及输出波形。以下是2路独立PWM输出模式下的程序:

#include"holychip_define.h"
 
 
/***************************************************************************************
  * @实现效果 PC0,PC2输出频率为3.9KHz的方波,PWM0占空比为50%,PWM01占空比为25%
***************************************************************************************/
void main() {  
    /**********************************系统初始化******************************************/ 
        OSCCON = 0x04;                  //Fosc=32M Fcpu=4M(Fosc4分频 2T)
    /************************************IO初始化******************************************/    
    ANSELC = 0xFF; 
    TRISC  = 0xFF;                  //PC设置数字输出模式
    /********************************PWM初始化*********************************************/ 
    PWMMAP  = 0x11;      //PWM映射PC2  PC0
    FLTMODE = 0x00;      //禁止故障检测
    PWM0C   = 0x01;        //时钟源RC32MHz/8
    PWM0C  |= 0x00;        //PWM0和PWM01均为高有效
    PWMM    = 0x11;           //独立输出模式,自动重载
    PWM0PH  = 0x03;
    PWM0PL  = 0xFF;     //PWM周期配置
    //PWM0周期 = [ PWM0PH : PWM0PL] * PWM0工作时钟源周期
    //     = 1023*(1/4000000)
    //     = 256 us
    PWM0DH = 0x01;
    PWM0DL = 0xFF;      //PWM0占空比50%
    PWM0DTH = 0x00;
    PWM0DTL = 0xFF;     //PWM01占空比为25%
    PWMEN = 0x11;     //PWM0和PWM01使能 
    while(1) {
    
    }
}


实际测试PC0PC2的输出波形见下图:

图片1.png

黄色标记的PC2的输出波形,粉色标记的是PC0的输出波形。为了便于对比观察,测试时候,人为改变了输出电压单位,使两边的波形不至于重叠。

  可以看到,PWM的周期为256微秒左右(f=3.91111kHz,T=1/f=255.68μS≈256μS),误差不大。占空比与程序设置的是一致的。一个是50%,一个和是25%





关键词: 菜鸟学单片机     芯圣     HC18M003     PWM实例    

院士
2023-12-19 16:22:34     打赏
2楼

谢谢分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]