Monografias.com > Ingeniería
Descargar Imprimir Comentar Ver trabajos relacionados

Timers A y B. Usos y programación




Enviado por Pablo Turmero



    Monografias.com
    1 ¿ Que es un Timer? Corresponde a un
    “contador” que está sincronizado con
    algún reloj (“clock”). Se encarga de
    cuantificar el tiempo. Introducción

    Monografias.com
    2 Aplicaciones de tiempo real. Contador para ciertos eventos,
    dependiendo de la aplicación. Algunos permiten generar
    “avisos” a ciertos intervalos y/o eventos externos y
    con esto poder realizar alguna tarea necesaria. Usos de los
    Timers

    Monografias.com
    3 Principales características destacadas en el ?C
    MSP430F149: • Timer/contador de 16 bit (máximo).
    • Fuente de reloj seleccionable y configurable. Se puede
    pre-escalar el reloj (1, 2, 4 u 8) • Registros configurables
    en captura/comparación. • Salidas configurables con
    capacidad PWM. • Registro de vector de interrupciones, para
    manejo de overflow y de Capt./Comp. Características de los
    timers A y B

    Monografias.com
    4 Diferencias entre los Timers A y B El tamaño de cuenta
    del Timer B es programable a 8, 10, 12 o 16 bits. El Timer A es
    fijo de 16 bits. Timer B tiene 7 registros de Cap./comp. Mientras
    que Timer A sólo 3 registros. Los registros TBCCRx del
    Timer B tienen buffers dobles y pueden ser agrupados.

    Monografias.com
    5 Diagrama de Bloques Timer A

    Monografias.com
    6 Diagrama de Bloques Timer B

    Monografias.com
    7 Registros de los Timers (Gp:) TBCTL, Registro de Control del
    Timer_B (Gp:) 15 (Gp:) 14 (Gp:) 13 (Gp:) 12 (Gp:) 11 (Gp:) 10
    (Gp:) 9 (Gp:) 8 (Gp:) TBLGRPx (Gp:) CNTLx (Gp:) TBSSELx (Gp:) 7
    (Gp:) 6 (Gp:) 5 (Gp:) 4 (Gp:) 3 (Gp:) 2 (Gp:) 1 (Gp:) 0 (Gp:) Idx
    (Gp:) MCx (Gp:) TBCLR (Gp:) TBIE (Gp:) TBIFG (Gp:) TACTL,
    Registro de Control del Timer_A (Gp:) 15 (Gp:) 14 (Gp:) 13 (Gp:)
    12 (Gp:) 11 (Gp:) 10 (Gp:) 9 (Gp:) 8 (Gp:) TASSELx (Gp:) 7 (Gp:)
    6 (Gp:) 5 (Gp:) 4 (Gp:) 3 (Gp:) 2 (Gp:) 1 (Gp:) 0 (Gp:) Idx (Gp:)
    MCx (Gp:) TACLR (Gp:) TAIE (Gp:) TAIFG

    Monografias.com
    8 Registros de los Timers cont. (Gp:) TBCCTLx Registro de Control
    de Captura/Comparación (Gp:) 15 (Gp:) 14 (Gp:) 13 (Gp:) 12
    (Gp:) 11 (Gp:) 10 (Gp:) 9 (Gp:) 8 (Gp:) CMx (Gp:) CCISx (Gp:) SCS
    (Gp:) CLLDx (Gp:) CAP (Gp:) 7 (Gp:) 6 (Gp:) 5 (Gp:) 4 (Gp:) 3
    (Gp:) 2 (Gp:) 1 (Gp:) 0 (Gp:) OUTMODx (Gp:) CCIE (Gp:) CCI (Gp:)
    OUT (Gp:) COV (Gp:) CCIFG (Gp:) TACCTLx Registro de Control de
    Captura/Comparación (Gp:) 15 (Gp:) 14 (Gp:) 13 (Gp:) 12
    (Gp:) 11 (Gp:) 10 (Gp:) 9 (Gp:) 8 (Gp:) CMx (Gp:) CCISx (Gp:) SCS
    (Gp:) SCCI (Gp:) CAP (Gp:) 7 (Gp:) 6 (Gp:) 5 (Gp:) 4 (Gp:) 3
    (Gp:) 2 (Gp:) 1 (Gp:) 0 (Gp:) OUTMODx (Gp:) CCIE (Gp:) CCI (Gp:)
    OUT (Gp:) COV (Gp:) CCIFG (Gp:) CLLDx

    Monografias.com
    9 Registros de los Timers cont. (Gp:) 15 (Gp:) 14 (Gp:) 13 (Gp:)
    12 (Gp:) 11 (Gp:) 10 (Gp:) 9 (Gp:) 8 (Gp:) 7 (Gp:) 6 (Gp:) 5
    (Gp:) 4 (Gp:) 3 (Gp:) 2 (Gp:) 1 (Gp:) 0 (Gp:) Timer_B Registro
    del Vector de Interrupción (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0
    (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0
    (Gp:) TBIVx (Gp:) 0 (Gp:) 15 (Gp:) 14 (Gp:) 13 (Gp:) 12 (Gp:) 11
    (Gp:) 10 (Gp:) 9 (Gp:) 8 (Gp:) 7 (Gp:) 6 (Gp:) 5 (Gp:) 4 (Gp:) 3
    (Gp:) 2 (Gp:) 1 (Gp:) 0 (Gp:) Timer_A Registro del Vector de
    Interrupción (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:)
    0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) TAIVx
    (Gp:) 0

    Monografias.com
    10 Otros Registros Registro de los valores de los Timers: TAR,
    TBR Registro de Captura/Comparación: TACCRx, TBCCRx

    Monografias.com
    11 Programación: Pasos Configurar las puertas que se
    utilizarán (I/O o periféricos) Configurar la
    señal de reloj a utilizar (ACLK, TACLK…)
    Configuración del Timer (TxCTL, TxCCTLx) Modo de cuenta
    (Up/down, Up, Continuo) Habilitación de interrupciones
    Modo de comp/capt Modos de salida Si corresponde, programar
    rutinas de servicio de interrupciones

    Monografias.com
    12 Ejemplos de programación Inicio de conteo usando Timer
    A. void InitTimer_A(void) { P1SEL = 0x80; P1DIR |= BIT7; //Salida
    Dallas habilitada // ACLK / 8 , habilitar interrupciones. TACTL =
    ID1 | ID0 | TASSEL0 | TAIE; TACTL |= MC1; // modo continuo
    TACCTL2 = OUTMOD2 | OUTMOD1 | OUTMOD0 | CCIS0; // en este caso el
    Timer_A está en Reset/set TACCTL2 &= ~CAP; // modo de
    comparación TACCR0 = 0xAAAA; // config. Registros cap/comp
    para salida TACCR2 = 0x5555; }

    Monografias.com
    13 Cont. Ejemplos Ejemplo de captura usando el timer B void
    InitTimer_B (void) { P4SEL |= BIT4; // se setea P4.4 como
    periférico (TB4) /* Config. Timer_B*/ TBCTL = ID1 |
    TBSSEL0 | TBIE; // cuenta a 16 bit /* captura en canto de bajada
    señal input, interrupción habilitada */ TBCCTL4 |=
    CM1 | CCIE; TBCCTL4 |= CAP; // modo de captura TBCTL |= MC1; //
    inicio timer en modo continuo _EINT(); // habilitación
    general int’s. }

    Monografias.com
    14 Cont. Ejemplos Rutina de servicio de interrupciones #pragma
    vector=TIMERB1_VECTOR __interrupt void TCPClockHandler (void) {
    if (TBIV == 14) // check for timer overflow { LPM3_EXIT; } if
    (TBIV == 8) // check for input signal (P4.4 = B1) { TBCCTL4
    &= ~COV; LPM3_EXIT; //capture = TBCCR4; } }

    Monografias.com
    15 Restricciones del uso del Timer A

    Monografias.com
    16 Restricciones del uso del Timer B Botones

    Monografias.com
    17 Muchas Gracias por su atención.
    ¿CONSULTAS?

    Monografias.com
    18 El reloj puede ser configurado a través del registro
    TACTL en los bits TASSELx. Seleccionándose una fuente
    interna o externa. TACLK que se encuentra configurado por
    defecto, es decir es configurado con los bits en TASSELx en 00.
    ACLK, que corresponde al reloj auxiliar configurable con los bits
    TASSELx en 01. SMCLK que es el sub-sistema del reloj maestro, se
    configura con los bits TASSELx en 10. El reloj externo, que se
    configura con los bits TASSELx en 11. La fuente de reloj puede
    ser pasada directamente al temporizador o dividida por 2, 4
    ó 8, usando los bits Selección de fuente de reloj y
    divisor.

    Monografias.com
    19 Tiene 4 modos de operación Se setean utilizando los
    bits de MCx Modos de operación

    Monografias.com
    20 Up mode El timer cuenta repetitivamente hasta el valor
    indicado por el registro de comparación TACCR0 Cuando el
    valor del timer alcanza el valor de TACCR0, se empieza la cuenta
    nuevamente desde cero. Si el UP MODE es seleccionado cuando el
    valor del timer es mayor que TACCR0, el timer inmediatamente
    empieza la cuenta desde cero. El TACCR0 CCIFG flag de
    interrupción es activado cuando el valor del timer alcanza
    el valor de TACCR0. EL flag de interrupción TAIFG es
    activado cunado el timer cuenta desde TACCR0 a cero.

    Monografias.com
    21 Modo continuo En este modo el timer cuenta repetitivamente
    hasta el valor de 0FFFFh y empieza nuevamente desde cero. El flag
    de interrupciones es activado cuando el time cuenta desde 0FFFFh
    a 0h

    Monografias.com
    22 Modo Up/Down Es utilizado cuando se necesita obtener un pulso
    simetrico. El timer cuenta repetitivamente hasta un valor TACCR0
    y luego decrementa su valor hasta cero. La direcion de conteo se
    encuentra latcheada. Lo que permite al timer se detenido y luego
    encendido, contando en la misma dirección que había
    quedado antes de ser detenido. Si el valor del bit TACLR es
    seteado se limpia la dirección en que se estaba contando
    además del valor del TAR y del TACLK divider.

    Monografias.com
    23 Modo Up/Down En este modo el flag de interrupción
    TACCR0 CCIFG y el flag de interrupción TAIFG están
    activos solo una vez por periodo, separados por medio periodo del
    timer. TACCR0 CCIFG se activa cuando el timer cuenta TACCR0-1.
    TAIFG se activa cuando el timer cuenta cero.

    Monografias.com
    24 Este modo se usa para registrar eventos temporales. Este modo
    se selecciona cuando CAP=1 en el registro de control TACCTLx. Las
    entradas de captura están conectadas a pines externos o
    señales internas que se seleccionan con los bits CCISx.
    Modo Captura

    Monografias.com
    25 Modo Captura La captura de la señal puede ser
    asincrónica con respecto del timer del reloj y causa de
    una condición de carrera. Cuando la captura ocurre: El
    valor del temporizador es copiado en el registro TACCRx. El flag
    de interrupción CCIFG es seteado

    Monografias.com
    26 Modo Comparación Este modo se usa para generar
    señales de salida PWM o interrupciones en un intervalo
    especifico. Este modo se selecciona cuando CAP=0 en el registro
    de control TACCTLx.

    Monografias.com
    27 Modo Comparación Cuando el TAR cuenta hasta el valor
    almacenado en TACCRx: La interrupción del flag CCIFG es
    seteada. La señal interna EQUx = 1. EQUx afecta la salida
    según el modo de salida. La señal de entrada CCI es
    latcheada en SCCI.

    Monografias.com
    28 Si TBR cuenta al valor de un TBCLx: Se activa el flag de
    interrupción CCFIG Señal interna EQUx=1 EQUx afecta
    la salida, de acuerdo al modo de salida Latch de
    comparación TBCLx TBCLx mantiene el valor a comparar con
    el valor del Timer. (TBCLx es “buffered “ por TBCCRx)
    El dato a comparar se escribe en cada TBCCRx y se transfiere
    automáticamente a TBCLx Cuando se activa la
    comparación, TBCCRx finaliza el control de usuario, i.e.,
    no existe acceso directo a TBCLx Modo Comparación B

    Monografias.com
    29 Eventos de Carga El momento de la transferencia lo selecciona
    el usuario con los bits de CLLDx El nuevo dato se transfiere de
    TBCCRx a TBCLx CLLDx Descripción 00 inmediatamente al
    escribirse en TBCCRx 01 cuando TBR cuenta a 0 10 modo up y
    continuo: Cuando TBR cuenta a 0 modo up down: Cuando TBR cuenta
    al valor antiguo de TBCLx o a 0 11 Cuando TBR cuenta al valor
    antiguo de TBCLx

    Monografias.com
    30 Agrupación de Latch de comparación Pueden
    agruparse juntos para actualizaciones simultaneas de los bits de
    TBCLGRPx Condiciones para la carga grupal: Debe ocurrir el evento
    de carga Todos los registros TBCCRx del grupo deben actualizarse,
    incluso cuando cuando el valor nuevo es igual al antiguo

    Monografias.com
    31 El evento de carga del grupo es definido por los bits CLLDx
    del menor de los latch de comparación TBCCRx del grupo,
    con excepción de TBCLGRP =3 Si CLLDx = 0 del TBCCRx que
    controla, los latch de comparación se actualizan
    automáticamente cuando su TBCCRx correspondiente es
    escrito, i.e., No están agrupados. Agrupación de
    Latch de comparación

    Monografias.com
    32 Modos de Salida Cada bloque de captura/comparación
    contiene una unidad de salida para generar distintas
    señales. Cada señal de salida tiene ocho modos de
    operación. Estos modos se configuran con el registro de
    control TACCTLx con los bits OUTMODx.

    Monografias.com
    33 Ejemplos Unidad de Salida Modo UP Modo continuo Modo Up/Down

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter