 
     //!  speed control
     delay(10000/(state->spd));
-  }  
+  }
+  indicate(false);  
 }
 
 //!  @brief :  half stepping
 //!  @speed range:  [10,500]
 void half(const State* state)
-{  
+{
+  indicate(true);  
   //!  specify the starting index according to the direction
   int a = 0, c = 2, b = 4, d = 6;
   

  
  State state;
  state.spd = 500;
  state.steps = 250;
  state.running = true;
  state.cw = true;
  
  micr(&state);

  while(true);
}

    //!  speed control
    delay(10000/(state->spd));
  }
  indicate(false);
}

//!  @brief :  micro stepping
//!  @speed range:  [10,500]
void micr(const State* state)
{
    indicate(true);
    //!  specify the starting index according to the direction  	
    const unsigned arr[32] = 
    {500, 625, 750, 875, 1000, 875, 750, 625, 500, 375, 250, 125, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 ,0, 125, 250, 375};
