打印
[ZLG-ARM]

NXP2292的EINT1总是取址终止

[复制链接]
1381|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
john1225cn|  楼主 | 2008-1-4 22:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在NXP2292的EINT1总是取址终止,程序如下:

    //NXP2292 bug solution
    divtemp = VPBDIV ;
    divtemp2 = VPBDIV ;
    VPBDIV = 0;
    EXTMODE &= ~(1<<1);    //电平触发
    EXTPOLAR |= (1<<1); //上升沿触发
    VPBDIV = divtemp2;

这段程序始终走不过去。
按照勘误手册,操作VPBDIV,还是取址终止!
怎么办?
我的权益收到损害了,心灵也受打击了

相关帖子

沙发
zlgarm| | 2008-1-5 15:55 | 只看该作者

关于取指中止

john1225cn 您好:

可不可以,发一个完整的程序上来.

初步分析是:你还需要对VIC中断控制器中的中断向量控制寄存器进行相应初始化.

                       By zlgarm_zhp

使用特权

评论回复
板凳
john1225cn|  楼主 | 2008-1-5 20:42 | 只看该作者

好的。在这里,麻烦看看

IRQ:
;/*外部中断1接口*/
Eint1_Handler HANDLER QUART_Exception

target.C:

VICVectAddr1 = (uint32)Eint1_Handler;
VICVectCntl1 = (0x20 | 15 );    //将外部中断1对应的是通道15
EXTINT = (1<<1)  ;                // 清除EINT1中断标志    
VICIntEnable = 1 << 15;            // 使能EINT1中断


自己写的函数:
//NXP2292 bug solution
    divtemp = VPBDIV ;
    divtemp2 = VPBDIV ;
    VPBDIV = 0;
    EXTMODE &= ~(1<<1);    //电平触发
    EXTPOLAR |= (1<<1); //上升沿触发
    VPBDIV = divtemp2;


就这一段跳不过去!
只要屏蔽了这里就可以正常运行。

使用特权

评论回复
地板
john1225cn|  楼主 | 2008-1-5 21:01 | 只看该作者

我已经将问题解决了

和P0.14的设置先后顺序竟然有关系!
千真万确!
太不可思议了!
记录!!!!

使用特权

评论回复
5
armecos| | 2008-1-5 22:58 | 只看该作者

在设置触发模式时不要使能EINT1

    有可能EINT1的缺省状态就是高,当你设置成高电平触发时,反复陷入中断,导致取址异常。当你不使能EINT1时,可能就与P0.14设置的先后顺序无关了。
    
    VPBDIV的BUG按照勘误手册修改即可。
    
    关于中断,可以参看下面文档:
    ecos中断操作

使用特权

评论回复
6
fengwei12| | 2011-7-23 22:00 | 只看该作者
john1225cn 请问你是怎么解决的?
我也遇到了这个问题。
芯片的bug?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

147

帖子

0

粉丝