嵌入式开发者社区
标题:
6748GPIO中断问题
[打印本页]
作者:
sanxiaoke
时间:
2019-11-5 17:18
标题:
6748GPIO中断问题
本帖最后由 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);
}
复制代码
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4