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;

}

posted @ 2012-07-10 12:18  平湖之下  阅读(249)  评论(0编辑  收藏  举报