while(1)
{
if ((uint16_t)(gSysTick - currentTick) >= 1)
{
currentTick = gSysTick;
CheckRecDatum(1);//
SendDatum();
OutputErrorIndex();
}
}
//1ms中断
void Timer0ISR(void) interrupt 1
{
#define kGasTime (uint16_t)(16.6*1000)
TF0 = 0;
TL0 = (uint8_t)((0xbf27) & 0xff); //((65535-kGasTime)&0xff);
TH0 = (uint8_t)((0xbf27) >> 8); //((65535-kGasTime)>>8);
gSysTick++;
}
比如上面这一段代码,gSysTick每1ms增加一次,同时赋值给currentTick(currentTick初始值为0),那么当gSysTick增加到255时,currentTick应等于254,如果gSysTick再增加一次不就变成0了吗?那么while中的if语句是不是就无法判断了呀?