主题 : 中断程序没反应啊,请各位大虾指教!不胜感激! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 21269
精华: 0
发帖: 4
金钱: 20 两
威望: 4 点
综合积分: 8 分
注册时间: 2010-05-13
最后登录: 2010-06-20
楼主  发表于: 2010-05-21 15:04

 中断程序没反应啊,请各位大虾指教!不胜感激!

下载到NAND—FLASH地址0X00000000;
#include "def.h"
#include "mmu.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
  
void ee_isr(void)   //中断服务函数
{unsigned int i;
rSRCPND=0x0;
rGPBDAT=0x3f1;
for(i=0;i<120000;i++);
rGPBDAT=0x3fe;
for(i=0;i<120000;i++);
}

void Main(void)
{
rGPBCON=0x55555;
rGPFCON=0x0002;     //设置按键K4为EINT0中断
pISR_EINT0= (unsigned int) ee_isr;//中断服务函数名
rEXTINT0=0x000000;  //设置为低电平触发
rINTPND=0x00000001; //中断挂起寄存器;1为请求;
rINTMOD=0x00000000; //中断模式寄存器0为IRQ模式;
rINTMSK=0xFFFFFFFe; //中断屏蔽寄存器0为允许;
rINTOFFSET=0x0;     //中断偏移寄存器0为偏移值,为只读;
//rSRCPND=0x0;        //中断源挂起寄存器1为请求;记录用
rPRIORITY=0x000001; //中断优先级寄存器;

  while(1)
{
  rGPBDAT=0x12e;
}
}
[ 此帖被不断实践在2010-05-21 15:18重新编辑 ]
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
1楼  发表于: 2010-05-25 08:45
初始化似乎有问题,可以参照2440test里的中断初始化。
级别: 新手上路
UID: 21989
精华: 0
发帖: 39
金钱: 205 两
威望: 41 点
综合积分: 78 分
注册时间: 2010-05-25
最后登录: 2019-08-30
2楼  发表于: 2010-08-13 10:10
你的Main()函数里没有加MMU_Init;
白阳
zzd
级别: 新手上路
UID: 32578
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2010-11-18
最后登录: 2010-11-18
3楼  发表于: 2010-11-18 09:58
貌似是没有初始化MMU
贵在坚持!
级别: 新手上路
UID: 27785
精华: 0
发帖: 37
金钱: 185 两
威望: 37 点
综合积分: 74 分
注册时间: 2010-08-31
最后登录: 2012-05-26
4楼  发表于: 2011-02-11 11:30
2楼 说的有道理
级别: 新手上路
UID: 17099
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2010-03-24
最后登录: 2018-03-06
5楼  发表于: 2011-04-05 21:18
不懂别瞎鸡巴回答好不?虽然我也不懂 但是我看到苦主人家确实是把程序写到nand里面了还要什么狗屁mmu
级别: 新手上路
UID: 38778
精华: 0
发帖: 47
金钱: 235 两
威望: 47 点
综合积分: 94 分
注册时间: 2011-03-01
最后登录: 2013-08-03
6楼  发表于: 2011-05-05 01:10
你进入中断服务函数貌似没有清楚中断标志  rSRCPND=0x0 不对,写1是清除中断标志,写零不变
初试化程序中按键连接貌的是GPGIO口,貌似你没有设置GPXCON是输入还是输出,应该先设置输入输出,在设置特殊功能
初始化程序中没有清除中断标志,应该用ClearPending(BIT_EINT8_23) ,还要加上rEINTPEND=0XFFFFFF,清除外部中断标志
最好将rEINTMASK相应位中断允许打开
你试试吧,不行按测试程序改
级别: 新手上路
UID: 45162
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2011-05-02
最后登录: 2012-12-23
7楼  发表于: 2011-05-24 15:35
引用第6楼wadlia于2011-05-05 01:10发表的  :
你进入中断服务函数貌似没有清楚中断标志  rSRCPND=0x0 不对,写1是清除中断标志,写零不变
初试化程序中按键连接貌的是GPGIO口,貌似你没有设置GPXCON是输入还是输出,应该先设置输入输出,在设置特殊功能
初始化程序中没有清除中断标志,应该用ClearPending(BIT_EINT8_23) ,还要加上rEINTPEND=0XFFFFFF,清除外部中断标志
最好将rEINTMASK相应位中断允许打开
你试试吧,不行按测试程序改

回答比较详细