Autor Tema: Ayuda TMR  (Leído 2128 veces)

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

Desconectado Eigen

  • PIC10
  • *
  • Mensajes: 19
Ayuda TMR
« en: 13 de Junio de 2006, 22:51:57 »
Hola a todos, alguien me podría explicar como se utilizan los timer del PIC. :(

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Ayuda TMR
« Respuesta #1 en: 14 de Junio de 2006, 01:37:38 »
Tu pregunta es muy genérica, y tendrías más éxito si la concretases un poco.

Te recomiendo la lectura de un par de manuales sobre PIC en español que tengo en el área de descargas de mi web, El Rebujito: http://elrebujito.nom.es

Una vez leídos, si tienes dudas más concretas, te esperamos por aquí.


Desconectado pibe

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 635
Re: Ayuda TMR
« Respuesta #2 en: 14 de Junio de 2006, 05:25:28 »
Como ayuda global y para que te hagas una idea los timers no son mas que contadores ascendentes. Por cada ciclo de reloj incrementan en 1, al pasar de 11111111 a 00000000 ponen un flag indicador a 1 (desborde).
Luego tienes multiples opciones de configuración, postcalers, prescalers (dependiendo del micro) para incrementar los ciclos de reloj en incrementar en 1 el contador.
Ejemplo: TMR0 configurado (OPTION_REG, ver hoja de datos) con prescaler a 2  te daría un incremento por cada 2 ciclos de reloj.
Al ser un simple registro variable puedes cargarle un valor inicial que elijas, por ejemplo d'18 (18 en decimal). Luego por cada 2 ciclos de reloj (si pusiste la configuración con prescaler a 2) incrementará en 1 ( o sea 19) y así hasta llegar al 255 (11111111). A los próximos 2 ciclos de reloj pasará a 00000000 poniendo el flag TMR0IF (o T0IF) del registro INTCON a 1. Si vas checkeando el flag con un bucle (btfss INTCON,T0IF) lograrás un temporizador.

Eso es , a grosso modo , lo que hacen todos los timers.

Luego algunos micros (casi todos) traen el TMR1 que es de 16 bits. O sea que cuenta hasta 11111111 11111111 antes de desbordarse. (util para temporizaciones mas largas)

Espero haberte aclarado algunas dudas :)

Saluditos
Mi jefe mirando el prototipo que estoy creando: "Y eso va a funcionar?"

Desconectado Eigen

  • PIC10
  • *
  • Mensajes: 19
Re: Ayuda TMR
« Respuesta #3 en: 15 de Junio de 2006, 01:32:39 »
Gracias Nocturno y Pibe por sus respuestas, pero aún me confundo un poco con la explicación de Pibe, es por mi falta de experiencia (recién comienzo a utilizar los PICs), pero déjenme estudiar un poco de la página de Nocturno y si no les molesta, les pregunto sobre las dudas que aún pueda tener.
Lo que quiero hacer es programar mediante un teclado el tiempo en que se enciendan un 8 leds conectados al puerto C del 16F877A para generar una secuencia aleatoria, es decir, se puede encender primero el led conectado a portC.3, después al mismo tiempo portC.5 y portC.7 o cualquier otra combinación, leí algo sobre los TMR y pensé que me podrían servir fué por eso mi pregunta. Ya tengo el código para manejar el teclado y la LCD que utilizo, lo que me falta es grabar los datos leídos del teclado, ordenarlos y así generar la secuencia de encendido. Trabajo en PBP, si es necesario puedo postear el código.
Por cierto, felicidades por el site Nocturno, es muy buena, aún no termino con éste proyecto y ya estoy pensando en hacer algunos de los que tienes en la página.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Ayuda TMR
« Respuesta #4 en: 15 de Junio de 2006, 01:44:54 »
Gracias por tus comentarios, espero que te resulte útil y por aquí te esperamos para nuevas dudas.


 

anything