如果C++中的语句没有按预期工作

if statements in C++ not working as expected

本文关键字:工作 C++ 语句 如果      更新时间:2024-05-09

Sensor_Fusion的范围从3到-3,电机输出在3到-1之间正确,电机A和B分别显示1和-1,然后切换到第二个elseif语句,但是当传感器融合低于-1时,MotorA显示1而不是-1,MotorB显示0.996024而不是1。有人知道问题出在哪里吗?

if (Sensor_Fusion >= 1) {
MotorA = 1;
}
else if (-1 < Sensor_Fusion && Sensor_Fusion < 1) {
MotorA = Sensor_Fusion;
}
else {
MotorA = -1;
}
if (Sensor_Fusion >= 1) {
MotorB = -1;
}
else if (1 > Sensor_Fusion && Sensor_Fusion > -1) {
MotorB = 0 - Sensor_Fusion;
}
else {
MotorA = 1;
}

最后一行有错误,应该是MotorB = 1;而不是MotorA = 1;