15单片机生成PWM波

    xiaoxiao2024-10-17  78

    端口设置:

    寄存器配置:

    void PWM_Config(void) { P2M0 &= //配置 P2M1 &= P0 &= //设置P2.1 P2.2电平 PWMCKS = PWMC = CYCLE; PWM3T1 = PWM3T2 = PWM3CR = PWM4T1 = PWM4T2 = PWM4CR = PWMCFG = 0x00; //配置PWM输出初始电平 PWMCR = 0x3f; //使能PWM信号输出 PWMCR |= 0x80; //使能PWM模块 P_SW2 &= ~0x80; } void PWM3_SetPwmWide(unsigned char wide) { if(wide == 0) { //脉冲宽度为0,输出恒为0 PWMCR &= ~0x02; PWM3 = 0; } else if(wide == CYCLE) { //脉冲宽度为周期长度,输出恒为1 PWMCR &= ~0x02; PWM3 = 1; } else { P_SW2 |= 0x80; PWM3T1 = wide; P_SW2 &= ~0x80; PWMCR |= 0x02; } }
    最新回复(0)