Misurare durata impulso! uso interrupt

Forse ho capito male! ho fatto:

void loop()
{
  if (cont == 0) {
  attachInterrupt(0, provainterrupt, RISING);
  cont == 1;
  }
}

void provainterrupt(){
  time = micros();
  lcd.print("us:");
  lcd.print(time);
  buttonState = digitalRead(buttonPin);
  if (buttonState == LOW) {   
  detachInterrupt(0);
  }
}