Hola que tal amigos, tengo el siguiente problema, quiero controlar el sensor ultrasonico hc-sr04 y enviar la distancia a traves de la comunicacion serial, hice un programa sencillo para comunicar el sensor con el pic, posteriormente cree el codigo para que el dato fuera enviado por comunicacion serial, el problema que enfrento es que cuando quiero realizar esta accion, el microcontrolador parece congelarse, pues no realiza ninguna accion, intente con otro programa que solo convierte un valor analogico de tension y envia el dato por comunicacion serial y, sin problemas realiza la conversion y el envio, supuse que el problema era la frecuencia para la activacion y recepcion de la señal del sensor, podrian ayudarme a encontrar el error o alguna solucion para comunicar el sensor y enviar el dato? se los agradecere mucho, debajo dejo el codigo que implemento actualmente.
#INCLUDE <18f4550.h>
#device adc=10
#USE DELAY(CLOCK=20MHZ)
#FUSES HS,NOPROTECT,NOWDT,NOBROWNOUT,NOPUT,NOLVP,CPUDIV1,PLL1
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
float distancia, tiempo;
#USE standard_io(b)
void main()
{
set_tris_d(0b000000);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
while(1)
{
output_high(pin_b0);
delay_us(10);
output_low(pin_b0);
while(!input(pin_b1))
{}
set_timer1(0);
while(input(pin_b1))
{}
tiempo=get_timer1();
distancia=(tiempo/2)/(29.15);
printf("%2.1f\r\n",distancia);
delay_ms(500);
}
}