Está en la página 1de 21

MÓDULO TIMER0

El módulo Timer0 es un temporizador / contador de 8 bits con las siguientes


características:
• Registro de contador / temporizador de 8 bits (TMR0)
• Prescaler de 8 bits (independiente del temporizador de vigilancia)
• Fuente de reloj interno o externo programable
• Selección de borde de reloj externo programable
• Interrupción por desbordamiento
• TMR0 se puede utilizar para controlar el temporizador
La figura 20-1 es un diagrama de bloques del módulo Timer0.

Establecer el bit de marca TMR0IF en desbordamiento

Desbordamiento a Timer1

Operación Timer0
El módulo Timer0 se puede utilizar como temporizador de 8 bits o como
contador de 8 bits.
MODO TEMPORIZADOR DE 8 BITS
El módulo Timer0 incrementará cada ciclo de instrucción, si se usa sin un preescalador. El
modo de temporizador de 8 bits se selecciona borrando el bit TMR0CS del registro
OPCIÓN.
Cuando se escribe TMR0, el incremento se inhibe durante dos ciclos de instrucción
inmediatamente después de la escritura.
Nota: El valor escrito en el registro TMR0 se puede ajustar para tener en cuenta el retardo
del ciclo de dos instrucciones cuando se escribe TMR0.

MODO DE CONTADOR DE 8 BITS


En el modo Contador de 8 bits, el módulo Timer0 se incrementará en cada flanco
ascendente o descendente del pin T0CKI o la señal del oscilador de detección capacitiva
(CPSCLK).
El modo de contador de 8 bits que utiliza el pin T0CKI se selecciona estableciendo el bit
TMR0CS en el registro OPCIÓN en "1" y restableciendo el bit T0XCS en el registro
CPSCON0 en "0".
El modo de contador de 8 bits que utiliza la señal del oscilador de detección capacitiva
(CPSCLK) se selecciona estableciendo el bit TMR0CS en el registro OPCIÓN en '1' y
estableciendo el bit T0XCS en el registro CPSCON0 en '1'.
La transición ascendente o descendente del flanco incremental para cualquier fuente de
entrada está determinada por el bit TMR0SE en el registro OPCIÓN.

PRESCALIZADOR PROGRAMABLE DE SOFTWARE


Un preescalador programable por software está disponible para uso exclusivo con Timer0.
El preescalador se habilita borrando el bit PSA del registro OPCIÓN.
Nota: El temporizador de vigilancia (WDT) utiliza su propio preescalador independiente.
Hay ocho opciones de preescalador para el módulo Timer0 que van desde 1: 2 a 1: 256.
Los valores de preescala se pueden seleccionar a través de los bits PS <2: 0> del registro
OPTION.
Para tener un valor de preescalador de 1: 1 para el módulo Timer0, el preescalador debe
deshabilitarse estableciendo el bit PSA del registro OPCIÓN.
El preescalador no se puede leer ni escribir. Todas las instrucciones que escriban en el
registro TMR0 borrarán el preescalador
INTERRUPCIÓN DEL TEMPORIZADOR0

Timer0 generará una interrupción cuando el registro TMR0 se desborde de FFh a 00h. El bit de
bandera de interrupción TMR0IF del registro INTCON se establece cada vez que el registro TMR0
se desborda, independientemente de si la interrupción Timer0 está habilitada o no. El bit TMR0IF
solo se puede borrar en el software. La habilitación de interrupciones Timer0 es el bit TMR0IE del
registro INTCON.

Nota: La interrupción del Timer0 no puede despertar al procesador desde la suspensión ya que el
temporizador se congela durante la suspensión.

SINCRONIZACIÓN DEL MODO CONTADOR DE 8 BITS


En el modo Contador de 8 bits, el flanco de incremento en el pin T0CKI debe sincronizarse
con el reloj de instrucciones. La sincronización se puede lograr muestreando la salida del
preescalador en los ciclos Q2 y Q4 del reloj de instrucciones. Los períodos alto y bajo de la
fuente de reloj externa deben cumplir con los requisitos de tiempo como se muestra en la
Sección 30.0 "Especificaciones eléctricas".

FUNCIONAMIENTO DURANTE EL SUEÑO

Timer0 no puede funcionar mientras el procesador está en modo de suspensión. El contenido del
registro TMR0 permanecerá sin cambios mientras el procesador esté en modo de suspensión

OPTION_REG: REGISTRO DE OPCIONES

Leyenda:
R = bit legible
W = bit grabable
U = bit no implementado, leído como "0"
u = El bit no cambia
x = Bit es desconocido
-n / n = Valor en POR y BOR / Valor en todos los demás restablecimientos
"1" = El bit está establecido
"0" = El bit se borra

bit 7 / WPUEN: Bit de habilitación de pull-up débil


1 = Todas las pull-up débiles están deshabilitadas (excepto MCLR, si está habilitado)
0 = Los pull-ups débiles se habilitan mediante valores de pestillo WPUx individuales
bit 6 INTEDG: Bit de selección de borde de interrupción
1 = Interrupción en el flanco ascendente del pin RB0 / INT
0 = Interrupción en el flanco descendente del pin RB0 / INT
bit 5 TMR0CS: Bit de selección de fuente de reloj
1 = Transición en el pin RA4 / T0CKI
0 = Reloj de ciclo de instrucción interno (FOSC / 4)
bit 4 TMR0SE: bit de selección de borde de origen
1 = Incremento en la transición de alto a bajo en el pin T0CKI
0 = Incremento en la transición de bajo a alto en el pin T0CKI
bit 3 PSA: bit de asignación de preescalador
1 = Prescaler no está asignado al módulo Timer0
0 = Prescaler está asignado al módulo Timer0
bit 2-0 PS <2: 0>: bits de selección de rango del preescalador

Valor de bit Rango


000 1:2
001 1:4
010 1:8
011 1 : 16
100 1 : 32
101 1 : 64
110 1 : 128
111 1 : 256

RESUMEN DE REGISTROS ASOCIADOS CON TIMER0

Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


CPSCON0 CPSON CPSRM — — CPSRNG CPSRNG CPSOU T0XCS
1 0 T
INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF
OPTION_RE / INTED TMR0C TMR0S PSA PS2 PS1 PS0
G WPUEN G S E
TMR0 Timer0 Module Register
TRISA — — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA
0

MÓDULO TIMER1 CON CONTROL DE PUERTA


El módulo Timer1 es un temporizador / contador de 16 bits con las siguientes
características:
• Par de registro de contador / temporizador de 16 bits (TMR1H: TMR1L)
• Fuente de reloj interno o externo programable
• Prescaler de 2 bits
• Circuito oscilador dedicado de 32 kHz
• Comparador sincronizado opcionalmente
• Varias fuentes de puerta Timer1 (habilitación de conteo)
• Interrupción por desbordamiento
• Reactivación en caso de desbordamiento (reloj externo, solo modo asíncrono)
• Base de tiempo para la función Capturar / Comparar
• Activador de evento especial (con CCP / ECCP)
• Polaridad de fuente de puerta seleccionable
• Modo de cambio de puerta
• Modo de puerta de un solo pulso
• Estado del valor de la puerta
• Interrupción de evento de puerta
La figura 21-1 es un diagrama de bloques del módulo Timer1.
DIAGRAMA DE BLOQUE TIMER1

Nota

1: ST Buffer es del tipo de alta velocidad cuando se usa T1CKI.


2: El registro del temporizador1 se incrementa en el flanco ascendente.

3: Sincronizar no funciona mientras está en suspensión.

Operación Timer1
El módulo Timer1 es un contador incremental de 16 bits al que se accede a través del par
de registros TMR1H: TMR1L. Las escrituras en TMR1H o TMR1L actualizan directamente el
contador.
Cuando se usa con una fuente de reloj interno, el módulo es un temporizador y se
incrementa en cada ciclo de instrucción.
Cuando se usa con una fuente de reloj externa, el módulo se puede usar como
temporizador o contador y se incrementa en cada borde seleccionado de la fuente
externa.
Timer1 se habilita configurando los bits TMR1ON y TMR1GE en los registros T1CON y
T1GCON, respectivamente. La Tabla 21-1 muestra las selecciones de habilitación del
Timer1
SELECCIÓN DE HABILITACION TIMER1

TMR1ON TMR1GE Operación Timer1


0 0 Apagado
0 1 Apagado
1 0 Siempre encendido
1 1 Count Enabled

Selección de fuente de reloj


