counting timer

Is this the way to let the timer start counting?

void startCounting () 
  {
     TCCR1A = 0;             
  TCCR1B = 0; 
  // Timer 1 - counts events on pin D5
  TIMSK1 = bit (TOIE1);   // interrupt on Timer 1 overflow
  TCNT1 = 0;      // Both counters to zero
 // Reset prescalers
  GTCCR = bit (PSRASY);        // reset prescaler now
  // start Timer 1
  // Enable timer1.  ICES0 is set to 0 for falling edge detection on input capture pin.
  TCCR1B = _BV(CS10);

  // Enable input capture interrupt
  TIMSK1 |= _BV(ICIE1);

  // Enable external interrupt INT0 on pin 2 with falling edge.
  EIMSK = _BV(INT0);
  EICRA = _BV(ISC11);
}  // end of startCounting

Looks vaguely plausible - but you don't need to do anything to the prescaler, it isn't used when the timer clock source is the external pin. You are enabling a lot of interrupts, why?

What exactly do you want to achieve and how is your code behaving?