我需要将ADC结果值从十六进制值转换为浮点值和百分比。
例如,我将12位分辨率存储在uint16_t中(因为我有可能更改分辨率)。所以VREF应该是0x0FFF和GND 0x0000。
现在,我需要将此值转换为伏特和百分比。
我想这样做:
float volt, perc, vref;
vref = 3.3;
uint16_t adc_value = ADC_RESULT;
volt = (vref/0x0FFF)*adc_value;
perc = adc_value/(0x0FFF/100);
由于我在MCU中执行此操作,我想让它更有效率。您如何建议我做以及我应该使用哪种类型的变量(或进行转换)?