avr ad转换的问题
uintADC_Convert(void){uinttemp1,temp2;temp1=(uint)ADCL;temp2=(uint)ADCH;temp2=(temp2<...
uint ADC_Convert(void)
{uint temp1,temp2;
temp1=(uint)ADCL;
temp2=(uint)ADCH;
temp2=(temp2<<8)+temp1;
return(temp2);
}
/**************************/
uint conv(uint i)
{
long x;
uint y;
x=(5000*(long)i)/1023;
y=(uint)x;
return y;
}
adc_val=ADC_Convert();
dis_val=conv(adc_val);
这几句程序的意思是什么时候啊? 展开
{uint temp1,temp2;
temp1=(uint)ADCL;
temp2=(uint)ADCH;
temp2=(temp2<<8)+temp1;
return(temp2);
}
/**************************/
uint conv(uint i)
{
long x;
uint y;
x=(5000*(long)i)/1023;
y=(uint)x;
return y;
}
adc_val=ADC_Convert();
dis_val=conv(adc_val);
这几句程序的意思是什么时候啊? 展开
展开全部
当然不是整数,理解有问题
比较说ATmega8它的技术资料参数:
PDIP封装 8 路 10位ADC
AD是10位的,那么它将基准为5V的电压分为1024份,精度就很高了。
专业说法:
一个n 位的单端 ADC 将GND 与VREF 之间的线性电压转换成2n 个(LSBs) 不同的数字量。最小的转换码为0,最大的转换码为2n-1。
你可以仔细看一下AVR芯片的datasheet
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
比较说ATmega8它的技术资料参数:
PDIP封装 8 路 10位ADC
AD是10位的,那么它将基准为5V的电压分为1024份,精度就很高了。
专业说法:
一个n 位的单端 ADC 将GND 与VREF 之间的线性电压转换成2n 个(LSBs) 不同的数字量。最小的转换码为0,最大的转换码为2n-1。
你可以仔细看一下AVR芯片的datasheet
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询