C 有没有办法限制整型数据类型的值范围
我正在尝试给一个风扇PWM 所以我只能给出0到100之间的值(在我的例子中称为fandustry)。 但uint8_t的值为0到256C 有没有办法限制整型数据类型的值范围,c,C,我正在尝试给一个风扇PWM 所以我只能给出0到100之间的值(在我的例子中称为fandustry)。 但uint8_t的值为0到256 if(Temp > 40) Fan_Duty ++; else if(Temp < 40) Fan_Duty --;
if(Temp > 40)
Fan_Duty ++;
else if(Temp < 40)
Fan_Duty --;
else
//do nothing
if(温度>40)
Fan_Duty++;
否则,如果(温度<40)
范尤职责--;
其他的
//无所事事
因此,Fan_占空比值从0变为256,而在减小它的同时
从256开始到0,从256到100没有用,浪费了宝贵的时间,
所以我希望这个值不超过100。
如何限制整数范围?首先检查风扇占空比的值,然后递增/递减
if (Temp > 40)
{
if (Fan_Duty < 100)
{
Fan_Duty ++;
}
}
else if (Temp < 40)
{
if (Fan_Duty > 0)
{
Fan_Duty --;
}
}
else
{
//do nothing
}
if(温度>40)
{
如果(风扇负载<100)
{
Fan_Duty++;
}
}
否则,如果(温度<40)
{
如果(风扇占空比>0)
{
范尤职责--;
}
}
其他的
{
//无所事事
}
您可以轻松创建一个函数,将值钳制在一个范围内。Fan\u Duty=Target\u Fan\u Speed*256/100?如果在99之后增加值,预期的行为是什么。该值应保持在99还是应滚动到0。此外,如果将其减至零以下,是否希望新值为99?如果(风扇占空比<100)仅递增,如果(风扇占空比>0)
仅递减。PWM的分辨率为8、16或32位。在你的例子中,它显然是8位。因此,占空比只能表示为0到255之间的原始值。这是唯一有意义的事情,如果你编程的PWM驱动器本身。或者这是一些PC的东西与某种“浑浊的逻辑”之间的API?这是什么系统?是什么产生了PWM?