Está en la página 1de 20

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER1

El funcionamiento del TMR1 est gobernado por el valor con el que se programan los bits del registro T1CON.

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TEMPORIZADOR / CONTADOR TMR1

El TMR1 puede operar en los siguientes modos:

Temporizador Contador sincrono Contador asincrono

El modo de operacin se establece mediante el bit TMR1CS (TICON<1>)

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER1 COMO TEMPORIZADOR

Este modo se selecciona poniendo a cero el bit TMR1CS (T1CON <1>. En este modo la seal de reloj es el reloj interno del microcontrolador FOSC/4. En este modo de trabajo el bit T1SYNC (T1CON <2>) no tiene ningn efecto ya que el reloj interno est siempre sincronizado y las entradas RC0 y RC1 se configuran como entradas ignorando el valor de TRISC.

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER1 COMO CONTADOR

En este modo puede trabajar como contador sncrono o asncrono.

Cuando el TIMER1 se est incrementando segn le llegan los impulsos externos, los incrementos ocurren en los flancos de subida.
Despus de que el TIMER1 se ha configurado como contador, debe producirse un flanco de bajada antes de empezar a contar.

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER1 COMO CONTADOR SINCRONO


Para seleccionar este modo se pone a uno el bit TMR1CS (T1CON <1>). En este modo el contador se incrementa en cada flanco ascendente de la seal de reloj que se introduce por el pin RC0/T1OSO/TICK1 cuando el bit T1OSCEN est a uno, y por el pin RC1/CCP1, cuando el bit T1OSCEN est a cero. Si T1SYNC se pone a cero, entonces la entrada de reloj externa se sincroniza con los relojes de fase interiores. La sincronizacin se hace despus de la fase del preescaler. En el preescaler la fase de la seal de reloj es por lo tanto asncrona.

En este modo de trabajo, durante el modo SLEEP el TIMER1 no se incrementa an cuando la seal de reloj externa est presente.
El preescaler sin embargo contina incrementndose.

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER1 COMO CONTADOR ASINCRONO

Cuando el bit de control T1SYNC (T1CON <2>) se pone a uno, la seal de reloj externa no se sincroniza.

El contador sigue realizando la cuenta de forma asncrona respecto a la fase de la seal de reloj interna.
El contador contina la cuenta incluso en el modo SLEEP y puede generar una interrupcin por desbordamiento que despierta al procesador.

Hay que tener especial cuidado con el software al leer o escribir el contador.
Cuando se trabaja en el modo contador asncrono, el TIMER1 no puede usarse como base de tiempos para el mdulo CCP (Captura y comparacin-PWM).

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TEMPORIZADOR / CONTADOR TMR1

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER 1 EN LENGUAJE C

La configuracin del TMR1 en Lenguaje C se realiza a travs de la funcin:

Setup_timer_1(modo);

en donde modo est definido en el fichero de cabecera (afecta a los bits <5:0> de T1CON)
Setup_Time_1(modo) T1_DISABLE T1_INTERNAL T1_EXTERNAL T1_EXTERNAL_SYNC T1_CLK_OUT T1CON 00000000 10000101 10000111 10000011 00001000 Setup_Time_1(modo) T1_DIV_BY_1 T1_DIV_BY_2 T1_DIV_BY_4 T1_DIV_BY_8 T1CON 00000000 00010000 00100000 00110000

Se pueden agrupar constantes de distintos grupos con |. Lectura / Escritura en el mdulo TMR1. valor = get_timer1 (); valor: Entero de 16 bits.
8

set_timer1 (valor);

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

CLCULO DEL TIEMPO DE DESBORDAMIENTO

EN

TMR1

El tiempo de desbordamiento se calcula:

T= Tcm* (65536 - TMR1) * Prescaler


T=Temporizacin Tcm=Ciclos mquina (Tm=4/Fosc) Prescaler=Divisor de frecuencia

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

EJEMPLO TMR1

Visualizar los nmeros 0 al 9, por medio de un display 7 segmentos ctodo comn, conectado directamente al PORTB. El cambio de dgito se produce cada segundo, programado en el TMR1 configurado como temporizador.

El clculo del tiempo se realiza con la relacin dada para el TMR0, pero en este caso el TMR1 es de 16 bits, entonces si queremos una temporizacin de 500ms, con prescaler de 8, tenemos: 0,5 = (4/Fosc).(65536-TMR1).8, de donde TMR1=3036

10 La oscilacin de un segundo se logra con un contador auxiliar que llegue a 2. La oscilacin de un segundo se la puede medir con un osciloscopio conectado al PIN RA0.

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

EJEMPLO TMR1

11

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

EJEMPLO TMR1

12

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER 2

TMR2 es un temporizador ascendente de 8 bits. Dispone de un registro de perodo de 8 bits (PR2).

Se puede leer y escribir.


Contiene un Predivisor y postdivisor de frecuencia programables. Interrupcin opcional al coincidir TMR2 y PR2. Posibilidad de generar impulsos al mdulo SSP (puerta serie sncrona).

Se puede usar como base de tiempos para el mdulo PWM y el mdulo CCP (Captura y Comparacin).

El post-scaler, tiene como misin poner a nivel alto la bandera de interrupcin por desbordamiento del TMR2 cuando se haya producido la igualdad entre el registro PR2 y el TMR2.

13

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER 2

El post-scaler, tiene como misin poner a nivel alto la bandera de interrupcin por desbordamiento del TMR2 cuando se haya producido la igualdad entre el registro PR2 y el TMR2.

14

Compilador C para PIC


Ejemplo: TIMER2
Registro T2CON (12h)

bits 6-3 TOUTPS3:TOUTPS0: Seleccin del postscaler 0000: Postscaler1:1 0001: Postscaler1:2 0010: Postscaler1:3 ..... 1111: Postscaler1:16

bit 2 TMR2ON: Bit de encendido de TMR2 0: Apagado 1: Habilitado


bits 1:0 T2CKPS1:T2CKPS0: Seleccin del prescaler 00: Prescaler1 01: Prescaler4 1x: Prescaler16

15

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER 2

El tiempo de desbordamiento del Timer2 se calcula segn la siguiente relacin: Tiempo=TCM[Prescaler(1+TMR2)Postscaler], TCM = 4/Fosc

El TMR2 no se pone a cero cuando se escribe en T2CON. Para reducir el consumo total del microcontrolador se puede "apagar" el temporizador poniendo a cero el bit TMR2ON (T2CON<2>).

16

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER 2 EN LENGUAJE C

Configuracin del mdulo TMR2.

setup_timer_2 (modo,periodo,postscaler);
modo: especifica el divisor del reloj. Afecta los bits T2CON<2:0>. T2_DISABLED (T2CON 00h) T2_DIV_BY_1 (T2CON 04h) T2_DIV_BY_4 (T2CON 05h) T2_DIV_BY_16 (T2CON 06h) periodo: valor entero de 8 bits para el PR2. Determina el momento en que el valor del TMR2 se resetea. postscaler: valor del postdivisor (1 a 16). Afecta los bits T2CON<6:3>. Determina cuantos resets del timer se han producido antes de la interrupcin. Lectura / Escritura en el mdulo TMR2. valor = get_timer2 (); set_timer2 (valor); valor: Entero de 8 bits.

17

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

TIMER 2 EN LENGUAJE C

Las funciones del Timer2 son:

Valor = get_timer2(); // Lee el valor actual del Timer2.


Set_timer2(valor); bits). // valor de precarga al Timer2 (valor entero de 8

18

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

EJEMPLO TIMER 2

Realizar el desplazamiento de los 8 bits de un registro empezando desde el bit 0 y visualizarlo en el PORTB. El desplazamiento se realiza cada 300ms configurados en el TMR2. La oscilacin se puede medir con un osciloscopio en el pin RA0. Otro LED parpadear cada 500ms con retardo producido con software.

Si consideramos un oscilador de 4MHz, la cuenta mxima del TMR2 es de 256us, al emplear un prescaler de 16 y un postscaler de 16 podremos hacer una temporizacin mxima de 256x16x16=65536us. Ahora si cargamos en el registro PR2 el valor decimal de 195 y teniendo un prescaler y 19 postscaler de 16 tendremos una temporizacin de 196x16x16=50176us50ms. Si a este valor lo repetimos 6 veces tendremos 300ms aproximadamente.

Facultad de Ingeniera en Ciencias Aplicadas Carrera de Ingeniera en Mecatrnica Sistemas microprocesados Alvaro Fuentes

EJEMPLO TIMER 2

20

También podría gustarte