求助: 怎样避免顺序执行的死循环

2020-01-30 14:04发布

本帖最后由 lryxr2507 于 2013-3-14 16:20 编辑

求助大师:
   遇到一台设备,有较多的感应器,每一个动作必须按顺序动作,每一次动作后必须感应到感应器信号后才能执行下一个动作,在这里就出现一个问题,在执行的过程中,如果需要终止动作回到初始状态,这时因为再等待感应点已进入死循环,无法终止程序,即使在中断里面强制执行了,但死循环后面的程序还在等待,无法完全退出.当然我用过break 等方法进行返回,可是当有很多动作时就麻烦了,怕执行过程中错开感应器.

例如:

  if(run_flag)                //运行标志开
   {
        A=0;                      //动作1执行
     while(A_D);               //等待1动作的下感应      请教各位:怎样较好地避免这种死循环     
       A=1;                      //动作1停止
     while(A_U);               //等待1动作的上感应
     B=0;                      //动作2执行
     while(B_A);               //等待2动作的前感应   

     A=0;                      //动作3执行  ;与动作1相同
     while(A_D);               //等待3动作的下感应
     A=1;                      //动作3停止
     while(A_U);               //等待3动作的上感应
     B=1;                      //动作2停止
     while(B_B);               //等待2动作的后感应   
   
    ........

    run_flag=0;                //关闭运行
   
   ''''''
  }  


请各位不吝赐教,表示感谢.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。