Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

03/06/2014 #1


Duda con timer0 y t0ckl
buenas tardes... estoy trabajando en un proyecto que pueda detectar la cantidad de pulsos que entran a través del t0ckl hacia el timer0. pero se me ha presentado un problema... mi duda es como podria validar la entrada en este caso el pin gp2 de un pic 12f675 para que solo deje entrar cierta cantidad de pulsos durante 1 segundo y luego ese pin quede deshabilitado para que no entren mas pulsos de la cuenta. muchas gracias por su ayuda. ...
04/06/2014 #2
Moderador

Avatar de D@rkbytes

Puedes hacer uso del Timer1 con sincronización externa y usando un cristal de 32768 Hz.
Estableces el prescaler 1:1 y cargas el Timer1 con 32768 = 0x8000
Con esto consigues una interrupción cada 1 segundo exactamente.
Durante la interrupción del Timer1 puedes desactivar la interrupción del Timer0 para que deje de contar por GP2.

Nota: Para que esto funcione necesitas usar el oscilador interno como fuente de reloj primaria.

Suerte.
04/06/2014 #3

Avatar de Daniel Meza

D@rkbytes dijo: Ver Mensaje
Puedes hacer uso del Timer1 con sincronización externa y usando un cristal de 32768 Hz.
Estableces el prescaler 1:1 y cargas el Timer1 con 32768 = 0x8000
Con esto consigues una interrupción cada 1 segundo exactamente.
Durante la interrupción del Timer1 puedes desactivar la interrupción del Timer0 para que deje de contar por GP2.

Nota: Para que esto funcione necesitas usar el oscilador interno como fuente de reloj primaria.

Suerte.
Hola...
Eso es pero sólo como comentario, no es suficiente con desactivar la interrupción del TMR0 porque esto sólo hace que el TMR0 deje de interrumpir más no de contar. Creo que es mejor que dentro de la rutina de interrupción del TMR1 (1seg) respaldar en un registro alterno el estado del TMR0 y ya después usarlo para lo que se requiera.
04/06/2014 #4
Moderador

Avatar de D@rkbytes

Daniel Meza dijo: Ver Mensaje
Hola...
Eso es pero sólo como comentario, no es suficiente con desactivar la interrupción del TMR0 porque esto sólo hace que el TMR0 deje de interrumpir más no de contar. Creo que es mejor que dentro de la rutina de interrupción del TMR1 (1seg) respaldar en un registro alterno el estado del TMR0 y ya después usarlo para lo que se requiera.
Sip, en realidad lo que se tiene que desactivar es el bit INTE del registro INTCON.
Si lo que quiere Furlan6 es contar los pulsos que entran por GP2, yo me olvidaría del TMR0.

Así, habilitando y deshabilitando la interrupción externa por GP2, se pueden contar directamente los pulsos durante 1 segundo.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.