Los bits TMR1CS <1: 0> y T1OSCEN del registro T1CON se utilizan para seleccionar la
fuente de reloj para Timer1.
SELECCIONES DE FUENTE DE RELOJ

TMR1CS1 TMR1CS T1OSCEN Fuente de reloj


0
0 1 x Reloj del sistema (FOSC)
0 0 x Reloj de instrucciones (FOSC / 4)
1 1 x Oscilador de detección capacitiva
1 0 0 Reloj externo en el pin T1CKI
1 0 1 Circuito de Osc.en los pines T1OSI / T1OSO

FUENTE DE RELOJ INTERNO


Cuando se selecciona la fuente de reloj interno, el par de registros TMR1H: TMR1L se
incrementará en múltiplos de FOSC según lo determine el preescalador Timer1.
Cuando se selecciona la fuente de reloj interno FOSC, el valor del registro Timer1 se
incrementará en cuatro conteos en cada ciclo de reloj de instrucción. Debido a esta
condición, se producirá un error de resolución de 2 LSB al leer el valor del Timer1. Para
utilizar la resolución completa de Timer1, se debe usar una señal de entrada asíncrona
para controlar la entrada de reloj de Timer1.
Se pueden utilizar las siguientes fuentes asincrónicas:
• Evento asincrónico en el pin T1G a Timer1 Gate
• Entrada del comparador C1 o C2 a la puerta Timer1
FUENTE DE RELOJ EXTERNA
Cuando se selecciona la fuente de reloj externa, el módulo Timer1 puede funcionar como
temporizador o contador.
Cuando está habilitado para contar, el Timer1 se incrementa en el flanco ascendente de la
entrada de reloj externo T1CKI o la señal del oscilador de detección capacitiva. Cualquiera
de estas fuentes de reloj externas se puede sincronizar con el reloj del sistema del
microcontrolador o se pueden ejecutar de forma asincrónica.
Cuando se utiliza como temporizador con un oscilador de reloj, se puede utilizar un cristal
externo de 32,768 kHz junto con el circuito del oscilador interno dedicado.
Nota: En el modo Contador, el contador debe registrar un flanco descendente antes del
primer
Incremento del flanco ascendente después de una o más de las siguientes condiciones:
• Timer1 habilitado después de POR
• Escribir en TMR1H o TMR1L
• El temporizador 1 está desactivado
• El Timer1 está deshabilitado (TMR1ON = 0) cuando T1CKI está alto, entonces el Timer1
está habilitado (TMR1ON = 1) cuando T1CKI está bajo.

Timer1 Prescaler
Timer1 tiene cuatro opciones de preescalador que permiten 1, 2, 4 u 8 divisiones de la
entrada del reloj. Los bits T1CKPS del registro T1CON controlan el contador de preescala.
El contador de preescala no se puede leer ni escribir directamente; sin embargo, el
contador de pre-escalador se borra al escribir en TMR1H o TMR1L.

Oscilador Timer1
Un circuito oscilador dedicado de baja potencia de 32,768 kHz está incorporado entre los
pines T1OSI (entrada) y T1OSO (salida del amplificador). Este circuito interno debe
utilizarse junto con un cristal externo de 32,768 kHz.
El circuito del oscilador se habilita estableciendo el bit T1OSCEN del registro T1CON. El
oscilador seguirá funcionando durante la suspensión.
Nota: El oscilador requiere un tiempo de puesta en marcha y estabilización antes de su
uso. Por lo tanto, se debe configurar T1OSCEN y observar un retraso adecuado antes de
habilitar el Timer1.

Funcionamiento del temporizador 1 en modo contador asíncrono


Si se establece el bit de control T1SYNC del registro T1CON, la entrada del reloj externo no
está sincronizada. El temporizador se incrementa de forma asíncrona a los relojes de pase
internos. Si se selecciona una fuente de reloj externa, el temporizador continuará
funcionando durante la suspensión y puede generar una interrupción en caso de
desbordamiento, lo que reactivará el procesador. Sin embargo, se necesitan precauciones
especiales en el software para leer / escribir el temporizador (consulte
Sección 21.5.1 “Lectura y escritura del temporizador1 en modo contador asíncrono”).
Nota: Al cambiar de funcionamiento síncrono a asíncrono, es posible omitir un
incremento. Al cambiar de funcionamiento asíncrono a síncrono, es posible producir un
incremento adicional.

