加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ARM LED实验

发布时间:2020-12-15 06:45:00 所属栏目:百科 来源:网络整理
导读:??LED是是最简单的模块,基本上任何一块学习板都具有这个模块!!下面是具体的实现代码: #include "2410addr.h" #define LED1??????????????? (15)??????????????? // rGPB[5] =1 ; #define LED2??????????????? (16)??????????????? // rGPB[6] =1 ; #defi
??LED是是最简单的模块,基本上任何一块学习板都具有这个模块!!下面是具体的实现代码:

#include "2410addr.h"

#define LED1??????????????? (1<<5)??????????????? // rGPB[5] =1 ;
#define LED2??????????????? (1<<6)??????????????? // rGPB[6] =1 ;
#define LED3??????????????? (1<<7)??????????????? // rGPB[7] =1 ;
#define LED4??????????????? (1<<8)??????????????? // rGPB[8] =1 ;

void Delay(int time)
{
unsigned int i,j;
for(i=1;i<100;i++)
? for(j=1;j<time;j++)
? ;
}

void Main(void){
??? unsigned int k,k1;
??? rGPBCON = 0x015550;
??? rGPBUP? = 0x7ff;
??? k1 = ~LED4;
??? //rGPFCON = (rGPFCON & 0x00ff) | 0x5500;//设置GPF[7:4](LED[4:1])为输出功能
??? while (1){?
??? for (k = 1; k < 5; k++){
???? switch(k){
??????????? case 1:rGPBDAT=~LED4;break;
??????????? case 2:rGPBDAT= ~LED3;break;
??????????? case 3:rGPBDAT= ~LED2;break;
??????????? case 4:rGPBDAT= ~LED1;break;??????????
????????????
??????????? }
??????????? Delay(2000);
???????????
???? }
?? }
?}?
?

使用汇编语言实现的LED等的点亮:

?AREA LED,CODE,READONLY
?CODE32
?ENTRY
?
START
?LDR R0,=0X56000010
?LDR R1,=0X00015400
?STR R1,[R0]
?LDR R0,=0X56000014
?
LOOP
?LDR R1,=0X0E0
?STR R1,[R0]
?;BL DELAY
?;LDR R1,=0X160
?;STR R1,[R0]
?;BL DELAY
?;LDR R1,=0X1A0
?;STR R1,=0X1C0
?;STR R1,[R0]
?;BL DELAY

?B LOOP

;DELAY
?;LDR R6,=0X1FFFFFF
;LOOP_1
?;SUB R6,R6,#0X1
?;CMP R6,#0X0
?;BNE LOOP_1
?;MOV PC,LR
???
?END

?

这个LED学习,知道了一个裸奔程序都需要启动代码。

启动代码2440init.s文件很重要,注意在244init.h文件中必须要有的语句:

只有这样程序运行的时候才能找到程序的入口,不一定要取名为Main,但是一定要申明。

接下来就是要设置编译环境:如图

第一步:如图

第二步:如图:

第三步:如图

?
第四步:

第五步:

其中的2440init.o??? Init必须与2440init.s文件中的一致:

?

?

?

还有是对GPIO口的理解。

GPIO口就是输入输出。输出时是写数据到端口,要使能上拉电阻。输入时是从端口读取数据,禁止上拉电阻。至于如何知道端口是输入还是输出还是中断用途,要配置GPxCON寄存器。上拉电阻的配置是通过GPxUP寄存器。GPxDAT就是数据寄存器。而配置什么数据就要看芯片的datasheet了。

?

将程序烧写到开发板的Nor Flash中,接好串口线和usb线和电源,打开超级终端和DNW,启动开发办(从Nor flash启动)进入到BIOS界面,选择d,此时转到DNW下,USB显示

已经接好了,提示 USB : OK!!下载程序到开发办运行。

注意这里要设置一下DNW,如下图:

选择Configuration→options进入到如下界面并做如下图所示的配置

至于为什么这么设置,自己参考dateshet手册!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读