int.c

来自「lxRTOS一个用于嵌入系统的操作系统」· C语言 代码 · 共 59 行

C
59
字号
/*
* file:
*       int.c
* description:
*       interrupt controller code.
*/

void int_ctrl_init(void)
{
    rINTCON = 0x04;
    rINTMOD = 0x00;
    rINTMSK = 0x03ffffff;
    rEXTINTPND = 0x0f;
    rI_ISPC = 0x03ffffff;
}


void int_ctrl_set_mode(int irq, int mode)
{
    if(mode)
        rINTMOD |= (0x01<<irq);
    else
        rINTMOD &= ~(0x01<<irq);
}


int int_ctrl_get_mode(int irq)
{
    return (rINTMOD & (0x1<<irq)) ? 1 : 0;
}


void int_ctrl_enable_irq(int irq, int enable)
{
    if(enable)
        rINTMSK &= ~(BIT_GLOBAL|(0x01<<irq));
    else
        rINTMSK |= (0x01<<irq);
}


void int_ctrl_clear_status(int irq)
{
}


void int_ctrl_clear_irq(int irq)
{
#if 0
    if(irq == 21) /* BIT_EINT4567 */
        rEXTINTPND = rEXTINTPND;
#endif

    rI_ISPC = (0x01<<irq);
}


/* end of file */

⌨️ 快捷键说明

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