s3c44b0x进不了中断,刚学arm7,遇到问题,谁帮我解决,还有分送上,QQ;370126961,多谢

#include"44b.h"#include"option.h"/*intpIrqStart=0;intpIrqFinish=0;intpIrqHandler=0;*/... #include"44b.h"
#include"option.h"

/*
int pIrqStart = 0;
int pIrqFinish = 0;
int pIrqHandler = 0;
*/

int tempdat;

void __irq KEY_INT (void);

void PLL_Init() //CPU clock set
{
rPLLCON = (0X48 << 12)|(0X3 << 4)|0X2; //40MHZ
}

void IO_Init()
{
rPCONC = 0X55555555;
rPDATC = 0X4;
rPCONG = 0XFF00;
}

void INT_Init()
{
rEXTINT = 0X0;
//rEXTINTPND = 0X0;
rINTCON = 0X5;
rINTMOD = 0X0;
rINTMSK = ~(BIT_GLOBAL|BIT_EINT4567);
rI_ISPC = 0X3FFF;

}

int Main()
{
IO_Init();
INT_Init();
PLL_Init();
pISR_EINT4567 = (unsigned)KEY_INT;
while(1);
{
tempdat = rINTPND;
}
}

void __irq KEY_INT (void)
{
rPDATC = 0XF;

rI_ISPC |= BIT_EINT4567;

if( (rEXTINTPND & (1<<0) ) != 0)
{
rPDATC = 0X2;
rEXTINTPND |= (1 << 0);
}

if( (rEXTINTPND & (1<<1) ) != 0)
{
rPDATC = 0X4;
rEXTINTPND |= (1 << 1);
}

if( (rEXTINTPND & (1<<2) ) != 0)
{
rPDATC = 0X8;
rEXTINTPND |= (1 << 2);
}

if( (rEXTINTPND & (1<<3) ) != 0)
{
rPDATC = 0X0;
rEXTINTPND |= (1 << 3);
}
}
展开
 我来答
vivo01
2011-02-18 · TA获得超过185个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:163万
展开全部
你的中断向量表设置了吗?
如果没有特殊设置,中断向量表是在0x0处开始,看看数据手册的中断向量部分如何设置。
一般来说,写个汇编,编译成BIN二进制文件,放到0x0处
楼依波2W
2011-02-18 · 超过12用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:30.8万
展开全部
首先,你告诉我你想做什么事情,是在裸机还是带操作系统中产生一个中断;
第二,进不了中断,首先是什么类型中断,那些mask是否开启,中断触发模式、是否允许中断的寄存器都配了没有;
第三,如果在操作系统中,写一个简单的设备驱动;如果不是,直接检测器中断标志位。
明白了这些,我想你自己都可以做出来。思路很重要,同时要有科学的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式