unsigned int timeCNT1,timeCNT2;
void main()
{
...
while(1)
{
key-------自己加
....
switch(state)
{
case 1:
out_SC=led0=1;led1=0; delay_1ms(1); timeCNT1++;
break;
case 2:
out_SC=led1=1;led0=0;delay_1ms(2); timeCNT2++;
break;
case 3:
out_SC=led0=led1=state=0;
break;
}
.....
if(timeCNT1 >1000){out_SC=led0=0;led1=0;state=0;}
if(timeCNT2 >1000){out_SC=led1=0;led0=0;state=0;}
}
思路是这样,不会造成很长时间的延时(无用功)。
用无穷思维,如果一个延时是delay(1万年),这样很明显是垃圾写法,当然除了中断可以破这个1万年,不然就是死机1万年了。 |