Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 201 → Rev 202

/PIC Stuff/PICX_16F1829_BLE_IMU/INTERRUPT.c
0,0 → 1,49
#include <xc.h>
#include "main.h"
#include "INTERRUPT.h"
#include "TIMER.h"
#include "UART.h"
#include "I2C.h"
 
void INTERRUPT_Init(void) {
INTCONbits.GIE = 0;
INTCONbits.PEIE = 1;
}
 
void INTERRUPT_Enable(void) {
INTCONbits.GIE = 1;
}
 
void INTERRUPT_Disable(void) {
INTCONbits.GIE = 0;
}
 
void interrupt INTERRUPT_Handler(void) {
// check Timer 1 interrupt flag
if (PIR1bits.TMR1IF) {
TIMER_1_Interrupt_Handler();
PIR1bits.TMR1IF = 0;
}
 
// Check UART RX interrupt flag
if (PIE1bits.RCIE) {
if (PIR1bits.RCIF) {
UART_RX_Interrupt_Handler();
// PIR1bits.RCIF = 0; // RXIF is read-only!
}
}
 
// Check UART TX interrupt flag
if (PIE1bits.TXIE) {
if (PIR1bits.TXIF) {
UART_TX_Interrupt_Handler();
// PIR1bits.TXIF = 0; // TXIF is read-only!
}
}
 
// Check I2C interrupt flag
if (PIR1bits.SSP1IF) {
I2C_Interrupt_Handler();
PIR1bits.SSP1IF = 0;
}
}