interrupt
#else
#pragma code
#pragma interrupt InterruptHandlerHigh
#endif
void InterruptHandlerHigh() {

    // check to see if we have an I2C interrupt
    if (PIR1bits.SSPIF) {
        PORTBbits.RB5 = 1;
        // clear the interrupt flag
        PIR1bits.SSPIF = 0;
        // call the handler
#ifdef MASTERPIC
        i2c_master_handler();
#else
        i2c_slave_handler();
#endif
        PORTBbits.RB5 = 0;
    }
    
#ifdef SENSORPIC
    if (PIR3bits.SSP2IF) {
        PIR3bits.SSP2IF = 0;
        i2c2_master_handler();
    }
#endif
    
    SleepIfOkay();
}
Beispiel #2
0
void i2c_int_handler() {
    // check if i2c is in Master mode
    if ((SSPCON1 & 0x0F) == 0x0E) {
        i2c_slave_handler();
    }// else handle slave mode
    else {
        i2c_master_handler();
    }
}