搜索
bottom↓
回复: 8

s3c44b0x 进不了中断

[复制链接]

出0入0汤圆

发表于 2011-2-17 17:10:42 | 显示全部楼层 |阅读模式
刚学arm,现在遇到问题,调了好多天,还没解决,谁帮帮忙啊,

#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()        //IO初始化
{
        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);
        }
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2011-2-17 17:14:39 | 显示全部楼层
只能自己顶了,

出0入0汤圆

发表于 2011-2-17 18:48:17 | 显示全部楼层
启动代码里面好像有一个地方是要设置中断使能的代码。

出0入0汤圆

 楼主| 发表于 2011-2-17 19:01:26 | 显示全部楼层
回复【2楼】wxm521216
启动代码里面好像有一个地方是要设置中断使能的代码。
-----------------------------------------------------------------------

这个应该不需要自己改吧,我直接用的是板子测试程序的启动代码


这个是工程文件ourdev_616716TL9J9L.zip(文件大小:40K) (原文件名:interrupt_test.zip)

出0入0汤圆

发表于 2011-2-17 19:15:55 | 显示全部楼层
在44binit.s文件中的第215行中,已经将所有的中断屏蔽了。
    ldr            r0,=INTMSK
    ldr            r1,=0x07ffffff  ;all interrupt disable(屏蔽所有中断)
    str            r1,[r0]

出0入0汤圆

发表于 2011-2-17 19:23:30 | 显示全部楼层
不好要意思没看完整,在你贴的文件中已经开中断了。rINTMSK = ~(BIT_GLOBAL|BIT_EINT4567);

出0入0汤圆

 楼主| 发表于 2011-2-17 19:25:52 | 显示全部楼层
回复【5楼】wxm521216
不好要意思没看完整,在你贴的文件中已经开中断了。rintmsk = ~(bit_global|bit_eint4567);  

-----------------------------------------------------------------------

没事,谢谢你了,只有你愿意帮我,我调了好多天,还是没调出来,现在在看启动代码的资料,你看下我那工程设置的参数是不是有错啊

出0入0汤圆

发表于 2011-2-17 20:38:34 | 显示全部楼层
你把44binit.s文件中第40行 "NOIN EQU 0xc0"改成"NOINT EQU 0x00"

出0入0汤圆

发表于 2013-1-8 14:34:40 | 显示全部楼层
no,要开cpsr的中断
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 13:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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