Rev 217 | Blame | Last modification | View Log | Download
// **** Objeti cihly vpravo **** RRRRint8 n,i;int16 j;set_adc_channel(RMAX);SetServo(CASMIN); // max. doleva Lset_pwm1_duty(0); // vzadset_pwm2_duty(0);output_low(MOT_L);output_high(MOT_R);odocounter=get_timer1(); // Poznamenej aktualni stav odometriewhile(get_timer1()<(odocounter+8)); // Popojed definovanou vzdalenostset_pwm1_duty(0); // reverz (zabrzdi)set_pwm2_duty(255);output_low(MOT_L);output_low(MOT_R);delay_ms(215);brzda();disp(1);SetServo((CASAVR-CASMIN)); // rovne Sset_pwm1_duty(160); // vpredset_pwm2_duty(160);output_low(MOT_L);output_low(MOT_R);odocounter=get_timer1(); // Poznamenej aktualni stav odometriefor(n=1;n<=7;n++){while(get_timer1()<(odocounter+n)); // PopojedSetServoQ((CASAVR-CASMIN));};i=0;disp(2); // Postupne dolevaset_pwm1_duty(130);set_pwm2_duty(140);odocounter=get_timer1();for(n=1;n<=10;n++){while(get_timer1()<(odocounter+n));SetServoQ((CASAVR-CASMIN)-i);set_pwm1_duty(130-i);i+=8;};/*disp(3);odocounter=get_timer1();for(n=1;n<=7;n++){while(get_timer1()<(odocounter+n));SetServoQ((CASAVR-CASMIN)-i);set_pwm1_duty(130-i);i-=8;};disp(4);odocounter=get_timer1();for(n=1;n<=7;n++){while(get_timer1()<(odocounter+n));SetServoQ((CASAVR-CASMIN)-i);set_pwm1_duty(130-i);i+=8;};*/disp(5);odocounter=get_timer1();//!!!!for(n=1;n<=5;n++)for(n=1;n<=4;n++){while(get_timer1()<(odocounter+n));SetServoQ((CASAVR-CASMIN)-i);set_pwm1_duty(130-i);i-=16;};disp(6);set_pwm1_duty(80); // vpredset_pwm2_duty(80);output_low(MOT_L);output_low(MOT_R);odocounter=get_timer1(); // Poznamenej aktualni stav odometriefor(n=1;n<=3;n++){while(get_timer1()<(odocounter+n));SetServoQ((CASAVR-CASMIN));};disp(7);while(true){set_adc_channel(LMAX); // Levy UV sensordelay_us(40);if(read_adc()<THRESHOLD) {delay_us(600); if(read_adc()<THRESHOLD) {cas=CASMIN; break;}; }; // Prejeli jsme caru vlevoset_adc_channel(RMAX); // Pravy UV sensordelay_us(40);if(read_adc()<THRESHOLD) {delay_us(600); if(read_adc()<THRESHOLD) {cas=CASMAX; break;}; }; // Prejeli jsme caru vpravo}if(cas==CASMIN){set_adc_channel(RMAX); // Pravy UV sensorfor(j=0;j<10000;j++){if(input(HREF)) {SetServoQ(CASMIN); while(input(HREF));}; // dolevaif (read_adc()<THRESHOLD) break;}}else{set_adc_channel(LMAX); // Levy UV sensorfor(j=0;j<10000;j++){if(input(HREF)) {SetServoQ(CASMAX); while(input(HREF));}; // dopravaif (read_adc()<THRESHOLD) break;}}set_adc_channel(RMAX); // Pravy UV sensorset_pwm1_duty(0); // zabrzdiset_pwm2_duty(0);output_high(MOT_L);output_high(MOT_R);SetServo(CASAVR-CASMIN); // doprostreddelay_ms(100);brzda();// Tady jsou s velkou pravdepodobnosti obe cidla za carou a jsme kolmo k careSetServo(CASMIN); // max. doleva Lset_pwm1_duty(0); // vzadset_pwm2_duty(0);output_low(MOT_L);output_high(MOT_R);while (read_adc()>THRESHOLD);odocounter=get_timer1(); // Poznamenej aktualni stav odometriewhile(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenostset_pwm1_duty(0); // reverz (zabrzdi)set_pwm2_duty(255);output_low(MOT_L);output_low(MOT_R);SetServo(CASAVR-CASMIN); // doprostreddelay_ms(100);brzda();set_pwm1_duty(255); // max. vpredset_pwm2_duty(255);output_low(MOT_L);output_low(MOT_R);odocounter=get_timer1(); // Poznamenej aktualni stav odometriewhile(get_timer1()<(odocounter+2)) // Ujed kousek{set_adc_channel(LMAX); // Levy UV sensordelay_us(40);if(read_adc()<THRESHOLD) {cas=CASMIN; break;}; // Prejeli jsme caru vlevoset_adc_channel(RMAX); // Pravy UV sensordelay_us(40);if(read_adc()<THRESHOLD) {cas=CASMAX; break;}; // Prejeli jsme caru vpravocas=CASAVR-CASMIN; // Cara je rovne};//stav=cihla; // Stav po objeti cihly, uz zadna cihla asi nebude//odocounter=get_timer1(); // Poznamenej aktualni stav odometrie//rr=60; // Nerozumna rychlost pro rozjeti