//////////////////////////////////////////////// //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 };
void on_button9_clicked (GtkButton *button, gpointer user_data) { speed_down(); }