I'm facing the same problem of choosing which timer to use on the 16F877 with 20MHz crystal.
I need to interrupt the PIC every few milliseconds to refresh the LED display and using the INT to work also as a realtime clock. I thought the task was easy because I have three timers on 16F877.
But in real life you have some consideration to make on which timer to use.
The easy way out is to use Timer1 with special event trigger but then you are not able to use timer1 to measure anything external.
Or you can use Timer2 but then you lose the ability to use PWM.
Or if you use Timer0, any pre-loading of timer counts would prevent counting for a few instructions. If one let it overflow naturally as a realtime clock but then one get INT timing count with decimal like 1.6384ms.
I search the Web in hope of someone who have done these considerations and had compiled them into an article or webpage but I found none.
Any suggestions?