1. Timer0
1.1. Genera una interrupción cuando el temporizador/counter0 se desborda.
1.1.1. El Timer0 es un temporizador/counter de 8 o 16 bits que puede generar una interrupción al desbordarse.
1.1.1.1. // Configuración de Timer0 en MPLAB T0CON = 0b10000111; // Habilita Timer0, preescaler de 1:256 TMR0 = 0; // Inicializa el Timer0 INTCONbits.TMR0IE = 1; // Habilita la interrupción del Timer0 INTCONbits.GIE = 1; // Habilita las interrupciones globales
2. Timer1
2.1. Genera una interrupción cuando el temporizador/counter1 se desborda.
2.1.1. es un temporizador/counter de 16 bits que puede ser utilizado en modo temporizador o contador.
2.1.1.1. // Configuración de Timer1 en MPLAB T1CON = 0b10110001; // Habilita Timer1, preescaler de 1:8 TMR1 = 0; // Inicializa el Timer1 PIE1bits.TMR1IE = 1; // Habilita la interrupción del Timer1 INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
3. Timer2
3.1. Genera una interrupción cuando el temporizador2 se desborda.
3.1.1. es un temporizador de 8 bits con preescaler y postscaler.
3.1.1.1. // Configuración de Timer2 en MPLAB T2CON = 0b01111101; // Habilita Timer2, preescaler de 1:4, postscaler de 1:16 PR2 = 255; // Periodo de Timer2 TMR2 = 0; // Inicializa el Timer2 PIE1bits.TMR2IE = 1; // Habilita la interrupción del Timer2 INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
3.1.1.1.1. Ideal para aplicaciones que requieren generación de PWM y temporización periódica.
4. Timer3
4.1. Genera una interrupción cuando el temporizador3 se desborda.
4.1.1. es similar a Timer1 pero con capacidad adicional para trabajar con los módulos CCP.
4.1.1.1. // Configuración de Timer3 en MPLAB T3CON = 0b10110001; // Habilita Timer3, preescaler de 1:8 TMR3 = 0; // Inicializa el Timer3 PIE2bits.TMR3IE = 1; // Habilita la interrupción del Timer3 INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
4.1.1.1.1. Útil en aplicaciones que requieren sincronización precisa y coordinación con módulos CCP.
5. CCP1
5.1. (Capture/Compare/PWM): Genera interrupciones en eventos de captura o comparación.
5.1.1. Módulo de captura, comparación y PWM que puede generar interrupciones en eventos de captura o comparación.
5.1.1.1. // Configuración de CCP1 en modo captura CCP1CON = 0b00000101; // Modo captura cada flanco ascendente PIE1bits.CCP1IE = 1; // Habilita la interrupción de CCP1 INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
5.1.1.1.1. Captura de eventos en señales externas, generación de señales PWM.
6. CCP2
6.1. (Capture/Compare/PWM): Similar al CCP1, genera interrupciones en eventos de captura o comparación.
6.1.1. Similar a CCP1, pero en un segundo módulo independiente.
6.1.1.1. // Configuración de CCP2 en modo comparación CCP2CON = 0b00001011; // Modo comparación, genera interrupción en igualdad PIE2bits.CCP2IE = 1; // Habilita la interrupción de CCP2 INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
6.1.1.1.1. Uso: Generación de señales PWM adicionales, sincronización de eventos
7. USB Module
7.1. Interrupciones generadas por la actividad del módulo USB.
7.1.1. Módulo USB integrado que genera interrupciones por actividad en el bus USB.
7.1.1.1. // Configuración de USB Module UCONbits.USBEN = 1; // Habilita el módulo USB UIEbits.URSTIE = 1; // Habilita la interrupción de reinicio USB INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
7.1.1.1.1. Comunicación USB, adecuado para aplicaciones de transferencia de datos USB.
8. A/D Module
8.1. Interrupción cuando una conversión analógica-digital se completa.
8.1.1. Genera una interrupción cuando una conversión analógica-digital se completa.
8.1.1.1. // Configuración del módulo A/D ADCON0 = 0b00000001; // Habilita el A/D y selecciona el canal ADCON1 = 0b00001110; // Configura el puerto A/D PIE1bits.ADIE = 1; // Habilita la interrupción del A/D INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
8.1.1.1.1. Adecuado para aplicaciones que requieren medición de señales analógicas.
9. USART
9.1. Interrupciones generadas por transmisión o recepción de datos en el módulo USART.
9.1.1. Módulo de comunicación serial que genera interrupciones por transmisión o recepción de datos.
9.1.1.1. // Configuración del módulo USART TXSTAbits.TXEN = 1; // Habilita el transmisor RCSTAbits.SPEN = 1; // Habilita el receptor PIE1bits.RCIE = 1; // Habilita la interrupción de recepción PIE1bits.TXIE = 1; // Habilita la interrupción de transmisión INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
9.1.1.1.1. Comunicación serial, ideal para interfaces UART.
10. Comparator
10.1. Genera una interrupción cuando hay un cambio en la salida del comparador.
10.1.1. Genera una interrupción cuando hay un cambio en la salida del comparador.
10.1.1.1. // Configuración del comparador CMCONbits.CIS = 0; // Selecciona las entradas del comparador CMCONbits.CM = 0b010; // Configura el comparador en modo de comparación PIE2bits.CMIE = 1; // Habilita la interrupción del comparador INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
10.1.1.1.1. Comparación de señales analógicas, adecuado para aplicaciones de detección.
11. EEPROM
11.1. Interrupción generada cuando una escritura en la EEPROM se completa.
11.1.1. Genera una interrupción cuando una escritura en la EEPROM se completa.
11.1.1.1. // Configuración para escritura en EEPROM EECON1bits.WREN = 1; // Habilita la escritura en EEPROM PIE2bits.EEIE = 1; // Habilita la interrupción de EEPROM INTCONbits.PEIE = 1; // Habilita las interrupciones periféricas INTCONbits.GIE = 1; // Habilita las interrupciones globales
11.1.1.1.1. Escritura de datos en memoria no volátil.
12. BUSCOL
12.1. (Bus Collision): Interrupción generada en caso de colisión en el bus de comunicación.
12.1.1. Genera una interrupción en caso de colisión en el bus de comunicación.