hy229149339 发表于 2013-7-30 08:33

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

#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={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;
       DATA_MIN=DATA;
           if(DATA_MAX<DATA)DATA_MAX=DATA;
           if(DATA_MIN>DATA)DATA_MIN=DATA;
          
          }

        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]
查看完整版本: 求大神相助,为什么进入ADC功能函数后值带不出来?