Line 35... |
Line 35... |
35 |
int stop_int[8]={0,0,0,0,1,0,0,0}; // konec integrace 0x10 |
35 |
int stop_int[8]={0,0,0,0,1,0,0,0}; // konec integrace 0x10 |
36 |
int readout[8]={0,1,0,0,0,0,0,0}; // cteni senzoru 0x02 |
36 |
int readout[8]={0,1,0,0,0,0,0,0}; // cteni senzoru 0x02 |
37 |
|
37 |
|
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 *lp; // ukazatel pro levou polovinu radky |
40 |
int8 *lp; // ukazatel pro levou polovinu radky |
41 |
int8 *rp; // ukazatel pro levou polovinu radky |
41 |
int8 *rp; // ukazatel pro levou polovinu radky |
42 |
|
42 |
|
43 |
//naraznik |
43 |
//naraznik |
44 |
#define BUMPL input(PIN_D6) |
44 |
#define BUMPL input(PIN_D6) |
45 |
#define BUMPR input(PIN_D7) |
45 |
#define BUMPR input(PIN_D7) |
46 |
|
46 |
|
Line 138... |
Line 138... |
138 |
olsa_pulses(22); |
138 |
olsa_pulses(22); |
139 |
olsa_send(stop_int); // konec integrace senzoru |
139 |
olsa_send(stop_int); // konec integrace senzoru |
140 |
olsa_pulses(5); |
140 |
olsa_pulses(5); |
141 |
} |
141 |
} |
142 |
|
142 |
|
- |
|
143 |
void read_olsa() |
- |
|
144 |
{ |
- |
|
145 |
int8 cpixel; // pocet prectenych pixelu |
- |
|
146 |
int8 cbit; // pocet prectenych bitu |
- |
|
147 |
int8 pixel; // hodnota precteneho pixelu |
- |
|
148 |
cpixel=0; |
- |
|
149 |
lp=0; |
- |
|
150 |
rp=0; |
- |
|
151 |
olsa_integration(); |
- |
|
152 |
olsa_send(readout); |
- |
|
153 |
do // precte 102 pixelu |
- |
|
154 |
{ |
- |
|
155 |
if(!SDOUT) // zacatek prenosu - zachycen start bit |
- |
|
156 |
{ |
- |
|
157 |
pixel=0; |
- |
|
158 |
for(cbit=0;cbit<8;cbit++) // cte jednotlive bity (8 bitu - 0 az 7) |
- |
|
159 |
{ |
- |
|
160 |
olsa_pulse(); // impulz pro generovani dalsiho bitu |
- |
|
161 |
if(SDOUT) // zachycena 1 |
- |
|
162 |
{ |
- |
|
163 |
pixel|=1; // zapise do bitu pixelu 1 - OR |
- |
|
164 |
} |
- |
|
165 |
else // zachycena 0 |
- |
|
166 |
{ |
- |
|
167 |
pixel|=0; // zapise do bitu pixelu 0 - OR |
- |
|
168 |
} |
- |
|
169 |
pixel<<=1; // posune pixel |
- |
|
170 |
} |
- |
|
171 |
olsa_pulse(); // generuje stop bit |
- |
|
172 |
if(cpixel<52) // ulozeni do pole |
- |
|
173 |
{ |
- |
|
174 |
olsa_lseg[lp]=pixel; // leva polovina radky - leve pole |
- |
|
175 |
lp++; |
- |
|
176 |
} |
- |
|
177 |
else |
- |
|
178 |
{ |
- |
|
179 |
olsa_rseg[rp]=pixel; // prava polovina cary - prave pole |
- |
|
180 |
rp++; |
- |
|
181 |
} |
- |
|
182 |
cpixel++; |
- |
|
183 |
} |
- |
|
184 |
else |
- |
|
185 |
{ |
- |
|
186 |
olsa_pulse(); // generuje start bit, nebyl-li poslan |
- |
|
187 |
} |
- |
|
188 |
} |
- |
|
189 |
while(cpixel<102); // precte 102 pixelu |
- |
|
190 |
} |
- |
|
191 |
|
143 |
//ZACHRANNE SENZORY |
192 |
//ZACHRANNE SENZORY |
144 |
void read_blue_sensors() // cteni nouzovych senzoru |
193 |
void read_blue_sensors() // cteni nouzovych senzoru |
145 |
{ |
194 |
{ |
146 |
set_adc_channel(LINEL); // cti levy nouzovy senzor |
195 |
set_adc_channel(LINEL); // cti levy nouzovy senzor |
147 |
delay_us(10); |
196 |
delay_us(10); |
Line 320... |
Line 369... |
320 |
printf("OK! \r\n"); |
369 |
printf("OK! \r\n"); |
321 |
delay_ms(500); |
370 |
delay_ms(500); |
322 |
printf("VYBRAT MOD... \r\n"); |
371 |
printf("VYBRAT MOD... \r\n"); |
323 |
while(true) |
372 |
while(true) |
324 |
{ |
373 |
{ |
325 |
int8 cpixel; // pocet prectenych pixelu |
- |
|
326 |
int8 cbit; // pocet prectenych bitu |
- |
|
327 |
int8 pixel; // hodnota precteneho pixelu |
- |
|
328 |
int8 tisk; |
374 |
int8 tisk; |
329 |
int8 *tiskp; |
375 |
int8 *tiskp; |
330 |
cpixel=0; |
376 |
read_olsa(); |
331 |
lp=0; |
- |
|
332 |
rp=0; |
- |
|
333 |
olsa_integration(); |
- |
|
334 |
olsa_send(readout); |
- |
|
335 |
do // precte 102 pixelu |
- |
|
336 |
{ |
- |
|
337 |
if(!SDOUT) // zacatek prenosu - zachycen start bit |
- |
|
338 |
{ |
- |
|
339 |
pixel=0; |
- |
|
340 |
for(cbit=0;cbit<8;cbit++) // cte jednotlive bity (8 bitu - 0 az 7) |
- |
|
341 |
{ |
- |
|
342 |
olsa_pulse(); // impulz pro generovani dalsiho bitu |
- |
|
343 |
if(SDOUT) // zachycena 1 |
- |
|
344 |
{ |
- |
|
345 |
pixel|=1; // zapise do bitu pixelu 1 - OR |
- |
|
346 |
} |
- |
|
347 |
else // zachycena 0 |
- |
|
348 |
{ |
- |
|
349 |
pixel|=0; // zapise do bitu pixelu 0 - OR |
- |
|
350 |
} |
- |
|
351 |
pixel<<=1; // posune pixel |
- |
|
352 |
} |
- |
|
353 |
olsa_pulse(); // generuje stop bit |
- |
|
354 |
if(cpixel<52) // ulozeni do pole |
- |
|
355 |
{ |
- |
|
356 |
olsa_lseg[lp]=pixel; // leva polovina radky - leve pole |
- |
|
357 |
lp++; |
- |
|
358 |
} |
- |
|
359 |
else |
- |
|
360 |
{ |
- |
|
361 |
olsa_rseg[rp]=pixel; // prava polovina cary - prave pole |
- |
|
362 |
rp++; |
- |
|
363 |
} |
- |
|
364 |
cpixel++; |
- |
|
365 |
//printf("%x ",pixel); // tisk na seriovku - pote zapis do pole |
- |
|
366 |
} |
- |
|
367 |
else |
- |
|
368 |
{ |
- |
|
369 |
olsa_pulse(); // generuje start bit, nebyl-li poslan |
- |
|
370 |
} |
- |
|
371 |
} |
- |
|
372 |
while(cpixel<102); // precte 102 pixelu |
- |
|
373 |
printf("Nove snimani... \r\n"); // po precteni vsech pixelu posle |
377 |
printf("\r\n"); // po precteni vsech pixelu posle "enter" |
374 |
for(tiskp=0;tiskp<52;tiskp++) // tisk leve casti radky |
378 |
for(tiskp=0;tiskp<52;tiskp++) // tisk leve casti radky |
375 |
{ |
379 |
{ |
376 |
tisk=olsa_lseg[tiskp]; |
380 |
tisk=olsa_lseg[tiskp]; |
377 |
printf("%x ",tisk); |
381 |
printf("%x ",tisk); |
378 |
} |
382 |
} |