第一种方法类似这样 case 1:
OutputEnable = 1;
GPIO_CTRL = 1; ///ÀÒý½Å
Prepstep = 2;
break;
case 2:
delayCount++;
if (delayCount>=50)
{
delayCount = 0;
VCC_CTRL = 1; ///¹Øµç
delayCount = 0;
Prepstep = 3;
}
break;
case 3:
delayCount++;
if (delayCount>=500)
{
delayCount = 0;
VCC_CTRL = 0; ///Éϵç
Prepstep = 4;
}
break;
把这个代码放在1ms周期里运行,那么case2就会延时50ms执行,就能达到想要的延时效果,并且不阻塞系统。不过这种方法实现起来挺累人的,要是大家有好的建议也可以提出来。
|