找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2566|回复: 0
收起左侧

重要--S3C2440外部中断响应寄存器设置方法

[复制链接]
ID:104126 发表于 2016-1-24 02:33 | 显示全部楼层 |阅读模式
如果不按照如下设置,中断将无法执行或者无法使下一个中断进入。
/*中断挂起设置,此过程加入到主函数中启动时加载*/
void Eint_wait()
{
   rSRCPND=rSRCPND; //中断挂起寄存器清除
   rINTPND=rINTPND; //中断源挂起寄存器清除
   rEINTPEND|=0x1<<13; //外部中断挂起寄存器,Eint挂起等待中断
   rSRCPND=BIT_EINT8_23; //中断源挂起寄存器相应位置1等待中断
   rINTPND=BIT_EINT8_23; //中断挂起寄存器相应位置1等待中断
}
/*中断挂起设置结束*/


/*以下为响应中断时的处理过程,为pISR指针中的函数*/
void __irq Eint_Isr(void)
{
   if(rEINTPEND == (1<<13)) //判断Eint13有响应时执行如下
   {
     rGPBDAT=0x0<<6;  //led6亮
     delay(10000);  //说明:由于使用边沿出发方式,故按钮按完后会完成边沿过程,完成后会立刻进入else处理过程中灭灯,肉眼可能无法看出来。为使其见到效果,需要让led亮一会儿!
     rEINTPEND=(1<<13); //将中断挂起寄存器Eint13置1等待下一个中断到来,如果不设置下一个中断无法进入
   }
   else  //当不为Eint13时,执行如下
   {
     rGPBDAT=0x1<<6;
     rEINTPEND=(1<<13); //将中断挂起寄存器Eint13置1等待下一个中断到来,如果不设置下一个中断无法进入
   }
}

以上两部分为简化了的中断处理过程中的重要内容,可根据输出引脚修改rGPBDAT和rEINTPEND即可使用。其它设置部分不在此说明。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表