TEMPORIZADOR DE LECTURA Y ESCRITURA1 EN MODO DE CONTADOR ASÍNCRONO


La lectura de TMR1H o TMR1L mientras el temporizador está funcionando desde un reloj
asíncrono externo asegurará una lectura válida (cuidado en el hardware). Sin embargo, el
usuario debe tener en cuenta que leer el temporizador de 16 bits en dos valores de 8 bits
en sí mismo, plantea ciertos problemas, ya que el temporizador puede desbordarse entre
las lecturas.
Para escrituras, se recomienda que el usuario simplemente detenga el temporizador y
escriba los valores deseados. Puede producirse una contención de escritura escribiendo
en los registros del temporizador, mientras que el registro se incrementa. Esto puede
producir un valor impredecible en el par de registros TMR1H: TMR1L.

21.6 Puerta del temporizador 1


El Timer1 se puede configurar para que cuente libremente o el recuento se puede
habilitar y deshabilitar utilizando los circuitos de Timer1 Gate. Esto también se conoce
como Timer1 Gate Enable. Timer1 Gate también puede ser controlado por múltiples
fuentes seleccionables.

21.6.1 HABILITACIÓN DE PUERTA TIMER1


El modo Timer1 Gate Enable se habilita configurando el bit TMR1GE del registro T1GCON.
La polaridad del modo Timer1 Gate Enable se configura usando el bit T1GPOL del registro
T1GCON.
Cuando el modo Timer1 Gate Enable está habilitado, Timer1 se incrementará en el flanco
ascendente de la fuente de reloj del Timer1. Cuando el modo Timer1 Gate Enable está
desactivado, no se producirá ningún incremento y Timer1 mantendrá la cuenta actual.
Consulte la Figura 21-3 para obtener detalles sobre el tiempo.

SELECCIONES DE HABILITACIÓN DE PUERTA TIMER1

T1CLK T1GPOL T1G Operación Timer1


 0 0 Recuentos
 0 1 Sostiene la cuenta
 1 0 Sostiene la cuenta
 1 1 Recuentos

21.6.2 SELECCIÓN DE FUENTE DE PUERTA TIMER1


La fuente Timer1 Gate se puede seleccionar de una de cuatro fuentes diferentes. La
selección de fuente está controlada por los bits T1GSS del registro T1GCON. También se
puede seleccionar la polaridad para cada fuente disponible. La selección de polaridad está
controlada por el bit T1GPOL del registro T1GCON.

FUENTES DE PUERTA TIMER1

T1GSS Fuente de puerta Timer1


00 Pin de puerta Timer1
01 Desbordamiento de Timer0 (incrementos de TMR0 de FFh a 00h)
10 Salida del comparador 1 sync_C1OUT (opcionalmente salida sincronizada del Timer1)
11 Salida del comparador 2 sync_C2OUT (opcionalmente salida sincronizada del Timer1)

21.6.2.1 Operación de puerta de clavija T1G


El pin T1G es una fuente para el control de puerta Timer1. Se puede utilizar para
suministrar una fuente externa a los circuitos de la puerta del Timer1.

21.6.2.2 Operación de la puerta de desbordamiento del temporizador 0


Cuando el Timer0 aumenta de FFh a 00h, se generará automáticamente un pulso de
menor a mayor y se suministrará internamente al circuito de la puerta del Timer1.
21.6.2.3 Funcionamiento de la puerta del comparador C1
La salida resultante de una operación del Comparador 1 se puede seleccionar como fuente
para el control de puerta Timer1. La salida del Comparador 1 (sync_C1OUT) puede
sincronizarse con el reloj del Timer1 o dejarse asíncrona. Para obtener más información,
consulte la Sección 19.4.1 “Sincronización de salida del comparador”.

21.6.2.4 Operación de puerta del comparador C2


La salida resultante de una operación del Comparador 2 se puede seleccionar como fuente
para el control de puerta Timer1. La salida del Comparador 2 (sync_C2OUT) puede
sincronizarse con el reloj Timer1 o dejarse asíncrona. Para obtener más información,
consulte la Sección 19.4.1 “Sincronización de salida del comparador”.

21.6.3 MODO DE CAMBIO DE PUERTA DEL TEMPORIZADOR1


