martes, 19 de julio de 2016

Timer 1

El Timer1 es un temporizador/contador ascendente parecido al TMR0, pero con algunas peculiaridades que lo hacen muy interesante a la hora de incluir temporizaciones en nuestros programas.
La primera de ellas, es que 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 ejecución del programa.

Cuando el Timer1 está habilitado, el valor de esos registros se incrementan desde 0000h a FFFFh y una vez que llega a su máximo valor empieza otra vez desde 0 avisándonos de ello por medio de la bandera TMR1F .
Si está activa la interrupción por desbordamiento del Timer 1 al desbordarse el contador, el programa entra en la función de tratamiento a la interrupción por desbordamiento del Timer1.

El diagrama de bloques es el siguiente:




 PRINCIPALES CARACTERÍSTICAS DEL TMR1


Algunas características de este Timer son las siguientes:  
·         El Timer1 puede funcionar con un oscilador externo y trabajar a una frecuencia distinta a la del oscilador principal del PIC.
·         Al igual que el TMR0 el Timer1 puede operar en dos modos: como temporizador y como contador. El modo de funcionamiento está determinado por el tipo de reloj seleccionado (interno -->temporizador, externo -->contador), lo configuramos por medio del bit TMR1CS del registro TICON. Cuando está en modo contador su valor se incrementa en cada flanco de subida de la señal de reloj externa.
·         El tiempo que se tarda en incrementarse el contador se le suele llamar paso, el paso del contador depende de la frecuencia del oscilador y del prescaler seleccionado.
·         La fórmula para determinar los tiempos del Timer1 cuando es utilizado como temporizador (Reloj interno) es la siguiente:


·         El paso del contador vendrá determinado por:


Paso_Contador= 4/Frecuencia Oscilación.Prescaler

·         El Timer1 se puede habilitar o deshabilitar por medio del bit TMR1ON del registro T1CON.
·         Posee un pre-escalador de 3 bits
·         Funcionamiento síncrono o asíncrono
·         Interrupción opcional de desbordamiento de FFFFh a 0000h
·         Posible reiniciación desde módulos CCP
·         Fuente de reloj para módulo de captura/comparación


Un dibujo con los bits de configuración del registro TICON, lo tenéis en la figura de abajo:




COMPUERTA DE TEMPORIZADOR TMR1
El pin TG1 o la salida del comparador C2 pueden ser una fuente de los pulsos que pasan por la compuerta del temporizador Timer1. Se configuran por software. Esta compuerta permite que el temporizador mida directamente la duración de los eventos externos al utilizar el estado
lógico del pin T1G o los eventos analógicos al utilizar la salida del comparador C2. Para medir
duración de señal, basta con habilitar esta compuerta y contar los pulsos que pasan por ella.

 

REGISTRO DE CONTROL DEL TMR1


T1GINV= Inversor de compuerta del TMR1
TMR1GE= Determina si la compuerta formada por el pin T1G o salida del comparador C2  C2OUT) estará activa o no.
T1CKPS1  Y T1CKPS0=  Selección de rango del divisor de frecuencias
T1OSCEN=Selección de entradas cuando impulsos proceden de reloj externo
T1SYNC=Selección de fuente de impulsos de contaje.
TMR10N= Permisos de prohibición y funcionamiento


PRE-ESCALADOR DEL TMR1
Este es un simple divisor de frecuencias que funciona según el estado de T1CKPS1 y T1CKPS0

T1CKPS1
T1CKPS0
RANGO DEL PREDIVISOR
0
0
1:1
0
1
1:2
1
0
1:4
1
1
1:8

SELECCIÓN DE FUENTE DE RELOJ
El bit TMR1CS del registro T1CON selecciona la fuente de reloj de la siguiente manera:

 

TMR1 EN MODO CONTADOR
El temporizador Timer1 se pone a funcionar como un contador al poner a 1 el bit TMR1CS. Este bit cuenta los pulsos llevados al pin PC0/T1CKI y se incrementa en el flanco ascendente de la entrada del reloj externo T1CKI. Si el bit de control T1SYNC del registro T1CON se pone a 0, las entradas del reloj externo se sincronizarán en su camino al temporizador Timer1.
En otras palabras, el temporizador Timer1 se sincroniza con el reloj interno del microcontrolador y se le denomina contador síncrono.
Al poner en modo de reposo el microcontrolador que funciona de esta manera, los registros del temporizador Timer1H y TMR1L no serán incrementados aunque los pulsos de reloj aparezcan en los pines de entrada. Como el reloj interno del microcontrolador no funciona en este modo, no hay entradas de reloj que se utilicen para la sincronización. De todas formas, el pre-escalador sigue funcionando siempre que haya pulsos de reloj en los pines, porque es un simple divisor de 
frecuencias.






No hay comentarios:

Publicar un comentario