zigbee cc2530 AD采集的问题

[复制链接]
220|2
 楼主 | 2018-1-11 19:04 | 显示全部楼层 |阅读模式
各位大神好,我是新人小白,最近刚刚接触zigbee相关内容,但由于不是电子或通信相关专业出身,学习起来比较吃力。
最近在做CC2530  AD采集电压实验时,采集P0_7引脚电压,发现一直采集不到电压数据,显示0.0V,想问问是哪里出了问题,谢谢各位!


#include<iocc2530.h>
#define unit unsigned int
#define LED1 P1_0
char temp[2];
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[1]=ADCL;
      temp[0]=ADCH;//
      InitialAD();//ADC初始化
      ADCCON1 |0x40;//下一次转换
     
      adc |=(unit)temp[1];
      adc |=((unit)temp[0])<<8; //adc赋值
      if(adc&0x8000)
      {
        adc=0;
      }
      else
      {
        num=adc*3.3/8192;//参考电压3.3V,16分辨率
        adcdata[1]=(char)(num)%10+48;
        adcdata[3]=(char)(num*10)%10+48;
      }
      Delay();
      LED1= ~LED1;
      Delay();
    }
  }

}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主 | 2018-1-23 10:11 | 显示全部楼层
有大神在吗
 楼主 | 2018-1-24 22:07 | 显示全部楼层
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /4 下一条

分享 快速回复 返回顶部 返回列表