Use input capture functionality instead of micros() for better timekeeping.
We no longer need to update time on every loop.