Autor Tema: medir tiempo entre pulsos  (Leído 4164 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado fede_joe

  • PIC10
  • *
  • Mensajes: 2
medir tiempo entre pulsos
« en: 21 de Octubre de 2014, 15:46:28 »
Hola a todo,
estoy teniendo problemas para medir el tiempo entre pulsos. básicamente se trata de un disco que gira por medio de una fuente de agua, este tiene un imán que por medio de un transistor de efecto Hall toma el pulso del mismo.
Estoy utilizando un Pic16f84a con XTAL de 4MHz programando en C con MikroC Pro
Intente utilizar el TMR0 ingresando un pulso por T0CKl pero no pude lograr que me devuelva en microsegundos cuanto tiempo hay entre pulso y pulso.
Espero que alguien me pueda orientar a la solución
Atte.

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: medir tiempo entre pulsos
« Respuesta #1 en: 22 de Octubre de 2014, 09:21:02 »
Hola, un PIC trabajando a 4Mhz tiene un tiempo por instrucción de 1uS, el tmr0 tiene 8 bit cuenta hasta 255 pulsos, si el tiempo entre pulsos es mayo no te va a servir, si le pones el preescaler debes multiplicar los pulsos pero pierdes exactitud, te recomiendo utilizar otro PIC que tenga un temporizador de 16 bit y aún un modo de captura, puede ser el 16f628 ó el 16f1827, así podrás contar el tiempo entre pulsos hasta 65535 uS y le puedes poner preescaler hasta de 8 si lo necesitas.

Saludos.

Desconectado BINARIO

  • PIC16
  • ***
  • Mensajes: 156
Re: medir tiempo entre pulsos
« Respuesta #2 en: 23 de Octubre de 2014, 13:09:41 »
Hola, un PIC trabajando a 4Mhz tiene un tiempo por instrucción de 1uS, el tmr0 tiene 8 bit cuenta hasta 255 pulsos, si el tiempo entre pulsos es mayo no te va a servir, si le pones el preescaler debes multiplicar los pulsos pero pierdes exactitud, te recomiendo utilizar otro PIC que tenga un temporizador de 16 bit y aún un modo de captura, puede ser el 16f628 ó el 16f1827, así podrás contar el tiempo entre pulsos hasta 65535 uS y le puedes poner preescaler hasta de 8 si lo necesitas.

Saludos.

Otra que se me ocurre que puede hacer es incrementar un contador cada vez que desborde el timer y asi poder ocupar ese mismo micro.

//---------------------------------
interrupcion del timer()
{
  contador ++;
}

Me parece que podria funcionar, igual es mejor como vos decis ocupar un timer1 o timer2 que suelen ser de 16bits
000101111 101110000011110 00010 11101 110 1 000111 00010010011010111100 101101001 11110000 001 00 10110 111 00001 01110 0010101 01011110 00 00011111111 0011111 011110001111111111 1011111111101100000000

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: medir tiempo entre pulsos
« Respuesta #3 en: 23 de Octubre de 2014, 18:09:08 »
Hola, un PIC trabajando a 4Mhz tiene un tiempo por instrucción de 1uS, el tmr0 tiene 8 bit cuenta hasta 255 pulsos, si el tiempo entre pulsos es mayo no te va a servir, si le pones el preescaler debes multiplicar los pulsos pero pierdes exactitud, te recomiendo utilizar otro PIC que tenga un temporizador de 16 bit y aún un modo de captura, puede ser el 16f628 ó el 16f1827, así podrás contar el tiempo entre pulsos hasta 65535 uS y le puedes poner preescaler hasta de 8 si lo necesitas.

Saludos.

Otra que se me ocurre que puede hacer es incrementar un contador cada vez que desborde el timer y asi poder ocupar ese mismo micro.

//---------------------------------
interrupcion del timer()
{
  contador ++;
}

Me parece que podria funcionar, igual es mejor como vos decis ocupar un timer1 o timer2 que suelen ser de 16bits

Hay que sumarle los ciclos que llevan a la interrupcion + lo que se le suma a la variable + lo que pones a 0 el temporizador y el desactivado y activado de la interrupcion y limpieza de flag. no se si me olvido algo e.e, sino los tenes en cuenta es un error acumulativo.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: medir tiempo entre pulsos
« Respuesta #4 en: 24 de Octubre de 2014, 04:48:39 »
Fede, no se si te servirá de ayuda pero hace tiempo escribí una serie de artículos sobre el tema (en CCS C) que podrían por lo menos aclararte algunos conceptos.  :mrgreen:

Serie Técnicas en C : Presentación e Indice de Contenidos
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: medir tiempo entre pulsos
« Respuesta #5 en: 24 de Octubre de 2014, 07:06:11 »
Fede, no se si te servirá de ayuda pero hace tiempo escribí una serie de artículos sobre el tema (en CCS C) que podrían por lo menos aclararte algunos conceptos.  :mrgreen:

Serie Técnicas en C : Presentación e Indice de Contenidos


Yo los recomiendo, todos estos artículos siempre me aportan ideas y soluciones
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: medir tiempo entre pulsos
« Respuesta #6 en: 24 de Octubre de 2014, 10:07:53 »
Fede, no se si te servirá de ayuda pero hace tiempo escribí una serie de artículos sobre el tema (en CCS C) que podrían por lo menos aclararte algunos conceptos.  :mrgreen:

Serie Técnicas en C : Presentación e Indice de Contenidos


Yo los recomiendo, todos estos artículos siempre me aportan ideas y soluciones

Gracias ppyote  :oops:

Aprovechando que hemos hablado de ellos les he dado un repaso para corregir los links de las imágenes, ahora se ven correctamente  :mrgreen:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: medir tiempo entre pulsos
« Respuesta #7 en: 26 de Octubre de 2014, 20:46:30 »
Realmente es a ti al que hay que agradecer RedPíc...
Un saludo
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado AleSergi

  • PIC16
  • ***
  • Mensajes: 209
Re: medir tiempo entre pulsos
« Respuesta #8 en: 26 de Octubre de 2014, 21:11:44 »
porque no emplean el módulo CCP y listo!

PD: y muerte al 16F84...
« Última modificación: 26 de Octubre de 2014, 21:13:50 por AleSergi »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: medir tiempo entre pulsos
« Respuesta #9 en: 26 de Octubre de 2014, 23:19:24 »
porque no emplean el módulo CCP y listo!

PD: y muerte al 16F84...

Por que no tiene modulo CCP xD

Y si.. no entiendo como la gente compra uno de esos cuando el costo es el doble de un PIC16F887 o un 16F628A y las prestaciones mucho menores, y tambien los vendedores que lo siguen comprando para venderlos e.e