Numeros grandes en microcontrolador

Como andan gente?
Soy ezequiel, soy nuevo en el foro y no se si estoy escribiendo donde debo, espero que si, sino les pido mil disculpas

Les cuento mi problema:
Quiero hacer un tacometro con un microcontrolador (16f84 / 16f88 / similar)
Mi idea era calcular el tiempo que transcurria entre un pulso y otro usando el timer 0 y alguna interrupcion asi no afectaria el transcurso del programa
Ahora cuando lo pienso no se me ocurre como calcularlo, supongamos que el prescaler esta 1:2 y entre pulso y pulso pasan cuenta 10 el timer, supongamos 20 us (4 Mhz)
Ahora tengo que convertir esa relacion para que sea rpm y no se como hacerlo porque los numeros exceden los 8 bits de cualquier registro

2 pulsos en 20 us (0.000020 s)
4 pulsos en 40 us (multiplico por 2)
1r en 40 us --- como puedo pasar eso a rpm en el microcontrolador?
en este ejemplo serian (1/0.000040)*60 = 1500000 rpm
y la idea seria mandar el numero a un lcd, por eso seria bueno que queden los numeros separados en registros:
0x0c = 4
0x0d = 1
0x0e = 6
Les agradeceria si me pueden ayudar con esto por favor, uso el mplab y assembler para programar el pic, creo que en C se pueden manejar numeros mas grandes, pero me gustaria resolverlo con assembler.

Muchas gracias

Tenes razon, ahi corregi lo de las revoluciones
 
Si tienes 1 rev. en 40 us, en 1 segundo serían 25 000, y en 1 min 1 500 000.

Yo te recomendaría utilizar un timer de 16 bits para mayor resolución y utilizar C
 
Atrás
Arriba