17141200320 发表于 2024-1-15 19:01:19

读取ADC值,为什么要左移八位,然后加低八位

请教各位大师,读取ADC值,为什么ADC_RES<<8位,可以详细举例吗。为什么不能右移。
    return(((u16)ADC_RES << 8) | ADC_RESL);   

xuzeabc 发表于 2024-1-16 08:38:49

ADC_RES存储了ADC的高四位(12位AD),ADC_RESL存储了ad值的低8位。返回的为无符号16位的,所以左移,也就是return(((u16)ADC_RES << 8) | ADC_RESL);

_奶咖君_ 发表于 2024-1-16 09:06:05

话说右移你想要得到什么0.0~

lzl1okOK 发表于 2024-1-16 10:56:13

放大作用相当是ADC_RES*256

17141200320 发表于 2024-1-16 13:27:00

本帖最后由 17141200320 于 2024-1-16 13:28 编辑


泰勒soc 发表于 2024-1-16 14:39:52

请你好好学习一下数制与码制,还有C语言的运算符{:4_166:}

Kingsley 发表于 2024-1-17 15:10:15

右移补0了

17141200320 发表于 2024-1-18 19:08:54

Kingsley 发表于 2024-1-17 15:10
右移补0了

是的,我也是请教别人讲得。

冷月烟 发表于 2024-1-19 09:38:58

右移只能得到寂寞,数据都移没了{:4_245:}

17141200320 发表于 2024-1-19 09:57:33

xuzeabc 发表于 2024-1-16 08:38
ADC_RES存储了ADC的高四位(12位AD),ADC_RESL存储了ad值的低8位。返回的为无符号16位的,所以左移,也就 ...
非常感谢
页: [1] 2
查看完整版本: 读取ADC值,为什么要左移八位,然后加低八位