Autor Tema: Configuración del TMR0 y TMR1  (Leído 3097 veces)

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

Desconectado Ojosdeluna

  • PIC10
  • *
  • Mensajes: 5
Configuración del TMR0 y TMR1
« en: 07 de Marzo de 2006, 03:52:00 »
Ke onda?

Pss hace poco me inicie en la tarea de hacer un robot (cariñosamente minibot), este cuenta con una carita de 256 led, el proposito del robot es hacer ver una promocion como coca cola, aol, pepsi (goool) =p, esto lo hago con un pic16f877 y una matriz de 16x16 de la siguiente forma, imprimo puerto a, puerto e, puerto b, de tal forma que me den 16 bits (los primeros 8 son con al combinacio de a y e), y despues generando una tierra en la ubicacion donde se deben de ver estos resgistros pero solo uno a la vez por ejemplo solo en rd(7) despues apago rd7 y prendo rd6 y asi sucecivamente, como el pic trabaja muy rapido la apariencia de estar prendidos todos =) sin embargo hay un problema, el codigo que hace esto tambien lo hace muy rapido y para que se mantenga visible toda la matriz debo de hacer muchos ciclos y poner retardos y cosas asi, asi que decici entrarle al toro por los cuernos y hacer interrupciones por TMR# mi pregunta es como se hace pues la calculadora de tiempos por TMR# del niple me lanza valores de predivisor y de bucle sy de otras cosas y esas ke ondas? donde las pongo o como genero de esa parte del diagrama de flujo pk cuando se desborde el TMR# (supongamos 2 segundos) cambie de cara el minibot y y y...chin ya me extendi pss espero puedan ayudarme jejeje =p

Desconectado nanosegundo

  • PIC10
  • *
  • Mensajes: 30
RE: Configuración del TMR0 y TMR1
« Respuesta #1 en: 12 de Marzo de 2006, 15:13:00 »
No se si he entendido bien la pregunta, pero si quieres configurar un temporizador para que te interrumpa cada cierto tiempo (2 segundos como dices), primero tienes que configurar el temporizador, si partes de la señal interna del micro pues la frecuencia del temporizador será sa frecuencia del micro partido el predivisor (si trabajas a 4MHz y pones un predivisor de 32, ese temporizador tendrá una frecuencia de 125kHz)que es lo que tarda en hacer una cuenta; el temporizador tiene un registro de 16 bits, pues en esos registros tendrás que cargar el valor que necesites para interrumpir cuando quieras (125KHz = 8us, que es lo que tarda en cada cuenta, si queremos 2 seg (2/8u=250000) que es el valor que habrá que cargar a los registros). Para que cambie la cara cada 2 segundos tendrás que activar una interrupción para ese temporizador y dentro de la interrupción hacer la función que quieras y además limpiar el IFR y recargar la cuenta de los registros del temporizador.Rebotado


 

anything