Blame | Last modification | View Log | Download
#define DOLEVA 0#define DOPRAVA 1void cikcak(){unsigned int8 i=0;uhel=KOLMO1; // aby se dalo tocit na misteDelay_ms(100);if (line==L2) line=L3; // poznamenej, kde byla cara pred brzdenimif (line==S) line=L3;if (line==R2) line=R3;Delay_ms(3); // prodleva na cteni senzoru pred prenosemoutput_low(STROBE); // zapni zobrazovani na posuvnem registrusensors = spi_read(0); // cteni senzorusensors=~sensors;output_high(STROBE); // vypni zobrazovani na posuvnem registruwhile(true){Delay_ms(3);if (line==L3){GO(L,B,160);GO(R,F,160);};if (line==R3){GO(R,B,160);GO(L,F,160);};if (line==S) {STOPL;STOPR; i++;} else i=0;if (i>=100) break; // pokud je dostatecne dlouho cara vprostred, vypadnioutput_low(STROBE); // zapni zobrazovani na posuvnem registrusensors = spi_read(0); // cteni senzorusensors=~sensors;output_high(STROBE); // vypni zobrazovani na posuvnem registruif(bit_test(sensors,3)) //...|...//{line=S;continue;}if(bit_test(sensors,0)) //|......// // z duvodu zkraceni doby reakce se cidla nevyhodnocuji poporade ale od krajnich k prostrednimu{line=L3;continue;}if(bit_test(sensors,6)) //......|//{line=R3;continue;}if(bit_test(sensors,1)) //.|.....//{line=L3;continue;}if(bit_test(sensors,5)) //.....|.//{line=R3;continue;}if (bit_test(sensors,2)) //..|....//{line=L3;continue;}if (bit_test(sensors,4)) //....|..//{line=R3;continue;}}}////////////////////////////////////////////////////////////////////////////////void objizdka(){BL;FR;Delay_ms(300);FL;BR;Delay_ms(100);STOPL;STOPR;uhel=STRED;FL;FR;Delay_ms(360); // rovneuhel=STRED+55;STOPR;FL;Delay_ms(190); // dopravauhel=STRED;FR;FL;Delay_ms(300); // rovneuhel=STRED+55;FL;STOPR;Delay_ms(190); // dopravauhel=STRED;FR;FL;Delay_ms(200); // rovneWhile((sensors & 0b11111110)!=0) //dokud neni cara{sensors = spi_read(0); // cteni senzorusensors=~sensors;Delay_ms(3); // cekani na SLAVE nez pripravi data od cidel}BL;BR;Delay_ms(300);uhel=STRED-55;FR;STOPL; // dolevadelay_ms(250);line=L3;cikcak();}