有主函数: main() { ......... ......... for(;;) { ........ ........ switch(a) { case 1: mode1(); break; case 2: mode2(); break; case 3: mode3(); break; } ............ ............ } }
每个子函数mode 的结构是这样的
mode1() { ......... ......... switch(b) { case 1: ....... ....... ....... b=2; break; case 2: ....... ....... ....... b=3; break; case 3: ....... ....... ....... b=4; break; case 5: ....... ....... ....... b=1; break; } } 在mode函数中,每个case执行完毕后,将b赋值,再运行到mode函数中,则进入令一阶段
出现的问题在这里: 出现的问题在这里: 出现的问题在这里: 出现的问题在这里:
在mode 函数中,是有时间判断的条件语句 如 if(time1>settime) { b=3; } time1 为1ms定时器中的计数变量 settime 为设置值 若设置值为60ms,则在time1=59ms,没有执行次条件判断中内容,b没有赋值,程序向下运行,直道从主函数又到这里,才给 b赋值,这样的话,中间的时间差就会造成误差了。
各位大虾有没有好时序走向,说说看
|