3854|7

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

44B0裸机外部中断问题 求助啊 [复制链接]

平台:44b0
调试软件:Codewarrior for ARM 1.2(因为烧写了U-BOOT,所以初始地址我设置为了0x0c008000)
在线调试器:J-LINK
工程包含文件:Init.s,Main.c
Init.s:
                 IMPORT Main
                 IMPORT key
WTCON        EQU 0X01D30000
                   AREA Init,CODE,READONLY
ENTRY
                B                RESET
                B                .
                B                .
                B                .
                B                .
                B                .
                B                IRQ
               
                  ldr       r0,=WTCON            ;watch dog disable
                ldr            r1,=0x0                
                str            r1,[r0]
RESET
                  BL        Main
IRQ               
                STMFD                SP!,{R0-R12,LR}
                BL         key
                LDMFD        SP!,{R0-R12,LR}
                SUBS        PC,LR,#4
                   END
Main.c:
#define rPCONC (*(volatile unsigned *)0X01D20010)
#define rPDATC (*(volatile unsigned *)0X01D20014)
#define rPUPC (*(volatile unsigned*) 0X01D20018)  //LED相关寄存器
#define PCONG  (*(volatile unsigned*)0X01D20040)
#define PDATG  (*(volatile unsigned*)0X01D20044)//外部中断
#define PUPG  (*(volatile unsigned*)0X01D20048)
#define EXTINT  (*(volatile unsigned*)0X01D20050)
#define EXTINTPND (*(volatile unsigned*)0X01D20054)
#define INTCON         (*(volatile unsigned*)0X01E00000)
#define INTMOD         (*(volatile unsigned*)0X4A000004)
#define INTMSK         (*(volatile unsigned*)0X4A000008)
#define INTPND         (*(volatile unsigned*)0X01E00004)
#define I_ISPC         (*(volatile unsigned*)0X01E00024)
void key(void);
int Main()
{
        unsigned int i;
        rPCONC=0X55555554;//设置PCONC为输出口,连接LED
        rPDATC=0X0000;//LED灭
        rPUPC=0X3000;
        PCONG|=0XFF00;//设置PCONG为外部中断源
        PUPG|=0X0;
        INTMOD|=0X0;//IRQ中断模式
        EXTINT|=0X22222222;//上升沿触发
        INTCON|=0X05;//非向量中断模式
        INTMSK|=0X00FFFF;//中断屏蔽寄存器,允许EINT0,EINT1,EINT2,EINT3中断
        while(1)
        {
           rPDATC=0xFFFFFFFF;//LED亮
         }
        return(0);
}
void key(void)//外部中断函数
{
        rPDATC=~rPDATC;//取反LED,按键控制LED的亮灭
        I_ISPC=0X0;//清除中断标志位
}
一、程序运行时,当我按下按键时(外部中断源),程序提示错误,好像是不能进入中断。
二、当不用J-LINK,中用AXD软件仿真时,不知道用什么方法仿真外部中断,就像keil.c51 有I/O/口仿真外部中断那种。
请各位高手指点。

最新回复

呵呵  1986?  我是1986年的,嘻嘻   详情 回复 发表于 2010-1-15 22:03
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
选择出IO口的状态栏,直接给0给1 就行了
Keil 下 这样的
进入到调试模式,选择Perjjipherals->IO port 然后可以设定IO口了

AD也是一样的,是可以设定的

这些软仿真,编译器做的还是挺好的
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
AD 怎么进入I/O口啊? 找了半天,没找到。
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

4
 
KEIL C软件仿真 是可以进行IO 或者AD 以及中断的设置的。

楼主再找找。AXD的教程很多,楼主再找找,
但是,在软件仿真这方面,的确ADS与AXD 没有KEIL C做得好。
如果实在找不到,就不要软件仿真,没有实际作用。

另外楼主可以下载一个简单的外部中断的程序测试下 ,44B0 不跑OS,就跑各类功能接口的程序很多,
楼主百度与GOOGLE下,很多类似的程序。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
恩,顶一下楼上的确,别太依赖外部的仿真软件。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
。。。有AXD怎么进行外部中断的仿真啊?  找了好久都没有找到给。。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
一直不会用axd仿真,一直都是直接调试的~~~
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 mxm1986 的回复:
一直不会用axd仿真,一直都是直接调试的~~~



呵呵  1986?  我是1986年的,嘻嘻
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表