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