|
本帖最后由 sanxiaoke 于 2019-11-5 17:23 编辑
我使用6748的GPIO8[10],GPIO8[9],GPIO8[8]作为中断源,当这三个引脚有任意一个电平有变化时候(上升下降沿触发),产生中断,进入同一个中断服务函数,但问题是总是进不去中断,不知什么原因,请各位大神帮忙看一下代码是否有问题
- void GPIOBankPinInterruptInit(void) //GPIO 管脚中断初始化
- {
- // 配置 GPIO8[10] 为上升及下降沿触发
- GPIOIntTypeSet(SOC_GPIO_0_REGS, 139, GPIO_INT_TYPE_BOTHEDGE);
- // 配置 GPIO8[9] 为上升及下降沿触发
- GPIOIntTypeSet(SOC_GPIO_0_REGS, 138, GPIO_INT_TYPE_BOTHEDGE);
- // 配置 GPIO8[8] 为上升及下降沿触发
- GPIOIntTypeSet(SOC_GPIO_0_REGS, 137, GPIO_INT_TYPE_BOTHEDGE);
- // 使能 GPIO BANK 中断
- GPIOBankIntEnable(SOC_GPIO_0_REGS, 8); // GPIO8
- // 注册中断服务函数
- IntRegister(C674X_MASK_INT7, GPIO8Isr);
- // 映射中断到 DSP 可屏蔽中断
- IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B8INT);
- // 使能 DSP 可屏蔽中断
- IntEnable(C674X_MASK_INT7);
- }
复制代码- void GPIO8Isr(void) // GPIO中断服务函数
- {
- // 禁用 GPIO BANK 8 中断
- GPIOBankIntDisable(SOC_GPIO_0_REGS, 8);
- // 清除 GPIO BANK 8 中断状态
- IntEventClear(SYS_INT_GPIO_B8INT);
- // 清除 GPIO8[10] GPIO8[9] GPIO8[8]中断状态
- GPIOPinIntClear(SOC_GPIO_0_REGS, 139);
- GPIOPinIntClear(SOC_GPIO_0_REGS, 138);
- GPIOPinIntClear(SOC_GPIO_0_REGS, 137);
- printf("%d\n",state);
-
- // 使能 GPIO BANK 8 中断
- GPIOBankIntEnable(SOC_GPIO_0_REGS, 8);
- }
复制代码
|
|