Left_Acc = templ_pluse - Left_Old; if (Left_Acc>50) templ_pluse = Left_Old+50; if(Left_Acc<-50) templ_pluse = Left_Old-50; Right_Acc = tempr_pluse - Right_Old; if (Right_Acc>50) tempr_pluse = Right_Old+50; if(Right_Acc<-50) tempr_pluse = Right_Old-50; Left_Old = templ_pluse; Right_Old = tempr_pluse; RealSpeed_Old = ZJZ; ZJZ = (templ_pluse + tempr_pluse)*0.5;
时间: 2024-04-15 14:32:15 浏览: 72
wpad.zip_firefox wpad_wp_wpad_wpad.dat
根据你提供的代码,问题出在 `templ_pluse` 和 `tempr_pluse` 的赋值上。在这段代码中,首先计算了 `Left_Acc` 和 `Right_Acc` 的值,然后根据条件对 `templ_pluse` 和 `tempr_pluse` 进行赋值。
然而,问题是在赋值语句中使用了 `Left_Old` 和 `Right_Old` 的旧值进行计算,而这些旧值是在赋值之前更新的。这意味着,当条件满足时,赋值语句的右侧将使用旧值进行计算,而不是更新后的值。
为了解决这个问题,你可以将旧值的更新放在计算之前,即将 `Left_Old` 和 `Right_Old` 的赋值语句放在条件判断之前。
以下是修改后的代码示例:
```cpp
Left_Acc = templ_pluse - Left_Old;
Right_Acc = tempr_pluse - Right_Old;
if (Left_Acc > 50) {
Left_Old = Left_Old + 50;
templ_pluse = Left_Old;
} else if (Left_Acc < -50) {
Left_Old = Left_Old - 50;
templ_pluse = Left_Old;
} else {
templ_pluse = Left_Old;
}
if (Right_Acc > 50) {
Right_Old = Right_Old + 50;
tempr_pluse = Right_Old;
} else if (Right_Acc < -50) {
Right_Old = Right_Old - 50;
tempr_pluse = Right_Old;
} else {
tempr_pluse = Right_Old;
}
RealSpeed_Old = ZJZ;
ZJZ = (templ_pluse + tempr_pluse) * 0.5;
```
通过这样的修改,`Left_Old` 和 `Right_Old` 的更新将在条件判断之前进行,确保在赋值时使用的是更新后的值。这样可以避免出现错误提示。
阅读全文