Rev 207 | Blame | Last modification | View Log | Download
// **** Objeti cihly vpravo **** RRRRint8 n,i;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);set_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<=6;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<=6;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++){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);odocounter=get_timer1(); // Poznamenej aktualni stav odometriewhile(get_timer1()<(odocounter+20)) // Popojed definovanou vzdalenos{if(read_adc()<128) break; // Neprejeli jsme caru?};set_pwm1_duty(0); // reverz (zabrzdi)set_pwm2_duty(0);output_high(MOT_L);output_high(MOT_R);delay_ms(300);brzda();disp(8);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+10)) // Popojed definovanou vzdalenost{if(read_adc()<128) break; // Neprejeli jsme caru?};disp(9);odocounter=get_timer1(); // Poznamenej aktualni stav odometriewhile(get_timer1()<(odocounter+3)); // Jeste trochu doprava, aby byla cara mezi krajnimi cidlyset_pwm1_duty(0); // reverz (zabrzdi)set_pwm2_duty(255);output_low(MOT_L);output_low(MOT_R);delay_ms(150);brzda();disp(10);SetServo((CASAVR-CASMIN)); // rovne Sset_pwm1_duty(255); // Rozjezd na plny vykon vpredset_pwm2_duty(255);output_low(MOT_L);output_low(MOT_R);odocounter=get_timer1(); // Poznamenej aktualni stav odometriewhile(get_timer1()<(odocounter+2)) // Uz jedeme? (prekonani sertvacne sily){set_adc_channel(LMAX); // Levy UV sensordelay_us(40);if(read_adc()<128) {cas=CASMIN; break;}; // Prejeli jsme caru vlevoset_adc_channel(RMAX); // Pravy UV sensordelay_us(40);if(read_adc()<128) {cas=CASMAX; break;}; // Prejeli jsme caru vpravocas=CASAVR-CASMIN; // Cara je rovne};disp(11);//stav=cihla; // Stav po objeti cihly, uz zadna cihla asi nebudeodocounter=get_timer1(); // Poznamenej aktualni stav odometrierr=60; // Nerozumna rychlost pro rozjeti