#include <18f2550.h>
#fuses xt
#use delay(clock=4000000)
void main() {
int8 iz1,iz2,inferior,delantero,uno,superuno;
uno=0x90;
superuno=0x100;
do{
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel(0);
iz2 = read_adc();//iz 2
set_adc_channel(1);
inferior = read_adc();//inferior
set_adc_channel(2);
iz1 = read_adc();//iz 1
set_adc_channel(5);
delantero = read_adc();//delantero
delay_us(100);
if ((inferior>5) && (delantero<200) && (iz1<180) && (iz2<180)){//gira a la izquierda
output_low(pin_c0);//Motor izquierdo
output_high(pin_b0);//Motor derecho
output_low(pin_c1);
output_high(pin_c2);
output_low(pin_c6);
output_high(pin_c7);
}else if ((inferior>5) && (delantero>200) && (iz1<180) && (iz2<180)){//gira a la izquierda
output_low(pin_c0);//Motor izquierdo
output_high(pin_b0);//Motor derecho
output_low(pin_c1);
output_high(pin_c2);
output_low(pin_c6);
output_high(pin_c7);
}else if ((inferior>5) && (delantero<200) && (iz1>180) && (iz2>180)){//corregir derecha
output_high(pin_c0);//Motor izquierdo
output_low(pin_b0);//Motor derecho
output_low(pin_c1);
output_high(pin_c2);
output_low(pin_c6);
output_high(pin_c7);
}else if ((inferior>5) && (delantero<200) && (iz1>180) && (iz2<180)){//corregir derecha
output_high(pin_c0);//Motor izquierdo
output_low(pin_b0);//Motor derecho
output_low(pin_c1);
output_high(pin_c2);
output_low(pin_c6);
output_high(pin_c7);
}else if ((inferior>5) && (delantero<200) && (iz1<180) && (iz2>180)){//corregir derecha
output_high(pin_c0);//Motor izquierdo
output_low(pin_b0);//Motor derecho
output_low(pin_c1);
output_high(pin_c2);
output_low(pin_c6);
output_high(pin_c7);
}else{
output_low(pin_c0);//Motor izquierdo
output_low(pin_b0);//Motor derecho
}
}while(TRUE);
}