找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1743|回复: 5
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
ID:965189 发表于 2021-10-6 09:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位大佬,ADC结果的高8位和低2位,如何结合为10位。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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)

谢谢你及时指导。
回复

使用道具 举报

5#
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;

回复

使用道具 举报

6#
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 单片机教程网

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