天天看点

CC2530之ADC

/*****************ADC配置初始化***********/
void hal_adc_Init(void)
{
    APCFG |= 1;  //模拟I/O配置,AIN0(P0.0)作为模拟I/O使用
    P0SEL |= (1<(0));  //设置P0.0为外设功能
    P0DIR &=~(1<<0);  //设置P0.0为输入方向
}
/***************************************/
/************获得ADC采样值************/
unsigned int get_adc(void)
{
    unsigned long value;
    hal_adc_Init();  //ADC初始化
    ADCIF=0;  //清ADC中断标志
    ADCCON3=(0x80|0x10|0x00);  //采用基准电压avdd5:3.3V,通道0,启动AD转换

    while(!ADCIF);  //等待AD转换结束
    value=ADCL;  //ADC转换结果的低位部分存入value中
    value|=((uint16)ADCH<<8);  //取得最终结果存入value中
    value=value*330;
    value=value>>15;  //根据计算公式算出结果值
    return (uint16)value;
}
           

继续阅读