| Line 18... |
Line 18... |
| 18 |
|
18 |
|
| 19 |
// pro komunikaci s OLSA, prvni se posila LSB |
19 |
// pro komunikaci s OLSA, prvni se posila LSB |
| 20 |
int main_reset[8]={1,1,0,1,1,0,0,0}; // hlavni reset 0x1B |
20 |
int main_reset[8]={1,1,0,1,1,0,0,0}; // hlavni reset 0x1B |
| 21 |
int set_mode_rg[8]={1,1,1,1,1,0,1,0}; // zapis do MODE registru 0x5F |
21 |
int set_mode_rg[8]={1,1,1,1,1,0,1,0}; // zapis do MODE registru 0x5F |
| 22 |
int clear_mode_rg[8]={0,0,0,0,0,0,0,0}; // nulovani MODE registru 0x00 |
22 |
int clear_mode_rg[8]={0,0,0,0,0,0,0,0}; // nulovani MODE registru 0x00 |
| 23 |
int test[8]={1,0,1,0,1,0,1,0,}; |
- |
|
| 24 |
|
23 |
|
| 25 |
int left_offset[8]={0,0,0,0,0,0,1,0}; // offset leveho segmentu senzoru 0x40 |
24 |
int left_offset[8]={0,0,0,0,0,0,1,0}; // offset leveho segmentu senzoru 0x40 |
| 26 |
int mid_offset[8]={0,1,0,0,0,0,1,0}; // offset prostredniho segmentu senzoru 0x42 |
25 |
int mid_offset[8]={0,1,0,0,0,0,1,0}; // offset prostredniho segmentu senzoru 0x42 |
| 27 |
int right_offset[8]={0,0,1,0,0,0,1,0}; // offset praveho segmentu senzoru 0x44 |
26 |
int right_offset[8]={0,0,1,0,0,0,1,0}; // offset praveho segmentu senzoru 0x44 |
| 28 |
int offset[8]={1,0,0,0,0,0,0,1}; // minus jedna - pouzit pro vsechny segmenty 0x81 |
27 |
int offset[8]={1,0,0,0,0,0,0,1}; // minus jedna - pouzit pro vsechny segmenty 0x81 |
| Line 323... |
Line 322... |
| 323 |
printf("VYBRAT MOD... \r\n"); |
322 |
printf("VYBRAT MOD... \r\n"); |
| 324 |
olsa_integration(); |
323 |
olsa_integration(); |
| 325 |
olsa_send(readout); |
324 |
olsa_send(readout); |
| 326 |
while(true) |
325 |
while(true) |
| 327 |
{ |
326 |
{ |
| 328 |
int1 rbit; // hodnota cteneho bitu |
327 |
int8 cpixel; // pocet prectenych pixelu |
| 329 |
int8 cbit; // pocet prectenych |
328 |
int8 cbit; // pocet prectenych bitu |
| 330 |
int pixel_bits[8]={0}; // pixel bitove |
329 |
int8 pixel; // hodnota precteneho pixelu |
| 331 |
int8 pixel; |
330 |
cpixel=0; |
| 332 |
|
331 |
while(true) |
| 333 |
if(!SDOUT) // zacatek prenosu |
- |
|
| 334 |
{ |
332 |
{ |
| 335 |
pixel=0; |
333 |
output_low(SDIN); |
| 336 |
for(cbit=0;cbit<8;cbit++) // cte jednotlive bity (8 bitu - 0 az 7) |
- |
|
| 337 |
olsa_pulse(); // impulz pro generovani dalsiho bitu |
- |
|
| 338 |
{ |
- |
|
| 339 |
if(SDOUT) // zachycena 1 |
334 |
if(!SDOUT) // zacatek prenosu - zachycen start bit |
| 340 |
{ |
335 |
{ |
| 341 |
pixel|1; |
336 |
pixel=0; |
| 342 |
} |
- |
|
| 343 |
else // zachycena 0 |
337 |
for(cbit=0;cbit<8;cbit++) // cte jednotlive bity (8 bitu - 0 az 7) |
| 344 |
{ |
338 |
{ |
| - |
|
339 |
olsa_pulse(); // impulz pro generovani dalsiho bitu |
| - |
|
340 |
if(SDOUT) // zachycena 1 |
| 345 |
pixel>>1; |
341 |
{ |
| - |
|
342 |
pixel|=1; // zapise do bitu pixelu 1 - OR |
| - |
|
343 |
} |
| - |
|
344 |
else // zachycena 0 |
| - |
|
345 |
{ |
| - |
|
346 |
pixel|=0; // zapise do bitu pixelu 0 - OR |
| - |
|
347 |
} |
| - |
|
348 |
pixel<<=1; // posune pixel |
| 346 |
} |
349 |
} |
| - |
|
350 |
olsa_pulse(); // generuje stop bit |
| 347 |
} |
351 |
cpixel++; |
| 348 |
printf("pixel: %u \r\n",pixel); |
352 |
printf("%x ",pixel); |
| 349 |
} |
353 |
} |
| 350 |
else |
354 |
else |
| 351 |
{ |
355 |
{ |
| - |
|
356 |
olsa_pulse(); // generuje start bit, nebyl-li poslan |
| - |
|
357 |
} |
| 352 |
olsa_pulse(); |
358 |
if(cpixel>102) |
| - |
|
359 |
{ |
| - |
|
360 |
printf("/r/n"); |
| - |
|
361 |
} |
| 353 |
} |
362 |
} |
| 354 |
} |
363 |
} |
| 355 |
} |
364 |
} |