Hola a Tod@s
Vayamos por partes, y muy simplificado:
La INT_EXT, es una interrupcion que se activa cuando se recibe un pulso externo ( olvidemos por ahora si de subida, bajada...etc), y ya no hace nada mas.
La INT_CCP, en modo capture, se puede activar tambien cuando se recibe un pulso externo (igual que la INT_EXT), pero ademas ella solita lee el valor del timer y lo guarda en una variable, para lo que lo necesites... ( Como bien te aclara el amigo Nocturno ). Esa y alguna otra sutileza, dependiendo de la configuracion, son la diferencia.
Hablemos ahora del TIMER, que no es ninguna interrupcion, es simplemente un dispositivo interno del pic que actua como un contador creciente, de 0 a 255 en un timer de 8 bit o de 0 a 65535 en un timer de 16 bit. Este contador utiliza la frecuencia del cristal y otras configuraciones para determinar cada cuanto tiempo se incrementa en una unidad ( pero no quiero entrar ahi...), solo quedaros con la idea de que es un contador y que cuando llega al final (se desborda) empieza otra vez desde 0, y asi continuamente. El timer puede ser leido con get_timer, e incluso puedo cambiarle el valor en cualquier momento y asignarle el que yo quiera con set_timer. Si le cambio el valor lo unico que ocurrira es que seguira incrementandose a partir del valor que yo le he puesto.
La INT_TIMER, es una interrupcion que se activa cuando el timer asociado a ella, llega a su valor maximo (se desborda). Osea esta interrupcion lo unico que hace es contar un tiempo, con la particularidad de que el tiempo que cuenta lo puedo cambiar facilmente utilizando set_timer y poniendo el contador en el valor que me interese en cada momento, osea cuanto mas grande sea el valor que le pongo, mas cerca estara de desbordarse, y menos tiempo pasara para activarse la int.
La INT_CCP, en modo compare, se activa cuando coincide el valor del timer con el valor que tu pones en la variable CCP_x ( el timer ni se detiene, ni nada, sigue a su bola), osea sirve para contar un tiempo determinado, igual que la INT_TIMER, pero con la diferencia que para contar un tiempo u otro, no hay que tocar ni modificar el valor del timer, solo hay que variar el valor de CCP_x.
Puede parecer que hay poca diferencia entre una interrupcion u otra, pero esas pequeñas y sutiles diferencias pueden ser fundamentales.
Por ejemplo, se pueden contar dos tiempos diferentes utilizando el mismo timer, y utilizando la INT_TIMER y la INT_CCP en modo compare al mismo tiempo.
Saludos