bueno,por lo que veo quieres controlar un cochecito,bueno esa es mi impresion,mira,mirando tu programa,y viendo que usas un 18f,bueno primero empezaria por configurar los #fuses,ya que veo solo configuraste para la velocidad del crystal,primero te diria que probaras conun pic queno este mas sencillo, y asi empezar poco a poco,ya que la gama 18f es mas sofisticada,y por lo tanto mas configuraciones,te recomiendo que revises el hilo de ejemplitos en c para 16f648,para empezar,si de plano nada mas tienes ese micro,ve al hilo de Mis primeros pasos con el 18f4550, rapidamente te pongo un pequeño ejemplito para el adc
#fuses HS,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=12000000)
#use standard_io(b)
#use standard_io(c)
int valor=0x00;
toma_adc(void){
set_adc_channel(0);
delay_ms(1);
valor=read_adc();
delay_ms(1);
}
void main()
{
setup_adc_ports(RA0_analog);
setup_adc(ADC_CLOCK_INTERNAL);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
// TODO: USER CODE!!
while(1){
toma_adc();
output_b(valor);
if (valor>52){
output_high(pin_c0);
}else{
output_low(pin_c0);
}
}
}
checa el datasheet,ahi comprenderas mas del micro, espero haberte ayudado