有朋友问2430的AD初始化及数据处理.重复回答很辛苦,就在这里贴出来吧.
如果对你有帮助,请记得顶一下.
/****************************************************************
*函数功能 :初始化ADC *
*入口参数 :无 *
*返 回 值 :无 *
*说 明 :参考电压AVDD,转换对象是1/3AVDD *
****************************************************************/
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;
}
文章评论(0条评论)
登录后参与讨论