Autor
|
Tema: saber el tiempo transcurrido entre interrupciones (Leído 5,981 veces)
|
krader
Desconectado
Mensajes: 4
|
Hola a todos, soy nuevo en el foro pero os he leido mucho y he sacado buenas ideas de aquí. Ahora estoy haciendo un proyecto y me surge una duda: Consiste en un medidor de velocidad, para ello tengo un sensor que manda un '1' cada vez que la rueda da una vuelta completa. Para saber la velocidad de la rueda necesito saber el tiempo que para entre dos '1' (es decir, una vuelta) pero no se cómo hacerlo. Mi primera idea es que cuande me de un '1' salte una interrupción y un contador se incremente. Al haber otro '1' volverá a saltar la interrupción y ese contador tendrña valor 2. Ahora necesito saber el tiempo que ha pasado entre ambas interrupciones para hacer los calculos de velocidad. Espero que me puedan ayudar, Ah! es con una PIC 16F88 y en CCS!
Muchas gracias.
|
|
« Última modificación: 27 Enero 2011, 18:30 pm por krader »
|
En línea
|
|
|
|
Meta
|
Usa un contador.
|
|
|
En línea
|
|
|
|
skapunky
Electronik Engineer &
Colaborador
Desconectado
Mensajes: 3.667
www.killtrojan.net
|
Hola, te conteste en el otro post que lo escribíste, te lo pego aquí lo que puse:
Mira, tiene facil solución, espero que entienda el planteamiento.
Primero de todo, utiliza la libreria delay.h o create tu propia rutina de retardo con un tiempo que conozcas, por ejemplo de 1 segundo. Entonces mete la rutina del tiempo que cada segundo incremente una variable, dentro de un while que verifique que una variable no sea uno. Cuando sea uno haz que salga del while y cuenta cuanto a sumado el contador que se incrementa con el delay, sabras que cada incremento es de 1 segundo.
Te pongo aquí codigo para que te hagas una idea, lo programo aquí directamente:
int cont; int sensor;
Void Interrupt_XX() { // Rutina de interrupción, para saber que salta interrupción sensor = 1; }
Void delay (void) { // Rutina de retardo, por ej 2 o 3 bucles anidados que sumen tiempo }
Void main{ while sensor=0 { delay(); cont ++; } sensor = 0; }
Fijate que cont se va incrementando (+1 segundo si delay es de 1 segundo) hasta que la variable sensor es 1, para ello ya tendras el tiempo contado en cont que es lo que necesitas. Espero que te aclares con el codigo y cojas la idea.
Por otro lado, porías utilizar los TMRx del pic, pero bueno, con que te crees tu propia funcion Delay() o utilizes delay.h ya bastará.
|
|
|
En línea
|
Killtrojan Syslog v1.44: ENTRAR
|
|
|
Meta
|
El TIMER0 es más preciso hasta para contar.
|
|
|
En línea
|
|
|
|
krader
Desconectado
Mensajes: 4
|
El TIMER0 es más preciso hasta para contar.
no se usar el TMR, estoy en ello poco a poco.....
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Interrupciones en VB
Programación Visual Basic
|
el_chente23
|
4
|
5,718
|
18 Mayo 2005, 22:47 pm
por Slasher-K
|
|
|
Saber cuantos Domingos hay entre 2 fechas
PHP
|
FeArX
|
1
|
7,866
|
11 Junio 2008, 23:11 pm
por FeArX
|
|
|
Saber que archivos usa un programa en tiempo real
Juegos y Consolas
|
LEANSMS
|
4
|
11,564
|
16 Mayo 2009, 15:37 pm
por Alamasy
|
|
|
php tiempo transcurrido
Desarrollo Web
|
ime
|
4
|
2,774
|
14 Marzo 2013, 16:48 pm
por ime
|
|
|
Tiempo Transcurrido Python
Scripting
|
ZZZz1727z
|
2
|
3,068
|
9 Febrero 2021, 15:05 pm
por Danielㅤ
|
|