Line 38... |
Line 38... |
38 |
int olsa_lseg[51]={0}; // leva cast radky (pixely 0 - 50) |
38 |
int olsa_lseg[51]={0}; // leva cast radky (pixely 0 - 50) |
39 |
int olsa_rseg[51]={0}; // prava cast radky (pixely 51 - 101) |
39 |
int olsa_rseg[51]={0}; // prava cast radky (pixely 51 - 101) |
40 |
int8 *line_lp=&olsa_lseg; // ukazatel na levou cast radky |
40 |
int8 *line_lp=&olsa_lseg; // ukazatel na levou cast radky |
41 |
int8 *line_rp=&olsa_rseg; // ukazatel na pravou cast radky |
41 |
int8 *line_rp=&olsa_rseg; // ukazatel na pravou cast radky |
42 |
int8 pixel; // dec hodnota jednoho pixelu |
42 |
int8 pixel; // dec hodnota jednoho pixelu |
43 |
int8 pixel_count; // cislo pixelu 0 - 101 |
43 |
int8 rpx; // pocet prectenych pixelu |
- |
|
44 |
int8 rbit; |
44 |
|
45 |
|
45 |
//naraznik |
46 |
//naraznik |
46 |
#define BUMPL input(PIN_D6) |
47 |
#define BUMPL input(PIN_D6) |
47 |
#define BUMPR input(PIN_D7) |
48 |
#define BUMPR input(PIN_D7) |
48 |
|
49 |
|
Line 144... |
Line 145... |
144 |
olsa_send(start_int); // zacatek integrace senzoru |
145 |
olsa_send(start_int); // zacatek integrace senzoru |
145 |
olsa_pulses(22); |
146 |
olsa_pulses(22); |
146 |
olsa_send(stop_int); // konec integrace senzoru |
147 |
olsa_send(stop_int); // konec integrace senzoru |
147 |
olsa_pulses(5); |
148 |
olsa_pulses(5); |
148 |
} |
149 |
} |
- |
|
150 |
|
- |
|
151 |
void olsa_bit_save() // ukladani jednotlivych bitu pixelu |
- |
|
152 |
{ |
- |
|
153 |
t_bit_save: |
- |
|
154 |
if(SDOUT==0) // zacatek prenosu |
- |
|
155 |
{ |
- |
|
156 |
do // prijimej zpravy |
- |
|
157 |
{ |
- |
|
158 |
|
- |
|
159 |
|
- |
|
160 |
rbit++; // zapocita precteni bitu 0 - 7 |
- |
|
161 |
} |
- |
|
162 |
while(rbit==7); |
- |
|
163 |
goto e_bit_save; // skoc na konec prenosu |
- |
|
164 |
} |
- |
|
165 |
else // posli impulz a cekej na prenos |
- |
|
166 |
{ |
- |
|
167 |
olsa_pulse(); |
- |
|
168 |
goto t_bit_save; // skoci na zacatek prenosu, pokud SDOUT == 1 |
- |
|
169 |
} |
- |
|
170 |
e_bit_save: |
- |
|
171 |
olsa_pulse(); // posle impulz pro generovani stop bitu |
- |
|
172 |
} |
- |
|
173 |
|
- |
|
174 |
void olsa_convert() |
- |
|
175 |
{ |
- |
|
176 |
} |
- |
|
177 |
|
- |
|
178 |
void olsa_byte_save() // zapis pixelu do pole |
- |
|
179 |
{ |
- |
|
180 |
if(rpx<=51) // leva polovina radky |
- |
|
181 |
{ |
- |
|
182 |
olsa_lseg[line_lp]=pixel; // zapis do pole |
- |
|
183 |
line_lp++; |
- |
|
184 |
} |
- |
|
185 |
else // prava polovina radky |
- |
|
186 |
{ |
- |
|
187 |
olsa_rseg[line_rp]=pixel; // zapis od pole |
- |
|
188 |
line_rp++; |
- |
|
189 |
} |
- |
|
190 |
} |
149 |
|
191 |
|
150 |
void olsa_read() // precist senzor |
192 |
void olsa_evaluate() // vyhodnoceni polohy |
151 |
{ |
193 |
{ |
- |
|
194 |
} |
- |
|
195 |
|
- |
|
196 |
void olsa_read() // precist senzor |
- |
|
197 |
{ |
- |
|
198 |
rpx=0; // cteny pixel = 0 |
- |
|
199 |
line_lp=0; // ukazatel na levou cast radky = 0 |
- |
|
200 |
line_rp=0; // ukazatel na pravou cast radky = 0 |
152 |
olsa_send(readout); // prikaz pro cteni ze senzoru |
201 |
olsa_send(readout); // prikaz pro cteni ze senzoru |
- |
|
202 |
do |
- |
|
203 |
{ |
- |
|
204 |
olsa_bit_save(); // precte a ulozi bity |
- |
|
205 |
olsa_convert(); // prevede bity do jednoho bytu |
- |
|
206 |
olsa_byte_save(); // zapise byte do pole |
- |
|
207 |
rpx++; |
- |
|
208 |
} |
- |
|
209 |
while(rpx==101); |
- |
|
210 |
olsa_evaluate(); // zjisti pozici cary |
153 |
} |
211 |
} |
154 |
|
212 |
|
155 |
//ZACHRANNE SENZORY |
213 |
//ZACHRANNE SENZORY |
156 |
void read_blue_sensors() // cteni nouzovych senzoru |
214 |
void read_blue_sensors() // cteni nouzovych senzoru |
157 |
{ |
215 |
{ |