|
PCA模块和C8051单片机类似,最高占空比可到100,但是最小占空比却无法到,因此,如果需要输出低电平,需要将CCAPMn清0,并将管脚设为低,需要再次启用PWM模块,只需将CCAPMn赋值CCAPM1=0x42;
ADC模块首先要上电,等待起稳才能开始转换,如果转换频繁,就不需要关闭ADC电源了。第二个要注意的是设置ADC_CONTR后要加4个空操作才能将其写入寄存器中。
ADC转化程序(查询方式)
uchar GetADCResult(uchar ch)//ch 0~7
{//取高8bit值,STC的ADC更换通道后,第一次测量值仍然是改之前的,要舍弃
ADC_CONTR=0xe8|ch; //选择通道,先或再赋值,因此ADC_CONTR被重新赋值了
_nop_();_nop_();_nop_();_nop_();
while((ADC_CONTR &0x10)==0); //Wait completeflag,==优先级大于&,因此要加括号
ADC_CONTR&=~0x10; //清除转换结束标志ADC_FLAG
returnADC_DATA; //Return ADC result
}
|
|