Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
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
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
Nota
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
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.
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 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 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)
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