Cuando el modo Timer1 Gate Toggle está habilitado, es posible medir la duración de ciclo
completo de una señal de puerta Timer1, a diferencia de la duración de un pulso de un
solo nivel.
La fuente de Timer1 Gate se enruta a través de un flip-flop que cambia de estado en cada
borde creciente de la señal. Consulte la Figura 21-4 para obtener detalles sobre el tiempo.
El modo Timer1 Gate Toggle se habilita configurando el bit T1GTM del registro T1GCON.
Cuando se borra el bit T1GTM, el flip-flop se borra y se mantiene libre. Esto es necesario
para controlar qué borde se mide.
Nota: Habilitar el modo de alternancia al mismo tiempo que se cambia la polaridad de la
puerta puede resultar en un funcionamiento indeterminado.

21.6.4 MODO DE IMPULSO SIMPLE TIMER1 GATE


Cuando el modo Timer1 Gate Single-Pulse está habilitado, es posible capturar un solo
evento de puerta de pulso. El modo Timer1 Gate Single-Pulse se habilita primero
estableciendo el bit T1GSPM en el registro T1GCON. A continuación, se debe establecer el
bit T1GGO / DONE en el registro T1GCON. El Timer1 estará completamente habilitado en
el próximo flanco incremental. En el siguiente borde posterior del pulso, el bit T1GGO /
DONE se borrará automáticamente. No se permitirá que ningún otro evento de puerta
incremente el Timer1 hasta que el bit T1GGO / DONE se establezca nuevamente en el
software. Consulte la Figura 21-5 para obtener detalles sobre el tiempo.
Si el modo de puerta de pulso simple se inhabilita al borrar el bit T1GSPM en el registro
T1GCON, el bit T1GGO / DONE también debe borrarse.
Habilitar el modo de alternancia y el modo de pulso único simultáneamente permitirá que
ambas secciones funcionen juntas. Esto permite medir los tiempos de ciclo en la fuente
Timer1 Gate. Consulte la Figura 21-6 para obtener detalles sobre el tiempo.

21.6.5 ESTADO DEL VALOR DE LA PUERTA DEL TEMPORIZADOR1


Cuando se utiliza el estado del valor de la puerta del temporizador 1, es posible leer el
nivel más actual del valor de control de la puerta. El valor se almacena en el bit T1GVAL en
el registro T1GCON. El bit T1GVAL es válido incluso cuando la puerta Timer1 no está
habilitada (el bit TMR1GE se borra).

21.6.6 INTERRUPCIÓN DE EVENTO DE PUERTA DEL TEMPORIZADOR1


Cuando la interrupción del evento de puerta del temporizador 1 está habilitada, es posible
generar una interrupción al finalizar un evento de puerta. Cuando ocurre el flanco
descendente de T1GVAL, se establece el bit de bandera TMR1GIF en el registro PIR1. Si se
establece el bit TMR1GIE en el registro PIE1, se reconocerá una interrupción.
El bit de bandera TMR1GIF opera incluso cuando la puerta Timer1 no está habilitada (el bit
TMR1GE se borra).

21.7 Interrupción del temporizador 1


El par de registros Timer1 (TMR1H: TMR1L) aumenta a FFFFh y se transfiere a 0000h.
Cuando el Timer1 se reinicia, se establece el bit indicador de interrupción del Timer1 del
registro PIR1. Para habilitar la interrupción en rollover, debe configurar estos bits:
• Bit TMR1ON del registro T1CON
• Bit TMR1IE del registro PIE1
• Bit PEIE del registro INTCON
• Bit GIE del registro INTCON
La interrupción se borra borrando el bit TMR1IF en la rutina de servicio de interrupción.
21.8 Funcionamiento del temporizador 1 durante la suspensión
El temporizador 1 solo puede funcionar durante la suspensión cuando se configura en el
modo de contador asíncrono. En este modo, se puede utilizar una fuente de reloj o cristal
externa para incrementar el contador. Para configurar el temporizador para activar el
dispositivo:
• El bit TMR1ON del registro T1CON debe establecerse
• Se debe establecer el bit TMR1IE del registro PIE1
• Se debe establecer el bit PEIE del registro INTCON
• Se debe establecer el bit T1SYNC del registro T1CON
• Deben configurarse los bits TMR1CS del registro T1CON
• El bit T1OSCEN del registro T1CON debe estar configurado
El dispositivo se activará en caso de desbordamiento y ejecutará las siguientes
instrucciones. Si el bit GIE del registro INTCON está establecido, el dispositivo llamará a la
rutina de servicio de interrupción.
El oscilador Timer1 seguirá funcionando en reposo independientemente de la
configuración del bit T1SYNC.

