本帖最后由 machunshui 于 2012-11-17 20:02 编辑
void DoSysTimer()
{
for(int i = 0; i < MAX_SYSTIMER_CNT; i++)
{
if(sysTimer【i】 > 0)
sysTimer【i】--;
}
}
void timer_ISR //1ms定时中断
{
DoSysTimer();
}
void TASK_A()
{
//任务A,1s 一次
if(GetSysTimer(0))
{
//Do something
SetSystimer(0,1000); //1000ms
}
}
这种定时方法不更好吗,非得delay 1ms 延时???
对于一个1MIPS 速度的单片机,1ms就意味着1000条指令,
而且不用定时,要延时1ms,还真的费点力气,
也许你熟悉51,但是换成PIC呢,换成avr呢,换成msp430呢,
换成lpc2000,换成stm32,stm8呢??
每种你都根据汇编指令,算1ms delay??????
人又多大的精力,非得浪费在这种低效率无聊无意义的事情上面???
电子工程师,总不能只用一种单片机吧? |