比较定时器当前值和上一次的值的大小,如果当前值大于等于上一次值,则说明没有反转,否则即为翻转
yewuyi 发表于 2011-11-14 14:22 
void time0()
{
if(TMR0 < timer)
{
ms += 0x4000;
}
else
{
tmr0=timer;
}
}
void time()
{
if(ms>0xc350){ms-=0xc350;ms_50++;}
if(ms_50>20){ms_50=0;s++;}
if(s==3)
{t1=1;}
if(s>7){s=0;t2=1;}
}
请问我这样写行吗? 定时器64分频,每次计满溢出用去64*256=16387=0x4000个指令周期,我让ms+=0x4000,如果ms>0xc350,说明过去50ms,ms_50>20,说明过去50*20=1秒,如果s=3 ,说明过去3秒,t1置1,s>7,t2置1,说明过去7秒,
请指点,我这样写有问题吗?
|