Autor Tema: TMR0 - Contador  (Leído 3002 veces)

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

Desconectado rgga86

  • PIC10
  • *
  • Mensajes: 5
TMR0 - Contador
« en: 16 de Enero de 2004, 20:02:00 »
Bueno, sé que se puede configurar el TMR0 como contador o como reloj interno, corrijanme si estoy mal, tengo varias preguntas:
En un mismo programa se puede configurar el TMR0 como contador y despues como reloj interno ?
Puedo usar el contador para contar pulsos de cualquier puerto de E/S? Lo mas seguro es que no, pero ¿hay alguna forma de hacerlo? quiciera contar las veces que se activa cualquien entrada (tengo configurados 12 puertos como entradas y 1 como salida)

Bueno tengo otra pregunta que no es del tema del TMR0:
¿hay alguna instruccion para comparar registros?
es decir, tengo en un registro por ejemplo el no. 8, y al activar una entrada, se escribe otro no. en otro registro, hay alguna forma de compararlos?
Gracias

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: TMR0 - Contador
« Respuesta #1 en: 17 de Enero de 2004, 00:35:00 »
Soy nuevo en el tema de microcontroladores, por lo que no puedo contestarte a la pregunta del tmr0 como contador.
Sin embargo, me gustaría hablar de la comparación de dos registros.
Si los restas con SUBWF y son iguales, el resultado será 0. Si no lo son deberá ser distinto. De esta manera podrás saber si eran iguales o diferentes.

Un saludo

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: TMR0 - Contador
« Respuesta #2 en: 17 de Enero de 2004, 01:34:00 »
Sí, en un mismo programa se puede utilizar como contador (entrada de pulsos por RA4) programando:  BSF OPTION_REG,T0CS o bien como temporizador, programando posteriormente BCF OPTION_REG,T0CS .

Si tienes 12 pines como entradas y uno como salida y deseas contar las veces que se activan las entradas tendrás que hacerlo con una variable que se incremente cada vez que se activa una determinada entrada.

Un saludo

PD. Si utilizas interruptores, mete antirebotes en las entradas

Desconectado rgga86

  • PIC10
  • *
  • Mensajes: 5
RE: TMR0 - Contador
« Respuesta #3 en: 17 de Enero de 2004, 02:01:00 »
Una disculpa por la ignorancia, pero que son antirebotes??
si estoy utilizando interruptores.
Gracias por sus respuestas

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: TMR0 - Contador
« Respuesta #4 en: 17 de Enero de 2004, 05:16:00 »
Un circuito o software antirrebotes es necesario al utilizr interruptores o sensores mecanicos, pues en cada accionamiento se producen entre los contactos unos cuantos rebotes y chispazos que por la velocidad del PIC son detectados.

Imaginate que si tienes implementado un contador cada vez que acciones tu pulsador se registraran varios impulsos (que para el PIC son reales), mientras tu esperas contar solo uno.

En una explicacion simplista,los antirrebotes por hardware son filtros con capacitores entre los contactos, mientras que los antirrebotes por software son delays (esperas en loop) confirmando la posicion del contacto.

Ambos bajan la performance del contador, pues te roban unos 20 milisegundos entre detecciones seguras del conteo.

Tal vez una forma de no necesitar antirrebotes sea utilizar sensores de estado solido, que ya tienen confirmacion interna del estado de su salida antes de ejecutarla, pero seguramente tambien tienen su delay propio.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything