I am new here and do not have any experience with timers but I will try to help nonetheless, because I too am trying to learn about this...


regarding 2) YES

regarding 1) I think you are right about the timer0 counting every 4 ticks for prescaler 1:4 but only it will be counting till 256...what I mean is that timer0 is 8 bit.

if you are measuring rpm at maximum of 1000HZ then Timer 1 should overflow the earliest after approximatly 1.024 second using prescaler 1:4. So you don't have to worry about an overflow before 500ms. On every 5th timer1interrupt (after 500ms) you could save the count in Timer0 to a word variable (and then reset it). This variable you need to multiply by 8 for the display in Hz(. (Times four because you are only counting every 4th clock....Times 2 because you've only been counting for 500ms. I believe multiplying by 8 is the same as left shifting by 3 (<< 3). This is why I would use a word variable to beginn with.

Alternatively you could probably use prescaler 1:1 and Timer0 interrupts, to add the actual counted ticks to a (word sized) variable. You could start timer 1 and timer 0 at the same time... on each timer0 interrupts (about every 1/4 of a second) add 256 to the counting word variable. Then on the 5th timer 1 interrupt (using software counter), stop timer0 retrieve its value and add it to the counting word variable. The number in the counting word variable is multiplied by 2 (=<< 1) to get the count per second.


I really suggest you have a look at Darrell Taylors instant interrupts pages

http://darreltaylor.com/DT_INTS-14/intro.html
or
http://darreltaylor.com/DT_INTS-18/home.html


He has made it easy for anyone to use multiple interrupt sources with pic basic pro and ASM interrupt handlers



good luck!