MODOS DE FUNCIONAMIENTO DEL TIMER 2
Los modos de funcionamiento del timer 2 son tres:
a.) Modo captura
b.) Modo autorrecarga
c.)Modo generador de frecuencia para comunicación serie
La selección de modo se realiza según la siguiente tabla:
RCLK + TCLK | CP/RL2' | TR2 | MODO |
0 0 1 X |
0 1 X X |
1 1 1 0 |
16 bits de autorrecarga 16 bits con captura Generador de baudios Off |
Como se puede ver en la siguiente figura, este modo permite <<capturar>> el valor actual del timer 2. Si el bit 3 del registro T2CON (EXEN2) es 1 vemos que el control inferior se cierra y por lo tanto cuando se produce una transición de entrada externa T2EX (flanco descendente), el valor que se encuentra en lo registros de cuenta TL2 Y TH2, es capturado por lo registros RCAP2H yRCAP2L. Además, el flanco descendente de la patilla T2Ex, pone a 1 el flag de EXF2
figura: ESTRUCTURA DEL TIMER 2. MODO CAPTURA
En este modo si EXEN2=0 (véase figura) cuando el timer 2 produce el sobrepasamiento, pone TF2=1 y además recarga TL2 y TH2 con los valores de RCAP2H y RCAP2L, cargados inicialmente por software. Este modo puede ser utilizado como generador de frecuencia para comunicación serie, ya sea sólo para recepción (RCLK=1), sólo para transmisión (TCLK=0), o ambas (RCLK=1 y TCLK=1).
Si EXEN2=1, el timer 2 realiza lo anterior y además al producirse un flanco descendente en la patilla T2EX, activa la recarga y el flag EXF2.
figura: ESTRUCTURA TIMER 2. MODO AUTORRECARGA
Cuando se emplea el modo autorrecarga como generador de frecuencias para las comunicaciones serie (RCLK + TCLK=1), los componentes del timer 2 se organizan de tal manera que la frecuencia que actúa como contador es mas elevada(Fosc/2 en vez de Fosc/12). La frecuencia de comunicación FC, viene dada por la formula:
donde RCAP2H y RCAP2L representa el valor de 16 bits con el que se recarga el contador.
Una interrupción en el timer 2 se produce en base a los indicadores TF2 y EXF2. La detección de la interrupción se desarrolla a partir de la operación lógica OR entre estos dos indicadores. Con lo cual basta con que cualquiera de estos se encuentre a 1 para que se reconozca una petición de interrupción.El vector de interrupción del timer 2 se encuentra en la dirección 002BH. La puesta a cero de los indicadores TF2 y EXF2 se ha de realizar por software antes de la vuelta al programa principal.