C 有没有办法限制整型数据类型的值范围

C 有没有办法限制整型数据类型的值范围,c,C,我正在尝试给一个风扇PWM 所以我只能给出0到100之间的值(在我的例子中称为fandustry)。 但uint8_t的值为0到256 if(Temp > 40) Fan_Duty ++; else if(Temp < 40) Fan_Duty --;

我正在尝试给一个风扇PWM 所以我只能给出0到100之间的值(在我的例子中称为fandustry)。 但uint8_t的值为0到256

    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?