Rev 793 Rev 796
Line 38... Line 38...
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 *line_lp=&olsa_lseg; // ukazatel na levou cast radky 40 int8 *line_lp=&olsa_lseg; // ukazatel na levou cast radky
41 int8 *line_rp=&olsa_rseg; // ukazatel na pravou cast radky 41 int8 *line_rp=&olsa_rseg; // ukazatel na pravou cast radky
42 int8 pixel; // dec hodnota jednoho pixelu 42 int8 pixel; // dec hodnota jednoho pixelu
43 int8 pixel_count; // cislo pixelu 0 - 101 43 int8 rpx; // pocet prectenych pixelu
-   44 int8 rbit;
44   45  
45 //naraznik 46 //naraznik
46 #define BUMPL input(PIN_D6) 47 #define BUMPL input(PIN_D6)
47 #define BUMPR input(PIN_D7) 48 #define BUMPR input(PIN_D7)
48   49  
Line 144... Line 145...
144 olsa_send(start_int); // zacatek integrace senzoru 145 olsa_send(start_int); // zacatek integrace senzoru
145 olsa_pulses(22); 146 olsa_pulses(22);
146 olsa_send(stop_int); // konec integrace senzoru 147 olsa_send(stop_int); // konec integrace senzoru
147 olsa_pulses(5); 148 olsa_pulses(5);
148 } 149 }
-   150  
-   151 void olsa_bit_save() // ukladani jednotlivych bitu pixelu
-   152 {
-   153 t_bit_save:
-   154 if(SDOUT==0) // zacatek prenosu
-   155 {
-   156 do // prijimej zpravy
-   157 {
-   158
-   159
-   160 rbit++; // zapocita precteni bitu 0 - 7
-   161 }
-   162 while(rbit==7);
-   163 goto e_bit_save; // skoc na konec prenosu
-   164 }
-   165 else // posli impulz a cekej na prenos
-   166 {
-   167 olsa_pulse();
-   168 goto t_bit_save; // skoci na zacatek prenosu, pokud SDOUT == 1
-   169 }
-   170 e_bit_save:
-   171 olsa_pulse(); // posle impulz pro generovani stop bitu
-   172 }
-   173
-   174 void olsa_convert()
-   175 {
-   176 }
-   177  
-   178 void olsa_byte_save() // zapis pixelu do pole
-   179 {
-   180 if(rpx<=51) // leva polovina radky
-   181 {
-   182 olsa_lseg[line_lp]=pixel; // zapis do pole
-   183 line_lp++;
-   184 }
-   185 else // prava polovina radky
-   186 {
-   187 olsa_rseg[line_rp]=pixel; // zapis od pole
-   188 line_rp++;
-   189 }
-   190 }
149 191
150 void olsa_read() // precist senzor 192 void olsa_evaluate() // vyhodnoceni polohy
151 { 193 {
-   194 }
-   195
-   196 void olsa_read() // precist senzor
-   197 {
-   198 rpx=0; // cteny pixel = 0
-   199 line_lp=0; // ukazatel na levou cast radky = 0
-   200 line_rp=0; // ukazatel na pravou cast radky = 0
152 olsa_send(readout); // prikaz pro cteni ze senzoru 201 olsa_send(readout); // prikaz pro cteni ze senzoru
-   202 do
-   203 {
-   204 olsa_bit_save(); // precte a ulozi bity
-   205 olsa_convert(); // prevede bity do jednoho bytu
-   206 olsa_byte_save(); // zapise byte do pole
-   207 rpx++;
-   208 }
-   209 while(rpx==101);
-   210 olsa_evaluate(); // zjisti pozici cary
153 } 211 }
154   212  
155 //ZACHRANNE SENZORY 213 //ZACHRANNE SENZORY
156 void read_blue_sensors() // cteni nouzovych senzoru 214 void read_blue_sensors() // cteni nouzovych senzoru
157 { 215 {