Hola q tal?
Estoy atorado con mi proyecto de titulación ya que un sensor infrarrojo no es detectado a tiempo por un pic 18f4550, el sensor si funciona y si manda la señal al pic esto ya lo verifique. Este sensor es el que me da entrada a una rutina mediante un función IF. si el sensor manda un 1 debería de entrar de inmediato a la rutina, pero esto no es así, ya que después de unos segundos de estar interrumpiendo la señal el pic ejecuta esta rutina y yo quiero que entre de inmediato al interrumpirse la señal del sensor.
Les dejo mi programa a ver si me pueden ayudar a resolver mi problema, El programa toma muestras del ADC y después las manda a la pc por USB CDC a una aplicación en Labview, la cual genera un registro de los valores tomados por ADC del pic.
do{
dato=usb_cdc_getc(); //espera a recibir un datos por el puerto cdc_usb
switch(dato) { // compara el dato para ejecutar accion
case 'a':
if(input(PIN_A1) == 1)
{
set_adc_channel(0);
ref2=algoritmo();
peso=(ref2-ref)*factor;
bajo=make8(peso,0);
alto=make8(peso,1);
printf(usb_cdc_putc,"%c",set);
delay_ms(5);
printf(usb_cdc_putc,"%c",bajo);
delay_ms(5);
printf(usb_cdc_putc,"%c\n",alto);
lcd_gotoxy(1,1);
lcd_putc('\f');
printf(lcd_putc,"Peso= %lu gramos",peso);
delay_ms(1000);
}
else
{
printf(lcd_putc,"Esperando");
delay_ms(3000);
}
break;
}
}while (TRUE); // bucle infinito.