| 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 |
} |