Vous êtes sur la page 1sur 14

CCFF D.P.E.

MDULO DE PROYECTOS
1
L
O
S

T
I
M
E
R

D
E

L
O
S

1
6
F
8
7
x
MICROCONTROLADORES PIC
TEMA
EL TIMER 2
CCFF D.P.E. MDULO DE PROYECTOS
2
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
Diagrama de Bloques del TIMER2
CCFF D.P.E. MDULO DE PROYECTOS
3
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
INTRODUCCIN
El TIMER2 es un temporizador ascendente de 8 bits, con
preescaler y postescaler.
La seal de reloj de este timer es FOS/4.
La seal de reloj antes de ser aplicada a TMR2, pasa por un
predivisor, que poseer una de las siguientes relaciones: 1:1;
1:4 1:16 y que son seleccionadas mediante los bits de
control T2CKPS1 :T2CKPS0 (T2CON<1:0>).
El valor de este timer se va incrementando hasta alcanzar el
valor previamente guardado en el registro PR2 asociado a l.
CCFF D.P.E. MDULO DE PROYECTOS
4
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
En el momento en que el valor alcanzado por el timer2 es
igual al valor almacenado en PR2, se genera un pulso de
igualdad (EQ), que hace que el timer se resetee en el
siguiente ciclo (valor de reset 00h), comenzando una nueva
cuenta.
Estos impulsos de igualdad pueden ser divididos por un
postescaler antes de activar el flag TMR2IF.
Los posibles valores de divisin del postescaler van desde 1:1
hasta 1:16.
Si las interrupcin de este dispositivo est permitida,
cuando se alcance el valor programado en el postescaler, esta
se producir.
CCFF D.P.E. MDULO DE PROYECTOS
5
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
La temporizacin total se calcula con la siguiente expresin:
T= 4Tosc*valor de preescaler*valor de PR2* valor postescaler
El registro TMR2 ocupa la posicin 11h del banco de
registros 0, y se puede leer, escribir y se pone a cero tras
cualquier reset.
El registro PR2 es un registro que puede leerse y escribirse,
tras el reset, queda inicializado con el valor FFh.
CCFF D.P.E. MDULO DE PROYECTOS
6
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
E
El preescaler y el postescaler, se ponen a cero cuando
sucede alguno de los siguiente eventos:
Se escribe en el registro TMR2.
Se escribe en el registro T2CON.
Se produce un RESET (POR, MCLR Reset, WDT,Reset,
o BOR)
TMR2 no se pone a cero cuando se escribe en T2CON.
CCFF D.P.E. MDULO DE PROYECTOS
7
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
Salida De TMR2
Salida De TMR2
La salida de TMR2 (antes del postescaler), puede utilizarse
como reloj de desplazamiento en el mdulo SSP
Tambin puede ser utilizado como base de tiempos para el
mdulo PWM, para los mdulos de captura y comparacin
(CCP).
CCFF D.P.E. MDULO DE PROYECTOS
8
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
Registros Asociados Con El
Contador/Temporizador TIMER2
CCFF D.P.E. MDULO DE PROYECTOS
9
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
El Registro T2CON
T2CON es el registro de control del TIMER2 Contiene los
bits de: habilitacin/deshabilitacin, factor del prescaler y
del postescaler.
Ocupa la direcci
Ocupa la direcci

n 12h de memoria RAM


n 12h de memoria RAM
T2CKPS1:T2CKPS0
T2CKPS1:T2CKPS0
:
:
Seleccin del rango del preescaler del TIMER2
00: Rango del preescaler de 1:1
01: Rango del preescaler de 1:4
1X: Rango del preescaler de 1:16
10
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
TMR2ON
TMR2ON
:
: Bit de activacin del TIMER2
0: Desactiva el TIMER2 (valor por defecto)
1: Habilita el funcionamiento del TIMER2


TOUTPS3:TOUTPS0:
TOUTPS3:TOUTPS0: Bits 6:3 seleccin del rango del divisor
del postescaler, desde 1:1 hasta 1:16 pasando por todos los
valores, valor por defecto 1:1
Bit
Bit
7
7 Bit no implementado se lee como 0.
TOUTPS3:TOUTPS0 Valor del preescaler
0 0 0 0 1:1
0 0 0 1 1:2
0 0 1 0 1:3
0 0 1 1 1:4
. . . .
1 1 1 0 1:15
1 1 1 1 1:16
CCFF D.P.E. MDULO DE PROYECTOS
11
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
Las Interrupciones En El TIMER2
Las Interrupciones En El TIMER2
Este modo de funcionamiento se selecciona poniendo a 0
el bit TMR1CS (T1CON<1>).
En este modo de trabajo el origen de los pulsos a contar es
interno, y proceden del reloj del sistema siendo su
frecuencia FOSC/4.
Evidentemente en este caso el bit T1SYNC no tiene
sentido ya que no existe seal a sincronizar.
CCFF D.P.E. MDULO DE PROYECTOS
12
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
Configuracin del Timer 2 en C
La configuracin del Timer 2 en el compilador C se
realiza con la funcin
SETUP_TIMER_(mode, period,postcale)
Donde Mode puede ser uno de los siguientes valores:
T2_DISABLED : T2 desactivado
T2_DIV_BY_1: Preescaler con factor 1:1
T2_DIV_BY_1: Preescaler con factor 1:4
T2_DIV_BY_1: Preescaler con factor 1:16
CCFF D.P.E. MDULO DE PROYECTOS
13
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
Donde period es un entero de 8 bits 0-255 que se cargar
en PR2 , y determinar cuando se resetear el Timer 2.
postscale es un nmero 1-16 que fija cuantas veces ha de
resetearse el timer antes de provocar una interrupcin.
Ejemplo:
setup_timer_2 (T2_DIV_BY_4,0XC0,2);
//A MHz, el timer se incrementa cada 800ns,
//se producir un overflow cada 153.6us
//y se generar una interrupcin cada 307.2us
// T= 4Tosc*valor de preescaler*valor de PR2* valor postescaler
//T= 4* 0.05us *4 * 192* 2 = 307,2 us
CCFF D.P.E. MDULO DE PROYECTOS
14
L
O
S

T
E
M
P
O
R
I
Z
A
D
O
R
E
S
Como hemos indicado anteriormente, el valor del Timer 2,
puede ser ledo y escrito en cualquier instante, para ello
utilizaremos las funcines:
valor=get_timer2() y set _timer2 (valor).
valor=get_timer2() ;
Esta funcin nos devolver un entero de 8 bits en la
variable valor.
set _timer2 (valor); //valor es un entero de 8 bits

Vous aimerez peut-être aussi