我的代码有这样的事情:变量总是返回false
double TMR_HV ;
....
TMR_HV =2.0; // in another part of my code
void RTKAPI Tempos10(void * p) // task for timers
{
while(1) {
if (TMR_HV > 0.00) TMR_HV -= 0.01;
else TMR_HV = 0.00;
RTKDelay(1);
}
}
条件if
永远是假的。谁能帮我这个?
变量,如在贴代码看出,未初始化。它是否在其他地方初始化?如果没有,它的价值可以是任何东西。 –
也许TMR_HV是NaN或+ Inf – john
该变量是全局变量,它初始化为0.0,当我们在计时器上放置一个中断点时,初始值为0.0,并且它运行已预期。当变量得到一个大于0.0的值时,它开始减少并永不停止。它变为负值。 –