打印

arm中断小程序为为什么不行呢?

[复制链接]
1644|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cainiao402|  楼主 | 2008-1-16 08:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大虾:
       我是个大菜鸟。现在刚接触ARM,买了快easy2104学习板回来。但学到中断的时候按照书上的中断例子在ADS1.2中仿真。但都每成功。不知道是什么问题书上的例子是这样的。
我在建立工程时是用ARM Executable image for lpc21xx
书中设置的为非向量中断,但没有设到地址。书上的程序如下,请问各位大虾
这样的程序为什么会入不到中断呢?
#include  "config.h"
#define  ledcon 0x00002000   //led4口为输出
                             //P0.14为EINT0
/**********************+外部中断******/                            
void  __irq IRQ_Eint1(void)   //外部中断0入口地址
{
 uint32 i;
 i=VICIRQStatus;
 i=IOSET;

 if((i&ledcon)==0)        //指示灯取反
    {IOSET=ledcon;
    }
 else
    {IOCLR=ledcon;
    } 
      
 while((EXTINT&0x02)!=0); //等待EINT1变高
 EXTINT=0x02;             //清中断标志位   

/*************主程序****************/
int main()
{
 PINSEL0=0x20000000;      //将KEY1(p0.14)设置为EXINT1方式输入
 PINSEL1=0x00000000;      //其他口为普通IO口
 IODIR=ledcon;            //P0.13即LED4为输出
 
 //打开EINT1中断(不设置向量控制器,即使用非向量IRQ)
 VICIntSelect=0x00000000; //设置所有中断为IRQ中断
 VICIntEnable=0x00008000; //使能EXINT0
 EXTINT=0x07;             //清中断标志位
 while(1);                //等待中断
 return(0);
}                             

相关帖子

沙发
cainiao402|  楼主 | 2008-1-16 13:08 | 只看该作者

问题是不是问得太没水平了?

问题是不是问得太没水平了?
大家给点意见吧!刚碰这ARM这东西,问得太菜各位大虾们不要见笑啊。呵呵。

使用特权

评论回复
板凳
dld2| | 2008-1-16 13:27 | 只看该作者

貌似常用的是向量中断

人家怎么找到你的中断服务程序呢?
你加一句:
    VICDefVectAddr = (int)IRQ_Eint1;
试一下。

使用特权

评论回复
地板
cainiao402|  楼主 | 2008-1-16 15:54 | 只看该作者

我也试过了。

我刚开始怀疑是这样。但我加了VICDefVectAddr=(uint32)IRQ_Eint1。
结果也是一样的。
我想会不会是编译器设置的问题呢?
我是否应该把 RO设为:0x40000000 RW为:0x40003000。
             程序入口为:0x40000000
我设置了和不设置RO .RW都是不行的。我还漏了什么步骤吗?

使用特权

评论回复
5
dld2| | 2008-1-16 16:03 | 只看该作者

有可能IRQ就没有打开

看看有没有startup.s这个文件。里面有没有IRQEnable这个子程序。有就调用一下。

使用特权

评论回复
6
阿南| | 2008-1-16 18:11 | 只看该作者

比较笨,但是挺有效的方法

楼主请用光盘现成的例子试一下,看行不行.如果可以,再将您和它的进行比较,应该就可以找到问题的原因了

使用特权

评论回复
7
biao.l| | 2008-1-16 21:05 | 只看该作者

dld2说得对

IRQEnable();
    
VICIntSelect=0x00000000;
VICVectCntl0=0x20|0x0f;
VICVectAddr0=(uint32)IRQ_EINT1;
VICIntEnable=(1<<15);

我用的是外中断1,改一下就行了

使用特权

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

本版积分规则

99

主题

238

帖子

2

粉丝