微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > CC2530AD采集,采集不到数据,求指教

CC2530AD采集,采集不到数据,求指教

时间:10-02 整理:3721RD 点击:

void ADCInit(void)
{
P0SEL|=0X01;
  APCFG|=0x01;//设置P0_0为模拟量输入
   // P0SEL|=0X07;
// APCFG|=0x07;//设置P0_7为模拟量输入
  //ADCCON1=0x33;//启动选择为定时器1通道0比较事件
  //ADCCON2=0x60;//AIN7引脚电压作为外部参考电压;256抽取率,10位数字有效位
  //
    //ADCH&=0X00;//?清EOC标志?
    ADCCON3=0xb0;//?单次转换,参考电压为,对AIN1进行A/D转换,12位分辨率?P0.7?
     ADCCON1=0X33;//
     ADCCON1|=0X40;//启动ad
   while(!(ADCCON1 & 0x80)); //等待转换结束
   //ADCCON1|=0X80
  //ADCIF=0;//清AD中断标志
value = ADCL>>4;//程序中设置的是12bit的精度,取低4位值
value |= ADCH<<4; //高八位值
//
ADCValue[gNum] = value;//此处有疑问,本来是12bit的精度,除数应该是4096的,但是得用2048才能得到准确的值
  //ADCValue[gNum]=(float)(value/(float)2048)*3.3;   
  gNum++;
  Cal_Loop=1;*系统初始化*/
void Initial()
{
   CLKCONCMD = 0x28;           //时器计数时钟设定为1M Hz,  系统时钟设定为32 MHz   
    while(CLKCONSTA & 0x40);    //等晶振稳定
  /*配置IO口*/
  P1DIR|=0x07;//设置P1_0与P1_1为输出作为LED,分别作为无线通讯与程序刷新指示
// P1DIR|=0x04;//设置P1_2为看门狗WDI
  /*ADC初始化*/
// ADCInit();
}
void main()
{
uchar i;
  uchar*data;
  Initial();
  RfInit();
// TIME1CH0Init();
  TIME3CH0Init();
  LED_WX=1;
  while(1)
  {
  FeedDogs();
for(i=0;i<64;i++)
{
   ADCInit();
  //average +=value;  
   }  
  Ai_Calc();
  RfAppendTxBuf(data,Sendnum);
  }
}
void Ai_Calc(void)
{
    uint i;
    //float ppp_1;
    if(Cal_Loop)
    {
        Move_Flag=FALSE;
        Cal_Loop=FALSE;
         Fft64_Base2(ADCValue,AD_Ia);
        for(i=0;i<3;i++)
        {
            F_Ia=AD_Ia;
        }
        corval=currentcor/
AD_Ia;
         F_Ia=
AD_Ia*corval;
          for(i=AVAGE_NUM-1;i>=1;i--)
        {   
            P_Ia_1=P_Ia_1[i-1];
        }
        P_Ia_1[AI_EFF_VAL]=F_Ia_1[AI_EFF_VAL];
        ppp_1[0]=P_Ia_1[0]+P_Ia_1[1]+P_Ia_1[2];
        Ia_1=ppp_1[0]/AVAGENUM;
        DisADval=(uint)Ia_1;
        Move_Flag=TURE;
    }
}
这是ad的配置,怎么采集不到数据,求指教

大神们求指教啊 !

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top