CC2430基础——A/D程序代码分析
void InitialAD(void)
{
ADCH &= 0X00; //清EOC标志
ADCCON3=0xbf; //单次转换,参考电压为电源电压,对1/3 AVDD进行A/D转换
//14位分辨率
ADCCON1 = 0X30; //停止A/D
ADCCON1 |= 0X40; //启动A/D
//因没有取外部电压作为A/D输入,所在没有配置ADCCFG
}
数据处理
INT16U readadc(void){
temp[1] = ADCL; //取AD值
temp[0] = ADCH;
ADCCON1 |= 0x40; //开始下一转换
temp[1] = temp[1]>>2;
temp[1] |= temp[0]<<6;
temp[0] = temp[0]>>2; //数据处理
//temp[0] &= 0x3f; //排错时写的,没有用
result = (temp[0]*256+temp[1])*3.3/8192; //有一位符号位,取2^13;
}