puedes utilizar las "math Routines" de la pagina de microchip y copiar el codigo para realizar una division de un numero de 24 bits con uno de 16 bits (sin signo).
pero tendrias que convertir el numero de 3 bytes (200) a una palabra de 2 bytes almacenando el dato en hexadecimal. ej:
200 (3 bytes) -> 0x00C8 (HEX 2bytes)
generalmente el dato del periodo (T) se obtiene de algún contador (TMR0 u otro), para obtener el dato de la frecuencia, estos contadores son de 8 o 16 bits, lo que permite hacer el calculo de la frecuencia con la formula:
F = 1/T
siendo T es un valor entero que varia entre 0 y 65535 (0xFFFF) donde cada unidad representa microsegundos (asumiendo un XTAL de 4Mhz y un preescaler 1:1) se puede "convertir" el calculo de frecuencia f=1/T de la siguiente forma:
F = 1/ (1e-6 Seg)* TMR0 es lo mismo que decir
F = 10 /(1e-5 Seg) *TMR0 y es lo mismo que decir
F = 1000000/TMR0
con los valores de ejemplo:
5000 = 1/(0.0002 Seg) = 1000000 / 200uS
como 1 millon necesita al menos 20 bits para representarlo (0xF4240) se puede elegir alguna rutina de division de las "Math Routines" para colocar el numerador = 0xF4240 y el denominador = T (en microsegundos).
F= 0xF4240 / (T en uS)
Este metodo lo utilicé en un contador de Rpms y funciona bastante bien, yo elegi la rutina de division de 24bit/16bit sin signo, pero se puede elegir otra de acuerdo al mismo principio.