 //!  @speed range:  [10,500]
 void wave(const State* state)
 {
+  indicate(true);
   //!  specify the starting index according to the direction
   unsigned a,b,c,d;
   a = 0;


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

//!  @brief :  half stepping
//!  @speed range:  [10,500]
void half(const State* state)
{  
  //!  specify the starting index according to the direction
  int a = 0, c = 2, b = 4, d = 6;
  

    unsigned period  =  1000;
    unsigned count   =  state->steps;
    while(count-- > 0 && state->running)
    {        
        if(!state->cw)
        {
            pwm(A, period, arr[a++]);