21.9 Base de tiempo de captura / comparación de ECCP / CCP


El módulo CCP1 usa el par de registros TMR1H: TMR1L como base de tiempo cuando
opera en modo Capturar o Comparar.
En el modo de captura, el valor en el par de registros TMR1H: TMR1L se copia en el par de
registros CCPR1H: CCPR1L en un evento configurado.
En el modo de comparación, se activa un evento cuando el valor del par de registros
CCPR1H: CCPR1L coincide con el valor del par de registros TMR1H: TMR1L. Este evento
puede ser un desencadenante de evento especial.
Para obtener más información, consulte la Sección 24.0 “Módulos de captura /
comparación / PWM”.

21.10 Activador de evento especial ECCP / CCP


Cuando cualquiera de los CCP está configurado para disparar un evento especial, el
disparador borrará el par de registros TMR1H: TMR1L. Este evento especial no causa una
interrupción de Timer1. El módulo CCP aún puede estar configurado para generar una
interrupción CCP.
En este modo de operación, el par de registros CCPR1H: CCPR1L se convierte en el registro
de período para Timer1.
El temporizador 1 debe estar sincronizado y FOSC / 4 debe seleccionarse como fuente de
reloj para utilizar el disparador de evento especial. El funcionamiento asincrónico de
Timer1 puede hacer que se pierda un activador de evento especial.
En el caso de que una escritura en TMR1H o TMR1L coincida con un Disparador de evento
especial del CCP, la escritura tendrá prioridad.
Para obtener más información, consulte la Sección 16.2.5 "Activador de evento especial".

21.11 Registro de control del temporizador 1


El registro de control Timer1 (T1CON), que se muestra en el registro 21-1, se utiliza para
controlar Timer1 y seleccionar las diversas funciones del módulo Timer1.

REGISTRO 21-1: T1CON: REGISTRO DE CONTROL DEL TEMPORIZADOR1

bit 7-6 TMR1CS <1: 0>: Timer1 Clock Source Select bits, Bits de selección de fuente de reloj
11 = La fuente de reloj del Timer1 es un oscilador de detección capacitiva (CAPOSC)
10 = La fuente de reloj del Timer1 es pin u oscilador:
Si T1OSCEN = 0: Reloj externo desde el pin T1CKI (en el borde ascendente)
Si T1OSCEN = 1: Oscilador de cristal en los pines T1OSI / T1OSO
01 = La fuente del reloj Timer1 es el reloj del sistema (FOSC)
00 = La fuente del reloj Timer1 es un reloj de instrucciones (FOSC / 4)

bit 5-4 T1CKPS <1: 0>: Timer1 Input Clock Prescale Select bits, Bits de selección de
preescala de reloj de entrada
11 = 1: 8 Valor de preescala
10 = 1: 4 Valor de preescala
01 = 1: 2 Valor de preescala
00 = 1: 1 valor de preescala

bit 3 T1OSCEN: Bit de control de habilitación del oscilador LP


1 = Circuito oscilador Timer1 dedicado habilitado
0 = Circuito oscilador Timer1 dedicado deshabilitado

bit 2 T1SYNC: Timer1 Bit de control de sincronización de entrada de reloj externo


TMR1CS <1: 0> = 1X
1 = No sincronizar entrada de reloj externo
0 = sincronizar la entrada del reloj externo con el reloj del sistema (FOSC)
TMR1CS <1: 0> = 0X
Este bit se ignora.

bit 1 no implementado: leído como "0"

bit 0 TMR1ON: Timer1 activado bit


1 = Habilita Timer1
0 = detiene el temporizador 1
Borra el flip-flop Timer1 Gate

21.12 Registro de control de puerta del temporizador 1


El registro de control de puerta de Timer1 (T1GCON), que se muestra en el registro 21-2,
se utiliza para controlar la puerta de Timer1.
REGISTRO 21-2: T1GCON: REGISTRO DE CONTROL DE PUERTA DEL TEMPORIZADOR1

