Hallo,
ich würde das einfacher lösen. Ohne Interrupts und Timer/Counter.
Vom Prinzip:
Code:
void messung()
{
 while(PIN_AUF_HIGH)
 {
  //do nothing
 }
 unsigned int counter=0;
 while(PIN_AUF_LOW)
 {
  counter++;
  warte_wenige_mikrosekunden();
 }
 return counter;
}
Da müsste man halt noch einen Sicherheitszähler o.ä. rein machen, damit das Programm bei zeitlich konstantem High oder Low-Pegel das Programm nicht hängen bleibt!

Grüße, Bernhard

PS: Die Zeiten kommen mir bekannt vor Robocupjunior neuer Ball (RCJ-05) - Auswertung mit einem TSOP?