hola que tal lo primero que creo que te dira cualquier amigo del foro es que postees el codigo para hecharle un vistazo ,porque yo ahora te diré algo pero sin ver el codigo pues como se si es eso o no?
vamos a ver imagina que cada vez que el ad te crea una interrupcion lees los registros del ad y los mandas ,segun tengo entendido cuando se crea una interrupcion el ad desconecta el flag de su interrupcion hasta que tu lo vuelves a poner a 1 pues antes de ponerlo a 1 debes chequear tu bucle del timer una vez hecho esto lo pones a 1 igualmente con el timer ,digamos que si tu unicamente lees el ad y antes de poder ller el timer pones a 1 el flag de interrupcion ad segun la velocidad de conversion que tengas te esta saltando la interr del ad ,aunque lo normal es que cuando saltes al vector de interrupcion ahi chequees mediante btfss el ad y el tmr0 y segun quien esta a 1 vayas a una subrrutina u otra,
otra cosa que puedes hacer es ponerle solo interrupcion al tmr0 y el ad lo leas mediante los flags,ten en cuenta que aunque no programes la interrupcion del ad el flag de fin de conversion se activa incluso chequeando solamente el bit de habilitacion de interrupcion (GO) cuando lo pones a 1 se activa y luego mediante un
btfsc GO
goto leerTMR0
goto leerADC
un saludo