El tmr0 es un contador de 8 bits con un preescaler de tambien 8 bits pero el mismo no se puede leer por software. Sin embargo
hay una manera de leer la cuenta del preescaler, en la AN592 de microchip te muestra como se hace. Basicamente debes usar un puerto mas del micro conectado al pin rA4(supongamos el rA2) que, al inicio lo configuras como entrada mientras dure el ingreso de la señal (durante el delay que has puesto) al porta4, luego, una vez que finalize el tiempo rescatas el valor que tiene el tmr0 y configuras como salida el rA2. Entonces una vez ahi empiezas a dar transiciones en este pin y por cada transicion lees el tmr0 y te fijas si cambio, si no cambio incrementas un contador y vuelves a hacer una transicion y sigues incrementando el contador hasta que el tmr0 se incremente. Una vez esto el preescaler tendra 32 - contador y asi tendras el valor del preescaler.
No se si se entiende, este es el extracto de la AN:
The precise “gate” is implemented in software as an
accurate delay. At the end of the delay, the RA2 pin is
configured as an output going low. This will cause the
input to TMR0 to be “halted” or “stopped”. A 16-bit
value of the input frequency is now saved in TMR0 and
the 8-bit prescaler. The high 8 bits are in TMR0 and can
be easily read. The low 8 bits have to be "shifted out".
The 8 bits in the prescaler are “shifted out” by toggling
RA2 with a “BSF” and a “BCF” instruction. After every
toggle, the value in TMR0 is checked to see if TMR0
has incremented. If the number of toggles required to
cause TMR0 to increment by 1 is N, then the 8-bit value
in the prescaler can be calculated to be = (256 - N). By
concatenating the calculated value and the original
value from TMR0, the 16-bit value for the frequency is
determined.
Hice hace un tiempo un frecuencimetro hasta 50 MHZ(con gate de 1 segundo la resolucion es de +-1hz) listo para extender a 500 mHz con un preescaler utilizando este metodo en asm y funciono de maravilla.
Saludos.
Nico.
P.D. lo tenia listo para publicar pero justito se callo el foro por el cambio de host. Perdon por la demora