【发布时间】:2017-10-18 17:31:07
【问题描述】:
我不知道如何解决这个问题,它应该很简单。我正在使用 pic16F1526 并尝试将模拟到数字的读数从 0-255 大致缩放到 50-100。我正在使用这个等式
结果 = ((user_input + 200) * 200) / 800;
在代码块和我的计算器上,它适用于 0-255 的所有数字,无论我在代码块中使用 8 位、16 位变量,它都能完美运行。 我已经验证了 AtoD 输入工作正常,将数据发送到 UART。即使我输入静态数字代替样本,我也会得到奇怪的结果。
当 acd 读取 255 或我输入 255 时,等式会给出十进制的 31,而不是应该的 100。我唯一能想到的是,8 位 PIC 的数学运算方式变得一团糟,因为它有点微。
【问题讨论】:
标签: math numbers scaling microchip