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
 
222 Kevin 28
    // Check Timer 2 interrupt flag
29
    if (PIR1bits.TMR2IF) {
30
        TIMER_2_Interrupt_Handler();
31
        PIR1bits.TMR2IF = 0;
32
    }
33
 
202 Kevin 34
    // Check UART RX interrupt flag
35
    if (PIE1bits.RCIE) {
36
        if (PIR1bits.RCIF) {
37
            UART_RX_Interrupt_Handler();
38
//            PIR1bits.RCIF = 0; // RXIF is read-only!
39
        }
40
    }
41
 
42
    // Check UART TX interrupt flag
43
    if (PIE1bits.TXIE) {
44
        if (PIR1bits.TXIF) {
45
            UART_TX_Interrupt_Handler();
46
//            PIR1bits.TXIF = 0; // TXIF is read-only!
47
        }
48
    }
49
 
50
    // Check I2C interrupt flag
51
    if (PIR1bits.SSP1IF) {
52
        I2C_Interrupt_Handler();
53
        PIR1bits.SSP1IF = 0;
54
    }
55
}