PCA_PWMx的值用一条指令写入,像这样:
- void UpdatePcaPwm(u8 PCA_id, u16 pwm_value)
- {
- if(PCA_id == PCA0)
- {
- PCA_PWM0 = (PCA_PWM0 & ~0x32) | (u8)((pwm_value & 0x0300) >> 4) | (u8)((pwm_value & 0x0400) >> 9);
- CCAP0H = (u8)pwm_value;
- }
- else if(PCA_id == PCA1)
- {
- PCA_PWM1 = (PCA_PWM1 & ~0x32) | (u8)((pwm_value & 0x0300) >> 4) | (u8)((pwm_value & 0x0400) >> 9);
- CCAP1H = (u8)pwm_value;
- }
- else if(PCA_id == PCA2)
- {
- PCA_PWM2 = (PCA_PWM2 & ~0x32) | (u8)((pwm_value & 0x0300) >> 4) | (u8)((pwm_value & 0x0400) >> 9);
- CCAP2H = (u8)pwm_value;
- }
- }
复制代码
官网8G-8H库函数例程包里面的“STC8G_PCA.c”文件,或者独立程序“30-PCA-3路硬件PWM模式呼吸灯程序-STC8G”例子可以参考。
库函数例程包下载页面:https://www.stcai.com/khs |