标题: MCU C语言ADC结果的高8位和低2位,如何结合为10位? [打印本页]

作者: 君工创    时间: 2021-10-6 09:03
标题: MCU C语言ADC结果的高8位和低2位,如何结合为10位?
请教各位大佬,ADC结果的高8位和低2位,如何结合为10位。

作者: fangbl    时间: 2021-10-6 11:11
AD_Value = ((((unsigned int)ADC_DRH)<<2)+ADC_DRL);
作者: fangbl    时间: 2021-10-6 11:12
unsigned int AD_Value;
AD_Value = ((((unsigned int)ADC_DRH)<<2)+ADC_DRL);
作者: 君工创    时间: 2021-10-6 12:36
fangbl 发表于 2021-10-6 11:12
unsigned int AD_Value;
AD_Value = ((((unsigned int)ADC_DRH)

谢谢你及时指导。
作者: 188610329    时间: 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;


作者: 君工创    时间: 2021-10-6 20:21
188610329 发表于 2021-10-6 19:57
一般来讲  10 位 ADC的精度来讲, 低2位都是舍弃的,因为本来就不准,硬拿来参与计算的话,除了增加运算负 ...

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1