Rev 869 Rev 870
Line 44... Line 44...
44 int olsa_lseg[51]={0}; // leva cast radky (pixely 0 - 50) 44 int olsa_lseg[51]={0}; // leva cast radky (pixely 0 - 50)
45 int olsa_rseg[51]={0}; // prava cast radky (pixely 51 - 101) 45 int olsa_rseg[51]={0}; // prava cast radky (pixely 51 - 101)
46 int8 *lp; // ukazatel pro levou polovinu radky 46 int8 *lp; // ukazatel pro levou polovinu radky
47 int8 *rp; // ukazatel pro levou polovinu radky 47 int8 *rp; // ukazatel pro levou polovinu radky
48   48  
-   49 int8 position; // ulozeni pozice cary
-   50  
49 //naraznik 51 //naraznik
50 #define BUMPL input(PIN_D6) 52 #define BUMPL input(PIN_D6)
51 #define BUMPR input(PIN_D7) 53 #define BUMPR input(PIN_D7)
52   54  
53 //nouzove senzory 55 //nouzove senzory
Line 68... Line 70...
68 int8 rm_speed; 70 int8 rm_speed;
69   71  
70 //PODPROGRAMY 72 //PODPROGRAMY
71 //SENZORY 73 //SENZORY
72 //OLSA01A 74 //OLSA01A
73 void olsa_pulses(int count) // vytvori impulzy pro ridici logiku 75 void olsa_pulses(int count) // vytvori impulzy pro ridici logiku
74 { 76 {
75 int8 ct; 77 int8 ct;
76 for(ct=0;ct<=count;ct++) 78 for(ct=0;ct<=count;ct++)
77 { 79 {
78 output_high(SCLK); 80 output_high(SCLK);
79 output_low(SCLK); 81 output_low(SCLK);
80 } 82 }
81 } 83 }
82   84  
83 void olsa_pulse() // vytvori jeden impulz 85 void olsa_pulse() // vytvori jeden impulz
84 { 86 {
85 output_high(SCLK); 87 output_high(SCLK);
86 output_low(SCLK); 88 output_low(SCLK);
87 } 89 }
88   90  
89 void olsa_send(int8 info[8]) // USART komunikace s modulem OLSA01A - poslani zpravy 91 void olsa_send(int8 info[8]) // USART komunikace s modulem OLSA01A - poslani zpravy
90 { 92 {
91 int *ip; // ukazatel na pole s informaci 93 int *ip; // ukazatel na pole s informaci
92 int8 i; // pomocna promenna pro nastaveni 0 nebo 1 na SDIN 94 int8 i; // pomocna promenna pro nastaveni 0 nebo 1 na SDIN
93 output_low(SDIN); // start bit 95 output_low(SDIN); // start bit
94 olsa_pulse(); 96 olsa_pulse();
95 for(ip=0;ip<8;ip++) // predani informace - 8 bit, LSB prvni > MSB posledni 97 for(ip=0;ip<8;ip++) // predani informace - 8 bit, LSB prvni > MSB posledni
96 { 98 {
97 i=info[ip]; // ziskani hodnoty z pole 99 i=info[ip]; // ziskani hodnoty z pole
98 if(i==1) // vyhodnoceni obsahu informace - nastav 1 100 if(i==1) // vyhodnoceni obsahu informace - nastav 1
99 { 101 {
100 output_high(SDIN); 102 output_high(SDIN);
101 } 103 }
102 else // vyhodnoceni obsahu informace - nastav 0 104 else // vyhodnoceni obsahu informace - nastav 0
103 { 105 {
104 output_low(SDIN); 106 output_low(SDIN);
105 } 107 }
106 olsa_pulse(); 108 olsa_pulse();
107 } 109 }
108 output_high(SDIN); // stop bit 110 output_high(SDIN); // stop bit
109 olsa_pulse(); 111 olsa_pulse();
110 } 112 }
111   113  
112 void olsa_reset() // hlavni RESET - provadi se po zapnuti 114 void olsa_reset() // hlavni RESET - provadi se po zapnuti
113 { 115 {
114 output_low(SDIN); 116 output_low(SDIN);
115 output_low(SCLK); 117 output_low(SCLK);
116 olsa_pulses(30); // reset radkoveho senzoru 118 olsa_pulses(30); // reset radkoveho senzoru
117 output_high(SDIN); 119 output_high(SDIN);
118 olsa_pulses(10); // start bit - synchronizace 120 olsa_pulses(10); // start bit - synchronizace
119 olsa_send(main_reset); 121 olsa_send(main_reset);
120 olsa_pulses(5); 122 olsa_pulses(5);
121 olsa_send(set_mode_rg); 123 olsa_send(set_mode_rg);
122 olsa_send(clear_mode_rg); 124 olsa_send(clear_mode_rg);
123 } 125 }
124 126
125 void olsa_setup() // kompletni nastaveni, provadi se po resetu 127 void olsa_setup() // kompletni nastaveni, provadi se po resetu
126 { 128 {
127 olsa_send(left_offset); // nastaveni leveho segmentu (offset a zisk) 129 olsa_send(left_offset); // nastaveni leveho segmentu (offset a zisk)
128 olsa_send(offset); 130 olsa_send(offset);
129 olsa_send(left_gain); 131 olsa_send(left_gain);
130 olsa_send(gain); 132 olsa_send(gain);
131 olsa_send(mid_offset); // nastaveni prostredniho segmentu (offset a zisk) 133 olsa_send(mid_offset); // nastaveni prostredniho segmentu (offset a zisk)
132 olsa_send(offset); 134 olsa_send(offset);
133 olsa_send(mid_gain); 135 olsa_send(mid_gain);
134 olsa_send(gain); 136 olsa_send(gain);
135 olsa_send(right_offset); // nastaveni praveho segmentu (offset a zisk) 137 olsa_send(right_offset); // nastaveni praveho segmentu (offset a zisk)
136 olsa_send(offset); 138 olsa_send(offset);
137 olsa_send(right_gain); 139 olsa_send(right_gain);
138 olsa_send(gain); 140 olsa_send(gain);
139 } 141 }
140 142
141 void olsa_integration() // snimani pixelu 143 void olsa_integration() // snimani pixelu
142 { 144 {
143 olsa_send(start_int); // zacatek integrace senzoru 145 olsa_send(start_int); // zacatek integrace senzoru
144 olsa_pulses(22); 146 olsa_pulses(22);
145 olsa_send(stop_int); // konec integrace senzoru 147 olsa_send(stop_int); // konec integrace senzoru
146 olsa_pulses(5); 148 olsa_pulses(5);
147 } 149 }
148   150  
149 void read_olsa() 151 void read_olsa()
150 { 152 {
151 int8 cpixel; // pocet prectenych pixelu 153 int8 cpixel; // pocet prectenych pixelu
152 int8 cbit; // pocet prectenych bitu 154 int8 cbit; // pocet prectenych bitu
153 int8 pixel; // hodnota precteneho pixelu 155 int8 pixel; // hodnota precteneho pixelu
154 cpixel=0; 156 cpixel=0;
155 lp=0; 157 lp=0;
156 rp=0; 158 rp=0;
157 olsa_integration(); 159 olsa_integration();
158 olsa_send(readout); 160 olsa_send(readout);
159 do // precte 102 pixelu 161 do // precte 102 pixelu
160 { 162 {
161 if(!SDOUT) // zacatek prenosu - zachycen start bit 163 if(!SDOUT) // zacatek prenosu - zachycen start bit
162 { 164 {
163 pixel=0; 165 pixel=0;
164 for(cbit=0;cbit<8;cbit++) // cte jednotlive bity (8 bitu - 0 az 7) 166 for(cbit=0;cbit<8;cbit++) // cte jednotlive bity (8 bitu - 0 az 7)
165 { 167 {
166 olsa_pulse(); // impulz pro generovani dalsiho bitu 168 olsa_pulse(); // impulz pro generovani dalsiho bitu
167 if(SDOUT) // zachycena 1 169 if(SDOUT) // zachycena 1
168 { 170 {
169 pixel|=1; // zapise do bitu pixelu 1 - OR 171 pixel|=1; // zapise do bitu pixelu 1 - OR
170 } 172 }
171 else // zachycena 0 173 else // zachycena 0
172 { 174 {
173 pixel|=0; // zapise do bitu pixelu 0 - OR 175 pixel|=0; // zapise do bitu pixelu 0 - OR
174 } 176 }
175 pixel<<=1; // posune pixel 177 pixel<<=1; // posune pixel
176 } 178 }
177 olsa_pulse(); // generuje stop bit 179 olsa_pulse(); // generuje stop bit
178 if(cpixel<52) // ulozeni do pole 180 if(cpixel<52) // ulozeni do pole
179 { 181 {
180 olsa_lseg[lp]=pixel; // leva polovina radky - leve pole 182 olsa_lseg[lp]=pixel; // leva polovina radky - leve pole
181 lp++; 183 lp++;
182 } 184 }
183 else 185 else
184 { 186 {
185 olsa_rseg[rp]=pixel; // prava polovina cary - prave pole 187 olsa_rseg[rp]=pixel; // prava polovina cary - prave pole
186 rp++; 188 rp++;
187 } 189 }
188 cpixel++; 190 cpixel++;
189 } 191 }
190 else 192 else
191 { 193 {
192 olsa_pulse(); // generuje start bit, nebyl-li poslan 194 olsa_pulse(); // generuje start bit, nebyl-li poslan
193 } 195 }
194 } 196 }
195 while(cpixel<102); // precte 102 pixelu 197 while(cpixel<102); // precte 102 pixelu
196 } 198 }
197   199  
198 void olsa_position() 200 void olsa_position() // vyhodnoti pozici cary
199 { 201 {
200 int8 searchp; // ukazatel na pole 202 int8 searchp; // ukazatel na pole
201 int8 search; // ulozeni prectene hodnoty 203 int8 search; // ulozeni prectene hodnoty
202 int1 segment; // cara je vlevo nebo vpravo 204 int1 segment; // cara je vlevo nebo vpravo
203 int8 position; // ulozeni pozice cary -  
204 int8 protect_count; // opravdu vidime caru 205 int8 protect_count; // opravdu vidime caru
205 position=0; 206 position=0; // nuluje pozici, pokud cara neni, ulozena 0
206 read_olsa(); -  
207 for(searchp=0;searchp<52;searchp++) // prohlizi levou cast cary 207 for(searchp=0;searchp<52;searchp++) // prohlizi levou cast cary
208 { 208 {
209 search=olsa_lseg[searchp]; // vybira pixel 209 search=olsa_lseg[searchp]; // vybira pixel
210 if(search==OLSA_LEV) // cerna nebo bila? 210 if(search==OLSA_LEV) // cerna nebo bila?
211 { 211 {
Line 217... Line 217...
217 } 217 }
218 if(protect_count>LINE_PX) // vidim caru 218 if(protect_count>LINE_PX) // vidim caru
219 { 219 {
220 position=searchp; // zapis presnou pozici 220 position=searchp; // zapis presnou pozici
221 segment=LEFT; // cara je v leve polovine 221 segment=LEFT; // cara je v leve polovine
222 searchp=55; // ukonci hledani 222 searchp=55; // ukonci hledani
223 } 223 }
224 } 224 }
225 for(searchp=0;searchp<52;searchp++) // prohlizi pravou cast cary 225 for(searchp=0;searchp<52;searchp++) // prohlizi pravou cast cary
226 { 226 {
227 search=olsa_rseg[searchp]; // vybira pixel 227 search=olsa_rseg[searchp]; // vybira pixel
228 if(search==OLSA_LEV) 228 if(search==OLSA_LEV)
229 { 229 {
230 protect_count++; // pokud nasleduje cerna, pricte 1 k poctu cernych pixelu 230 protect_count++; // pokud nasleduje cerna, pricte 1 k poctu cernych pixelu
231 } 231 }
232 else 232 else
Line 235... Line 235...
235 } 235 }
236 if(protect_count>LINE_PX) // vidim caru 236 if(protect_count>LINE_PX) // vidim caru
237 { 237 {
238 position=(searchp+50); // zapis presnou pozici 238 position=(searchp+50); // zapis presnou pozici
239 segment=RIGHT; // cara je v prave polovine 239 segment=RIGHT; // cara je v prave polovine
240 searchp=55; // ukonci hledani 240 searchp=55; // ukonci hledani
241 } 241 }
242 } 242 }
243 printf("poloha: %u\r\n",position); 243 // printf("poloha: %u\r\n",position); // tiskne pozici - zakomentovat pro hledani
244 } 244 }
245   245  
246 //ZACHRANNE SENZORY 246 //ZACHRANNE SENZORY
247 void read_blue_sensors() // cteni nouzovych senzoru 247 void read_blue_sensors() // cteni nouzovych senzoru
248 { 248 {
249 set_adc_channel(LINEL); // cti levy nouzovy senzor 249 set_adc_channel(LINEL); // cti levy nouzovy senzor
250 delay_us(10); 250 delay_us(10);
251 line_l=read_adc(); 251 line_l=read_adc();
252 set_adc_channel(LINER); // cti pravy nouzovy senzor 252 set_adc_channel(LINER); // cti pravy nouzovy senzor
253 delay_us(10); 253 delay_us(10);
254 line_r=read_adc(); 254 line_r=read_adc();
255 } 255 }
256 256
257 //PIPAK 257 //PIPAK
258 void beep(int16 period,int16 length) 258 void beep(int16 period,int16 length)
259 { 259 {
260 int16 bp; // promenna pro nastaveni delky 260 int16 bp; // promenna pro nastaveni delky
261 for(bp=length;bp>0;bp--) // prepina vystupy tolikrat, jakou jsme zadali delku 261 for(bp=length;bp>0;bp--) // prepina vystupy tolikrat, jakou jsme zadali delku
262 { 262 {
263 output_high(SOUND_HI); 263 output_high(SOUND_HI);
264 output_low(SOUND_LO); 264 output_low(SOUND_LO);
265 delay_us(period); 265 delay_us(period);
266 output_high(SOUND_LO); 266 output_high(SOUND_LO);
267 output_low(SOUND_HI); 267 output_low(SOUND_HI);
268 delay_us(period); 268 delay_us(period);
269 } 269 }
270 } 270 }
271 //MOTORY 271 //MOTORY
272 void l_motor_fwd(int8 speedl) // levy motor dopredu 272 void l_motor_fwd(int8 speedl) // levy motor dopredu
273 { 273 {
274 output_high(LMF); 274 output_high(LMF);
275 output_low(LMB); 275 output_low(LMB);
276 set_pwm2_duty(speedl); 276 set_pwm2_duty(speedl);
277 } 277 }
278   278  
279 void l_motor_bwd(int8 speedl) // levy motor dozadu 279 void l_motor_bwd(int8 speedl) // levy motor dozadu
280 { 280 {
281 output_high(LMB); 281 output_high(LMB);
282 output_low(LMF); 282 output_low(LMF);
283 set_pwm2_duty(speedl); 283 set_pwm2_duty(speedl);
284 } 284 }
285   285  
286 void r_motor_fwd(int8 speedr) // pravy motor dopredu 286 void r_motor_fwd(int8 speedr) // pravy motor dopredu
287 { 287 {
288 output_high(RMF); 288 output_high(RMF);
289 output_low(RMB); 289 output_low(RMB);
290 set_pwm1_duty(speedr); 290 set_pwm1_duty(speedr);
291 } 291 }
292   292  
293 void r_motor_bwd(int8 speedr) // pravy motor dozadu 293 void r_motor_bwd(int8 speedr) // pravy motor dozadu
294 { 294 {
295 output_high(RMB); 295 output_high(RMB);
296 output_low(RMF); 296 output_low(RMF);
297 set_pwm1_duty(speedr); 297 set_pwm1_duty(speedr);
298 } 298 }
299   299  
300 void l_motor_off() // levy motor vypnut 300 void l_motor_off() // levy motor vypnut
301 { 301 {
302 output_low(LMF); 302 output_low(LMF);
303 output_low(LMB); 303 output_low(LMB);
304 set_pwm2_duty(0); 304 set_pwm2_duty(0);
305 } 305 }
306 306
307 void r_motor_off() // pravy motor vypnut 307 void r_motor_off() // pravy motor vypnut
308 { 308 {
309 output_low(RMF); 309 output_low(RMF);
310 output_low(RMB); 310 output_low(RMB);
311 set_pwm1_duty(0); 311 set_pwm1_duty(0);
312 } 312 }
313   313  
314 void motor_test() // test motoru 314 void motor_test() // test motoru
315 { 315 {
316 int8 i; 316 int8 i;
317 beep(100,200); 317 beep(100,200);
318 printf("TEST MOTORU\r\n"); 318 printf("TEST MOTORU\r\n");
319 delay_ms(1000); 319 delay_ms(1000);
320 printf("LEVY MOTOR DOPREDU\r\n"); 320 printf("LEVY MOTOR DOPREDU\r\n");
321 delay_ms(1000); 321 delay_ms(1000);
322 for(i=0;i<255;i++) 322 for(i=0;i<255;i++) // levy motor dopredu - zrychluje
323 { 323 {
324 l_motor_fwd(i); 324 l_motor_fwd(i);
325 printf("RYCHLOST: %u\r\n",i); 325 printf("RYCHLOST: %u\r\n",i);
326 delay_ms(5); 326 delay_ms(5);
327 } 327 }
328 for(i=255;i>0;i--) 328 for(i=255;i>0;i--) // levy motor dopredu - zpomaluje
329 { 329 {
330 l_motor_fwd(i); 330 l_motor_fwd(i);
331 printf("RYCHLOST: %u\r\n",i); 331 printf("RYCHLOST: %u\r\n",i);
332 delay_ms(5); 332 delay_ms(5);
333 } 333 }
334 printf("LEVY MOTOR DOZADU\r\n"); 334 printf("LEVY MOTOR DOZADU\r\n"); // levy motor dozadu - zrychluje
335 delay_ms(1000); 335 delay_ms(1000);
336 for(i=0;i<255;i++) 336 for(i=0;i<255;i++)
337 { 337 {
338 l_motor_bwd(i); 338 l_motor_bwd(i);
339 printf("RYCHLOST: %u\r\n",i); 339 printf("RYCHLOST: %u\r\n",i);
340 delay_ms(5); 340 delay_ms(5);
341 } 341 }
342 for(i=255;i>0;i--) 342 for(i=255;i>0;i--) // levy motor dozadu - zpomaluje
343 { 343 {
344 l_motor_bwd(i); 344 l_motor_bwd(i);
345 printf("RYCHLOST: %u\r\n",i); 345 printf("RYCHLOST: %u\r\n",i);
346 delay_ms(5); 346 delay_ms(5);
347 } 347 }
348 printf("PRAVY MOTOR DOPREDU\r\n"); 348 printf("PRAVY MOTOR DOPREDU\r\n");
349 delay_ms(1000); 349 delay_ms(1000);
350 for(i=0;i<255;i++) 350 for(i=0;i<255;i++) // pravy motor dopredu - zrychluje
351 { 351 {
352 r_motor_fwd(i); 352 r_motor_fwd(i);
353 printf("RYCHLOST: %u\r\n",i); 353 printf("RYCHLOST: %u\r\n",i);
354 delay_ms(5); 354 delay_ms(5);
355 } 355 }
356 for(i=255;i>0;i--) 356 for(i=255;i>0;i--) // pravy motor dopredu - zpomaluje
357 { 357 {
358 r_motor_fwd(i); 358 r_motor_fwd(i);
359 printf("RYCHLOST: %u\r\n",i); 359 printf("RYCHLOST: %u\r\n",i);
360 delay_ms(5); 360 delay_ms(5);
361 } 361 }
362 printf("PRAVY MOTOR DOZADU\r\n"); 362 printf("PRAVY MOTOR DOZADU\r\n");
363 delay_ms(1000); 363 delay_ms(1000);
364 for(i=0;i<255;i++) 364 for(i=0;i<255;i++) // pravy motor dozadu - zrychluje
365 { 365 {
366 r_motor_bwd(i); 366 r_motor_bwd(i);
367 printf("RYCHLOST: %u\r\n",i); 367 printf("RYCHLOST: %u\r\n",i);
368 delay_ms(5); 368 delay_ms(5);
369 } 369 }
370 for(i=255;i>0;i--) 370 for(i=255;i>0;i--) // pravy motor dozadu - zpomaluje
371 { 371 {
372 r_motor_bwd(i); 372 r_motor_bwd(i);
373 printf("RYCHLOST: %u\r\n",i); 373 printf("RYCHLOST: %u\r\n",i);
374 delay_ms(5); 374 delay_ms(5);
375 } 375 }
376 l_motor_off(); 376 l_motor_off(); // po ukonceni testu vypnout motory
377 r_motor_off(); 377 r_motor_off();
378 printf("KONEC TESTU MOTORU\r\n"); 378 printf("KONEC TESTU MOTORU\r\n");
379 delay_ms(1000); 379 delay_ms(1000);
380 } 380 }
381   381  
382 void diag() // diagnostika - vypis senzoru s moznosti prepnuti na test motoru 382 void diag() // diagnostika - vypis senzoru s moznosti prepnuti na test motoru
383 { 383 {
384 read_blue_sensors(); 384 read_blue_sensors();
385 printf("LEVA: %u \t",line_l); 385 read_olsa();
386 delay_ms(10); 386 olsa_position();
-   387 printf("LEVA: %u \t",line_l); // tiskne z leveho senzoru
387 printf("PRAVA: %u \t",line_r); 388 printf("PRAVA: %u \t",line_r); // tiskne z praveho senzoru
388 delay_ms(10); 389 printf("poloha: %u\t",position); // tiskne pozici OLSA
389 printf("L_NARAZ: %u \t",BUMPL); 390 printf("L_NARAZ: %u \t",BUMPL); // leve tlacitko narazniku
390 delay_ms(10); -  
391 printf("P_NARAZ: %u \r\n",BUMPR); 391 printf("P_NARAZ: %u \r\n",BUMPR); // prave tlacitko narazniku
392 delay_ms(10); -  
393 if(BUMPL&&BUMPR) // po zmacknuti stran narazniku spusti test motoru 392 if(BUMPL&&BUMPR) // po zmacknuti stran narazniku spusti test motoru
394 { 393 {
395 beep(100,1000); 394 beep(100,1000);
396 printf("Levy naraznik - test OLSA\r\n"); 395 printf("Levy naraznik - test OLSA\r\n");
397 printf("Pravy naraznik - test motoru\r\n"); 396 printf("Pravy naraznik - test motoru\r\n");
398 delay_ms(500); 397 delay_ms(500);
399 while(true) 398 while(true)
400 { 399 {
401 if(BUMPR) 400 if(BUMPR)
402 { 401 {
403 beep(100,500); // pipni pri startu 402 beep(100,500); // pipni pri startu
404 motor_test(); 403 motor_test();
405 } 404 }
406 if(BUMPL) 405 if(BUMPL)
407 { 406 {
408 beep(100,500); 407 beep(100,500);
Line 432... Line 431...
432 // HLAVNI SMYCKA 431 // HLAVNI SMYCKA
433 void main() 432 void main()
434 { 433 {
435 printf("POWER ON \r\n"); 434 printf("POWER ON \r\n");
436 // NASTAVENI > provede se pouze pri zapnuti 435 // NASTAVENI > provede se pouze pri zapnuti
437 setup_adc_ports(sAN0-sAN1-sAN2); // aktivní analogové vstupy RA0, RA1 a RA2 436 setup_adc_ports(sAN0-sAN1-sAN2); // aktivní analogové vstupy RA0, RA1 a RA2
438 setup_adc(ADC_CLOCK_INTERNAL); // interni hodniny pro AD prevodnik 437 setup_adc(ADC_CLOCK_INTERNAL); // interni hodniny pro AD prevodnik
439 setup_spi(SPI_SS_DISABLED); 438 setup_spi(SPI_SS_DISABLED);
440 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 439 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
441 setup_timer_1(T1_DISABLED); 440 setup_timer_1(T1_DISABLED);
442 setup_timer_2(T2_DIV_BY_16,255,1); // casovac pro PWM 441 setup_timer_2(T2_DIV_BY_16,255,1); // casovac pro PWM
443 setup_ccp1(CCP_PWM); // povoli PWM na pinu RC2 442 setup_ccp1(CCP_PWM); // povoli PWM na pinu RC2
444 setup_ccp2(CCP_PWM); // povolí PWM na pinu RC1 443 setup_ccp2(CCP_PWM); // povolí PWM na pinu RC1
445 setup_comparator(NC_NC_NC_NC); 444 setup_comparator(NC_NC_NC_NC);
446 setup_vref(FALSE); 445 setup_vref(FALSE);
447 l_motor_off(); // vypne levy motor 446 l_motor_off(); // vypne levy motor
448 r_motor_off(); // vypne pravy motor 447 r_motor_off(); // vypne pravy motor
449 output_high(LED1); // zhasne LED1 448 output_high(LED1); // zhasne LED1
450 output_high(LED2); // zhasne LED2 449 output_high(LED2); // zhasne LED2
451 olsa_reset(); 450 olsa_reset();
452 olsa_setup(); 451 olsa_setup();
453 beep(100,500); // pipni pri startu 452 beep(100,500); // pipni pri startu
454 printf("OK! \r\n"); 453 printf("OK! \r\n");
455 delay_ms(500); 454 delay_ms(500);
456 printf("VYBRAT MOD... \r\n"); 455 printf("VYBRAT MOD... \r\n");
457 while(true) 456 while(true)
458 { 457 {
459 //diag(); 458 diag();
460 olsa_position(); -  
461 } 459 }
462 } 460 }
463   461  
464   462