1,10 → 1,11 |
// **** Objeti cihly vpravo **** RRRR |
int8 n,i; |
|
set_adc_channel(RMAX); |
|
SetServo(CASMIN); // max. doleva L |
set_pwm1_duty(0); // vzad |
set_pwm2_duty(10); |
set_pwm2_duty(0); |
output_low(MOT_L); |
output_high(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
17,7 → 18,6 |
brzda(); |
|
disp(1); |
|
SetServo((CASAVR-CASMIN)); // rovne S |
set_pwm1_duty(160); // vpred |
set_pwm2_duty(160); |
24,57 → 24,71 |
output_low(MOT_L); |
output_low(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+5)); // Popojed definovanou vzdalenost |
for(n=1;n<=7;n++) |
{ |
while(get_timer1()<(odocounter+n)); // Popojed |
SetServoQ((CASAVR-CASMIN)); |
}; |
|
i=0; |
|
disp(2); |
SetServoQ((CASAVR-CASMIN)-20); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost |
set_pwm1_duty(120); |
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); |
SetServoQ((CASAVR-CASMIN)-30); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost |
set_pwm1_duty(100); |
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); |
SetServoQ((CASAVR-CASMIN)-60); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost |
set_pwm1_duty(80); |
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); |
SetServoQ((CASAVR-CASMIN)-40); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost |
set_pwm1_duty(80); |
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); |
SetServoQ((CASAVR-CASMIN)-70); |
set_pwm1_duty(80); // vpred |
set_pwm2_duty(80); |
output_low(MOT_L); |
output_low(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost |
set_pwm1_duty(80); |
for(n=1;n<=3;n++) |
{ |
while(get_timer1()<(odocounter+n)); |
SetServoQ((CASAVR-CASMIN)); |
}; |
|
disp(7); |
SetServoQ((CASAVR-CASMIN)-60); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost |
set_pwm1_duty(100); |
|
disp(8); |
SetServoQ((CASAVR-CASMIN)-30); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost |
set_pwm1_duty(120); |
|
disp(9); |
SetServoQ((CASAVR-CASMIN)); // Rovne |
set_pwm1_duty(80); // vpred |
set_pwm2_duty(80); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+10)) // Popojed definovanou vzdalenos |
while(get_timer1()<(odocounter+20)) // Popojed definovanou vzdalenos |
{ |
if(read_adc()<128) break; // Neprejeli jsme caru? |
}; |
85,10 → 99,10 |
delay_ms(300); |
brzda(); |
|
disp(10); |
disp(8); |
SetServo(CASMIN); // max. doleva L |
set_pwm1_duty(0); // vzad |
set_pwm2_duty(10); |
set_pwm2_duty(0); |
output_low(MOT_L); |
output_high(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
97,7 → 111,7 |
if(read_adc()<128) break; // Neprejeli jsme caru? |
}; |
|
disp(11); |
disp(9); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+3)); // Jeste trochu doprava, aby byla cara mezi krajnimi cidly |
set_pwm1_duty(0); // reverz (zabrzdi) |
104,10 → 118,10 |
set_pwm2_duty(255); |
output_low(MOT_L); |
output_low(MOT_R); |
delay_ms(200); |
delay_ms(150); |
brzda(); |
|
disp(12); |
disp(10); |
SetServo((CASAVR-CASMIN)); // rovne S |
set_pwm1_duty(255); // Rozjezd na plny vykon vpred |
set_pwm2_duty(255); |
125,7 → 139,7 |
cas=CASAVR-CASMIN; // Cara je rovne |
}; |
|
disp(13); |
disp(11); |
//stav=cihla; // Stav po objeti cihly, uz zadna cihla asi nebude |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
rr=60; // Nerozumna rychlost pro rozjeti |