Subversion Repositories svnkaklik

Rev

Go to most recent revision | Details | Last modification | View Log

Rev Author Line No. Line
360 kakl 1
// **** Objeti cihly vpravo **** RRRR
2
int8 n,i;
3
int16 j;
4
 
5
set_adc_channel(RMAX);
6
 
7
SetServo(CASMIN);   // max. doleva                 L
8
set_pwm1_duty(0);   // vzad
9
set_pwm2_duty(0);
10
output_low(MOT_L);
11
output_high(MOT_R);
12
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
13
while(get_timer1()<(odocounter+8)); // Popojed definovanou vzdalenost
14
set_pwm1_duty(0);    // reverz (zabrzdi)
15
set_pwm2_duty(255);
16
output_low(MOT_L);
17
output_low(MOT_R);
18
delay_ms(215);
19
brzda();
20
 
21
disp(1);
22
SetServo((CASAVR-CASMIN));   // rovne              S
23
set_pwm1_duty(160);  // vpred
24
set_pwm2_duty(160);
25
output_low(MOT_L);
26
output_low(MOT_R);
27
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
28
for(n=1;n<=7;n++)
29
{
30
  while(get_timer1()<(odocounter+n)); // Popojed
31
  SetServoQ((CASAVR-CASMIN));
32
};
33
 
34
i=0;
35
 
36
disp(2);
37
set_pwm1_duty(130);
38
set_pwm2_duty(140);
39
odocounter=get_timer1();
40
for(n=1;n<=10;n++)
41
{
42
   while(get_timer1()<(odocounter+n));
43
   SetServoQ((CASAVR-CASMIN)-i);
44
   set_pwm1_duty(130-i);
45
   i+=8;
46
};
47
 
48
disp(3);
49
odocounter=get_timer1();
50
for(n=1;n<=7;n++)
51
{
52
   while(get_timer1()<(odocounter+n));
53
   SetServoQ((CASAVR-CASMIN)-i);
54
   set_pwm1_duty(130-i);
55
   i-=8;
56
};
57
 
58
disp(4);
59
odocounter=get_timer1();
60
for(n=1;n<=7;n++)
61
{
62
   while(get_timer1()<(odocounter+n));
63
   SetServoQ((CASAVR-CASMIN)-i);
64
   set_pwm1_duty(130-i);
65
   i+=8;
66
};
67
 
68
disp(5);
69
odocounter=get_timer1();
70
//!!!!for(n=1;n<=5;n++)
71
for(n=1;n<=4;n++)
72
{
73
   while(get_timer1()<(odocounter+n));
74
   SetServoQ((CASAVR-CASMIN)-i);
75
   set_pwm1_duty(130-i);
76
   i-=16;
77
};
78
 
79
disp(6);
80
set_pwm1_duty(80);  // vpred
81
set_pwm2_duty(80);
82
output_low(MOT_L);
83
output_low(MOT_R);
84
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
85
for(n=1;n<=3;n++)
86
{
87
  while(get_timer1()<(odocounter+n));
88
  SetServoQ((CASAVR-CASMIN));
89
};
90
 
91
disp(7);
92
while(true)
93
{
94
   set_adc_channel(LMAX);    // Levy UV sensor
95
   delay_us(40);
96
   if(read_adc()<TRESHOLD) {delay_us(600); if(read_adc()<TRESHOLD) {cas=CASMIN; break;}; };  // Prejeli jsme caru vlevo
97
   set_adc_channel(RMAX);    // Pravy UV sensor
98
   delay_us(40);
99
   if(read_adc()<TRESHOLD) {delay_us(600); if(read_adc()<TRESHOLD) {cas=CASMAX; break;}; };  // Prejeli jsme caru vpravo
100
}
101
 
102
 
103
if(cas==CASMIN)
104
{
105
   set_adc_channel(RMAX);    // Pravy UV sensor
106
   for(j=0;j<10000;j++)
107
   {
108
      if(input(HREF)) {SetServoQ(CASMIN); while(input(HREF));};  // doleva
109
      if (read_adc()<TRESHOLD) break;
110
   }
111
}
112
else
113
{
114
   set_adc_channel(LMAX);    // Levy UV sensor
115
   for(j=0;j<10000;j++)
116
   {
117
      if(input(HREF)) {SetServoQ(CASMAX); while(input(HREF));};  // doprava
118
      if (read_adc()<TRESHOLD) break;
119
   }
120
}
121
 
122
set_adc_channel(RMAX);    // Pravy UV sensor
123
 
124
set_pwm1_duty(0);    // zabrzdi
125
set_pwm2_duty(0);
126
output_high(MOT_L);
127
output_high(MOT_R);
128
SetServo(CASAVR-CASMIN);   // doprostred
129
delay_ms(100);
130
brzda();
131
// Tady jsou s velkou pravdepodobnosti obe cidla za carou a jsme kolmo k care
132
 
133
SetServo(CASMIN);   // max. doleva                 L
134
set_pwm1_duty(0);   // vzad
135
set_pwm2_duty(0);
136
output_low(MOT_L);
137
output_high(MOT_R);
138
while (read_adc()>TRESHOLD); 
139
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
140
while(get_timer1()<(odocounter+4)); // Popojed definovanou vzdalenost
141
set_pwm1_duty(0);    // reverz (zabrzdi)
142
set_pwm2_duty(255);
143
output_low(MOT_L);
144
output_low(MOT_R);
145
SetServo(CASAVR-CASMIN);   // doprostred
146
delay_ms(100);
147
brzda();
148
 
149
set_pwm1_duty(255);    // max. vpred
150
set_pwm2_duty(255);
151
output_low(MOT_L);
152
output_low(MOT_R);
153
odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
154
while(get_timer1()<(odocounter+2)) // Ujed kousek
155
{
156
   set_adc_channel(LMAX);    // Levy UV sensor
157
   delay_us(40);
158
   if(read_adc()<TRESHOLD) {cas=CASMIN; break;};  // Prejeli jsme caru vlevo
159
   set_adc_channel(RMAX);    // Pravy UV sensor
160
   delay_us(40);
161
   if(read_adc()<TRESHOLD) {cas=CASMAX; break;};  // Prejeli jsme caru vpravo
162
   cas=CASAVR-CASMIN;    // Cara je rovne
163
};
164
 
165
stav=cihla;    // Stav po objeti cihly, uz zadna cihla asi nebude
166
//odocounter=get_timer1();    // Poznamenej aktualni stav odometrie
167
//rr=60;   // Nerozumna rychlost pro rozjeti