Hola.
Para calcular el tiempo que tarda en desbordarse un timer, se deben tener en cuenta varios parametros, entre ellos: el cristal, la resolucion del timer, el valor del prescaler.
Supongamos que vamos a usar el timer0 y que nuestro sistema esta en configuracion XT (cristal de 4MHz), tenemos entonces ticks de maquina de 1uS. El timer0 lo vamos a usar a 8 bits, por lo que se desbordara a 256uS con un prescaler de 1.
setup_timer_0(RTCC_8_BIT | RTCC_DIV_1 | RTCC_INTERNAL);
Pero si queremos que se demore mas, aumentamos el valor del prescaler del timer, el cual tiene las siguientes opciones: 1,2,4,8,16,32,64,128,256.
Si escogieramos un prescaler de 4, el timer se desbordaria cada 256uS x 4 = 1,024mS.
Luego de configurar el timer, es importante fijar la funcion de interrupcion, en tu programa, luego de haber adquirido el dato del tiempo, se habilitaria la interrupcion con algun pulsador de Inicio y el timer se encargaria de hacer la cuenta del tiempo, mientras tu puedes hacer cualquier otra cosa en el programa principal (esa es la gran ventaja de las interrupciones)
Saludos