Rev 836 Rev 837
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 }