261854681 发表于 2013-4-4 11:55:09

多任务 OR 状态机 ?

函数执行时不是一次就完成所有功能,而是只执行一部分功能.凡有延时等待的需要,就将过程打断,插入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();
   }

}   

////这是阿莫坛上的前辈写的几句代码,可否请有经验的大师给解释一下它的用法和优点,非常感谢!

261854681 发表于 2013-4-4 12:23:22

经原作者例18B20程序回复.已理解.谢谢
页: [1]
查看完整版本: 多任务 OR 状态机 ?