Autor Tema: Medir frecuencia de 1 Hz con modulo ccp  (Leído 4078 veces)

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

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Medir frecuencia de 1 Hz con modulo ccp
« en: 03 de Octubre de 2012, 00:31:22 »
Hola a todos. Estoy tratando de medir  una señal de 1 Hz con el modulo CCP con un pic18F4550. Lo estoy usando a 20 Mhz, así que el tiempo de desbordamiento del TIMER1 es de 0.104 seg. o sea que la mínima frecuencia que puedo medir es de 9,5 Hz, luego el timer1 se desborda. Si quiero medir frecuencias bajo este valor, tengo que contabilizar la cantidad de veces que se desborda el timer1 y sumarle el resto. (me explico  :oops:).  Bueno, mi pregunta es, como hago para chequear la bandera que genera el desbordamiento del timer1, en que parte del programa lo pongo... (yo se que hay que controlar el bit TMR1|F del regsitro PIR1).  Hay alguna otra técnica para hacer lo mismo?
« Última modificación: 03 de Octubre de 2012, 12:13:01 por Pchuqui_1 »

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #1 en: 03 de Octubre de 2012, 00:44:17 »
Agrego una dudita.. jaa Cuando el modulo CCP se dispara por la detección de algún flanco, el timer1 comienza su cuenta desde 0 no???

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #2 en: 03 de Octubre de 2012, 09:19:40 »
  Ese tiempo de desbordamiento es con el prescaler a 8. Pero si se hace la inversa de ese tiempo no da 9.5KHz sino 9.5Hz
 
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #3 en: 03 de Octubre de 2012, 12:12:40 »
Si perdon!!!! son 9.5 Hz, estaba dormido cuando escribí eso.  :? Estoy pensando en habilitar la interrupción por desbordamiento del TIMER1 y cuando ingresa a la rutina de atención  contar la cantidad de veces que se va desbordando el TIMER1, pero se complica bastante y no se si es correcto hacerlo así. En proteus de esa forma no funciona bien..  :5] :5] :5]

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #4 en: 03 de Octubre de 2012, 12:29:45 »
Agrego una dudita.. jaa Cuando el modulo CCP se dispara por la detección de algún flanco, el timer1 comienza su cuenta desde 0 no???

No! Guarda en los registros CCP el valor que tenga el timer.

Si perdon!!!! son 9.5 Hz, estaba dormido cuando escribí eso.  :? Estoy pensando en habilitar la interrupción por desbordamiento del TIMER1 y cuando ingresa a la rutina de atención  contar la cantidad de veces que se va desbordando el TIMER1, pero se complica bastante y no se si es correcto hacerlo así. En proteus de esa forma no funciona bien..  :5] :5] :5]

Lo debes hacer de esa forma, contar overflows. Por ahí te conviene utilizar la interrupción externa, vas a tener suficiente resolución y precisión. En el primer flanco seteas el timer a 0, y en la siguiente capturas el valor del timer y junto con los overflows calculas el periodo.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #5 en: 03 de Octubre de 2012, 15:56:36 »
Tiene ya su tiempo pero igual te puede servir  :)

Midiendo un pulso. 2ª Parte. Tiempo en Alto con INTCCP
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #6 en: 03 de Octubre de 2012, 16:21:05 »
Estoy simulándolo, y puse una foto para que vean lo que hace. Cuando se ejecuta la interrupción por flanco de subida, CCP1, pongo el valor del timer1 a 0. Que como bien se ve lo hace, pero luego ese valor tiene que transferirse al registro de 16 bits CCPR1 y luego a la variable que yo escogí (TFS). Pero se carga con otro valor que no entiendo de donde sale....
Gracias RedPic... anoche estuve mirándolo y estudiándolo mucho a ese articulo. Voy a seguir insistiendo.




Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #7 en: 03 de Octubre de 2012, 18:07:43 »
Y esta bien, o sea, al ocurrir el flanco guarda en CCP el valor del timer y después tu lo colocas a 0. Que quieres que haga entonces?
No contesto mensajes privados, las consultas en el foro

Desconectado Pchuqui_1

  • PIC16
  • ***
  • Mensajes: 187
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #8 en: 04 de Octubre de 2012, 00:12:44 »
Yo creo estar poniendo el timer1 a cero y luego guardar ese valor. O sea que cuando detecte el flanco se guarde en el registro CCP 0. No estoy haciendo eso en el programa....  :(

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #9 en: 04 de Octubre de 2012, 00:32:07 »
Yo creo estar poniendo el timer1 a cero y luego guardar ese valor. O sea que cuando detecte el flanco se guarde en el registro CCP 0. No estoy haciendo eso en el programa....  :(

No, para nada. Para que puedas capturar cuando el timer esta en 0, o lo haces de casualidad o tienes que tener apagado el timer  :mrgreen: El timer cuenta libremente, y cuando ocurre un flanco en el pin CCP, se copia por hardware lo que tiene en ese momento el timer en los registros del CCP y si tienes habilitada la interrupción se activa. Todo ese código que implementas se ejecuta unos ciclos después del evento de captura.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Medir frecuencia de 1 Hz con modulo ccp
« Respuesta #10 en: 04 de Octubre de 2012, 00:45:38 »


 

anything