Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

06.Temporizadores

4,938 views

Published on

  • Login to see the comments

06.Temporizadores

  1. 1. Sistemas Basados en MicroprocesadoresTemporizadores y Contadores
  2. 2. Temporizador vs. Contador Untemporizador es un dispositivo, con frecuencia programable, que permite medir el tiempo.  Normalmente, cuando transcurre el tiempo configurado se hace saltar una alarma. Uncontador asíncrono es un circuito capaz de realizar el cómputo de los impulsos que recibe en una entrada destinada a tal efecto. http://paginaspersonales.deusto.es/jonathan.garibay/
  3. 3. Temporizadores/Contadores Los PIC18 disponen de hasta 5 temporizadores:  TMR0  Temporizador de 8 o 16 bits de resolución que puede trabajar como contador.  TMR1 y TMR3  Temporizadores de 16 bits de resolución que pueden trabajar como contadores.  TMR2 y TMR4  Temporizadores especiales de 8 bits. El valor de todos los temporizados es accesible por medio de registros (TMR0H:TMR0L, TMR1H:TMR1L, TMR2…). Todos los temporizadores llevan asociada una interrupción  Por desbordamiento del temporizador/contador (TMR0, TMR1 y TMR3).  Por alcanzar el valor del registro de periodo (TMR2 y TMR4). El TMR3 y el TMR4 no se verán en detalle porque son prácticamente iguales que el TMR1 y el TMR2, respectivamente. http://paginaspersonales.deusto.es/jonathan.garibay/
  4. 4. Temporizador/Contador TMR0 Puede funcionar como temporizador o como contador asíncrono (por medio del pin RA4/T0CKI).  Flanco activo configurable cuando trabajar como contador. Puede trabajar con 8 o 16 bits de precisión. Valor del temporizador/contador accesible por medio de los registros TMR0H:TMR0L.  Cuando se trabaja con 8 bits, se usa sólo el registro TMR0L. Posibilidad de usar pre-divisor:  Pre-divisor configurable de 1:2 a 1:256. Interrupción por desbordamiento. http://paginaspersonales.deusto.es/jonathan.garibay/
  5. 5. Temporizador/Contador TMR0 (continuación…) Señal de Aplicación del Autoincremento Entrada pre-divisor del registro … 0h00 0h01 1:2 … 0hFE 1:4 0hFFTemporizador Interrupción TMR0 0h00 0h01 … Contador 1:2 1:4 http://paginaspersonales.deusto.es/jonathan.garibay/
  6. 6. Temporizador/Contador TMR0 (continuación…) En el modo de 16 bits, el registro TMRH no contiene el valor real, sino que éste está almacenado en un buffer interno no accesible.  El registro TMR0H se actualiza con el valor real durante la lectura del registro TMR0L.  La escritura del valor real en el buffer interno desde el registro TMR0H se realiza durante la escritura del registro TMR0L. Se debe leer primero el TMR0L y después el TMR0H Se debe escribir primero el TMR0H y después el TMR0L http://paginaspersonales.deusto.es/jonathan.garibay/
  7. 7. Temporizador/Contador TMR0 (continuación…) Habilita el TMR0 Selecciona el modo temporizador o modo contador Flanco activo para el modo contador Selecciona del pre-escaler http://paginaspersonales.deusto.es/jonathan.garibay/
  8. 8. Dominios de tiempo Lamedida de tiempo natural es la que usamos de forma normal en la realidad.  Se mide en segundos (S) y todos sus múltiplos: mS, µS… En los PIC’s el tiempo de mide en ‘ticks’, siendo un ‘tick’ el tiempo necesario para que se genere una señal de incremento del reloj del sistema.  El ‘tick’ es la unidad mínima de temporización de un µcontrolador. La relación entre tiempo natural y ‘ticks’ es: tiempo ticks Treloj pre divisor Periodo del reloj del sistema http://paginaspersonales.deusto.es/jonathan.garibay/
  9. 9. Cálculo de temporizacionesticks Timer0  La interrupción por desbordamiento va a 255 avisar del fin de una temporización. número de ‘ticks’  Por ello, no se empieza a contar desde 0, sino desde una valor inicial que se calcula de la siguiente forma: TMR0L valor _ inicial 256 número_ de _ ticks  Con este valor inicial, al cabo de ‘n’ ticks se producirá el desbordamiento.valor inicial  En unidades naturales, la interrupción se producirá al cabo de un tiempo que se calcula con la siguiente fórmula: 4 temporización num _ ticks pre divisor Fosc 0 http://paginaspersonales.deusto.es/jonathan.garibay/
  10. 10. Cálculo de temporizaciones (continuación…) Para temporizar un valor concreto se necesita calcular:  El valor del pre-divisor.  Se calcula la temporización máxima con cada pre-divisor para identificar cual es el valor de pre-divisor mínimo a utilizar. 4 temp _ max num _ max_ tick pre divisor Fosc  El valor inicial de temporización.  Aplicando la siguiente formula (derivada de las anteriores). Fosc valor _ inicial 256 temporización 4 pre divisor Como el valor inicial tiene que ser un entero, habrá que redondear, y por tanto existirá un error de redondeo.  Habrá que tratar de minimizar este error realizando los cálculos para diferentes pre-divisores. http://paginaspersonales.deusto.es/jonathan.garibay/
  11. 11. Cálculo de temporizaciones (continuación…) Resumen de la metodología: 1. Obtener los valores posibles de los pre-divisores. 2. Obtener el valor inicial del temporizador para cada uno de los pre-divisores posibles. 3. Todos los pares (pre-divisor, valor inicial) serán soluciones válidas. Sin embargo, debido al error de redondeo unas serán mejores que otras. 4. Calcular el error de redondeo y seleccionar como solución el que lo tenga más bajo 4 temp _ real (256 valor _ inicial) pre divisor Fosc error temporización temp _ real http://paginaspersonales.deusto.es/jonathan.garibay/
  12. 12. Temporizador/Contador TMR1 Puede funcionar como temporizador, como contador asíncrono (RC0/T1CKI) y como contador síncrono (RC1/T1OSI y RC0/T1OSO).  Cuando trabaja como contador asíncrono, se trabaja siempre con flanco ascendente. Tiene 16 bits de precisión. Valor del temporizador accesible por medio de los registros TMR1H:TMR1L. Permite utilizar un pre-divisor configurable de 1:1, 1:2, 1:4 y 1:8. Interrupción por desbordamiento. http://paginaspersonales.deusto.es/jonathan.garibay/
  13. 13. Temporizador/Contador TMR1 (continuación…) El funcionamiento es similar al del TMR0. La fuente externa del Esta señal se puede utilizar timer puede ser como entrada del oscilador síncrona o asíncrona interno del µcontroladorEl timer se puede resetear desde los módulos CCP http://paginaspersonales.deusto.es/jonathan.garibay/
  14. 14. Temporizador/Contador TMR1 (continuación…) Para la lectura y escritura del valor del TMR1, se utiliza el mismo modelo que el del TMR0 en el que el registro TMR1H no contiene el valor real. Esto no quiere decir que se configure como 1:1. Quiere decir que se reinicia la cuenta de los flancos detectados. El pre-escaler se borra cuando se escribe el registro TMR1L http://paginaspersonales.deusto.es/jonathan.garibay/
  15. 15. Temporizador/Contador TMR1 (continuación…) Selecciona del pre-escaler Selecciona entre contador síncrono o contador asíncrono Selecciona el modo temporizador o modo contador Habilita el TMR1 http://paginaspersonales.deusto.es/jonathan.garibay/
  16. 16. Temporizador TMR2 Esun temporizador de 8 bits con un registro de periodo (PR2).  Cuando el timer alcanza el valor del registro PR2, se resetea y comienza una nueva temporización. Valor del temporizador accesible por medio del registro TMR2. Pre-divisor configurable de 1:1, 1:4 o 1:16. Incluye un post-divisor configurable desde 1:1 a 1:16 (1:2, 1:3, 1:4…).  Se incrementa cada vez que el timer alcanza el valor del registro PR2. http://paginaspersonales.deusto.es/jonathan.garibay/
  17. 17. Temporizador TMR2 (continuación…) Interrupción especial después del post-divisor.  Se genera cuando se haya realizado ‘n’ temporizaciones, siendo ‘n’ el valor del post-divisor. La interrupción depende Reset del contador del post-divisor Salida para el módulo PWM No hay entradas externas para contadores http://paginaspersonales.deusto.es/jonathan.garibay/
  18. 18. Temporizador TMR2 (continuación…) Selecciona del post-escaler Habilita el TMR1 Selecciona del pre-escaler http://paginaspersonales.deusto.es/jonathan.garibay/

×