Autor Tema: duda, ¿como medir el tiempo real entre 2 pulsos?  (Leído 2485 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Funibar

  • PIC10
  • *
  • Mensajes: 24
duda, ¿como medir el tiempo real entre 2 pulsos?
« en: 24 de Mayo de 2006, 14:06:09 »
Hola a tod@s:

     Bueno les explico lo que me gustaría poder hacer haber si alguna mano amiga se extiende no en código si no en aportar alguna idea más.

    El problema es que dispongo de 2 sensores que controlan el paso de un objeto, el objeto siempre pasa por el mismo sitio pero a distinta velocidad, el tiempo que puede tardar en pasar desde un sensor por el otro será como mucho 5 segundos.

    Mi idea para una solucion:  Crear una variable auxiliar cuando pase por el primer sensor empezar a contar, además habré creado una rutina de retardo de por ejemplo 1 milisegundo si el objeto no pasa por el segundo incrementar en una unidad el valor de la variable y volver a testear el segundo sensor, así ciclicamente.

    ¿qué les parece la idea? ¿alguien puede aportar otra más elegante?



PD: Me olvidaba encontré este hilo por el foro: http://www.todopic.com.ar/foros/index.php?topic=11443.0
 pero no entendí naita ná.
« Última modificación: 24 de Mayo de 2006, 14:10:38 por Funibar »

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: duda, ¿como medir el tiempo real entre 2 pulsos?
« Respuesta #1 en: 24 de Mayo de 2006, 20:58:42 »
Hola a tod@s:

     Bueno les explico lo que me gustaría poder hacer haber si alguna mano amiga se extiende no en código si no en aportar alguna idea más.

    El problema es que dispongo de 2 sensores que controlan el paso de un objeto, el objeto siempre pasa por el mismo sitio pero a distinta velocidad, el tiempo que puede tardar en pasar desde un sensor por el otro será como mucho 5 segundos.

    Mi idea para una solucion:  Crear una variable auxiliar cuando pase por el primer sensor empezar a contar, además habré creado una rutina de retardo de por ejemplo 1 milisegundo si el objeto no pasa por el segundo incrementar en una unidad el valor de la variable y volver a testear el segundo sensor, así ciclicamente.

    ¿qué les parece la idea? ¿alguien puede aportar otra más elegante?

Antes que nada la idea me parece bien siempre y cuando los saltos de 1mseg te sean suficientes para la precisión que necesitas. 

Es decir si una precisión de una milésima de segundo es suficiente para tu aplicación,  el método que elegiste lo veo muy adecuado.   

Es una solución simple,  fácil y rápida de implementar (esto es lo que uno busca cuando diseña algo)  :mrgreen:

Tomar tiempos de segundos en un microcontrolador que funciona a Mhz se hace tedioso y siempre hay necesidad de usar contadores porque los timers no nos suelen alcanzar, hacer uso de contadores auxiliares no hace a tu aplicación menos elegante.   :)


PD: Me olvidaba encontré este hilo por el foro: http://www.todopic.com.ar/foros/index.php?topic=11443.0
 pero no entendí naita ná.

Este hilo se refería a tomar tiempos pero el usuario necesitaba algo más de precisión y era otro fenómeno, no se si valga la pena complicartela tanto si tu solo necesitas precisiones de milisegundos.

De todas formas, si te interesa algo de un hilo y no lo entendiste, no es pecado preguntar sobre dicho hilo si hay algo que no entiendes.  Muchas veces no es que el tema sea complicado, sino que no somos los más idóneos para 'redactar' una explicación que se pueda entender a primeras.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Funibar

  • PIC10
  • *
  • Mensajes: 24
Re: duda, ¿como medir el tiempo real entre 2 pulsos?
« Respuesta #2 en: 25 de Mayo de 2006, 07:25:54 »
Bueno por una vez he pensado bien y he acertado a la primera  :shock:, el problema de cuando programas en ensamblador es coger malos vicios, por eso pedí más ideas no sea que encima haya algo mejor y más fácil, sobre la precisión que necesito es pauperrima tengo que medir el paso de un objeto que además de lento es largo por lo que incluso me podría subir a décidas de segundo sin problema, lo importante del asunto era la idea que había que tener para hacer esto.

Una pregunta sobre los contadores, aunque lo miraré luego en el simulador si usas una variable ¿cúal es el valor máximo que puede alcanzar antes de que se desborde? ¿255 ó 65535 (2^8-1) ó (2^16-1)?
Citar
De todas formas, si te interesa algo de un hilo y no lo entendiste, no es pecado preguntar sobre dicho hilo si hay algo que no entiendes.  Muchas veces no es que el tema sea complicado, sino que no somos los más idóneos para 'redactar' una explicación que se pueda entender a primeras.

Hombre era un hilo viejo y tal la complejidad que así... alguien a mi nivel se asusta  :(, pero mejoraré (evolucionaré como los Pokemon esos), aunque tienes toda la razón. Cuando un hilo es viejo y alguien pregunta el interés por el hilo suele estar pérdido, pero hay que preguntar.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: duda, ¿como medir el tiempo real entre 2 pulsos?
« Respuesta #3 en: 25 de Mayo de 2006, 17:40:51 »
Bueno por una vez he pensado bien y he acertado a la primera  :shock:, el problema de cuando programas en ensamblador es coger malos vicios, por eso pedí más ideas no sea que encima haya algo mejor y más fácil, sobre la precisión que necesito es pauperrima tengo que medir el paso de un objeto que además de lento es largo por lo que incluso me podría subir a décidas de segundo sin problema, lo importante del asunto era la idea que había que tener para hacer esto.

Me alegro entonces ;)


Una pregunta sobre los contadores, aunque lo miraré luego en el simulador si usas una variable ¿cúal es el valor máximo que puede alcanzar antes de que se desborde? ¿255 ó 65535 (2^8-1) ó (2^16-1)?

Siempre esto depende del tipo de variable.

Si la variable es del tipo char o int8 y unsigned entonces desbordará a los 255+1.  Si es del tipo int16 y unsigned, entonces desboradará a los 65535+1.

Depende también del compilador y de que signifique 'int' para tu compilador. En algunos int es una variable de 8 bits (CCS) en otros es una variable de 16 bits (C18).


Citar
De todas formas, si te interesa algo de un hilo y no lo entendiste, no es pecado preguntar sobre dicho hilo si hay algo que no entiendes.  Muchas veces no es que el tema sea complicado, sino que no somos los más idóneos para 'redactar' una explicación que se pueda entender a primeras.

Hombre era un hilo viejo y tal la complejidad que así... alguien a mi nivel se asusta  :(, pero mejoraré (evolucionaré como los Pokemon esos), aunque tienes toda la razón. Cuando un hilo es viejo y alguien pregunta el interés por el hilo suele estar pérdido, pero hay que preguntar.

Que el hilo sea viejo no implica que se pierda interes.  Si es lo que buscas puedes preguntar sobre un hilo viejo. 

No se si m eentendiste, pero lo que yo quise decir es que si tenias duda sobre un hilo viejo, no habia problemas en preguntar sobre ese mismo hilo!  No es pecado no saber algo :) y como te dije antes puede ser que sea que no haya sido la mejor explicación la utilizada.

Saludos  :)
« Última modificación: 25 de Mayo de 2006, 17:45:56 por maunix »
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Funibar

  • PIC10
  • *
  • Mensajes: 24
Re: duda, ¿como medir el tiempo real entre 2 pulsos?
« Respuesta #4 en: 26 de Mayo de 2006, 07:17:52 »
Citar
Siempre esto depende del tipo de variable.

Si la variable es del tipo char o int8 y unsigned entonces desbordará a los 255+1.  Si es del tipo int16 y unsigned, entonces desboradará a los 65535+1.

Depende también del compilador y de que signifique 'int' para tu compilador. En algunos int es una variable de 8 bits (CCS) en otros es una variable de 16 bits (C18).

Eso está bien si programas en CSS pero uso ensamblador, la respuesta creo que es 65535 lo confirmaré más tarde.

Citar
No se si m eentendiste, pero lo que yo quise decir es que si tenias duda sobre un hilo viejo, no habia problemas en preguntar sobre ese mismo hilo!  No es pecado no saber algo  y como te dije antes puede ser que sea que no haya sido la mejor explicación la utilizada.

Sí lo entendí y te doy toda la razón, es la experiencia la que me dice que cuando alguien pregunta algo en un viejo hilo se queda, pero claro si no preguntas seguro que se pierde el interés.

Un Abrazo.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: duda, ¿como medir el tiempo real entre 2 pulsos?
« Respuesta #5 en: 26 de Mayo de 2006, 14:15:55 »
Funibar tu hablabas de contadores y yo interpreté que eran variables definidas por tu mismo.

Si te refieres a los timers funcionando en modo contador o a los timers en si mismo,te comento lo siguiente

Para los PIC16F

TMR0 --> 8 Bits (desborda a los 255+1)
TMR1 --> 16 bits (desborda a los 65535+1)
TMR2 --> 8 Bits  (desborda a los 255+1)

Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Funibar

  • PIC10
  • *
  • Mensajes: 24
Re: duda, ¿como medir el tiempo real entre 2 pulsos?
« Respuesta #6 en: 29 de Mayo de 2006, 07:34:00 »
Citar
Funibar tu hablabas de contadores y yo interpreté que eran variables definidas por tu mismo.

sí, era eso me referia cuando usas la directiva CBLOCK o bien cuando las declaras con un EQU, dísculpa por el error mio en la expresión, ya lo miré y cuando las declaras así se desbordan a los 255+1.

No tengo tanto tiempo como para usar los timers porque tendría que ponerme a estudiar como funcionan porque no los he usado nunca, de hecho el profesor de electronica no los prohío y ya sabes como somos los estudiantes si no va al exámen..., pero claro el curso ya terminó y siempre te pones a pensar como harias tal o cual cosa y acabas usando un PIC. Hasta pronto.