how to program an ultrasonic sensor with interrupt

volatile long distance=0;
volatile long duration=0;
volatile long start=0;
volatile long stop=0;
volatile boolean measured=true;

#define echoPin 2
#define trigPin 7

void setup(){
Serial.begin(9600);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
attachInterrupt(0, detect, RISING);
}

void loop{

volatile long distance=0;
volatile long duration=0;
volatile long start=0;
volatile long stop=0;

These should be unsigned long.