首页>>论坛 >>技术社区 >>NXP技术社区 >>32位ARM
|
我要发帖  | 我要投票  | 我要回复  | 收藏
1

请教 2148为何 不进IRQ中断

版主: kf118  布丁丁  NXPADMIN  blaine007 
请教 2148为何 不进IRQ中断
 

请教为何进不了IRQ中断,中断IRQ不响应,程序不会跳转到  LDR     PC, [PC, #-0x0FF0]     ; 检查VICIRQStatus 有中断产生(00000400),中断是SPI0
我的配置程序如下.

void InitSet(void)
{
    unsigned long setbit;

    VICSoftInt = 0x0;
    setbit = 0x08480;

    VICProtection = 0x00;        //0:VIC 寄存器可在用户模式或特权模式下访问。
                                            //1:VIC 寄存器只能在特权模式下访问。

    VICVectCntl0  = 0x20 | VECTOR_INIT_SPI0;
    VICVectCntl1  = 0x20 | VECTOR_INIT_UART1;
    VICVectCntl2  = 0x20 | VECTOR_INIT_EINT1; 
/*            
    VICVectCntl3  = 0x20 | INIT_TIMER0;
    VICVectCntl4  = 0x20 | VECTOR_INIT_USB;
    VICVectCntl5  = 0x20 | INITx;
    VICVectCntl6  = 0x20 | INITx;
    VICVectCntl7  = 0x20 | INITx;
    VICVectCntl8  = 0x20 | INITx;
    VICVectCntl9  = 0x20 | INITx;
    VICVectCntl10 = 0x20 | INITx;
    VICVectCntl11 = 0x20 | INITx;
    VICVectCntl12 = 0x20 | INITx;
    VICVectCntl13 = 0x20 | INITx;
    VICVectCntl14 = 0x20 | INITx;
    VICVectCntl15 = 0x20 | INITx;
*/
    VICVectAddr0  = (unsigned long)Isr_Spi0;
    VICVectAddr1  = (unsigned long)Isr_Uart1;
    VICVectAddr2  = (unsigned long)Isr_EINT1;
/*
    VICVectAddr3  = ;
    VICVectAddr4  = ;
    VICVectAddr5  = ;
    VICVectAddr6  = ;
    VICVectAddr7  = ;
    VICVectAddr8  = ;
    VICVectAddr9  = ;
    VICVectAddr10 = ;
    VICVectAddr11 = ;
    VICVectAddr12 = ;
    VICVectAddr13 = ;
    VICVectAddr14 = ;
    VICVectAddr15 = ;
    VICVectAddr15 = ;
*/                                       
    VICDefVectAddr= (unsigned long)Isr_Def;
    VICVectAddr  = 0;
    VICIntSelect = 0x00;               //中断类型选择 全选择 IRQ 中断
    VICIntEnable = setbit;             //开中 断                                                                       
}

 
相关主题
回复 链接 收藏
 
RE:请教 2148为何 不进IRQ中断
 
您可以看一下,全局中断是否打开,具体的方法是查看CPSR寄存器的第7位是否为0,0为允许IRQ中断,1为禁止IRQ中断。
我已经检查过!是为零的, RTC中断能开,其他的不能,而且RTC中断的速度很快,怎么设置都是一样,一开中断就没法做其他的任务了,程序一直不停的在中断里来回
VICVectCntl0 = 0x20 | VECTOR_INIT_SPI0;
VECTOR_INIT_SPI0定义为10
VICVectAddr = 0;应当放到中断里面去
谢谢!因过年回家没有来得即看.我现在能进中断了
 
回复 链接 收藏
 
RE:请教 2148为何 不进IRQ中断
 
到这里下载一个VIC管理程序 就轻松解决了问题
http://blog.ednchina.com/hnclcj
呵呵 有问题找我
 
回复 链接 收藏
 
我要发帖  | 我要投票  | 我要回复  | 收藏
1