Rev 208 | 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);while(true){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 vpravo}if(cas==CASMIN){set_adc_channel(RMAX); // Pravy UV sensordelay_us(40);while(read_adc()>128); // Prejel caru?while(read_adc()<128);}else{set_adc_channel(LMAX); // Levy UV sensordelay_us(40);while(read_adc()>128); // Prejel caru?while(read_adc()<128);}// Tady jsou s velkou pravdepodobnosti obe cidla za carouset_adc_channel(RMAX);SetServo(CASMAX-40); // stredne dopravawhile(read_adc()>128);cas=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