Hallar tiempo entre interrupciones de un pic16f84

hola, me gustaria saber si es posible hallar el tiempo entre una interrupcion a otra, ya se que con un cristal de 4 MHz puedo obterner 0.25μS ciclos de reloj interno 1 ciclo de instruccion cada 1μs, pero no se si hay algun registro interno especial para esta funcion.agradezco sus respuestas , gracias.....jejavi..
 
jejavi dijo:
hola, me gustaria saber si es posible hallar el tiempo entre una interrupcion a otra, ya se que con un cristal de 4 MHz puedo obterner 0.25μS ciclos de reloj interno 1 ciclo de instruccion cada 1μs, pero no se si hay algun registro interno especial para esta funcion.agradezco sus respuestas , gracias.....jejavi..

Las interrupciones (excepto la del timer que las programás vos) son eventos asincrónicos disparados por condiciones externas al procesador. Hay formas de medir este tiempo entre eventos, pero no te va a servir de mucho, a menos que quieras medir cuando ocurren, en tiempo relativo, y la unica forma de hacerlo es programar el prescaler del timer para tener la resolución que necesites y luego leer el timer en cada interrupción y restarlo del valor anterior para saber cuantos ticks pasaron. Esos ticks multiplicados por la resolución temporal fijada te da el tiempo entre interrupciones
Pueden pasar muchas cosas mientras tanto, tal como que el timer de un overflow y tengas que extender la capacidad de los contadores, etc, etc, etc.

Saludos!
 
si son interrupciones por hardware (RB0 o por cambio en RB4-RB7) quiza lo mejor sea un contador o una subrutina que este utilizando el timer.

cual sería el promedio o maximo/minimo entre interrupciones?
 
el problema principal es que el tiempo no es constante, esta parte la quiero hacer con el fin de diseñar un velocimetro digital con pic, pero tengo pensado hacerlo con un sensor en la llanta delantera ,y partiendo de que que la distancia que recorre una circunferencia esta dada por d= 2pi x r, donde r es el radio de la circunferencia, entonces como ya tengo la distancia solo me faltaria poder hallar la velocidad dado que velocidad = d/t, donde t es el tiempo, teniendo en cuenta que el tiempo varia en funcion de la velocidad. no se hasta que valor maximo pueda tomar este tiempo.
 
tenia pensado utilizar algo como esto
Código:
revisa:
   btfss porta, 0
   incf contador,1
   goto revisa

es decir incrementado un contador y , el valor de ese contador multiplicarlos por el numeros de ciclos de intrucciones que consume goto y btfss.
 
estoy haciendo un velocimetro y necesito el tiempo para hallar la velocidad, pero no se como hacer para hallar ese tiempo , estoy trabajando con pic 16f84 y uso el compilador de ccs, alguie me podria guiar para hacer esta operacion?
 
Atrás
Arriba