int decision_ida(int derecha, int izquierda, int recto){ //regreso if (recto==1 && derecha == 1 && izquierda == 1){ return turn_180(); } if(derecha==0 && izquierda == 1 && recto == 1 ){ return turn_rigt(); } if(derecha == 1 && izquierda==0 && recto==1 ){ return turn_left(); } if(derecha == 1 && izquierda==1 && recto==0 ){ return forward(); } if (derecha == 0 && izquierda == 0 && recto==0 ){ return turn_rigt(); } if (derecha == 0 && izquierda == 0 && recto==1 ){ return turn_rigt(); } if (derecha == 1 && izquierda == 0 && recto==0 ){ return forward(); } if (derecha == 0 && izquierda == 1 && recto==0 ){ return turn_rigt(); } }
void Check_Gaps(void) //checks gaps and makes a 180 degree turn after going about 8cm (needs to be exact.) { int sensor_check = 0; //variable sensor check for(sensor_check; sensor_check < 10; sensor_check++) //executes 20 times, looking for gaps in each count. { check_sensors(); //constantly keeps checking for LED combinations if ( (SeeLine.B ) == 0b00000u) //all LEDs OFF { straight_fwd(); //go straight Delay10KTCYx(20); //0.025s OR 25ms. if( sensor_check == 9) //last condition { turn_180 (); straight_fwd(); } } else { sensor_check = 9; } } }