请教AVR单片机片内10位ADC转换结果读取问题。

请教AVR单片机片内10位ADC转换结果读取问题。,第1张

右对齐的时候,10位ADC的结果表示方式为ADCH:ADCL,ADCH是10bit结果的高2位,ADCL是10bit结果的低8位,如果要将ADC的结果存储到一个int型的变量中,那就需要先将ADCH的结果左移8位,再和ADCL的相加,左移8位等价于乘以256

比如一次ADC转换的结果为0x0347,即ADCH=0x03,ADCL=0x47,现在要讲这个结果存储在result中,那就是result=ADCH256+ADCL=0x03256+0x47=0x300+0x47=0x0347,就这样的。

当结果为左对齐的时候,ADCH存储的是10bit结果的高8位,ADCL的最高两位存储的是10bit结果的最低两位,如果以上面的例子说,右对齐的数值是0x0347,变成左对齐的时候就是0xD1C0,这时ADCH=0xD1,ADCL=0xC0。

如果对转换结果的要求不高,只读取8位数据时,就是用左对齐方式读取ADCH的数值,因为0x0347÷4=0x00D1。

综合的结果就是:要计算10bit转换结果,就用右对齐方式最简单;要获得8bit转换结果,就用左对齐方式最简单。

当然,要想把左对齐的结果转换为整形数,就这么计算了:

result=(int)ADCH<<2+ADCL>>6,或者:

result=(int)ADCH4+ADCL/64

单片机的世界里是有专门的模块完成的,或者单独的芯片,或是电路直接集成在单片机里面,所以,就是ADC

ADC

  ADC是模数转换器转换器 的供应商的英文简称,是一种能将模拟信号转变为数字信号的电子元件。通常是将信号采样并保持以后,再进行量化和编码,这两个过程是在转化的同时实现的。

  具体的转化步骤在这里就不展开说了,如果是开发者使用,我们应该关注哪些参数

分辨率-说明AD对输入信号的分辨能力,及数值部分的精度。一般模拟采样中使用16位还是24位的AD芯片说的就是分辨率

例如:输入模拟电压的变化范围为0~33 V,输出16位二进制数可以分辨的最小模拟电压为33V / 216=005 mV;

2 转化误差-表示AD实际电压与理论电压的偏差,一般用最低有效位来表示,单位LSB,通常以相对误差的形式出现,比如相对误差≤±LSB/2,表明实际输出的数字量和理论量误差小于最低位的一半。

转换精度-这里一般用转化误差和分辨率来表述,具体就是AD最大量化过程中采用了四舍五入的方法及模拟处理部分的精度问题。

转化时间-即从信号输入开始到输出稳定的信号所经过的时间。不同的AD准换的速度不同,根据实际要求来选型。

工作电压和基准电压(内部或者外部基准):工作电压是AD芯片工作的额定电压,关键的是基准电压,又叫参考电压,可以来之芯片内部又或者外部接入,其决定了AD的分辨率,所有基准电压一定要稳。

以上就是关于请教AVR单片机片内10位ADC转换结果读取问题。全部的内容,包括:请教AVR单片机片内10位ADC转换结果读取问题。、单片机如何一秒读一次adc的值、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9463760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存