⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hal_interrupt.c

📁 最新版IAR FOR ARM(EWARM)5.11中的代码例子
💻 C
📖 第 1 页 / 共 2 页
字号:
        IRQ_HANDLER_TABLE[INT_EXINT1] = exint1_handler;
        break;

    case INT_LCDC:
        /* Set interrupt level. */
        OkiCLib_set32bit(ILC1, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_LCDC] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_LCDC] = lcdc_handler;
        break;

    case INT_I2C0:
        /* Set interrupt level. */
        OkiCLib_set32bit(ILC1, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_I2C0] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_I2C0] = i2c0_handler;
        break;

    case INT_I2C1:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCC, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_I2C1] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_I2C1] = i2c1_handler;
        break;

    case INT_SPI0:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCC, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_SPI0] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_SPI0] = spi0_handler;
        break; 

    case INT_FTM0_ART:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCA, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_FTM0] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_FTM0] = art0_handler;
        break;

    case INT_FTM1_ART:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCA, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_FTM1] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_FTM1] = art1_handler;
        break;

    case INT_FTM1_PWM:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCA, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_FTM1] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_FTM1] = pwm1_handler;
        break;

    case INT_FTM0_CAP:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCA, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_FTM0] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_FTM0] = cap0_handler;
        break;

    case INT_FTM3:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCA, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_FTM3] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_FTM3] = art3_handler;
        break;

    case INT_FTM4:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCA, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_FTM4] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_FTM4] = art4_handler;
        break;

    case INT_FTM5:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCA, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_FTM5] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_FTM5] = art5_handler;
        break;

    case INT_DMAC_A0:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCC, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_DMAC_A0] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_DMAC_A0] = dmacCH0_handler;
        break;
        
    case INT_DMAC_A1:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCC, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_DMAC_A1] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_DMAC_A1] = dmacCH1_handler;
        break;

    case INT_DMAC_A2:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCC, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_DMAC_A2] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_DMAC_A2] = dmacCH2_handler;
        break;

    case INT_DMAC_A3:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCC, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_DMAC_A3] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_DMAC_A3] = dmacCH3_handler;
        break;

#if USB_USED
#if (!USB_PERI_ACTIVE)
    case INT_USBhost:
        /* Set interrupt level. */
        OkiCLib_set32bit(ILC1, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_USBhost] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_USBhost] = usbhost_handler;
        break;
#else
    case INT_USBdevice:
        /* Set interrupt level. */
        OkiCLib_set32bit(ILC1, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_USBdevice] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_USBdevice] = usbperi_handler;
        break;

    case INT_EXINT6:
        /* Set interrupt level. */
        OkiCLib_set32bit(EXILCB, param->level);
        /* Register call back function. */
        CALL_BACK_TABLE[INT_EXINT6] = param->callback;
        /* Register handler function. */
        IRQ_HANDLER_TABLE[INT_EXINT6] = exint6_handler;
        break;
#endif
#endif

    default :
        rtnVal = HAL_PARAM_ERROR;
        break;
    }

    return rtnVal;
}

/************************************************************************/
/*                                                                      */
/*  Function Name   : _exint1_handler                                   */
/*  Input           : void                                              */
/*  Output          : void                                              */
/*                                                                      */
/*  Note : EXINT1 handler.                                              */
/*                                                                      */
/************************************************************************/
static void _exint1_handler(void) {
    /* Clear exint1 interrupt1. */ 
    OkiCLib_set32bit(EXIRQB, EXIRQB_IRQ34);
    
    CALL_BACK_TABLE[INT_EXINT1](CALLBACK_STATE_NON);
}

/************************************************************************/
/*                                                                      */
/*  Function Name   : _exint1_handler                                   */
/*  Input           : void                                              */
/*  Output          : void                                              */
/*                                                                      */
/*  Note : FIQ handler.                                                 */
/*                                                                      */
/************************************************************************/
void fiq_handler(void) {
    fiq_callback(CALLBACK_STATE_NON);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -