我想使用 PIC18F14K50 的 ADC 外设计算电压。结果范围在 0-1023(10 位)之间。所以我用了这个简单的计算:
uint16_t voltage = ADC_Result * 5000 / 1023;
但是,结果是不正确的。我猜发生了算术溢出。我尝试了许多括号的组合,改变元素的顺序等
。最好的结果是 4088,ADC_Result
而使用下面的代码是 1023;这离5000还差得很远。
uint16_t voltage = ADC_Result * (5000 / 1023);
我应该怎么做才能在上述计算中获得更好的结果?请不要建议浮点,因为它们会在 MCU 中造成灾难!他们使用大量资源而没有任何实际利益。