Пример #1
0
////////////////////////////////////////////////
//BOT CONTROL
void bot_control(void)
{ 
  //S0
  if(SH_LEFT>=125 && SH_LEFT<=140) 
  {
    S4_t=0; //for S4 
    CURR_S=S0;
    
    if(!S3_t) set_servo(CENTER);
    
    if(SH_CENTER<70 && SH_CENTER>=55) {speed_down(4);goto f_exit;}
    else if(SH_CENTER>=70) {S3_t=1;speed_down(4);set_servo(MAX_RIGHT);goto f_exit;}
    else if(SH_CENTER<55) {S3_t=0;speed_up(5);goto f_exit;} 
  }                  
  
  //S1
  else if(SH_LEFT>140 && SH_LEFT<=240) 
  {
    S4_t=0; //for S4    
    CURR_S=S1;
    
    //-------------------
    if(SH_CENTER>=70) 
    { 
      S3_t=1; //for S3
    
      speed_down(4);
      set_servo(MAX_RIGHT);
      
      goto f_exit;
    }
    else
    {
      S3_t=0;  
    
      set_servo(MIN_RIGHT); 
      speed_down(2); 
    }      
    //------------------- 
    goto f_exit;
  }
  
  //S2
  else if(SH_LEFT>240 || S3_t) 
  {
    S4_t=0; //for S4  
    CURR_S=S2;
      
    //-------------------
    set_servo(MAX_RIGHT);
    speed_down(5);    
    //-------------------
    goto f_exit;
  }
  
  //S3
  else if(SH_LEFT<125 && SH_LEFT>=100 && !S3_t) 
  {
    S4_t=0; //for S4  
    CURR_S=S3;
      
    //-------------------
    set_servo(MIN_LEFT);
    speed_down(3);
    //-------------------
    goto f_exit;
  }
  
  //S4
  else if(SH_LEFT<100) 
  {
    S3_t=0;
    //-------------------
    switch(S4_t)
    {
      case 0:
      {    
        S4_t=1;
        CURR_S=S40;
       
        speed_down(3);
        set_servo(MIN_LEFT);
        delay_ms(10);
       
        break;
      };
      case 1:
      {  
        CURR_S=S41; 
      
        speed_down(1);  
        set_servo(MAX_LEFT);
        
        break;
      };
    };          
    //------------------- 
    goto f_exit;   
  } 
  
  f_exit: 
  #asm
    nop
  #endasm
};
Пример #2
0
void
on_button9_clicked                     (GtkButton       *button,
                                        gpointer         user_data)
{
	speed_down();
}