Maybe I don't understand the problem - using the Int pin (RB0), you can select rising or falling edge interrupts (yes, even on the 84...). On each interrupt, read the timer value, save it for calculating the rotational frequency and then reset the timer. discard the first timer reading since it's wrong. I would do the actual rpm calculations in the main loop of your code. To do really slow RPMs, you will have to take the timer overflow (er, underflow) interrupt and keep track of total time.