Que onda .poe,
El comentario es basicamente, el retraso sumatorio constante durante el seteo del tmr,(no e smucho pero suficiente para darle un porcentaje de error a tu temporizacion..) ademas esta el tema de la rutina de interrupcion misma, acuerdate que cada ves que entra ala rutina de interrupcion se pierde determiando tiempo para guardar los registros y demas.. y luego antes de salir de ella, volver a setearlos..... si a esto le sumas ese pequeño porcentaje de error.. y lo multiplicas por el tiempo de operacion de tu remporizador... creeme que te espantaria el resultado.
El pana pocher a despejado muchas dudas al respecto, y de la CORRECTA utilizacion del timer al usar compiladores(en este caso CCS).. ya que en asm es mas sencillo llevar el control de tiempo en cada funcion.
Si tu EMPIEZAS el tmr en cero, la temporizacin esta basada en 256 pasos, si usas por ejejmplo 40 realmente esto te indica que (dependiendo de preescaler y demas) hay un decremento en el tiempo del desborde, el cual puede ser calculado con precision usando la formula.... ASI QUE si tu CARGAS al principio el TMR... esto tu no lo notas ya que APENAS esta empezando a contar, hay una perdida que no ves o que descartas por inicio de conteo que es la perdida ocurrida por escribir en el registro(tmr0) la cual esta estipulada en el DS de cada componentes que es de 2 ciclos de reolj(esto es mucho si es un xtal de 4 y es un porcentaje si es un xtal de 40mhz) como te comento, como APENAS esta arrancando el tiempo o CRONOMETRO.. aunque la perddida existe.. se descarta por inicio.. pero es inegable que posteriormente(en cada recarga del tmr ) que esta perdida va a empezar desviar la curva de temporizacion, produciendose un desfasamiento en tiempo, el cual se ira incrementando en razon del tiempo de operacion de este timer........por eso se recomienda NO INICIALIZAR o cargar el tmr... obtener el valor de temporizacion sin cargas en este, y para obtener tiempos "comunes" sin necesidad de esta recarga se debe usar otro tipo de cristal,,, ..... ya que con este se obtienen valores en formula de decimales(no valores cerrados)
Para procesos que no rquieren precision... donde entran procentajes de error normales +-1% o mas! esto se descarta .... pero si requieres precision, este par de comentarios son NECESARIOS.
Si tienes dudas o quieres mas informacion de Temporizaciones con precision, hay varios posts del pana Pocher que podrias buscar y leer, creeme que te sorprenderia ver cuanto tiempo se pierde en unos 5 minutos por ejemplo

SAlu2 pana