bit 7 TMR1GE: Timer1 Gate Enable bit, Bit de habilitación de puerta


Si TMR1ON = 0: este bit se ignora
Si TMR1ON = 1:
1 = El conteo del Timer1 está controlado por la función de puerta Timer1
0 = Timer1 cuenta independientemente de la función de puerta Timer1

bit 6 T1GPOL: Timer1 Gate Polarity bit, Bit de polaridad de puerta


1 = La puerta del Timer1 está activa-alta (el Timer1 cuenta cuando la puerta está
alta)
0 = La puerta del temporizador1 está activa-baja (el temporizador1 cuenta cuando
la puerta está baja)

bit 5 T1GTM: Timer1 Gate Toggle Mode bit, Bit de modo de cambio de puerta
1 = El modo de conmutación de puerta del temporizador 1 está habilitado
0 = Timer1 Gate Toggle mode está deshabilitado y toggle flip flop está desactivado
El flip-flop de la puerta del temporizador 1 cambia en cada flanco ascendente.

bit 4 T1GSPM: Timer1 Gate Single-Pulse Mode bit, Bit de modo de pulso único de puerta
1 = Puerta del temporizador 1 El modo de pulso único está habilitado y está
controlando la puerta del temporizador 1
0 = El modo de pulso único de la puerta del temporizador 1 está deshabilitado

bit 3 T1GGO / DONE: Timer1 Gate Single-Pulse Acquisition Status bit, Bit de estado de
adquisición de pulso único de puerta
1 = La adquisición de un solo pulso de la puerta del temporizador 1 está lista,
esperando un flanco
0 = La adquisición de un solo pulso de la puerta del temporizador 1 se ha
completado o no se ha iniciado

bit 2 T1GVAL: bit de estado actual de la puerta del temporizador1


Indica el estado actual de la puerta Timer1 que podría proporcionarse a TMR1H: TMR1L.
No se ve afectado por Timer1 Gate Enable (TMR1GE).

bit 1-0 T1GSS <1: 0>: Timer1 Gate Source Select bits, Bits de selección de fuente de puerta
00 = Pin de puerta del temporizador1
01 = Salida de desbordamiento del Timer0
10 = Salida sincronizada opcional del comparador 1 (sync_C1OUT)
11 = Salida sincronizada opcional del comparador 2 (sync_C2OUT)

RESUMEN DE REGISTROS ASOCIADOS CON TIMER1

NOMBRE BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0


ANSELA — — — ANSA4 — ANSA2 ANSA1 ANSA0
CCP1CON P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M0
INTCON GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF
PIE1 TMR1GIE ADIE RCIE TXIE SSP1IE CCP1IE TMR2IE TMR1IE
PIR1 TMR1GIF ADIF RCIF TXIF SSP1IF CCP1IF TMR2IF TMR1IF
TMR1H Registro de retención para el byte más significativo del registro TMR1 de 16 bits
TMR1L Registro de retención para el byte menos significativo del registro TMR1 de 16 bits
TRISA — — TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
T1CON TMR1CS1 TMR1CS0 T1CKPS1 T1CKPS0 T1OSCEN T1SYNC — TMR1ON
T1GCON TMR1GE T1GPOL T1GTM T1GSPM T1GGO/DON T1GVAL T1GSS1 T1GSS0
E

22.0 MÓDULO TIMER2


El módulo Timer2 incorpora las siguientes características:
• Registros de temporizador y período de 8 bits (TMR2 y PR2, respectivamente)
• Legible y escribible (ambos registros)
• Prescaler programable por software (1: 1, 1: 4, 1:16 y 1:64)
• Posescalador programable por software (1: 1 a 1:16)
• Interrupción en la coincidencia de TMR2 con PR2, respectivamente
• Uso opcional como reloj de turno para los módulos MSSP1 (solo Timer2)
Consulte la Figura 22-1 para ver un diagrama de bloques de Timer2.

FIGURA 22-1: DIAGRAMA DE BLOQUE DE TIMER2

22.1 Operación del Timer2


