登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
固件下载
资料汇总
搜索帖子!
NanoPC 系列:
NanoPC-T2
NanoPC-T3 Plus
NanoPC-T4
NanoPC-T6
NanoPC-T6 Plus
NanoPi 系列:
NanoPi-NEO
NEO Core
NEO Air
M1 Plus
Duo2
NEO3
NEO4
M4B
M5
M6
M6V2
核心板:
Smart4418
Core4418
Smart6818
Core6818
SOM-RK3399V2
CM3588
CM3588 Plus
迷你R系列:
NanoPi-R1
R1S
R2S
R2S Plus
Zero2
R3S
R76S
R4S
R5S
R5C
R6C
R6S
热门版块:
开发板销售中心
开发板硬件讨论区
硬软DIY及开发
嵌入式交流与讨论
友友粉丝快线
Ubuntu技术交流区
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访IP统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
裸机程序和微型OS
韦老板_mini2440_第一篇_按键和led双剑合璧
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
新 帖
主题 : 韦老板_mini2440_第一篇_按键和led双剑合璧
复制链接
|
浏览器收藏
|
打印
kisssummer
知识改变命运!
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
39523
精华:
0
发帖:
7
金钱:
35 两
威望:
7 点
综合积分:
14 分
注册时间:
2011-03-09
最后登录:
2011-06-16
楼主
发表于: 2011-03-25 12:29
只看楼主
|
小
中
大
韦老板_mini2440_第一篇_按键和led双剑合璧
复制代码
/*
文件名:main.s
时间:2011.3.23 作者:kissyyg
功能:按键K1到K4被按下时相应的led1到led4被点亮,K5被按下时全亮,K6按下时蜂鸣器响。
*/
#define GPBCON *((volatile unsigned long*)0x56000010)
#define GPBDAT *((volatile unsigned long*)0x56000014)
#define GPGCON *((volatile unsigned long*)0x56000060)
#define GPGDAT *((volatile unsigned long*)0x56000064)
//对应led1,2,3,4的io口,做输出
#define GPB5_OUT (1<<(5*2))
#define GPB6_OUT (1<<(6*2))
#define GPB7_OUT (1<<(7*2))
#define GPB8_OUT (1<<(8*2))
//蜂鸣器io口,作输出
#define GPB0_OUT (1<<(0*2))
//对应按键1,2,3,4,5,6的的io口,做输入
#define GPG0_IN ~(3<<(0*2))
#define GPG3_IN ~(3<<(3*2))
#define GPG5_IN ~(3<<(5*2))
#define GPG6_IN ~(3<<(6*2))
#define GPG7_IN ~(3<<(7*2))
#define GPG11_IN ~(3<<(11*2))
//led事件的定义,点灯给低电平,灭灯相反,键被按下为低电平
#define led1_on ~(1<<5)
#define led2_on ~(1<<6)
#define led3_on ~(1<<7)
#define led4_on ~(1<<8)
#define led_all_on ~((1<<5)|(1<<6)|(1<<7)|(1<<8))
#define led1_down (1<<5)
#define led2_down (1<<6)
#define led3_down (1<<7)
#define led4_down (1<<8)
#define led_all_down ((1<<5)|(1<<6)|(1<<7)|(1<<8))
//按键事件定义,键被按下读得为低电平否则为高电平
#define k1_down (1<<0)
#define k2_down (1<<3)
#define k3_down (1<<5)
#define k4_down (1<<6)
#define k5_down (1<<7)
#define k6_down (1<<11)
//蜂鸣器,给高则发声否则不发
#define beep (1<<0)
#define beep_stop ~(1<<0)
int main()
{
unsigned long dwData;;
//配置端口的输入输出
GPBCON = GPB0_OUT | GPB5_OUT | GPB6_OUT | GPB7_OUT | GPB8_OUT;
GPGCON = GPG0_IN & GPG3_IN & GPG5_IN & GPG6_IN & GPG7_IN;
//循环查询是否有键被按下
while(1)
{
dwData = GPGDAT;
if(dwData & k1_down) //k1没被按下
GPBDAT |= led1_down; //led1灭
else
GPBDAT &= led1_on; //否则亮
if(dwData & k2_down) //k2没被按下
GPBDAT |= led2_down; //led2灭
else
GPBDAT &= led2_on; //否则亮
if(dwData & k3_down) //k3没被按下
GPBDAT |= led3_down; //led3灭
else
GPBDAT &= led3_on; //否则亮
if(dwData & k4_down) //k4没被按下
GPBDAT |= led4_down; //led4灭
else
GPBDAT &= led4_on; //否则亮
if(dwData & k5_down) //k5没被按下
; //什么也不做
else
GPBDAT &= led_all_on; //否则全亮
if(dwData & k6_down) //键6没被按
GPBDAT &= beep_stop;
else
GPBDAT |= beep; //否则响
}
return 0;
}
;文件名:main.s
;时间:2011.3.23 作者:kissyyg
;功能:设置堆栈,关掉看门狗,跳转到main()函数执行
IMPORT main
CODE32
AREA test,CODE,READONLY
ENTRY
START LDR r0, =0x53000000 ;disable dog
MOV r1, #0x0
STR r1, [r0]
LDR sp, =1024*4 ;init stack
BL main ;call main fron main.c
LOOP
B LOOP
END
希望大家一起讨论指正,我的程序自己都在板子上验证过,下期中断,请您静静等候!
顶端
回复
引用
分享
wangjianming
级别: 新手上路
作者资料
发送短消息
加为好友
QQ联系
UID:
40545
精华:
0
发帖:
9
金钱:
45 两
威望:
9 点
综合积分:
18 分
注册时间:
2011-03-19
最后登录:
2011-03-26
1楼
发表于: 2011-03-26 17:00
只看该作者
|
小
中
大
gei li
顶端
回复
引用
分享
qqq4012
级别: 新手上路
作者资料
发送短消息
加为好友
QQ联系
UID:
46086
精华:
0
发帖:
5
金钱:
25 两
威望:
5 点
综合积分:
10 分
注册时间:
2011-05-10
最后登录:
2011-05-10
2楼
发表于: 2011-05-10 13:45
只看该作者
|
小
中
大
牛
真正彪悍的人生不需要做任何解释
顶端
回复
引用
分享
qq595016883
级别: 侠客
作者资料
发送短消息
加为好友
UID:
31905
精华:
0
发帖:
58
金钱:
295 两
威望:
59 点
综合积分:
116 分
注册时间:
2010-11-07
最后登录:
2015-12-25
3楼
发表于: 2011-05-11 14:43
只看该作者
|
小
中
大
这个是不是在Linux下编写的程序。
顶端
回复
引用
分享
牧渔
又来了一次,不得不成为打渔的
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
45139
精华:
0
发帖:
11
金钱:
55 两
威望:
11 点
综合积分:
22 分
注册时间:
2011-05-02
最后登录:
2011-06-03
4楼
发表于: 2011-05-12 20:32
只看该作者
|
小
中
大
ARM的初始化有这么简单么,是不是因为是裸机程序,就只设置使用到的项目?
顶端
回复
引用
分享
wuha
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
22064
精华:
0
发帖:
13
金钱:
70 两
威望:
14 点
综合积分:
26 分
注册时间:
2010-05-26
最后登录:
2013-03-04
5楼
发表于: 2011-06-22 16:11
只看该作者
|
小
中
大
LDR sp, =1024*4 ;init stack
请教楼主,这里我一直有疑惑,既然初始内部sram只有4k,那地址应该是0~(1024*4-1)才对,但他这里设置到1024*4,是不是不对呀!
顶端
回复
引用
分享
lzg2011
级别: 侠客
作者资料
发送短消息
加为好友
QQ联系
UID:
46715
精华:
0
发帖:
54
金钱:
275 两
威望:
55 点
综合积分:
108 分
注册时间:
2011-05-15
最后登录:
2012-05-25
6楼
发表于: 2011-08-04 09:58
只看该作者
|
小
中
大
学习了
顶端
回复
引用
分享
sheshiji
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
53539
精华:
0
发帖:
14
金钱:
70 两
威望:
14 点
综合积分:
28 分
注册时间:
2011-08-10
最后登录:
2013-10-09
7楼
发表于: 2011-08-10 12:08
只看该作者
|
小
中
大
不错!
顶端
回复
引用
分享
jason2001
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
53468
精华:
0
发帖:
6
金钱:
30 两
威望:
6 点
综合积分:
12 分
注册时间:
2011-08-08
最后登录:
2011-08-10
8楼
发表于: 2011-08-10 21:03
只看该作者
|
小
中
大
樓主你好,有些問題想問你,請問你QQ多少呢?
如果方便的話可以發我郵箱:
woods2001@126.com
謝謝~
顶端
回复
引用
分享
上一主题
下一主题
裸机程序和微型OS
http://121.40.142.80
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问