void main(void) { Init_System(); delay_ms(2000); //delay time #ifdef debug delay_ms(500); //in order to adjust UART_Transimit(' '); UART_Transimit('O'); UART_Transimit('K'); UART_Transimit('!'); UART_Transimit(0x0d); UART_Transimit(0x0a); #endif #ifdef debug debug_act(); // for debug #endif setspeed(1800); // set the speed //stand_by(stand_walk,0,4);//walk //delay_ms(500); //while(1){ // setspeed(2400); // stand_by(yuezhang,0,10);//the acting of string // delay_ms(200); // stand_by(yuezhang,11,12); // delay_ms(100); // stand_by(yuezhang,13,16); // delay_ms(100); // stand_by(yuezhang,17,22); //} while(1)//for walk { stand_by(stand_walk,5,7); delay_ms(100); stand_by(stand_walk,8,10); delay_ms(100); stand_by(Left_zhuan,0,5);//turn left delay_ms(100); stand_by(stand_walk,5,7); delay_ms(100); stand_by(Right_zhuan,0,5);//turn right delay_ms(100); stand_by(stand_walk,8,10); delay_ms(100); } while(1) { setspeed(1800); while(Long_Detection() || ob == 1) { if(Short_Detection()) { obstacle(); ob = 0; break; }; if(!Detection1(1)) //detection { stand_by(small_walk,0,7); delay_ms(100); } else { Deal_Black1(1); while(Detection1(1)) { Deal_Black1(1); } } if(Short_Detection()) { obstacle(); ob = 0; break; }; if(!Detection1(0)) { stand_by(small_walk,0,7); delay_ms(100); } else { Deal_Black1(0); while(Detection1(0)) { Deal_Black1(0); } } } setspeed(1200); while(!Long_Detection()) { if(!Detection(0)) // before the obstacle { stand_by(stand_walk,5,7); delay_ms(100); } else { Deal_Black(0); while(Detection(0) && !Long_Detection()) { Deal_Black(0); } if(!Long_Detection()) { stand_by(stand_walk,5,7); delay_ms(100); } else { stand_by(small_walk,0,0); delay_ms(100); break; } } if(!Detection(1)) //adjust { stand_by(stand_walk,8,10); delay_ms(100); } else { Deal_Black(1); while(Detection(1) && !Long_Detection()) { Deal_Black(1); } if(!Long_Detection()) { stand_by(stand_walk,8,10); delay_ms(100); } else { stand_by(small_walk,0,0); delay_ms(100); break; } } } } }