Subversion Repositories svnkaklik

Rev

Rev 202 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
193 kakl 1
// **** Objeti cihly vpravo **** RRRR
2
 
204 kakl 3
set_adc_channel(RMAX);
4
 
193 kakl 5
SetServo(CASMIN);   // max. doleva                 L
6
set_pwm1_duty(0);   // vzad
196 kakl 7
set_pwm2_duty(10);
193 kakl 8
output_low(MOT_L);
9
output_high(MOT_R);
198 kakl 10
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
204 kakl 11
while(get_timer1()<(odocounter+8)); // Popojed definovanou vzdalenost
193 kakl 12
set_pwm1_duty(0);    // reverz (zabrzdi)
13
set_pwm2_duty(255);
14
output_low(MOT_L);
15
output_low(MOT_R);
196 kakl 16
delay_ms(215);
193 kakl 17
brzda();
18
 
19
SetServo((CASAVR-CASMIN));   // rovne              S
196 kakl 20
set_pwm1_duty(160);  // vpred
21
set_pwm2_duty(160);
193 kakl 22
output_low(MOT_L);
23
output_low(MOT_R);
198 kakl 24
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
204 kakl 25
while(get_timer1()<(odocounter+5)); // Popojed definovanou vzdalenost
193 kakl 26
 
204 kakl 27
SetServoQ((CASAVR-CASMIN)-20);
198 kakl 28
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
204 kakl 29
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost
30
set_pwm1_duty(140);
31
set_pwm1_duty(120);
193 kakl 32
 
204 kakl 33
SetServoQ((CASAVR-CASMIN)-30);
198 kakl 34
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
204 kakl 35
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost
36
set_pwm1_duty(100);
193 kakl 37
 
204 kakl 38
SetServoQ((CASAVR-CASMIN)-60);
198 kakl 39
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
204 kakl 40
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost
41
set_pwm1_duty(80);
200 kakl 42
 
204 kakl 43
SetServoQ((CASAVR-CASMIN)-40);
44
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
45
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost
46
set_pwm1_duty(80);
193 kakl 47
 
204 kakl 48
SetServoQ((CASAVR-CASMIN)-70);
198 kakl 49
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
204 kakl 50
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost
51
set_pwm1_duty(80);
52
 
53
SetServoQ((CASAVR-CASMIN)-60);
54
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
55
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost
56
set_pwm1_duty(100);
57
 
58
SetServoQ((CASAVR-CASMIN)-30);
59
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
60
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost
61
set_pwm1_duty(120);
62
 
63
SetServoQ((CASAVR-CASMIN));		// Rovne
64
set_pwm1_duty(80);  // vpred
65
set_pwm2_duty(80);
66
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
67
while(get_timer1()<(odocounter+10)) // Popojed definovanou vzdalenos
200 kakl 68
{
204 kakl 69
   if(read_adc()<128) break; // Neprejeli jsme caru?
70
};
193 kakl 71
set_pwm1_duty(0);    // reverz (zabrzdi)
72
set_pwm2_duty(0);
73
output_high(MOT_L);
74
output_high(MOT_R);
204 kakl 75
delay_ms(300);
193 kakl 76
brzda();
77
 
200 kakl 78
SetServo(CASMIN);   // max. doleva                 L
79
set_pwm1_duty(0);   // vzad
80
set_pwm2_duty(10);
196 kakl 81
output_low(MOT_L);
200 kakl 82
output_high(MOT_R);
83
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
84
while(get_timer1()<(odocounter+10)) // Popojed definovanou vzdalenost
85
{
204 kakl 86
   if(read_adc()<128) break; // Neprejeli jsme caru?
200 kakl 87
};
202 kakl 88
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
204 kakl 89
while(get_timer1()<(odocounter+3)); // Jeste trochu doprava, aby byla cara mezi krajnimi cidly
200 kakl 90
set_pwm1_duty(0);    // reverz (zabrzdi)
91
set_pwm2_duty(255);
92
output_low(MOT_L);
196 kakl 93
output_low(MOT_R);
200 kakl 94
delay_ms(200);
95
brzda();
196 kakl 96
 
200 kakl 97
SetServo((CASAVR-CASMIN));   // rovne              S
204 kakl 98
set_pwm1_duty(255);  // Rozjezd na plny vykon vpred
200 kakl 99
set_pwm2_duty(255);
100
output_low(MOT_L);
101
output_low(MOT_R);
204 kakl 102
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
103
while(get_timer1()<(odocounter+2)) // Uz jedeme? (prekonani sertvacne sily)
104
{
105
   set_adc_channel(LMAX);    // Levy UV sensor
106
   delay_us(40);
107
   if(read_adc()<128) {cas=CASMIN; break;};  // Prejeli jsme caru vlevo
108
   set_adc_channel(RMAX);    // Pravy UV sensor
109
   delay_us(40);
110
   if(read_adc()<128) {cas=CASMAX; break;};  // Prejeli jsme caru vpravo
111
   cas=CASAVR-CASMIN;    // Cara je rovne
112
};
200 kakl 113
 
204 kakl 114
stav=cihla;    // Stav po objeti cihly, uz zadna cihla asi nebude
115
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
116
rr=60;   // Nerozumna rychlost pro rozjeti