Большой привет!

После AVR кажется уж очень утомительным PIC18F2585 sad.gif
Подскажите плиз, кто пользовал Port Change Interrupt: как его заставить работать?

Среда MPLAB, компилятор MCC18, отладчик ICD2.
Делаю следующее:
Код
void    IO_Init( void )
{
    TRISBbits.TRISB5    = 1;        // Input 0
    TRISBbits.TRISB4    = 1;        // Input 1
    INTCONbits.RBIF     = 0;        // Clear RB Port Change Interrupt Flag bit
    INTCONbits.RBIE    = 1;        // Enables the RB port change interrupt
}
void    RBPortChangeInt_ISR( void )
{
    if ( INTCONbits.RBIF ){
        Nop();
        INTCONbits.RBIF = 0;        // Clear RB Port Change Interrupt Flag bit
    }
}
На "нопе" ставлю breakpoint, но при отладке прерывание не происходит.
Остальные прерывания работают (UART,SPI,ExtInt0,ExtInt1,Timer0).

Что не так делаю? Может что нужное не делаю?

Спасибо.

-----------------
Как удалить пост не нашёл, поэтому пишу решение вопроса: я забыл добавить вызов обработчика прерывания RB Port Change Interrupt в глобальный обработчик низкоприоритетного прерывания:

Код
#pragma interruptlow MyLowISR
void MyLowISR(void)
{
// Handle low priority interrupts.

    Timer0_ISR();
    ExtInt0_ISR();
    ExtInt1_ISR();
    RBPortChangeInt_ISR();        // Эта строка
    SPI_ISR();
    UART_ISR();
}
#pragma code LowVector = 0x18
void LowVector (void)
{
    _asm goto MyLowISR _endasm
}
#pragma code //# return to default code section #//