美文网首页
MT2503 外部中断

MT2503 外部中断

作者: tianxiaoMCU | 来源:发表于2019-01-03 14:12 被阅读0次
    中断引脚配置
    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。


    后一部分是配置中断的参数及注册终端处理函数。
    • BMI160_INT_CHANN是中断号,也就是EINT15里的15
    • EINT_Set_Sensitivity设置中断触发条件,这里是电平触发。
    • EINT_Registration注册中断处理函数,其原型为void EINT_Registration(kal_uint8 eintno, kal_bool Dbounce_En, kal_bool ACT_Polarity, void (reg_hisr)(void), kal_bool auto_umask)ACT_Polarity为触发极性,KAL_TRUE为高,反之为低。
    中断处理函数
    void Bmi160EintCallBack(void)
    {
        /*-------------------------------------------------------------------------*/
        /* Local Variables                                                         */
        /*-------------------------------------------------------------------------*/
    
        /*-------------------------------------------------------------------------*/
        /* Code Body                                                               */
        /*-------------------------------------------------------------------------*/
        EINT_Mask(BMI160_INT_CHANN);
        
        /* 增加处理代码 */
    
        EINT_UnMask(BMI160_INT_CHANN);
    }
    

    相关文章

      网友评论

          本文标题:MT2503 外部中断

          本文链接:https://www.haomeiwen.com/subject/tpltrqtx.html