delay()是个函数,指令进入if语句后如果进入了delay则肯定是执行完延时才能进行下一步,如果条件为假,则也得是延时执行完才能执行条件为假的语句,一句话根本不能及时跳出;要达到你要的结果,方法很多,最简单的方法就是拆分delay,将延迟的时间分为N个小延时,可以将if(xxxxxx)delay(10000)改为for(i=0;i<xx;i++){if(xxxxxx){delay(1);}else i=xx;},for循环全部执行完延迟效果等同于delay(10000),一旦if油价,则令i=xx,使for循环条件不成立即可跳出for循环,跳出延迟;另外的方法可以使用中断。 |