Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Data Pic Interrupciones Traducido
Data Pic Interrupciones Traducido
PIC18(L)F2X/45K50
10.0 INTERRUPCIONES 10.2 Prioridad de interrupción
Los dispositivos PIC18(L)F2X/45K50 tienen múltiples fuentes de La función de prioridad de interrupción se habilita configurando el bit
interrupción y una función de prioridad de interrupción que permite IPEN del registro RCON. Cuando la prioridad de interrupción está
asignar un nivel de prioridad alto o bajo a la mayoría de las fuentes habilitada, los bits de habilitación de interrupción global GIE/GIEH y
de interrupción (INT0 no tiene un bit de prioridad, siempre es una PEIE/GIEL del modo de compatibilidad se reemplazan por las
prioridad alta). El vector de interrupción de alta prioridad está en habilitaciones de interrupción global de alta prioridad GIEH y GIEL de
0008h y el vector de interrupción de baja prioridad está en 0018h. Un baja prioridad. Cuando se establece, el bit GIEH del registro INT CON
evento de interrupción de alta prioridad interrumpirá una interrupción habilita todas las interrupciones que tienen su registro IPRx asociado
de baja prioridad que pueda estar en curso. o bit de prioridad de registro INTCONx establecido (prioridad alta).
Cuando está claro, el bit GIEH desactiva todas las fuentes de
Hay 13 registros utilizados para controlar la operación de interrupción.
interrupción, incluidas las seleccionadas como de baja prioridad.
Cuando está borrado, el bit GIEL del registro INTCON deshabilita solo
Estos registros son: las interrupciones que tienen su bit de prioridad asociado borrado
• INTCON, INTCON2, INTCON3 • PIR1, PIR2, (prioridad baja). Cuando se establece, el bit GIEL habilita las fuentes
de baja prioridad cuando también se establece el bit GIEH.
PIR3 • PIE1, PIE2, PIE3 • IPR1, IPR2, IPR3
En general, las fuentes de interrupción tienen tres bits para controlar 10.3 Respuesta a la interrupción
su funcionamiento. Ellos son: • Bit de bandera para indicar que
Cuando se responde a una interrupción, el bit de habilitación de
ocurrió un evento de interrupción interrupción global se borra para deshabilitar más interrupciones. El
bit GIE/GIEH es la habilitación de interrupción global cuando se borra
• Bit de habilitación que permite que la ejecución del programa el bit IPEN. Cuando se establece el bit IPEN, que habilita los niveles
bifurcar a la dirección del vector de interrupción cuando se de prioridad de interrupción, el bit GIEH es la habilitación de
establece el bit de bandera • Bit de prioridad para seleccionar interrupción global de alta prioridad y el bit GIEL es la habilitación de
prioridad alta o prioridad baja interrupción global de baja prioridad. Las fuentes de interrupción de
alta prioridad pueden interrumpir una interrupción de baja prioridad.
10.1 Compatibilidad de gama media Las interrupciones de baja prioridad no se procesan mientras las
interrupciones de alta prioridad están en curso.
Cuando se borra el bit IPEN (estado predeterminado), la función de
La dirección de retorno se coloca en la pila y la PC se carga con la
prioridad de interrupción se desactiva y las interrupciones son
dirección del vector de interrupción (0008h o 0018h). Una vez en la
compatibles con los dispositivos de rango medio del microcontrolador
Rutina de Servicio de Interrupción, la(s) fuente(s) de la interrupción
PIC. En el modo de compatibilidad, los bits de prioridad de interrupción
pueden determinarse sondeando los bits indicadores de interrupción
de los registros IPRx no tienen efecto. El bit PEIE/GIEL del registro
en los registros INTCONx y PIRx. El software debe borrar los bits de
INTCON es la habilitación de interrupción global para los periféricos.
la bandera de interrupción antes de volver a habilitar las interrupciones
El bit PEIE/GIEL deshabilita solo las fuentes de interrupción periféricas
para evitar repetir la misma interrupción.
y habilita las fuentes de interrupción periféricas cuando también se
establece el bit GIE/GIEH. El bit GIE/GIEH del registro INTCON es la
habilitación de interrupción global que habilita todas las fuentes de La instrucción “return from interrupt”, RETFIE, sale de la rutina de
interrupción no periféricas y deshabilita todas las fuentes de interrupción y establece el bit GIE/GIEH (GIEH o GIEL si se usan
interrupción, incluidos los periféricos. Todas las interrupciones se niveles de prioridad), que vuelve a habilitar las interrupciones.
PIC18(L)F2X/45K50
Despierta si en
INT0IF
Modos inactivo o de suspensión
INT0IE
TMR0IF
TMR0IE
TMR0IP
IOCIF (1)
IOCIE
IOCIP
INT1SI Interrumpir a la CPU
INT1IE Vector a ubicación
PIR1<7:0>
TARTA1<7:0> INT1IP 0008h
IPR1<7:0> INT2IF
PIR2<7:0> INT2IE
PIE2<7:0> INT2IP
IPR2<7:0>
GIEH/GIE
PIR3<7:0>
PIE3<7:0>
IPR3<7:0> IPEN
IPEN
GIEL/PEIE
IPEN
PIR1<7:0>
TARTA1<7:0>
IPR1<7:0>
PIR2<7:0>
PIE2<7:0>
IPR2<7:0>
PIR3<7:0>
PIE3<7:0>
IPR3<7:0> Interrumpir a la CPU
TMR0IF Vector a ubicación
TMR0IE 0018h
TMR0IP
(1)
IOCIF
IOCIE
IOCIP GIEH/GIE
GIEL/PEIE
INT1SI
INT1IE
INT1IP
INT2IF
INT2IE
INT2IP
Nota 1: La interrupción IOCIF también requiere las habilitaciones de IOCB de pin individual.
PIC18(L)F2X/45K50
10.4 Registros INTCON
Los registros INTCON son registros de lectura y escritura, que
contienen varios bits de activación, prioridad y bandera.
PIC18(L)F2X/45K50
10.8 Definiciones de registros: REGISTRO DE CONTROL DE
INTERRUPCIONES 10-1: INTCON: REGISTRO DE CONTROL DE INTERRUPCIONES
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
1 = Al menos uno de los pines IOC cambió de estado (debe ser borrado por software)
0 = Ninguno de los pines IOC ha cambiado de estado
Nota 1: una condición de discrepancia seguirá activando el bit IOCIF. La lectura de PORTB/PORTC finalizará la
condición de discrepancia y permitir que el bit se borre.
2: Las interrupciones de cambio de puerto también requieren las habilitaciones de pines individuales IOCBx/IOCCx.
Nota: Los bits de marca de interrupción se establecen cuando se produce una interrupción.
PIC18(L)F2X/45K50
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
1 = alta prioridad
0 = Prioridad baja
bit 1 Sin implementar: se lee como '0'
bit 0 IOCIP: bit de prioridad de interrupción de cambio de puerto
1 = alta prioridad
0 = Prioridad baja
Nota: Los bits de marca de interrupción se establecen cuando se produce una interrupción.
PIC18(L)F2X/45K50
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
Nota: Los bits de marca de interrupción se establecen cuando se produce una interrupción.
PIC18(L)F2X/45K50
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
1 = Un evento de sintonización de reloj activo generó una interrupción (debe borrarse en el software)
0 = No hay interrupción de sintonización de reloj activa pendiente
bit 6 ADIF: Bit de bandera de interrupción del convertidor A/D
1 = El búfer de recepción de EUSART, RCREG1, está lleno (se borra cuando se lee RCREG1)
0 = El búfer de recepción de EUSART está vacío
bit 4 TXIF: EUSART Transmit Interrupt Flag bit
1 = El búfer de transmisión de EUSART, TXREG1, está vacío (se borra cuando se escribe TXREG1)
0 = El búfer de transmisión de EUSART está lleno
Modo de captura:
1 = Ocurrió una captura de registro TMR1 (debe ser borrado por software)
0 = No se produjo ninguna captura de registro TMR1
Modo de comparación:
1 = Ocurrió una coincidencia de comparación de registro TMR1 (debe ser borrada por software)
0 = No se produjo ninguna coincidencia de comparación de registros TMR1
Modo PWM:
Sin usar en este modo
1 = Ocurrió coincidencia de TMR2 con PR2 (debe ser borrado por software)
0 = No se produjo ninguna coincidencia de TMR2 con PR2
PIC18(L)F2X/45K50
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
1 = El oscilador del dispositivo falló, la entrada del reloj cambió a HFINTOSC (debe ser borrado por software)
0 = reloj del dispositivo en funcionamiento
1 = Ocurrió una condición de bajo voltaje (dirección determinada por el bit VDIRMAG del
registro HLVDCON)
0 = No se ha producido una condición de bajo voltaje
bit 1 TMR3IF: Bit de indicador de interrupción de desbordamiento TMR3
de interrupción CCP2:
1 = Ocurrió una captura de registro TMR1 (debe ser borrado por software)
0 = No se produjo ninguna captura de registro
TMR1 Modo de comparación:
1 = Ocurrió una coincidencia de comparación de registro TMR1 (debe ser borrada por software)
0 = No se produjo ninguna coincidencia de comparación de registros TMR1
Modo PWM:
Sin uso en este modo.
PIC18(L)F2X/45K50
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
1 = Habilitado
0 = Deshabilitado
PIC18(L)F2X/45K50
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
1 = alta prioridad
0 = Prioridad baja
bit 6 ADIP: bit de prioridad de interrupción del convertidor A/D
1 = alta prioridad
0 = Prioridad baja
bit 5 RCIP: bit de prioridad de interrupción de recepción EUSART
1 = alta prioridad
0 = Prioridad baja
bit 4 TXIP: bit de prioridad de interrupción de transmisión EUSART
1 = alta prioridad
0 = Prioridad baja
bit 3 SSPIP: bit de prioridad de interrupción del puerto serie síncrono maestro
1 = alta prioridad
0 = Prioridad baja
bit 2 CCP1IP: bit de prioridad de interrupción CCP1
1 = alta prioridad
0 = Prioridad baja
bit 1 TMR2IP: bit de prioridad de interrupción de coincidencia de TMR2 a PR2
1 = alta prioridad
0 = Prioridad baja
bit 0 TMR1IP: bit de prioridad de interrupción de desbordamiento TMR1
1 = alta prioridad
0 = Prioridad baja
PIC18(L)F2X/45K50
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
1 = alta prioridad
0 = Prioridad baja
bit 6 C1IP: Bit de prioridad de interrupción del comparador C1
1 = alta prioridad
0 = Prioridad baja
bit 5 C2IP: bit de prioridad de interrupción C2 del comparador
1 = alta prioridad
0 = Prioridad baja
bit 4 EEIP: bit de prioridad de interrupción de operación de escritura EEPROM/Flash de datos
1 = alta prioridad
0 = Prioridad baja
bit 3 BCLIP: bit de prioridad de interrupción de colisión de bus MSSP
1 = alta prioridad
0 = Prioridad baja
bit 2 HLVDIP: bit de prioridad de interrupción de detección de bajo voltaje
1 = alta prioridad
0 = Prioridad baja
bit 1 TMR3IP: bit de prioridad de interrupción de desbordamiento TMR3
1 = alta prioridad
0 = Prioridad baja
bit 0 CCP2IP: bit de prioridad de interrupción CCP2
1 = alta prioridad
0 = Prioridad baja
PIC18(L)F2X/45K50
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
1 = alta prioridad
0 = Prioridad baja
bit 2 USBIP: bit de prioridad de interrupción USB
1 = alta prioridad
0 = Prioridad baja
bit 1 TMR3GIP: bit de prioridad de interrupción de puerta TMR3
1 = alta prioridad
0 = Prioridad baja
bit 0 TMR1GIP: bit de prioridad de interrupción de puerta TMR1
1 = alta prioridad
0 = Prioridad baja
PIC18(L)F2X/45K50
10.9 Interrupciones de clavijas INTn 10.10 Interrupción TMR0
PIC18(L)F2X/45K50
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
Registrarse
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
PIC18(L)F2X/45K50
11.0 PUERTOS DE E/S 11.1 Registros PORTA
Según el dispositivo seleccionado y las funciones habilitadas, hay PORTA es un puerto bidireccional de 8 bits de ancho. El registro de
hasta cinco puertos disponibles. Todos los pines de los puertos de E/ dirección de datos correspondiente es TRISA. Establecer un bit TRISA
S están multiplexados con una o más funciones alternativas de las (= 1) convertirá el pin PORTA correspondiente en una entrada (es decir,
características periféricas del dispositivo. En general, cuando un deshabilitará el controlador de salida). Borrar un bit TRISA (= 0) hará
periférico está habilitado, ese pin no se puede usar como un pin de E/ que el pin PORTA correspondiente sea una salida (es decir, habilitará
S de propósito general. el controlador de salida y colocará el contenido del latch de salida en
el pin seleccionado).
Cada puerto cuenta con cinco registros para su funcionamiento. Estos
registros son: • Registro TRIS (registro de dirección de datos) • Registro Al leer el registro PORTA, se lee el estado de los pines, mientras que
al escribirlo, se escribirá en el latch PORT.
PORT (lee los niveles en los pines del
El registro Data Latch (LATA) también está mapeado en memoria.
Las operaciones de lectura, modificación y escritura en el registro
LATA leen y escriben el valor de salida bloqueado para PORTA.
dispositivo) • Registro LAT (bloqueo
de salida) • Registro ANSEL (control de entrada El pin RA4 se multiplexa con la entrada de reloj del módulo Timer0 y
una de las salidas del comparador para convertirse en el pin RA4/
analógica) • Registro SLRCON (control de velocidad de respuesta del puerto)
T0CKI/C1OUT. Los pines RA6 y RA7 están multiplexados con los pines
El Latch de datos (registro LAT) es útil para operaciones de escritura del oscilador principal; se habilitan como oscilador o pines de E/S
de modificación de lectura en el valor que manejan los pines de E/S. mediante la selección del oscilador principal en el registro de
configuración (consulte la Sección 26.1 "Bits de configuración" para
En la Figura 11-1 se muestra un modelo simplificado de un puerto de E/ obtener más detalles). Cuando no se usan como pines de puerto, RA6
S genérico, sin las interfaces a otros periféricos . y RA7 y sus bits TRIS y LAT asociados se leen como '0'.
FIGURA 11-1: PUERTO E/S GENÉRICO Los otros pines PORTA están multiplexados con entradas analógicas,
OPERACIÓN las entradas analógicas VREF+ y VREF- y la salida de referencia de
voltaje del comparador. La operación de los pines RA<3:0> y RA5 como
analógicos se selecciona configurando los bits ANSELA<5, 3:0> en el
RD LAT TRISx
registro ANSELA, que es la configuración predeterminada después de
Datos un reinicio de encendido.
Autobús
D q
Los pines RA0 a RA5 también se pueden usar como entradas o salidas
WR LAT clavija de E/S (1)
del comparador configurando los bits apropiados en los registros
o Puerto
CK CM1CON0 y CM2CON0.
Pestillo de datos
Nota: En un reinicio de encendido, RA5 y RA<3:0> se configuran
D q como entradas analógicas y se leen como '0'. RA4
ANSELx
está configurado como entrada digital.
WR TRIS
CK
El pin RA4/T0CKI/C1OUT es una entrada de disparador Schmitt.
Pestillo TRIS
Aporte Todos los demás pines PORTA tienen niveles de entrada TTL y
Buffer
controladores de salida CMOS completos.
RD TRIS
El registro TRISA controla los controladores de los pines PORTA,
incluso cuando se utilizan como entradas analógicas.
q D El usuario debe asegurarse de que los bits del registro TRISA se
mantengan configurados cuando los utilice como entradas analógicas.
ESES
Puerto RD
EJEMPLO 11-1: INICIALIZACIÓN DE PORTA
MOVLB 0xF ; Establecer BSR para SFR depositados
Nota 1: los pines de E/S tienen protección de diodo para VDD y VSS. CLRF LATA; Inicializar PORTA por
; salida de limpieza;
pestillos de datos
CLRF ANSELA ; Configurar E/S; para entradas
digitales
MOVLW 0CFh ; Valor utilizado para ;
inicializar datos
; dirección
MOVWF TRISA; Establecer RA<3:0> como entradas
; RA<5:4> como salidas
PIC18(L)F2X/45K50
RA0/C12IN0-/AN0 RA0 0 X O Salida de datos DIG LATA<0>; no se ve afectado por la entrada analógica.
1 0 I Entrada de datos TTL PORTA<0>; deshabilitado cuando la entrada analógica está habilitada.
Leyenda: AN = Entrada o salida analógica; TTL = entrada compatible con TTL; HV = Alto Voltaje; OD = drenaje abierto; XTAL = Cristal;
CMOS = entrada o salida compatible con CMOS; ST = entrada Schmitt Trigger con niveles CMOS; I2C™ = Entrada de
disparador Schmitt con I2C.
PIC18(L)F2X/45K50
TABLA 11-1: RESUMEN DE PORTA I/O (CONTINUACIÓN)
TRIS ANSEL Alfiler Buffer
Nombre del pin Función Descripción
Ajuste Ajuste Escribe Escribe
RA7/CLKI/OSC1 RA7 0-O Salida de datos DIG LATA<7>; desactivado en los modos de oscilador externo.
1 - yo Entrada de datos TTL PORTA<7>; deshabilitado en oscilador externo
modos.
CLKI x-yo AN Entrada de fuente de reloj externa; siempre asociado a
la función pin OSC1.
OSC1 x-yo Entrada de cristal de oscilador XTAL o búfer ST de entrada de fuente de
reloj externo cuando se configura en modo RC; CMOS de lo contrario.
Leyenda: AN = Entrada o salida analógica; TTL = entrada compatible con TTL; HV = Alto Voltaje; OD = drenaje abierto; XTAL = Cristal;
CMOS = entrada o salida compatible con CMOS; ST = entrada Schmitt Trigger con niveles CMOS; I2C™ = Entrada de
disparador Schmitt con I2C.
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
PIC18(L)F2X/45K50
11.1.1 PRIORIDAD DE SALIDA DE PORTA
Cada pin PORTA está multiplexado con otras funciones.
Los pines, sus funciones combinadas y sus prioridades de salida
se describen brevemente aquí. Para obtener información
adicional, consulte la sección correspondiente de esta hoja de
datos.
PIC18(L)F2X/45K50
RE3
RB3
4 SRQ P1D(1) D
C1SALIDA RB4
RD4
RA4
5 SRNQ D+ P1B
C2SALIDA RD5
RA5
RB5
6 OSC2 PGC TX/CK
CLKO ICDCK P1C
RA6 RB6 RD6
RC6
7 OSC1 DGP RX/DT
RA7 ICDDT P1D
RB7 RC7 RD7
PIC18(L)F2X/45K50
11.2 Registros PORTB 11.3 Funciones adicionales del pin PORTB
PORTB es un puerto bidireccional de 8 bits de ancho. El registro de Los pines PORTB RB<7:4> tienen una opción de interrupción al
dirección de datos correspondiente es TRISB. Establecer un bit cambiar. Todos los pines PORTB tienen una opción de pull-up débil.
TRISB (= 1) convertirá el pin PORTB correspondiente en una entrada
(es decir, deshabilitará el controlador de salida). Borrar un bit TRISB 11.3.1 DOMINALES DÉBILES
(= 0) convertirá el pin PORTB correspondiente en una salida (es Cada uno de los pines PORTB tiene un pull-up interno débil
decir, activará el controlador de salida y colocará el contenido del controlado individualmente. Cuando se establece, cada bit del
latch de salida en el pin seleccionado). registro WPUB habilita el pin pull-up correspondiente. Cuando se
El registro de bloqueo de datos (LATB) también está mapeado en borra, el bit RBPU del registro INTCON2 habilita pull-ups en todos
memoria. Las operaciones de lectura, modificación y escritura en el los pines que también tienen establecido su bit WPUB
registro LATB leen y escriben el valor de salida bloqueado para correspondiente. Cuando se establece, el bit RBPU desactiva todos
PORTB. los pull-ups débiles. El pull-up débil se apaga automáticamente
cuando el pin del puerto se configura como una salida. Los pull-ups
MOVLB 0xF ; Establecer BSR para SFR depositados Nota: En un restablecimiento de encendido, RB<5:0> se
CLRF LATB ; Inicializar PORTB por ; salida configuran como entradas analógicas de manera
de limpieza; pestillos de datos predeterminada y se leen como '0'; RB<7:6> se
configuran como entradas digitales.
MOVIL 0F0h ; Valor para inicial
MOVWF ANSELB ; Habilitar RB<3:0> para ; pines de Cuando el bit de configuración de PBADEN se
entrada digital; (no se requiere establece en '0', RB<5:0> se configurará
si el bit de configuración alternativamente como entradas digitales en POR.
; PBADEN es claro)
MOVLW 0CFh ; Valor utilizado para ;
11.3.2 INTERRUPCIÓN EN CAMBIO
inicializar datos; dirección
Cuatro de los pines PORTB (RB<7:4>) se pueden configurar
MOVWF TRISB ; Establecer RB<3:0> como entradas individualmente como pines de interrupción en el cambio. Los bits
; RB<5:4> como salidas de control en el registro IOCB habilitan (cuando están establecidos)
; RB<7:6> como entradas o deshabilitan (cuando están libres) la función de interrupción para cada pin.
PIC18(L)F2X/45K50
Una condición de discrepancia continuará configurando la bandera IOCIF 11.3.3 FUNCIONES ALTERNATIVAS
poco. Leer o escribir PORTB terminará con el desajuste
PORTB está multiplexado con varias funciones periféricas
condición y permitir que se borre el bit IOCIF. el pestillo
(Cuadro 11-5). Los pines tienen buffers de entrada TTL. Algunos de
mantener el último valor leído no se ve afectado por un MCLR ni
estas funciones de pin se pueden reubicar en pines alternativos
Restablecimiento de Brown-out. Después de cualquiera de estos reinicios, el
utilizando los bits del fusible de control en CONFIG3H. RB3 es el
El indicador IOCIF seguirá estando establecido si hay una discrepancia.
PIN predeterminado para SDO. Borrar el bit SDOMX mueve el
Nota: Si se produce un cambio en el pin de E/S Función pin SDO a RC7.
cuando se ejecuta la operación de lectura Otras dos funciones de pines, T3CKI y CCP2, pueden ser
(inicio del ciclo Q2), luego el IOCIF reubicados de sus pines predeterminados a pines PORTB por
Es posible que no se establezca el indicador de interrupción. Es más,
limpiando los fusibles de control en CONFIG3H. Claro
ya que una lectura o escritura en un puerto afecta a todos T3CMX y CCP2MX mueven las funciones de pin a RB5
bits de ese puerto, se debe tener cuidado cuando y RB3, respectivamente.
usando múltiples pines en Interrupt-on-Change
modo. Los cambios en un pin pueden no ser
visto durante el servicio de cambios en otro
alfiler.
RB0/INT0/FLT0/ RB0 0 X Salida de datos O DIG LATB<0>; no se ve afectado por la entrada analógica.
SRI/SDA/SDI/AN12
1 0 I Entrada de datos TTL PORTB<0>; deshabilitado cuando la entrada analógica
está habilitada.
Leyenda: AN = Entrada o salida analógica; TTL = entrada compatible con TTL; HV = Alto Voltaje; OD = drenaje abierto; XTAL = Cristal;
CMOS = entrada o salida compatible con CMOS; ST = entrada Schmitt Trigger con niveles CMOS; I2C = Entrada de disparador Schmitt
con I2C.
Nota 1: Asignación de pines predeterminada para SDO cuando se establece el bit de configuración SDOMX.
2: Asignación de pines alternativos para T3CKI y CCP2 cuando los bits de configuración T3CMX y CCP2MX están limpios.
3: La función está en PORTD/PORTE para dispositivos PIC18(L)F45K50.
PIC18(L)F2X/45K50
TABLA 11-5: RESUMEN DE E/S DE PORTB (CONTINUACIÓN)
TRIS ANSEL Alfiler Buffer
Alfiler Función Descripción
Ajuste Ajuste Escribe Escribe
RB2/INT2/CTED1/ RB2 0 X Salida de datos O DIG LATB<2>; no se ve afectado por la entrada analógica.
P1B/AN8
1 0 I Entrada de datos TTL PORTB<2>; deshabilitado cuando la entrada analógica
está habilitada.
Leyenda: AN = Entrada o salida analógica; TTL = entrada compatible con TTL; HV = Alto Voltaje; OD = drenaje abierto; XTAL = Cristal;
CMOS = entrada o salida compatible con CMOS; ST = entrada Schmitt Trigger con niveles CMOS; I2C = Entrada de disparador
Schmitt con I2C.
Nota 1: Asignación de pines predeterminada para SDO cuando se establece el bit de configuración SDOMX.
2: Asignación de pines alternativos para T3CKI y CCP2 cuando los bits de configuración T3CMX y CCP2MX están limpios.
3: La función está en PORTD/PORTE para dispositivos PIC18(L)F45K50.
PIC18(L)F2X/45K50
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
PIC18(L)F2X/45K50
11.4 Registros PORTC 11.4.1 PRIORIDAD DE SALIDA DE PUERTO
PORTC es un puerto bidireccional de 8 bits de ancho. El registro de Cada pin PORTC está multiplexado con otras funciones.
dirección de datos correspondiente es TRISC. Establecer un bit TRISC Los pines, sus funciones combinadas y sus prioridades de salida se
(= 1) convertirá el pin PORTC correspondiente en una entrada (es decir, describen brevemente aquí. Para obtener información adicional,
deshabilitará el controlador de salida). Borrar un bit TRISC (= 0) hará consulte la sección correspondiente de esta hoja de datos.
que el pin PORTC correspondiente sea una salida (es decir, habilitará
el controlador de salida y colocará el contenido del latch de salida en Cuando se habilitan múltiples salidas, el control de pin real va al
el pin seleccionado). periférico con la prioridad más alta.
El registro de bloqueo de datos (LATC) también está mapeado en la La Tabla 11-4 enumera las funciones del pin PORTC desde la prioridad
memoria. Las operaciones de lectura, modificación y escritura en el más alta hasta la más baja.
registro LATC leen y escriben el valor de salida bloqueado para PORTC. Las funciones de entrada analógica, como ADC, comparador y entradas
de bloqueo SR, no se muestran en las listas de prioridad.
PORTC está multiplexado con varias funciones periféricas (tabla 11-8). Estas entradas están activas cuando el pin de E/S está configurado
Los pines tienen buffers de entrada Schmitt Trigger. para el modo analógico utilizando los registros ANSELx. Las funciones
de salida digital pueden controlar el pin cuando está en modo analógico
Algunas de estas funciones de pin se pueden reubicar para alternar con la prioridad que se muestra a continuación.
PIC18(L)F2X/45K50
RC0/IOCC0/T3CKI/ RC0 0 — O Salida de datos DIG LATC<0>; no se ve afectado por la entrada analógica.
T3G/T1CKI/SOSCO
1 — I Entrada de datos ST PORTC<0>; deshabilitado cuando la entrada analógica
está habilitada.
Leyenda: AN = Entrada o salida analógica; TTL = entrada compatible con TTL; HV = Alto Voltaje; OD = drenaje abierto; XTAL = Cristal;
CMOS = entrada o salida compatible con CMOS; ST = entrada Schmitt Trigger con niveles CMOS; I2C™ = Entrada de disparador Schmitt
con I2C.
Nota 1: Asignación de pines predeterminada para T3CKI y CCP2 cuando se establecen los bits de configuración T3CMX y CCP2MX.
2: Asignación de pines alternativos para SDO cuando el bit de configuración SDOMX está borrado.
3: La función está en PORTD/PORTE para dispositivos PIC18(L)F45K50.
PIC18(L)F2X/45K50
TABLA 11-8: RESUMEN DE E/S DE PORTC (CONTINUACIÓN)
TRIS Ajuste Alfiler Buffer
Nombre del pin Función Descripción
Ajuste ANSEL Escribe Escribe
RC6/IOCC6/TX/CK/ RC6 0 0 O DIG LATC<6> salida de datos; no se ve afectado por la entrada analógica.
AN18 1 0 I Entrada de datos ST PORTC<6>; deshabilitado cuando la entrada analógica
activado.
IOCC6 1 0 I Clavija TTL de interrupción al cambiar.
Texas 1 0 Salida de datos de transmisión asíncrona O DIG EUSART.
CK 1 0 Salida de reloj serie síncrona O DIG EUSART.
1 0 I Entrada de reloj serie síncrona ST EUSART.
AN18 1 1 I AN Entrada analógica 18.
RC7/IOCC7/SDO/RX/ RC7 0 0 Salida de datos O DIG LATC<7>; no se ve afectado por la entrada analógica.
DT/AN19 1 0 I Entrada de datos ST PORTC<7>; deshabilitado cuando la entrada analógica
activado.
IOCC7 1 0 I Clavija TTL de interrupción al cambiar.
SDO(2) 1 0 O DIG Salida de datos MSSP SPI alternativa.
RX 1 0 I Entrada de datos de recepción asíncrona ST EUSART.
DT 1 0 O DIG EUSART salida de datos serie síncrona.
1 0 I Entrada de datos serie síncrona ST EUSART.
AN19 1 1 I AN Entrada analógica 19.
Leyenda: AN = Entrada o salida analógica; TTL = entrada compatible con TTL; HV = Alto Voltaje; OD = drenaje abierto; XTAL = Cristal;
CMOS = entrada o salida compatible con CMOS; ST = entrada Schmitt Trigger con niveles CMOS; I2C™ = Entrada de disparador
Schmitt con I2C.
Nota 1: Asignación de pines predeterminada para T3CKI y CCP2 cuando se establecen los bits de configuración T3CMX y CCP2MX.
2: Asignación de pines alternativos para SDO cuando el bit de configuración SDOMX está borrado.
3: La función está en PORTD/PORTE para dispositivos PIC18(L)F45K50.
PIC18(L)F2X/45K50
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
PIC18(L)F2X/45K50
11.5 Registros PORTD 11.5.1 PRIORIDAD DE SALIDA DEL PUERTO
Cada pin PORTD está multiplexado con otras funciones.
Nota: PORTD solo está disponible en dispositivos de 40 y 44
Los pines, sus funciones combinadas y sus prioridades de salida
pines.
se describen brevemente aquí. Para obtener información adicional,
PORTD es un puerto bidireccional de 8 bits de ancho. El registro consulte la sección correspondiente de esta hoja de datos.
de dirección de datos correspondiente es TRISD. Establecer un
bit TRISD (= 1) convertirá el pin PORTD correspondiente en una Cuando se habilitan múltiples salidas, el control de pin real va al
entrada (es decir, deshabilitará el controlador de salida). Borrar periférico con la prioridad más alta.
un bit TRISD (= 0) hará que el pin PORTD correspondiente sea una La Tabla 11-4 enumera las funciones del pin PORTD desde la
salida (es decir, habilitará el controlador de salida y colocará el prioridad más alta a la más baja.
contenido del latch de salida en el pin seleccionado).
Las funciones de entrada analógica, como ADC, comparador y
El registro de bloqueo de datos (LATD) también está mapeado en entradas de bloqueo SR, no se muestran en las listas de prioridad.
la memoria. Las operaciones de lectura, modificación y escritura
Estas entradas están activas cuando el pin de E/S está configurado
en el registro LATD leen y escriben el valor de salida bloqueado
para PORTD. para el modo analógico utilizando los registros ANSELx. Las
funciones de salida digital pueden controlar el pin cuando está en
Todos los pines en PORTD se implementan con búferes de entrada modo analógico con la prioridad que se muestra a continuación.
Schmitt Trigger. Cada pin es configurable individualmente como
entrada o salida.
PIC18(L)F2X/45K50
RD0/AN20 RD0 0 0 O DIG LATD<0> salida de datos; no se ve afectado por la entrada analógica.
1 0 I Entrada de datos ST PORTD<0>; deshabilitado cuando la entrada analógica
está habilitada.
PIC18(L)F2X/45K50
ANSELDO(1) ANSD7 ANSD6 ANSD5 ANSD4 ANSD3 ANSD2 ANSD1 ANSD0 148
CCP1CON P1M<1:0> DC1B<1:0> PCC1M<3:0> 197
LATD(1) LATD7 LATD6 LATD5 LATD4 LATD3 LATD2 LATD1 LATD0 150
PUERTO(1) RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 146
SLRCON(1) — — — SLRE SLRD SLRC SLRB SLRA 152
SSP1CON1 WCOL SSPOV SSPEN CKP SSPM<3:0> 252
TRISD(1) TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 149
Leyenda: — = ubicaciones no implementadas, se lee como '0'. Los bits sombreados no se utilizan para PORTD.
Nota 1: Disponible solo en dispositivos PIC18(L)F45K50.
PIC18(L)F2X/45K50
11.6 Registros PORTE 11.6.2 PUERTO EN DISPOSITIVOS DE 28 PINES
Dependiendo del dispositivo PIC18(L)F2X/45K50 en particular Para los dispositivos PIC18(L)F2XK50, PORTE solo está
seleccionado, PORTE se implementa de dos maneras diferentes. disponible cuando la funcionalidad Master Clear está deshabilitada
(MCLR = 0). En estos casos, PORTE es un puerto de entrada de
un solo bit compuesto únicamente por RE3. El pasador funciona
como se ha descrito anteriormente.
11.6.1 PUERTO EN DISPOSITIVOS 40/44 PIN
Para dispositivos PIC18(L)F2X/45K50, PORTE es un puerto de 4 11.6.3 ELEVACIÓN DÉBIL RE3
bits de ancho. Tres pines (RE0/AN5, RE1/AN6 y RE2/AN7) se
El pin del puerto RE3 tiene un pull-up interno débil controlado
pueden configurar individualmente como entradas o salidas.
individualmente. Cuando se establece, el bit WPUE3 (TRISE<7>)
Estos pines tienen buffers de entrada Schmitt Trigger. Cuando
habilita la extracción del pin RE3. El bit RBPU del registro INT
se selecciona como una entrada analógica, estos pines se leerán como '0'.
CON2 controla los pull-ups tanto en PORTB como en PORTE.
El registro de dirección de datos correspondiente es TRISE. Cuando RBPU = 0, los pull-ups débiles se activan en todos los
Establecer un bit TRISE (= 1) convertirá el pin PORTE pines que tienen configurados los bits WPUE3 o WPUBx. Cuando
correspondiente en una entrada (es decir, deshabilitará el controlador de salida).
se establece, el bit RBPU desactiva todos los pull ups débiles.
Borrar un bit TRISE (= 0) convertirá el pin PORTE correspondiente Los pull-ups se deshabilitan en un reinicio de encendido.
en una salida (es decir, habilitará el controlador de salida y Cuando el pin del puerto RE3 está configurado como MCLR
colocará el contenido del latch de salida en el pin seleccionado). (CON FIG3H<7>, MCLRE = 1 y CONFIG4L<2>, LVP = 0) o
TRISE controla la dirección de los pines REx, incluso cuando se configurado para programación de bajo voltaje (MCLRE = x y LVP
utilizan como entradas analógicas. El usuario debe asegurarse = 1), el pull-up siempre está habilitado y el bit WPUE3 no tiene
efecto.
de mantener los pines configurados como entradas cuando los
utilice como entradas analógicas.
11.6.4 PRIORIDAD DE SALIDA DEL PORTE
El registro de bloqueo de datos (LATE) también está mapeado en
Cada pin PORTE está multiplexado con otras funciones.
memoria. Las operaciones de lectura, modificación y escritura en
Los pines, sus funciones combinadas y sus prioridades de salida
el registro LATE leen y escriben el valor de salida bloqueado para
PORTE. se describen brevemente aquí. Para obtener información
adicional, consulte la sección correspondiente de esta hoja de
Nota: En un restablecimiento de encendido, RE<2:0> se datos.
configuran como entradas analógicas.
Cuando se habilitan múltiples salidas, el control de pin real va al
El cuarto pin de PORTE (MCLR/VPP/RE3) es un pin solo de periférico con la prioridad más alta.
entrada. Su funcionamiento está controlado por el bit de La Tabla 11-4 enumera las funciones de los pines PORTE desde
configuración MCLRE. Cuando se selecciona como un pin de la prioridad más alta a la más baja.
puerto (MCLRE = 0), funciona como un pin de solo entrada digital;
Las funciones de entrada analógica, como ADC, comparador y
como tal, no tiene bits TRIS o LAT asociados con su
entradas de bloqueo SR, no se muestran en las listas de prioridad.
funcionamiento. De lo contrario, funciona como la entrada Master
Estas entradas están activas cuando el pin de E/S está configurado
Clear del dispositivo. En cualquier configuración, RE3 también
para el modo analógico usando los registros ANSELx. Las
funciona como la entrada de voltaje de programación durante la programación.
funciones de salida digital pueden controlar el pin cuando está
Nota: En un restablecimiento de encendido, RE3 se habilita en modo analógico con la prioridad que se muestra a continuación.
como una entrada digital solo si la funcionalidad
Master Clear está deshabilitada.
PIC18(L)F2X/45K50
RE0/AN5 RE0 0 0 Salida de datos O DIG LATE<0>; no se ve afectado por la entrada analógica.
1 0 I entrada de datos ST PORTE<0>; deshabilitado cuando la entrada analógica
está habilitada.
Leyenda: AN = Entrada o salida analógica; TTL = entrada compatible con TTL; HV = Alto Voltaje; OD = drenaje abierto; XTAL = Cristal;
CMOS = entrada o salida compatible con CMOS; ST = entrada Schmitt Trigger con niveles CMOS; I2C™ = Entrada de disparador
Schmitt con I2C.
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
Registrarse
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
PIC18(L)F2X/45K50
11.7 Control analógico de puerto 11.8 Control de velocidad de respuesta del puerto
La mayoría de los pines del puerto están multiplexados con funciones analógicas La velocidad de respuesta de salida de cada puerto es programable para
como el convertidor de analógico a digital y seleccione la tasa de transición estándar o una reducida
comparadores. Cuando estos pines de E/S se van a utilizar como tasa de transición de aproximadamente 0,1 veces el estándar
entradas analógicas es necesario deshabilitar la entrada digital para minimizar la EMI. El tiempo de transición reducido es el
búfer para evitar el exceso de corriente causado por inadecuado velocidad de respuesta predeterminada para todos los puertos.
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
'1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
'1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = El bit se borra x = El bit es desconocido
PIC18(L)F2X/45K50
12.0 MÓDULO TEMPORIZADOR0 El registro T0CON (Registro 12-1) controla todos
aspectos del funcionamiento del módulo, incluido el
El módulo Timer0 incorpora las siguientes características: selección de preescala. Es tanto de lectura como de escritura.
• Operación seleccionable por software como Un diagrama de bloques simplificado del módulo Timer0 en 8 bits
temporizador o contador en los modos de 8 o 16 bits
El modo se muestra en la Figura 12-1. La figura 12-2 muestra un
• Registros legibles y escribibles diagrama de bloques simplificado del módulo Timer0 en 16 bits
modo.
• Prescaler programable de software de 8 bits
dedicado
• Fuente de reloj seleccionable (interna o externa)
• Selección de borde para reloj externo
• Interrupción por desbordamiento
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
-n = Valor en POR '1' = El bit está establecido '0' = Bit borrado x = Bit desconocido
1 = Habilita el temporizador 0
0 = Detiene el temporizador 0
PIC18(L)F2X/45K50
12.2 Operación del temporizador 0 12.3 Timer0 lee y escribe en
Timer0 puede funcionar como temporizador o como contador;
Modo de 16 bits
el modo se selecciona con el bit T0CS del registro T0CON. En
TMR0H no es el byte alto real de Timer0 en el modo de 16
el modo de temporizador (T0CS = 0), el módulo se incrementa bits; en realidad es una versión almacenada en búfer del byte
en cada reloj de forma predeterminada a menos que se alto real de Timer0 que no se puede leer ni escribir
seleccione un valor de preescalador diferente (consulte la directamente (consulte la Figura 12-2). TMR0H se actualiza
Sección 12.4 “Preescalador”). El incremento del temporizador con el contenido del byte alto de Timer0 durante una lectura
0 se inhibe durante dos ciclos de instrucción después de una de TMR0L. Esto brinda la capacidad de leer los 16 bits de
escritura de registro TMR0. El usuario puede solucionar esto Timer0 sin la necesidad de verificar que la lectura del byte
ajustando el valor escrito en el registro TMR0 para compensar alto y bajo sea válida. De lo contrario, podrían ocurrir lecturas
los incrementos faltantes anticipados. no válidas debido a una transferencia entre lecturas sucesivas
El modo Contador se selecciona configurando el bit T0CS (= del byte alto y bajo.
1). En este modo, Timer0 se incrementa en cada flanco De manera similar, también debe realizarse una escritura en
ascendente o descendente del pin RA4/T0CKI. El flanco de el byte alto de Timer0 a través del registro de búfer TMR0H.
incremento está determinado por el bit de selección de flanco Escribir en TMR0H no afecta directamente a Timer0. En su
de origen del temporizador 0, T0SE del registro T0CON; borrar lugar, el byte alto de Timer0 se actualiza con el contenido de
este bit selecciona el flanco ascendente. Las restricciones en TMR0H cuando se produce una escritura en TMR0L. Esto permite que todos
la entrada del reloj externo se analizan a continuación. 16 bits de Timer0 para ser actualizados a la vez.
Se puede usar una fuente de reloj externa para controlar
Timer0; sin embargo, debe cumplir ciertos requisitos (consulte
la Tabla 29-22) para garantizar que el reloj externo se pueda
sincronizar con el reloj de fase interno (TOSC).
Hay un retraso entre la sincronización y el inicio del
incremento del temporizador/contador.
FOSC/4 0
1
Colocar
Sincronizar con
1 Interno TMR0L TMR0IF
relojes en desbordamiento
pasador T0CKI Programable 0
Prescaler
T0SE (Retraso de 2 TCY )
8
T0CS 3
T0PS<2:0>
8
PSA Bus de datos interno
Nota: Al restablecerse, Timer0 se habilita en modo de 8 bits con entrada de reloj de T0CKI máx. preescala
PIC18(L)F2X/45K50
FIGURA 12-2: DIAGRAMA DE BLOQUES TIMER0 (MODO DE 16 BITS)
FOSC/4 0
1
Sincronizar con Colocar
1 TMR0
Interno TMR0L TMR0IF
relojes Byte alto
Programable 0 en desbordamiento
pasador T0CKI 8
Prescaler
T0SE (Retraso de 2 TCY )
TMR0H
8
8
Bus de datos interno
Nota: Al restablecerse, Timer0 se habilita en modo de 8 bits con entrada de reloj de T0CKI máx. preescala
asignación.
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
INTCON GIE/GIEH PEIE/GIEL TMR0IE INT0IE IOCIE TMR0IF INT0IF IOCIF 114
INTCON2 RBPU INTEDG0 INTEDG1 INTEDG2 — TMR0IP — IOCIP 115
T0CON TMR0ON T08BIT T0CS T0SE PSA T0PS<2:0> 153
—
TMR0H Registro del temporizador 0, byte alto
—
TMR0L Registro del temporizador 0, byte bajo
Trisa TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 149
Leyenda: — = ubicaciones no implementadas, se lee como '0'. Timer0 no utiliza los bits sombreados.
PIC18(L)F2X/45K50
13.0 MÓDULO TIMER1/3 CON CONTROL DE • Disparador de evento especial (con CCP/ECCP) •
Polaridad de fuente de puerta seleccionable • Modo
PUERTA
de alternancia de puerta • Modo de pulso único de
El módulo Timer1/3 es un temporizador/contador de 16 bits con las
puerta • Estado del valor de puerta
siguientes características: • Par de registro de temporizador/
TxGSS<1:0>
TxG 00 TxGSPM
Coincidencia de temporizador 2
01 0
PR2 TxG_IN Bus de datos
0 TxGVAL
D q
10 pulso único RD
sincronización_C1OUT(7) 1 TXGCON
Q1 ES
D q 1 acq. Control
11
sincronización_C2OUT(7) Interrumpir Colocar
CK Q TxGGO/HECHO
TMRxON tmrxgif
R det
TxGPOL TxGTM
TMRxGE
TMRxCS<1:0>
Secundario TxSYNC
Oscilador SOSCOUT
Módulo
Reservado 11
Vea la Figura 2-4
Prescaler Sincronizar(3),(7)
1 1, 2, 4, 8
TxCLK_EXT_SRC det
(5) ,(6) (1)
10
2
TxCKI 0
FOSC TxCKPS<1:0>
Interno 01
Reloj FOSC/2
SOSCEN Entrada de sueño
Interno
FOSC/4 Reloj
Interno 00
Reloj
5: T1CKI no está disponible cuando el oscilador secundario está habilitado. (SOSCGO = 1 o SOSCEN = 1)
6: T3CKI no está disponible cuando el oscilador secundario está habilitado, a menos que T3CMX = 1.
7: La salida del comparador sincronizado no debe usarse junto con TxCKI sincronizado.
PIC18(L)F2X/45K50
13.1 Funcionamiento del temporizador 1/3 13.2.1 FUENTE DE RELOJ INTERNO
Cuando se selecciona la fuente del reloj interno, el
El módulo Timer1/3 es un contador incremental de 16 bits
al que se accede a través del registro TMRxH:TMRxL El par de registros TMRxH:TMRxL se incrementará en múltiplos
par. Las escrituras en TMRxH o TMRxL actualizan directamente el de FOSC según lo determinado por el preescalador Timer1/3.
encimera. Cuando se selecciona la fuente de reloj interno FOSC , el
Cuando se usa con una fuente de reloj interna, el módulo es El valor del registro del temporizador 1/3 se incrementará en cuatro conteos
un temporizador e incrementos en cada ciclo de instrucción. cada ciclo de reloj de instrucción. Debido a esta condición, un
Cuando se utiliza con una fuente de reloj externa, el módulo 2 Se producirá un error de resolución LSB al leer el
se puede utilizar como temporizador o contador y Valor del temporizador 1/3. Para utilizar la resolución completa de Timer1/3,
incrementos en cada borde seleccionado de la externa se debe usar una señal de entrada asíncrona para activar el
fuente. Entrada de reloj Timer1/3.
Timer1/3 se habilita configurando TMRxON y Se pueden utilizar las siguientes fuentes asíncronas:
Bits TMRxGE en los registros TxCON y TxGCON, • Evento asíncrono en el pin TxG a Timer1/3
respectivamente. La tabla 13-1 muestra la habilitación del temporizador 1/3 portón
trozos escogidos.
• Entrada del comparador C1 o C2 a la puerta Timer1/3
PIC18(L)F2X/45K50
13.3 Timer1/3 Prescaler 13.5.1 LECTURA Y ESCRITURA TEMPORIZADOR
1/3 EN MODO CONTADOR
Timer1/3 tiene cuatro opciones de preescalador que permiten
ASINCRONICO
1, 2, 4 u 8 divisiones de la entrada del reloj. Los bits TxCKPS
del registro TxCON controlan el contador de preescala. El La lectura de TMRxH o TMRxL mientras el temporizador
contador de preescala no se puede leer ni escribir está funcionando desde un reloj asíncrono externo
directamente; sin embargo, el contador del preescalador se garantizará una lectura válida (atendida en el hardware). Sin
borra al escribir en TMRxH o TMRxL. embargo, el usuario debe tener en cuenta que la lectura del
temporizador de 16 bits en dos valores de 8 bits plantea
13.4 Oscilador secundario ciertos problemas, ya que el temporizador puede desbordarse
entre las lecturas. Para escrituras, se recomienda que el
Un circuito oscilador secundario dedicado de baja potencia usuario simplemente detenga el temporizador y escriba los
de 32,768 kHz está integrado entre los pines SOSCI (entrada) valores deseados. Puede ocurrir una contención de escritura
y SOSCO (salida del amplificador). Este circuito interno se al escribir en los registros del temporizador, mientras el
utilizará junto con un cristal externo de 32,768 kHz. registro se incrementa. Esto puede producir un valor impredecible en el par de regis
El circuito del oscilador se habilita configurando el bit 13.6 Modo de lectura/escritura de 16 bits del temporizador 1/3
SOSCEN del registro TxCON, el bit SOSCGO del registro
Timer1/3 se puede configurar para leer y escribir todos los
OSCCON2 o seleccionando el oscilador secundario como
16 bits de datos, hacia y desde los registros TMRxL y
reloj del sistema configurando SCS<1:0> = 01 en el registro
TMRxH de 8 bits, simultáneamente. Las operaciones de
OSCCON. El oscilador continuará funcionando durante la
lectura y escritura de 16 bits se habilitan configurando el bit
suspensión.
RD16 del registro TxCON.
Nota: El oscilador requiere un tiempo de puesta en
Para lograr esta función, el valor del registro TMRxH se
marcha y estabilización antes de su uso. Por
asigna a un registro de búfer denominado registro de búfer
lo tanto, se debe configurar SOSCEN y
TMRxH. Mientras está en el modo de 16 bits, el registro
observar un retraso adecuado antes de habilitar el temporizador 1/3.
TMRxH no se puede leer ni escribir directamente y todas las
operaciones de lectura y escritura se realizan mediante el
13.5 Funcionamiento del uso de este registro de búfer TMRxH.
temporizador 1/3 en modo de contador asíncrono Cuando se solicita una lectura del registro TMRxL, el valor
del registro TMRxH se carga simultáneamente en el registro
Si se establece el bit de control TxSYNC del registro TxCON,
de búfer TMRxH. Cuando se solicita una lectura del registro
la entrada del reloj externo no está sincronizada. El
TMRxH, el valor se proporciona en su lugar desde el registro
temporizador incrementa de forma asíncrona a los relojes
de fase internos. Si se selecciona una fuente de reloj externa, la de búfer TMRxH. Esto brinda al usuario la capacidad de leer
con precisión los 16 bits del valor del temporizador 1/3 de
el temporizador continuará ejecutándose durante la
una sola instancia en el tiempo.
suspensión y puede generar una interrupción en caso de
desbordamiento, lo que activará el procesador. Sin embargo, Por el contrario, cuando no está en el modo de 16 bits, el
se necesitan precauciones especiales en el software para usuario debe leer cada registro por separado y determinar
leer/escribir el temporizador (consulte la Sección 13.5.1 si los valores se han vuelto inválidos debido a un traspaso
que puede haber ocurrido entre las operaciones de lectura.
“Lectura y escritura del temporizador 1/3 en el modo de contador asíncrono”).
Nota: Al cambiar de funcionamiento síncrono a Cuando se solicita una solicitud de escritura del registro
asíncrono, es posible omitir un incremento. TMRxL, el registro de búfer TMRxH se actualiza
Al cambiar de operación asíncrona a síncrona, simultáneamente con el contenido del registro TMRxH. El
es posible producir un incremento adicional. valor de TMRxH debe cargarse previamente en el registro
de búfer TMRxH antes de la solicitud de escritura para el
registro TMRxL. Esto proporciona al usuario la capacidad
de escribir los 16 bits en el par de registros TMRxL:TMRxH
al mismo tiempo.
PIC18(L)F2X/45K50
FIGURA 13-2: TEMPORIZADOR 1/3 16 BITS 13.7.2 FUENTE DE PUERTA DEL TEMPORIZADOR 1/3
La puerta Timer1/3 también puede ser impulsada por múltiples seleccionables 13.7.2.2 Operación de la puerta de coincidencia del temporizador 2
fuentes.
El registro TMR2 se incrementará hasta que coincida con el
Temporizador1/3
TxCLK TxGPOL TxG La salida resultante de una operación del Comparador 2
Operación se puede seleccionar como fuente para el control de puerta Timer1/3.
ÿ 0 0 cuenta La salida del Comparador 2 (sync_C2OUT) se puede
sincronizado con el reloj Timer1/3 o izquierda
ÿ 0 1 Conteo de retenciones
asincrónico. Para más información, ver
ÿ 1 0 Conteo de retenciones
Apartado 19.8.3 “Sincronización de la Salida del Comparador
ÿ 1 1 cuenta al Temporizador1”.
PIC18(L)F2X/45K50
13.7.3 MODO CAMBIO DE PUERTA DEL TEMPORIZADOR 1/3 13.7.4 TEMPORIZADOR 1/3 PUERTA MODO IMPULSO ÚNICO
La fuente de la compuerta Timer1/3 se enruta a través de un flip-flop configurando el bit TxGSPM en el registro TxGCON. A continuación, se
que cambia de estado en cada flanco creciente de la señal. Consulte la debe establecer el bit TxGGO/DONE en el registro TxGCON. El Timer1/3
Figura 13-5 para conocer los detalles de temporización. estará completamente habilitado en el siguiente flanco de incremento.
En el siguiente borde posterior del pulso, el bit TxGGO/DONE se borrará
El modo Timer1/3 Gate Toggle se habilita al configurar el bit TxGTM del
automáticamente. No se permitirá que ningún otro evento de puerta
registro TxGCON. Cuando se borra el bit TxGTM, el flip-flop se borra y
incremente el temporizador 1/3 hasta que el bit TxGGO/DONE se
se mantiene limpio. Esto es necesario para controlar qué borde se mide. establezca nuevamente en el software.
Borrar el bit TxGSPM del registro TxGCON también borrará el bit TxGGO/
Nota: Habilitar el modo Alternar al mismo tiempo que cambia la DONE. Consulte la Figura 13-6 para conocer los detalles de temporización.
polaridad de la puerta puede resultar en una operación
indeterminada.
Habilitar el modo Alternar y el modo de un solo pulso simultáneamente
permitirá que ambas secciones funcionen juntas. Esto permite medir
los tiempos de ciclo en la fuente de la puerta Timer1/3. Consulte la
Figura 13-7 para conocer los detalles de temporización.
INTERRUMPIR
PIC18(L)F2X/45K50
13.8 Temporizador 1/3 Interrupción El oscilador secundario seguirá funcionando en reposo
independientemente de la configuración del bit TxSYNC.
El par de registros Timer1/3 (TMRxH:TMRxL) aumenta a FFFFh y
se renueva a 0000h. Cuándo
13.10 Base de tiempo de captura/comparación de ECCP/
Timer1/3 se da la vuelta, se establece el bit indicador de
CCP
interrupción Timer1/3 del registro PIR1/2. Para habilitar la
interrupción en rollover, debe establecer estos bits: • Bit TMRxON Los módulos CCP utilizan el par de registros TMRxH:TMRxL como
del registro TxCON • Bits TMRxIE de los registros PIE1 o PIE2 • base de tiempo cuando funcionan en modo Capturar o Comparar.
• Se debe establecer el bit TxSYNC de TxCON se debe establecer especiales. El funcionamiento asíncrono del Tim er1/3 puede
hacer que se pase por alto un disparador de evento especial.
el registro • Se deben configurar los bits TMRxCS del registro
TxCON En caso de que una escritura en TMRxH o TMRxL coincida con
• Se debe configurar el bit SOSCEN del registro TxCON un Activador de evento especial del CCP, la escritura tendrá
prioridad.
El dispositivo se activará con un desbordamiento y ejecutará la Para obtener más información, consulte la Sección 18.2.8
siguiente instrucción. Si se establece el bit GIE/GIEH del registro "Disparador de evento especial".
INTCON, el dispositivo llamará a la rutina de servicio de
interrupción.
TXCKI = 1
cuando TMRx
Activado
TXCKI = 0
cuando TMRX
Activado
2: En el modo Contador, el contador debe registrar un flanco descendente antes del primer flanco ascendente incremental del reloj.
PIC18(L)F2X/45K50
FIGURA 13-4: TIMER1/3 MODO DE HABILITACIÓN DE PUERTA
TMRxGE
TxGPOL
TxG_IN
TxCKI
TxGVAL
TMRxGE
TxGPOL
TxGTM
TxTxG_IN
TxCKI
TxGVAL
Temporizador1/3 norte norte + 1 norte + 2 norte + 3 norte + 4 norte + 5 norte + 6 norte + 7 norte + 8
PIC18(L)F2X/45K50
FIGURA 13-6: TEMPORIZADOR 1/3 PUERTA MODO DE IMPULSO ÚNICO
TMRxGE
TxGPOL
TxGSPM
TxCKI
TxGVAL
Borrado por
tmrxgif Borrado por software Establecido por hardware en software
flanco descendente de TxGVAL
PIC18(L)F2X/45K50
FIGURA 13-7: TEMPORIZADOR 1/3 PUERTA MONO-PULSO Y CONMUTADOR MODO COMBINADO
TMRxGE
TxGPOL
TxGSPM
TxGTM
TxCKI
TxGVAL
PIC18(L)F2X/45K50
13.13 Definiciones de registro: REGISTRO DE
CONTROL TIMER1/3 13-1: TxCON: REGISTRO DE CONTROL TIMER1/3
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
u = El bit no cambia x = El bit es desconocido -n/n = Valor en POR y BOR/Valor en todos los demás reinicios
TMRxCS<1:0> = 0X
Este bit se ignora. Timer1/3 usa el reloj interno cuando TMRxCS<1:0> = 0X.
bit 1 RD16: bit de habilitación del modo de lectura/escritura de 16 bits
PIC18(L)F2X/45K50
bit 7 bit 0
Leyenda:
R = bit legible W = Bit grabable U = bit no implementado, leído como '0'
u = El bit no cambia x = El bit es desconocido -n/n = Valor en POR y BOR/Valor en todos los demás reinicios
'1' = El bit está establecido '0' = El bit se borra HC = Bit borrado por hardware
Si TMRxON = 0:
Este bit es ignorado
Si TMRxON = 1:
1 = El conteo de Timer1/3 es controlado por la función de puerta Timer1/3
0 = Timer1/3 cuenta independientemente de la función de puerta Timer1/3
bit 6 TxGPOL: bit de polaridad de puerta del temporizador 1/3
1 = La compuerta Timer1/3 está activa en nivel alto (Timer1/3 cuenta cuando la compuerta está en nivel alto)
0 = La compuerta Timer1/3 está activa-baja (Timer1/3 cuenta cuando la compuerta está baja)
bit 5 TxGTM: bit de modo de alternancia de puerta Timer1/3
1 = El modo de alternancia de puerta del temporizador 1/3 está habilitado
0 = El modo de alternancia de puerta del temporizador 1/3 está deshabilitado y el flip-flop de alternancia se borra
El flip-flop de la puerta Timer1/3 alterna en cada flanco ascendente.
bit 4 TxGSPM: bit de modo de pulso único de puerta Timer1/3
1 = El modo de pulso único de la puerta Timer1/3 está habilitado y está controlando la puerta Timer1/3
0 = El modo de pulso único de la puerta del temporizador 1/3 está deshabilitado
bit 3 TxGGO/DONE: bit de estado de adquisición de un solo pulso de la puerta del temporizador 1/3
1 = La adquisición de un solo pulso de la puerta del temporizador 1/3 está lista, esperando un flanco
0 = La adquisición de un solo pulso de la puerta del temporizador 1/3 se ha completado o no se ha iniciado
Este bit se borra automáticamente cuando se borra TxGSPM.
bit 2 TxGVAL: bit de estado actual de la puerta del temporizador 1/3
PIC18(L)F2X/45K50
TABLA 13-5: REGISTROS ASOCIADOS A TIMER1/3 COMO TEMPORIZADOR/CONTADOR
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
TRIB TRIB7 TRISB6 TRISB5 TRISB4 TRIB3 TRISB2 TRISB1 TRISB0 149
TRISC TRISC7 TRISC6 — — — TRISC2 TRISC1 TRISC0 149
Regístrate
Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 bit 0
en la página
PIC18(L)F2X/45K50
14.0 MÓDULO TEMPORIZADOR2
Establece el bit
TMRx
de bandera TMRxIF
Producción
Prescaler Reiniciar
FOSC/4 TMRx
1:1, 1:4, 1:16
2 Postscaler
comparador
ecualizador
1:1 a 1:16
TxCKPS<1:0>
PRx 4
SALIDAS Tx<3:0>