Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
202 Kevin 1
#include <xc.h>
2
#include "main.h"
3
#include "INTERRUPT.h"
4
#include "TIMER.h"
5
#include "UART.h"
6
#include "I2C.h"
7
 
8
void INTERRUPT_Init(void) {
9
    INTCONbits.GIE = 0;
10
    INTCONbits.PEIE = 1;
11
}
12
 
13
void INTERRUPT_Enable(void) {
14
    INTCONbits.GIE = 1;
15
}
16
 
17
void INTERRUPT_Disable(void) {
18
    INTCONbits.GIE = 0;
19
}
20
 
21
void interrupt INTERRUPT_Handler(void) {
22
    // check Timer 1 interrupt flag
23
    if (PIR1bits.TMR1IF) {
24
        TIMER_1_Interrupt_Handler();
25
        PIR1bits.TMR1IF = 0;
26
    }
27
 
28
    // Check UART RX interrupt flag
29
    if (PIE1bits.RCIE) {
30
        if (PIR1bits.RCIF) {
31
            UART_RX_Interrupt_Handler();
32
//            PIR1bits.RCIF = 0; // RXIF is read-only!
33
        }
34
    }
35
 
36
    // Check UART TX interrupt flag
37
    if (PIE1bits.TXIE) {
38
        if (PIR1bits.TXIF) {
39
            UART_TX_Interrupt_Handler();
40
//            PIR1bits.TXIF = 0; // TXIF is read-only!
41
        }
42
    }
43
 
44
    // Check I2C interrupt flag
45
    if (PIR1bits.SSP1IF) {
46
        I2C_Interrupt_Handler();
47
        PIR1bits.SSP1IF = 0;
48
    }
49
}