if(SysTicktime>1000)
这句对应着的代码为 if(SysTicktime的低位大于0xE8 && SysTicktime的高位大于3)
而这两个比较中间是可以被中断打断的,执行if前值为0x2FF, 执行完if的前半句比较后,进入中断,值变为0x300,结果这个if通过了。
而按照比较相等的时候,不会发生0xE8变为0xE9的瞬间发生进位。
代码修改为:
unsinged char bigThan;
EA=0;
bigThan=(SysTicktime>1000);
EA=1;
if(bigThan)
{
巴拉巴拉
}
|