打印

求大神相助,为什么进入ADC功能函数后值带不出来?

[复制链接]
1047|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hy229149339|  楼主 | 2013-7-30 08:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<iom128v.h>
#include<macros.h>
#include<math.h>                                                   
#include<delay.h>

#define uchar unsigned char                            //数据类型预定义  
#define uint unsigned int                                    
#define longint long int

#define N 300

uint x,y,z;
//float DATA[N]={0,};

/**************************************************************
**函数功能:端口初始化
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:delay()
**************************************************************/
void INIT_PORT()
{
  DDRA|=BIT(0);                  //ADC0输入通道
  PORTA&=~BIT(0);
}

/**************************************************************
**函数功能:ADC功能函数
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:delay()
**************************************************************/
void ADC_128 ()
{
INIT_PORT();
ADMUX=0X00;                    //外部AREF,左对齐,ADC0单端输入
ADCSRA=0x86;                   //使能,单次转换模式,64分频  
ADCSRA|=BIT(ADSC);              //启动首次转换
while(!(ADCSRA&(1<<ADIF)));    //等待转结束循环
ADCSRA|=(1<<ADIF);             //清除ADIF位
x=ADCL;
y=ADCH;
z=x+y*256;
//z=999;           
}

/**************************************************************
**函数功能:主函数
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:delay()
**************************************************************/
void main()
{
  uchar i=0;
  //float DATA_MAX;
  //float DATA_MIN;
  //uint MAX=0;
  //uint MIN=0;
  //INIT_PORT();
  
  while(1)
  {
    ADC_128();
   /*for(i=0;i<N;i++)
          {
           DATA_MAX=DATA[0];
       DATA_MIN=DATA[0];
           if(DATA_MAX<DATA[i])DATA_MAX=DATA[i];
           if(DATA_MIN>DATA[i])DATA_MIN=DATA[i];
          
          }

        MAX=DATA_MAX*1000;
        MIN=DATA_MIN*1000;
        RUN_1602(MAX,MIN);*/

  RUN_1602(z,0);

  }

}

相关帖子

沙发
yulunna| | 2013-7-30 09:22 | 只看该作者
值读不出来,说明你那ADC读驱动有问题:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