大家好,有问题请教一下。
我用ATmega128的模数转换器来从外部读入数据,但是转换后结果data1.T输出为零,请你帮我看一下程序。要是有关于ATmega128单片机模数转换器方面的编程实例的话也请发上来,让偶学习下
程序如下:
//----模数转换器初始化---//
void adc_initial(void)
{
DDRA=0x00;//把PA端口设为输入
ADCSRA=0xe3;//AD工作在自由转换模式
ADMUX=0xc0;//选择ADC输入通道0
PORTA=0XFe;
DDRA=0XFe;//将PA端口的最低位设为输入
}
uint ADCT_Convert(void)
{
uint temp1,temp2;
temp1=(uint)ADCL;
temp2=(uint)ADCH;
temp2=(temp2<<8)+temp1;
return(temp2);
}
//----温度 A/D转换----//
void AD_convert_T()
{i1=0;
ADCSRA|=0xe3;
wait:
if(ADCSRA>=0xc0)
goto wait;
else
{
a1=temp2;
}
if(a1<160)
a1=160;
}
//----温度标度变换-----//
void Temp_convert()
{
b1=800;c1=100; //选取温度0~100,模拟输入0.4-2v,转换结果160-800(ADC=V*255/5)
e1=160;
data1.T=(int)((a1-e1)*c1/(b1-e1));
} |