Subversion Repositories Code-Repo

Rev

Rev 329 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
329 Kevin 1
#include "defines.h"
2
#include "IOC.h"
3
 
4
static IOC_DATA *data_p;
5
 
6
void IOC_Init(IOC_DATA *data, void (*callback)(void)) {
7
    data_p = data;
8
    data_p->ioc_callback = callback;
9
 
10
    INTCONbits.IOCIE = 0;
11
 
12
    // Enable interrupt on rising edge on RA4
13
    IOCAPbits.IOCAP4 = 1;
14
}
15
 
16
void IOC_Enable(void) {
17
    IOC_Clear();
18
    INTCONbits.IOCIE = 1;
19
}
20
 
21
void IOC_Disable(void) {
22
    INTCONbits.IOCIE = 0;
23
    IOC_Clear();
24
}
25
 
26
void IOC_Clear(void) {
27
    IOCAF = 0x0;
28
}
29
 
30
void IOC_Interrupt_Handler(void) {
31
    data_p->ioc_callback();
32
}