找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2973|回复: 5
收起左侧

MCU C语言ADC结果的高8位和低2位,如何结合为10位?

[复制链接]
ID:965189 发表于 2021-10-6 09:03 | 显示全部楼层 |阅读模式
请教各位大佬,ADC结果的高8位和低2位,如何结合为10位。
回复

使用道具 举报

ID:803227 发表于 2021-10-6 11:11 | 显示全部楼层
AD_Value = ((((unsigned int)ADC_DRH)<<2)+ADC_DRL);
回复

使用道具 举报

ID:803227 发表于 2021-10-6 11:12 | 显示全部楼层
unsigned int AD_Value;
AD_Value = ((((unsigned int)ADC_DRH)<<2)+ADC_DRL);
回复

使用道具 举报

ID:965189 发表于 2021-10-6 12:36 | 显示全部楼层
fangbl 发表于 2021-10-6 11:12
unsigned int AD_Value;
AD_Value = ((((unsigned int)ADC_DRH)

谢谢你及时指导。
回复

使用道具 举报

ID:624769 发表于 2021-10-6 19:57 | 显示全部楼层
一般来讲  10 位 ADC的精度来讲, 低2位都是舍弃的,因为本来就不准,硬拿来参与计算的话,除了增加运算负荷得不偿失。非要组合成10位的话,根据低2位高靠(7,6位)还是低靠(1,0位),拼接方法不同。

高靠:
unsigned short ADC;
ADC = ADC_H;
ADC <<= 8;
ADC |= ADC_L;
ADC >>=6;

低靠:
unsigned short ADC;
ADC = ADC_H;
ADC <<= 2;
ADC |= ADC_L;

回复

使用道具 举报

ID:965189 发表于 2021-10-6 20:21 | 显示全部楼层
188610329 发表于 2021-10-6 19:57
一般来讲  10 位 ADC的精度来讲, 低2位都是舍弃的,因为本来就不准,硬拿来参与计算的话,除了增加运算负 ...

原来是这样。今天实现了10位运算,真没看到精度明显提高。跟8位的运算结果一样。谢谢指导。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表