TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: YF-21 en 16 de Abril de 2004, 23:54:00

Título: El contador del PIC
Publicado por: YF-21 en 16 de Abril de 2004, 23:54:00
Entre los mensajes aparece un amigo que pregunta la manera de realizar un conteo de eventos externos, retomando la pregunta, creo que hay un registro ( por ahora no he estudiado acerca de eso o al menos no lo tengo a la mano ) que se puede utilizar como oscilador o contador ¿Cuál es y como se configura o funciona?

Por favor, creo que esto es realmente importante ya que un contador es indispensable para muchas aplicaciones
Título: RE: El contador del PIC
Publicado por: cucaracha en 17 de Abril de 2004, 03:42:00
Pues los timer, se pueden configurar que sean incrementados con el clock interno o bien con uno externo, osea contador de pulsos externos. No todos...
Mira en el data... uno tiene la posibilidad de usar un cristal de paso bajo, hasta 200KHZ, pudiendo usar uno de 32,678KHz si se quiere por ejemplo hacer un RTC presiso y poder usar el cristal principal a la frecuencia que se quiera, por ejemplo 40MHz (en los 18f)
También tienes la posibilidad de contar pulsos externos, que es lo que quieres, de una señal que sea síncrona o asíncrona.
Si usas el timer en conjunto con el módulo CCP, en modo comparador, puedes hacer que cuando la cuenta llegue a un número concreto se genere una interrupción, ponga a nivel alto un pin o genere un evento de disparo del AD... De nuevo mira el data...
Título: RE: El contador del PIC
Publicado por: YF-21 en 17 de Abril de 2004, 19:26:00
Bueno, Gracias cucaracha, la primera parte lista ... ahora lo siguiente, me imagino que la direccion donde se guardan la cuenta de los eventos la puedo designar yo, tan solo le añado al registro que designé el valor del contador de pulsos (1 o 0) y así se hace .... o no ¿?
Título: RE: El contador del PIC
Publicado por: pocher en 18 de Abril de 2004, 13:40:00
Si usas el TMR0 podrás contar hasta 255, puedes usar directamente el registro del TMR0 o otro cualquiera copiando en él el valor del TMR0. Si desearas contar más de 255 puedes hacer que cuando el TMR0 se desborde se incremente otro registro y cuando este se desborde se incremente otro más etc.
Si dispones de 16F87x puedes usar el TMR1 que es temp/cont de 16 bits.

Un saludo
Título: RE: El contador del PIC
Publicado por: cucaracha en 18 de Abril de 2004, 13:45:00
Hombre todo depende de lo que quieras hacer. Por que no comentas un poco el tema... y así te podremos dar una respuesta más concreta.
Título: RE: El contador del PIC
Publicado por: YF-21 en 20 de Abril de 2004, 18:15:00
De lo que se trata es lo siguiente ...

Quiero activar un pistón neumatico que bloquee cada carga de 10 piezas cualquiera, por ejemplo contar 10 cajas (con un infrarrojo) y entonces activar el piston con una electrovalvula y su fase de potencia (optoacoplador) entonces es contar 10 eventos y activar una salida  
Título: RE: El contador del PIC
Publicado por: pocher en 21 de Abril de 2004, 05:21:00
En ensamblador:

- Debes programar RA4 como entrada de contaje

- Debes programar RA4 para que cuente con flancos de subida o bajada

- Debes cargar inicialmente el TMR0 con: 255-10+1=246=F6 (10 piezas)

- Debes detectar cuando se desborda el TMR0, chequeando el bit T0IF

En C: ... es mucho más sencillo

Un saludo
Título: RE: El contador del PIC
Publicado por: YF-21 en 27 de Abril de 2004, 17:43:00
Gracias camaradas, poco a poco avanzando en el camino de los pics    
Título: RE: El contador del PIC
Publicado por: YF-21 en 02 de Mayo de 2004, 13:19:00
Ya funcionó ... aunque el problema mas serio es el de ser preciso en el tiempo de contaje

POR CIERTO LOS QUE HAGAN UN CONTADOR EXTERNO NO SE OLVIDEN DE PONERLE RUTINA DE RETARDO

Es imposible que uno pueda pulsar un boton por tan solo 1u seg.
Por eso a mi no me funcionaba al simularlo en proteus
Título: RE: El contador del PIC
Publicado por: YF-21 en 08 de Mayo de 2004, 10:37:00
Otra opcion mas confiable que detecté es aplicar un bucle hasta que el boton de contado se suelte y es mas confiable que utilizar un contador de tiempo ya que si se queda atorado o el objeto a contar lo mantiene presionado cierto tiempo, lo contaria como mas de 1 si se aplican bucles de tiempo ¿esta claro? ... creo que hasta yo me confundí con mi explicacion  
Título: RE: El contador del PIC
Publicado por: todopic en 08 de Mayo de 2004, 18:54:00
Hola, eso es lo que se llama antirrebote...

todos los contactos actuan con el efecto de accion-reaccion, como la maza que golpea un yunque... rebota...  los contacto hacen igual..

y esos rebotes son tomados como aperturas y cierres de contactos...  que en el peor de los casos puede llegar a 80 ms..

yo lo que hago es, al sensar que un contacto es puesto a masa, salto a una subrutina de retardo de 80 ms.. luego senso nuevamente si esta a masa...  si aun esta a masa, espero a que suelte (verifico si es 1, y quedo en un loop)

esto es una de las posibilidades y segun el caso....

Norberto