主题 : WinCE6.0下的申请中断不成功 复制链接 | 浏览器收藏 | 打印
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
楼主  发表于: 2010-05-24 08:55

 WinCE6.0下的申请中断不成功

申请中断:  
Irq[0]=-1;Irq[1]=OAL_INTR_FORCE_STATIC;Irq[2]=IRQ_EINT8;
Irq[0]=-1;Irq[1]=OAL_INTR_FORCE_STATIC;Irq[2]=IRQ_TIMER3;
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &Irq, sizeof(Irq), &gIntrTouchChanged, sizeof(UINT32), NULL))
按照Usrkey申请方法:
UINT32        IRQ;
IRQ = 36;
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &IRQ, sizeof(UINT32), &gIntrTouchChanged, sizeof(UINT32), NULL))
    {
        RETAILMSG(1, (TEXT("ERROR: Failed to request the touch changed sysintr.\r\n")));
        gIntrTouchChanged = SYSINTR_UNDEFINED;
        return(FALSE);
    }
是在上电的时候开启中断:
v_pIOPregs->GPGCON  = (v_pIOPregs->GPGCON  & ~(0x3 << 0x0)) | (0x2 << 0x0);    // GPG0 == EINT8
v_pIOPregs->EXTINT1 = (v_pIOPregs->EXTINT1 & ~(0x7<< 0)) | (0x2 << 0);    
v_pIOPregs->EINTPEND |= (1 << 8);
v_pIOPregs->EINTMASK &= ~(0x1<<8);
v_pINTregs->SRCPND &= ~(0x1<<5);
v_pINTregs->INTPND &= ~(0x1<<5);
v_pINTregs->INTMSK &= ~(0x1<<5);
按照以上的方法申请外部中断8,下降沿触发中断,老是没有任何反应,但是在裸机测试中是OK的,请高手们给予指点啊!万分感谢啊!
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
1楼  发表于: 2010-05-25 13:01
怎么没有人回答呢。迫切等待中啊!急。。。。。。