Aner58 发表于 2018-1-11 19:04

zigbee cc2530 AD采集的问题

各位大神好,我是新人小白,最近刚刚接触zigbee相关内容,但由于不是电子或通信相关专业出身,学习起来比较吃力。
最近在做CC2530AD采集电压实验时,采集P0_7引脚电压,发现一直采集不到电压数据,显示0.0V,想问问是哪里出了问题,谢谢各位!


#include<iocc2530.h>
#define unit unsigned int
#define LED1 P1_0
char temp;
unit adc;
float num;

void Delay()
{
unsigned int i,j;
for(i=0;i<1000;i++)
    for(j=0;j<200;j++);
}
char adcdata[]="0.0V";

void InitialAD(void)//采集P0_7的电压,数据寄存器清零
                  //P0_7模拟I/O使能
                  //单次转换,电源电压,抽样率512
                  //启用ADC转换,启用前先关闭ADC转换
{
ADCH &=0x00;
ADCL &=0x00;//数据寄存器清零
APCFG |=0x80;//P0_7模拟外设I/O使能

/* P0SEL|= 0x80;// 偏上外设
P0DIR&= ~0x80;//输入*/

ADCCON3=0xb7;//1011 0111

ADCCON1 =0x30;//0011 0000
ADCCON1 |=0x40;//0100 0000停止A/D转换,再启动A/D
}

void main(void)//LED1 指示,ADC转换完成LED1改变状态
         //调用ADC初始函数
         //ADC转换完成后将结果放入temp
         //调用ADC初始函数进行下一次转换
         //处理ADC结果

{
P1DIR |=0x01;//P1控制LED                  
LED1 =1;//LED1灭
// LED2 =1;
InitialAD();//ADC初始化
while(1)
{
    if(ADCCON1&0x80)//等待转换完成
    {
      temp=ADCL;
      temp=ADCH;//
      InitialAD();//ADC初始化
      ADCCON1 |0x40;//下一次转换
   
      adc |=(unit)temp;
      adc |=((unit)temp)<<8; //adc赋值
      if(adc&0x8000)
      {
      adc=0;
      }
      else
      {
      num=adc*3.3/8192;//参考电压3.3V,16分辨率
      adcdata=(char)(num)%10+48;
      adcdata=(char)(num*10)%10+48;
      }
      Delay();
      LED1= ~LED1;
      Delay();
    }
}

}

Aner58 发表于 2018-1-23 10:11

有大神在吗

Aner58 发表于 2018-1-24 22:07

页: [1]
查看完整版本: zigbee cc2530 AD采集的问题