Sie sind auf Seite 1von 5

DEPARTAMENTO DE ELCTRICA Y

ELECTRNICA

CARRERA DE INGENIERIA ELECTRNICA EN


AUTOMATIZACIN Y CONTROL

MICROCONTROLADORES

CONSULTA TIMERS0,1 y 2

NRC: 2188

Perodo:
Octubre (2014) Febrero (2015)

TIMER0
Es un temporizador/contador ascendente de 8 bits, cuando trabaja con el reloj del PIC se le
suele llama temporizador y cuando los pulsos los recibe de una fuente externa a travs de la
patilla RA4/TOCKI se le llama contador
Tiene las siguientes caractersticas:

8-bit del temporizador / contador


Lectura y escritura
8-bit software prescaler programable
Interna (4 Mhz) o reloj externo seleccionar
Interrumpir el desbordamiento de FFh a 00h
Edge seleccionar (ascendente o descendente) para el reloj externo

El Timer0 tiene un registro denominado TMR0, que es de 8 bits de tamao.


Podemos escribir el valor deseado en el registro, que se incrementa cuando el programa
avanza. La frecuencia vara en funcin del Prescalador. El valor mximo que se puede asignar a
este registro es 255.
TMR0IF - TMR0 desbordamiento de interrupcin de la bandera de bits.
La interrupcin TMR0 se genera cuando el registro TMR0 se desborda de FFh a 00h.
Este desbordamiento TMR0IF, puede inicializar el valor de este registro a lo que quieras (no
necesariamente "0"). Podemos leer el valor del registro TMR0 y escribirlo. Podemos
restablecer su valor en un momento dado (escritura) o podemos comprobar si hay un cierto
valor numrico que necesitamos (leer).
Preescalador - Frecuencia divisor.
Podemos utilizar Prescalador para su posterior divisin del reloj del sistema. Las opciones son:

1: 2
1: 4
1: 8
1:16
1:32
1:64
1: 128
1: 256

La inicializacin del registro OPTION_REG

Inicializar el OPTION_REG:

PSA = 0; // Prescalador se asigna al mdulo Timer0


PS0 = 1; // bits de tasa Prescalador
PS1 = 1; // bits de tasa Prescalador
PS2 = 1; // bits de tasa Prescalador
TOCS = 0; // Reloj ciclo de instruccin interna

TIMER1
El Timer1 es un temporizador/contador ascendente, se trata de un contador de 16 bits cuyo
valor se almacena en dos registros de 8 bits el TMR1H y el TMR1L, ambos registros se pueden
leer y escribir su valor durante la ejecucin del programa.
Tiene las siguientes caractersticas:
16-bit del temporizador / contador que consiste en dos registros de 8 bits (TMR1H y
TMR1L)
Lectura y escritura
8-bit software prescaler programable
Interna (4 Mhz) o reloj externo seleccionar
Interrumpir el desbordamiento de FFFFh a 0000h
Cuando el Timer1 est habilitado, el valor de esos registros se incrementan desde 0000h a
FFFFh y una vez que llega a su mximo valor empieza otra vez desde 0 avisndonos de ello por
medio de la bandera TMR1F.
TMR1E Puede inicializar el valor de este registro a lo que quieras (no necesariamente "0").
TMR1IF - TMR1 desbordamiento de interrupcin de la bandera de bits.
Esta bandera marca el final de un ciclo de cuenta. La bandera debe restablecerse en el
software si desea hacer otra cuenta de ciclo. Podemos leer y escribir el valor del registro TMR1
. Podemos restablecer su valor en un momento dado (escritura) o podemos comprobar si hay
un cierto valor numrico que necesitamos (leer).
Preescalador - Frecuencia divisor.
Podemos utilizar Preescalador para su posterior divisin del reloj del sistema. El tamao del
registro es de 2 bits solamente, as que se puede hacer cuatro divisiones diferentes. Las
opciones son:

1: 1
1: 2
1: 4
1: 8

Se puede elegir si desea utilizar un reloj interno del sistema (cristal) u oscilador externo que
puede ser conectado a un pin RC0.
Llevamos a cabo todos los ajustes necesarios con registro T1CON. El tamao del registro es de
8 bits

Inicializacin del registro T1CON


El siguiente es un ejemplo de cmo podemos inicializar el registro T1CON:

TMR1ON = 1; // Usarlo como temporizador


TMR1CS = 0; // Fuente de reloj interno
T1CKPS0 = 0; // Valor del prescalador
T1CKPS1 = 0; // Valor del prescalador

TIMER2
El Timer 2 es un temporizador de 8 bits que tiene la particularidad de tener un Preescalador y
un post-escalador. Adems este mdulo cuenta con un registro de periodo PR2 que marca el
valor mximo que puede alcanzar la cuenta del registro TMR2. A diferencia de los otros
temporizadores, el temporizador Timer 2 no incrementa su cuenta hasta llegar a 0xFF y
despus al desborde sino que incrementa su cuenta desde 0x00 con cada ciclo de instruccin
hasta que el valor del registro TMR2 coincide con el del registro PR2 y despus, en el siguiente
ciclo reinicia la cuenta desde 0x00.
Tiene las siguientes caractersticas:

Dos registros de 8 bits (TMR2 y PR2)


Lectura y escritura
Un pre-escalador y un postscaler
Reloj interno - cristal de 4 MHz
Interrumpir el desbordamiento

El preescalador tiene la misma funcin que en los otros dos timers y sirve como divisor de
frecuencia antes de cada incremento. El post-escalador funciona como un divisor de frecuencia
despus de cada coincidencia entre los registros TMR2 y PR2. Si el post-escalador es 1:1 la
bandera de interrupcin TMR2IF se habilitar en cada coincidencia entre TMR2 y PR2, en
cambio s por ejemplo el post-escalador es 1:16, la interrupcin se presentar cada 16
coincidencias.

Todos los ajustes necesarios se realizan en registro T2CON :

Registro T2CON
Como podemos ver, el tamao del registro es de 8 bits. Vamos a explorar los bits relevantes:
T2CKPS1: T2CKPS0: bits de seleccin preescalado
El reloj de entrada tiene una opcin de preescalado de 1: 1, 1: 4 o 1:16, seleccionados por bits
de control T2CKPS1: T2CKPS0
00 = Precontador es 1
01 = Precontador es 4
1x = Precontador es 16
TMR2ON: Timer2
TMR2ON , sirve para reducir al mnimo el consumo de energa.
1 = Timer2 est en encecndido
0 = Timer2 est apagado
TOUTPS3: TOUTPS0: bits de seleccin Postscaler
La salida partido de TMR2 pasa a travs de un 4-bit postscaler (que da un 1: 1 a 1:16 de escala
seleccionados por bits de control )

0000 = 1: 1 postscaler
0001 = 1: 2 postscaler
0010 = 1: 3 postscaler
1111 = 01:16 postscaler

La temporizacin del Timer 2 est dada por la siguiente expresin:


TempTMR2 = [Preescaler*(PR2+1)*Postscaler]*Tinstr
Donde:

Preescaler = Valor del preescalador


PR2 = Valor cargado al registro PR2
Postscaler = Valor del post-escalador
Tinstr = 4/frecuencia de oscilacin
TempTMR2 = Temporizacin dada en segundos

Das könnte Ihnen auch gefallen