根据你提供的代码和描述,我注意到一个潜在的问题可能导致判断条件不满足的情况。
在你的代码中,你定义了Ul和Ud作为上限和下限的阈值,类型为unsigned int。然后,在判断条件中,你使用这些变量进行比较。
然而,注意到你给出的判断条件是(count1 > Ud) && (count1 < Ul),这可能导致问题。因为unsigned int类型的变量是无符号整数类型,所以当count1为12时,它既不大于8也不小于15,因为在无符号整数类型中,不允许出现负数。
解决这个问题的方法是修改判断条件为(count1 >= Ud) && (count1 <= Ul),使用大于等于和小于等于的比较操作符,确保边界值也被包括在内。
unsigned int Ul = 15, Ud = 8; // 上限14,下限10
unsigned int count1; // 称重值
// ...
if ((count1 >= Ud) && (count1 <= Ul))
{
// 满足上下限条件,执行下一步操作
}
这样修改后,判断条件将包括边界值,并在count1为12时正确判断为满足上下限条件。
请注意,根据具体的需求和数据类型,你可能需要调整阈值和判断条件,确保它们适合你的应用场景。 |