这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 为什么我的中断没有响应?

共2条 1/1 1 跳转至

为什么我的中断没有响应?

院士
2006-09-17 18:14:16     打赏
为什么我的中断没有响应?



关键词: 为什么     我的     中断     没有     响应    

院士
2006-12-22 22:43:00     打赏
2楼
问 运用实验板调试外部中断程序,将软件设置好,允许中断,并且硬件也是好的,但按下KEY1(Eint1)中断总是没有响应,请高手指点。程序如下:
程序在while(1)处循环时,按下KEY1,应响应中断,并跳转到
   LDR     PC, [PC, #-0xff0],但始终在while(1)处循环,请高手指点。

int  main(void)
{  PINSEL0 = 0x20000000;        // 设置I/O口工作模式,P0.14设置为EINT1
   PINSEL1 = 0x00000000;
   IODIR = LEDCON;                // 设置LED4控制口为输出,其它I/O为输入
   
   /*  打开EINT1中断(不设置向量控制器,即使用非向量IRQ) */
   VICIntSelect = 0x00000000;
   VICIntEnable = 0x00008000;
   EXTINT = 0x07;                // 清除外部中断标志    
   
   while(1);                    // 等待中断
   return(0);
}

;中断向量表
Reset
        LDR     PC, ResetAddr
        LDR     PC, UndefinedAddr
        LDR     PC, SWI_Addr
        LDR     PC, PrefetchAddr
        LDR     PC, DataAbortAddr
        DCD     0xb9205f80
        LDR     PC, [PC, #-0xff0]
        LDR     PC, FIQ_Addr

ResetAddr           DCD     ResetInit
UndefinedAddr       DCD     Undefined
SWI_Addr            DCD     SoftwareInterrupt
PrefetchAddr        DCD     PrefetchAbort
DataAbortAddr       DCD     DataAbort
Nouse               DCD     0
IRQ_Addr            DCD     0
FIQ_Addr            DCD     FIQ_Handler 1: 是否打开了memory窗口?如果是,请关掉 2: re谢谢!
不过,请问,这也有关系吗?我没有开memory窗口。 3: re你的VICVectAddr(0xfffff030)里写的是什么?是你期望的中断处理程序的地址吗? 4: reVICVectAddr中的地址应该是系统自动添加的对吧?
由于选择的是非向量IRQ,所以当外部中断请求时,VICVectAddr=VICDefVectAddr=外部中断1程序的入口地址。
说的不对请指正,谢谢!
我现在的问题是外部中断没有响应,而不是跳往中断入口地址有问题。 5: re请高手指点啊!很急的。 6: 如果你的中断配置都正确如果你的中断配置都正确,可能是你还没有进入到中断入口,相关的中断标志已经被清楚掉了.
7: re:如果你的中断配置都正确大狭能否说的清楚一点? 8: re首先用示波器确认你的中断条件是否已经产生

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]