#include <16F88.h>
#device ADC=10

#use delay(internal=8000000)

#use rs232(baud=9600,parity=N,xmit=PIN_B5,rcv=PIN_B2,bits=8,stream=PORT1)

#use capture(INPUT=PIN_B3,CAPTURE_RISING,TIMER=1,FASTEST) //0.5us counts

long width;
float dist;

#define trig  pin_a0

void main()
{
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_2);      //65.5 ms overflow

   printf("Testing ultrasonic ranger!");

   while(TRUE)
   {
      output_high(trig);
      delay_us(10);
      output_low(trig);
      delay_us(1);
      while(!get_capture_event()){
         width=get_capture_time();
         dist=(float)width/58.0;
         printf("\n\rDistance: %gcm",dist);
      }
      delay_ms(2000);
   }
}
