void PWM_Init(void)
{
AUXR1 = (AUXR1 &~ (3<<4)) | (0<<4); //选择默认IO口P12_P11_P10_P37
P3M1 &= 0x7F;P3M0 &=0x7F; //P3.7口设置为准双向
CCON = 0; //初始化PCA控制寄存器
//PCA定时器停止
//清除CF标志
//清除模块中断标志
CL = 0; //复位PCA寄存器
CH = 0;
CMOD = 0x0A; //设置PCA时钟源SYSclk/4,ECF=0禁止PCA计数器溢出中断,PWM频率=PCA时钟输入源/256,这里约=11.7K
PCA_PWM2 = 0x00;//PCA模块2工作于8位PWM
CCAPM2 = 0x42; //PCA模块2为8位PWM模式
CR = 1;
}
void MotoSpeed_Setting(unsigned char spd)
{
CCAP2H = 255*(spd)/100; //将需要设置的占空比赋值到PCA模块2捕获寄存器HIGH中
}
|