主题 : 中断触发不了 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 9441
精华: 0
发帖: 1
金钱: 10 两
威望: 5 点
综合积分: 2 分
注册时间: 2009-09-29
最后登录: 2009-09-29
楼主  发表于: 2009-09-29 11:38

 中断触发不了

在自己写的按键中断程序失败了后,我就直接拷贝2440test.mcp的部分源代码。
void KeyScan_Test(void)
{
    Uart_Printf("\nKey Scan Test, press ESC key to exit !\n");    

    
    rGPGCON = rGPGCON & (~((3<<22)|(3<<6)|(3<<0)|(3<<10)|(3<<12)|(3<<14))) |
                         ((2<<22)|(2<<6)|(2<<0)|(2<<10)|(2<<12)|(2<<14)) ;        //GPG11,3 set EINT
    
    rEXTINT1 &= ~(7|(7<<0));    
    rEXTINT1 |= (0|(0<<0));    //set eint8 falling edge int
    
    rEXTINT1 &= ~(7<<12);
    rEXTINT1 |= (0<<12);    //set eint11 falling edge int
    
    rEXTINT1 &= ~(7<<20);
    rEXTINT1 |= (0<<20);    //set eint13 falling edge int
    
    rEXTINT1 &= ~(7<<24);
    rEXTINT1 |= (0<<24);    //set eint14 falling edge int
    
    rEXTINT1 &= ~(7<<28);
    rEXTINT1 |= (0<<28);    //set eint15 falling edge int
        
    rEXTINT2 &= ~(0xf<<12);
    rEXTINT2 |= (0<<12);    //set eint19 falling edge int
    

    rEINTPEND |= (1<<8)|(1<<11)|(1<<13)|(1<<14)|(1<<15)|(1<<19);        //clear eint 11,19
    rEINTMASK &= ~((1<<8)|(1<<11)|(1<<13)|(1<<14)|(1<<15)|(1<<19));    //enable eint11,19
    ClearPending(BIT_EINT0|BIT_EINT2|BIT_EINT8_23);
    pISR_EINT0 = pISR_EINT2 = pISR_EINT8_23 = (U32)Key_ISR;
    EnableIrq(BIT_EINT0|BIT_EINT2|BIT_EINT8_23);    

     while( Uart_GetKey() != ESC_KEY ) ;
     DisableIrq(BIT_EINT0|BIT_EINT2|BIT_EINT8_23);    
}
与其它相关函数,并在主函数中调用它。编译无误后,运行,按下了键会在终端可以看到如下的显示。
“Dummy_isr error, interrupt number: 5, INTMSK = 0xffffffda”
但我没有找到这个字串是从哪里打印出来的。然而程序还是跑飞了。  
我主要想知道,上面这一串是哪一段程序打出来的,还有,我这里是出了什么错。 还有什么没有配置。
我的实验代码在附加文件里。谢谢大虾们帮忙看一下。
描述:源代码
附件: t1.rar (212 K) 下载次数:8
菜鸟~~~大家多帮帮我~~
级别: 新手上路
UID: 5421
精华: 0
发帖: 15
金钱: 135 两
威望: 95 点
综合积分: 30 分
注册时间: 2009-04-22
最后登录: 2011-01-10
1楼  发表于: 2009-09-30 09:27
MMU  开了吗?
级别: 新手上路
UID: 8984
精华: 0
发帖: 11
金钱: 60 两
威望: 12 点
综合积分: 22 分
注册时间: 2009-09-13
最后登录: 2011-08-10
2楼  发表于: 2010-07-18 10:45
楼上正解。