GPL8外部中断
ok6410A板,六个s按键中断驱动可以正常中断,根据按键中断改为gpl8,却不行,是按提示写的如下,是不是中断号不对啊??RETAILMSG(1,(TEXT("Gpio_Setting----\r\n"))); //设置gpio为中断(GPL8)
//v_pIOPregs->GPLPUD &= ~(0x0fff);
v_pIOPregs->GPLCON1 &= ~(0xf);
v_pIOPregs->GPLCON1 |= 0x3;
//v_pIOPregs->GPLDAT |= 0x1;
RETAILMSG(1,(TEXT("******* v_pIOPregs->GPLCON1 = %x\r\n"),v_pIOPregs->GPLCON1));
RETAILMSG(1,(TEXT("******* v_pIOPregs->GPLDAT = %x\r\n"),v_pIOPregs->GPLDAT));
v_pIOPregs->EINT0CON1 &= ~(0xf);
v_pIOPregs->EINT0CON1 |= ~(0x9);
v_pIOPregs->EINT0MASK &= ~(0x10000) ;
RETAILMSG(1,(TEXT("******* v_pIOPregs->EINT0CON1 = %x\r\n"),v_pIOPregs->EINT0CON1));
RETAILMSG(1,(TEXT("******* v_pIOPregs->EINT0MASK = %x\r\n"),v_pIOPregs->EINT0MASK));
//动态申请外部中断 GPL8
IRQ = IRQ_EINT16;//物理中断号
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &IRQ, sizeof(UINT32), &g_KeySysIntr, sizeof(UINT32), NULL)) {
RETAILMSG(1, (TEXT("ERROR: kEYBD: Failed to request sysintr value.\r\n")));
return FALSE;
} 改为GPL8后 无论给高低电平都没中断,麻烦看下 多谢!!!!!!!!! GPL8对应EINT16 楼主,您这个配置看着是没有问题,不知道您是怎样测试的中断呢?:) 哎,人生最悲剧的事情是:这板子只有一个外部中断,且这个中断只能看,不能摸... 楼主,也就是说您只能使用GPL8,您的中断能不能用示波器或者其他设备看一下呢?:) OK6410A 板子,GPL8输入 输出 都用不了,中断也用不了,我查了下手册,GPL8还有其他功能,是不是复用了,我看论坛上貌似也有其他用户说这个用不了,0000=输入, 0001=输出 ,0010=Host I/F ADDR ,0011=Ext.Interrupt,0100=保留 ,0101=CE_CF,,能不能告知下,Host I/F ADDR和0101=CE_CF这2个功能是什么功能,wince中对应着什么驱动?? 楼主,您好,还是打电话咨询一下吧,可以讨论一下、、、:)
页:
[1]