La entrada de reloj a los módulos Timer2 es el reloj de instrucciones del sistema (FOSC /
4).
TMR2 se incrementa a partir de las 00 h en cada borde del reloj.
Un contador / preescalador de 4 bits en la entrada del reloj permite las opciones de
preescala de entrada directa, dividir por 4 y dividir por 16. Estas opciones son
seleccionadas por los bits de control del pre-escalador, T2CKPS <1: 0> del registro T2CON.
El valor de TMR2 se compara con el del registro de período, PR2, en cada ciclo de reloj.
Cuando los dos valores coinciden, el comparador genera una señal de coincidencia como
salida del temporizador. Esta señal también restablece el valor de TMR2 a 00h en el
siguiente ciclo y activa el contador de salida / escalador posterior (consulte la Sección 22.2
“Interrupción del temporizador2”).
Los registros TMR2 y PR2 se pueden leer y escribir directamente. El registro TMR2 se borra
en cualquier reinicio de dispositivo, mientras que el registro PR2 se inicializa a FFh. Tanto
los contadores de preescalador como los de posescalador se borran en los siguientes
eventos:
• una escritura en el registro TMR2
• una escritura en el registro T2CON
• Reinicio de encendido (POR)
• Restablecimiento de caída de voltaje (BOR)
• Reinicio de MCLR
• Reinicio del temporizador de vigilancia (WDT)
• Restablecimiento de desbordamiento de pila
• Restablecimiento de desbordamiento de pila
• Instrucción RESET
Nota: TMR2 no se borra cuando se escribe T2CON

22.2 Interrupción del temporizador 2


Timer2 también puede generar una interrupción de dispositivo opcional. La señal de salida
del Timer2 (coincidencia de TMR2 a PR2) proporciona la entrada para el contador /
posescalador de 4 bits. Este contador genera la bandera de interrupción de coincidencia
TMR2 que está bloqueada en TMR2IF del registro PIR1. La interrupción se habilita
configurando el bit de habilitación de interrupción de coincidencia TMR2, TMR2IE del
registro PIE1.
Se puede seleccionar un rango de 16 opciones posescala (desde 1: 1 hasta 1:16 inclusive)
con los bits de control posescalador, T2OUTPS <3: 0>, del registro T2CON.

22.3 Salida Timer2


La salida sin escala de TMR2 está disponible principalmente para el módulo CCP1, donde
se utiliza como base de tiempo para operaciones en modo PWM.
Timer2 se puede usar opcionalmente como fuente de reloj de cambio para el módulo
MSSP1 que opera en modo SPI. Se proporciona información adicional en la Sección 25.1
"Descripción general del módulo SSP maestro (MSSP1)"

22.4 Funcionamiento del temporizador 2 durante la suspensión


Los temporizadores Timer2 no se pueden operar mientras el procesador está en modo de
suspensión. El contenido de los registros TMR2 y PR2 permanecerá sin cambios mientras
el procesador esté en modo de suspensión.

REGISTRO 22-1: T2CON: REGISTRO DE CONTROL TIMER2

bit 7 No implementado: leído como "0"

bit 6-3 T2OUTPS <3: 0>: Timer2 Output Postscaler Select bits, Bits de selección salida
Postcaler
0000 = Posescalador 1: 1
0001 = Posescalador 1: 2
0010 = Posescalador 1: 3
0011 = 1: 4 Posescalador
0100 = Posescalador 1: 5
0101 = Posescalador 1: 6
0110 = Posescalador 1: 7
0111 = Posescalador 1: 8
1000 = Posescalador 1: 9
1001 = 1:10 Post-escalador
1010 = 1:11 Posescalador
1011 = 1:12 Posescalador
1100 = 1:13 Posescalador
1101 = 1:14 Posescalador
1110 = 1:15 Posescalador
1111 = 1:16 Posescalador
bit 2 TMR2ON: Timer2 en bit
1 = Timer2 está encendido
0 = Timer2 está apagado

bit 1-0 T2CKPS <1: 0>: Timer2 Clock Prescale Select bits, Bits de selección de preescala de
reloj
00 = Prescaler es 1
01 = Prescaler es 4
10 = Prescaler tiene 16
11 = Prescaler es 64

RESUMEN DE REGISTROS ASOCIADOS CON TIMER2


Nombr Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
e
INTCON GIE PEIE TMR0I INT IOCIE TMR0IF INTF IOCIF
E E
PIE1 TMR1GI ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE
E
PIR1 TMR1GIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF
PR2 Registro de período del módulo Timer2
T2CON — T2OUTPS<3:0> TMR2O T2CKPS1 T2CKPS0
N

También podría gustarte