Hola a todos, pues creo que ya lo he solucionado, lleva funcionando sobre las 24 horas y ni un problema.
Lo que quiero hacer es capturar las revoluciones de un ventilador PWM y mostrarlas en pantalla, para ello he implementado una señal PWM por hardware para mover el ventilador y el módulo CCP2 configurado en modo captura, al principio lo configuré para que capturara todos los flancos de subida, como el ventilador emite dos pulsos por revolución, pues lo que hice es que en la interrupción con una variable ir contando los pulsos, luego ya fuera de esa función de interrupción implementé un contador con el TIMER0 que me contara un segundo y leyera los pulsos guardados, luego los dividiera por dos y los multiplicara por 60 que es lo que equivale a un minuto. (no se si esta es la mejor manera ya que el módulo CCP como captura utiliza el TIMER1 o TIMER3 para calcular el tiempo de cada flanco).
Con esta configuración la pantalla LCD empezaba a desplegar símbolos raros sobre los 5 minutos y se iba todo al traste, luego dejaba de funcionar la PWM y etc...
Lo que hice fue configurar el registro CCP2CON para que saltara la interrupción a los 16 flancos de subida con la misma filosofía que lo anterior, una variable que capturara cada interrupción y luego ya en una función de trabajo tratar el dato para averiguar las vueltas en un segundo con esto bajaba la carga del módulo de captura y me fue mejor pero todavía se pillaba el sistema.
Seguí estudiando el caso y me di cuenta que estaba utilizando la librería CCP de micro chip para configurar el módulo CCP2 y esa librería me estaba configurando otros módulos, la eliminé de mi proyecto y configuré el módulo a mano.
En la librería XLCD de microchip, yo había implementado ciertas funciones para automatizar trabajos, como por ejemplo guardar un carácter personalizado en la memoria del LCD y luego pintarlo en la pantalla, otra para el manejo de la línea y la posición donde se quiere pintar,.. etc.. que estaban mal escritas, no le había puesto en el lugar correcto la función de comprobación de bus libre que trae por defecto la librería de microchip y creo que eso estaba afectando el correcto funcionamiento del LCD.
Al cambiar todo eso pues ya parece que va bien.
Gracias a todos por la ayuda