ADC8位精度或10位精度

 ADC的精度是不用设置的。ADC的转换结果在ATmega16中都是10位,不管怎么设置。只是当我们需要8位精度时,读取高8位即可,低2位忽略。当需要10位精度时,全部10位都读取。在说明前,先定义一些变量unsigned int ADC_result;unsigned int ADC_temp;对于左对齐8位精度:这种情况只需要读取ADCH( ADC_result = ADCH),ADCL可以不读。10位精度:这种情况比较复杂ADC_result = ADCL; //一定要先读取低字节ADC_temp = ADCH; //再读取高字节ADC_result |= (ADC_temp<<8);ADC_result = (ADC_result>>6) & 0x03FF; //10位精度的结果右对齐8位精度:ADC_temp = ADCL;ADC_temp |= (ADCH<<8);ADC_result = (ADC_temp>>2) & 0x00FF; //将低2位移出10位精度:ADC_temp = ADCL;ADC_temp |= (ADCH<<8);ADC_result = ADC_temp;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值