MT2503 外部中断

2019-01-03  本文已影响0人  tianxiaoMCU
中断引脚配置
void mt2503_eint15_init(void)
{
    /*-------------------------------------------------------------------------*/
    /* Local Variables                                                         */
    /*-------------------------------------------------------------------------*/
    DCL_HANDLE gpio_handle;

    /*-------------------------------------------------------------------------*/
    /* Code Body                                                               */
    /*-------------------------------------------------------------------------*/
    gpio_handle = DclGPIO_Open(DCL_GPIO, BMI160_INT_PINNUM);
    DclGPIO_Control(gpio_handle, GPIO_CMD_SET_MODE_4, NULL);
    DclGPIO_Control(gpio_handle, GPIO_CMD_SET_DIR_IN, NULL);
    DclGPIO_Control(gpio_handle, GPIO_CMD_ENABLE_PULL, NULL);
    DclGPIO_Control(gpio_handle, GPIO_CMD_SET_PULL_LOW, NULL);

    EINT_Mask(BMI160_INT_CHANN);
    EINT_Set_HW_Debounce(BMI160_INT_CHANN, 10);
    EINT_SW_Debounce_Modify(BMI160_INT_CHANN, 10);
    EINT_Set_Sensitivity(BMI160_INT_CHANN, LEVEL_SENSITIVE);
    EINT_Registration(BMI160_INT_CHANN, KAL_TRUE, KAL_TRUE, Bmi160EintCallBack, KAL_TRUE);
    EINT_UnMask(BMI160_INT_CHANN);
}

前面一部分是将IO配置EINT模式,为什么MODE_4是EINT呢,看一下drvgen工具里的配置就知道了。冒号前面是4,所以选MODE_4。


后一部分是配置中断的参数及注册终端处理函数。
中断处理函数
void Bmi160EintCallBack(void)
{
    /*-------------------------------------------------------------------------*/
    /* Local Variables                                                         */
    /*-------------------------------------------------------------------------*/

    /*-------------------------------------------------------------------------*/
    /* Code Body                                                               */
    /*-------------------------------------------------------------------------*/
    EINT_Mask(BMI160_INT_CHANN);
    
    /* 增加处理代码 */

    EINT_UnMask(BMI160_INT_CHANN);
}
上一篇下一篇

猜你喜欢

热点阅读