|
PCA在高速输出模式(输出PWM波),到了一个设定的比较值输出发生翻转,不进中断,那么匹配时比较寄存器的值是否需要重置,如不需要重置,PCA始终计数,溢出之后再从0000重新开始,以此来产生PWM.根据设定不同的比较值,达到对输出不同PWM的相位控制。这是我的想法,我看了您的书,不知道这样是否可行?
我主要是用PCA/PWM模块来进行四路PWM的输出,但是用PWM模式只能调节占空比,不能调节输出PWM的相位;所以我才想用高速输出模式来完成。请大家给点意见这种方法行不行??
sbit pwm0=P3^7;
sbit pwm1=P3^5;
sbit pwm2=P2^0;
sbit pwm3=P2^4;
void PCA_init(void);
void main()
{
PCA_init();
CCAP0H=0x7F;
CCAP0L=0xFF;
CCAPM0=0x4C;
CCAP1H=0xFF;
CCAP1L=0xFF;
CCAPM1=0x4C;
CCAP2H=0xFF;
CCAP2L=0xFF;
CCAPM2=0x4C;
CCAP3H=0x7F;
CCAP3L=0xFF;
CCAPM3=0x4C;
pwm0=1;
pwm1=1;
pwm2=1;
pwm3=0;
CR=1;
while(1);
}
void PCA_init(void)
{
CMOD=0x00;
CCON=0x00;
CL=0x00;
CH=0x00;
}
|
|