我正在尝试将 RGB LED 从一种颜色平滑过渡到另一种颜色。作为逻辑的一部分,我有以下函数来确定变化有多大(它乘以一个因子f
以避免浮点数学):
int colorDelta(int from, int to, int f) {
int delta;
if (to == from) {
delta = 0;
} else {
delta = (to - from) * f;
}
return delta;
}
当我打电话时,colorDelta(0, 255, 1000)
我希望结果是-255000
,而是函数返回7144
。
我尝试尽可能直接地执行该操作以进行调试,但Serial.print((0 - 255) * 1000, DEC);
也写入7144
串行端口。
我在这里愚蠢地忽略了什么?我真的很想看到(平滑过渡的)光。;)