多任务 OR 状态机 ?

2020-01-30 13:54发布

函数执行时不是一次就完成所有功能,而是只执行一部分功能.凡有延时等待的需要,就将过程打断,插入step.这方法我用过很多年了,很好用,但要用习惯才行,不然写出的代码有点难懂.

unsigned char retval;
unsigned char step = 0;
void function_1(){
   if(step == 0){
   }
   if(step == 1){
   }
   if(step >=2  && step <= 5){
   }
   if(step == 6){
   }
......
   if(step == 20){
   }
   step++;
   if(step == 20)
     step = 0;
}
...
//function 2和3的定义和function_1差不多.这里就略去了
function_2()
function_3()
...
void main(){

  while(1){
     function_1();
     function_2();
     function_3();
   }

}   

////这是阿莫坛上的前辈写的几句代码,可否请有经验的大师给解释一下它的用法和优点,非常感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。