打印
[ZLG-ARM]

关于ARM7系列芯片LPC2119外部中断的BUG

[复制链接]
1505|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kernel99|  楼主 | 2007-5-25 09:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在程序中先初始化外部中断口EINT2和EINT3,代码如下:
void ext_init(void)
{
   
    set_gpio_p07eint2;//用到P0.7做为外部中断2的输入,
                         
    set_gpio_p030eint3;//设置P0.30做为外部中断3的输入
    VICIntSelect   = 0x00000000;
    EXTMODE      = 0X0C;         //EDGE ACTIVE,外部中断2和3采用边触发方式
    
    EXTPOLAR       =0X0C;//上升沿触发(★)
    VICVectCntl2   = 0x20 | 16;            // 分配外部中断2到向量中断2
    VICVectAddr2   = (INT32U)IRQ_Eint2;    // 设置中断服务程序地址
    VICVectCntl3   = 0x20 | 17;            // 分配外部中断3到向量中断3
    VICVectAddr3   = (INT32U)IRQ_Eint3;    // 设置中断服务程序地址

    VICIntEnable   = (1<<16)|(1<<17);            // 使能EINT2,3中断
    EXTINT       = 0X0C;         //FLAG CLEAR,清零EINT2,EINT3

}

使用UICE的仿真器单步仿真,走到(EXTPOLAR=0X0C;//上升沿触发)就出现跑飞.各位大侠谈下是否这类有BUG.

相应的针对外部中断初始化程序中加入:
uint8 temp1,temp2;
temp1=VPBDIV;
temp2=VPBDIV;
VPBDIV=0;
EXTMODE=0x0c;//使能EINT2,EINT3中断为边沿激活
VPBDIV=temp2;

就能通过仿真


   
   

相关帖子

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

本版积分规则

93

主题

177

帖子

1

粉丝