我的代码有这样的内容:
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
始终为假。任何人都可以帮我这个吗?
答案 0 :(得分:0)
将TMR_HV变量声明为不在其他函数中是很重要的。它应该是全球性的。
答案 1 :(得分:0)
int DblComp(double A, double B)
{
LONG32 aL;
LONG32 bL;
aL = (LONG32) ( A * 1000.0);
bL = (LONG32) ( B * 1000.0);
if (aL < bL) return (-1);
else if (aL == bL) return (0);
else return (1);
}
然后当我需要比较2个双变量时,我称之为
if (DblComp(ReadWriteDisk_C, 0.00) == MAIOR)
ReadWriteDisk_C -= 0.01;
else ReadWriteDisk_C = 0.00;
Maior定义为1