登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
资料下载
搜索帖子!
NanoPC-T2
Core4418
NanoPC-T3 Plus
Core6818
NanoPi-M4B
NanoPC-T4
NanoPC-T6
NanoPi-NEO
NanoPi-NEO Core
NanoPi-NEO Air
NanoPi-M1 Plus
NanoPi-Duo2
NanoPi-NEO3
核心板:
Smart210
Tiny210
Smart4418
Smart6818
SOM-RK3399V2
CM3588(新品)
路由器:
R1
R1S
R2S
R2S Plus
R2C Plus
R4S
R5S
R5C
R6C
R6S
热门版块:
Linux技术交流区
友善之臂最新动态
开发板实战手册及教程
NanoPi 玩家交流区
ROM发布区
Android技术交流区
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访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 点
贡献值:
0 点
综合积分:
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 点
贡献值:
0 点
综合积分:
18 分
注册时间:
2011-03-19
最后登录:
2011-03-26
1楼
发表于: 2011-03-26 17:00
只看该作者
|
小
中
大
gei li
顶端
回复
引用
分享
qqq4012
级别: 新手上路
作者资料
发送短消息
加为好友
QQ联系
UID:
46086
精华:
0
发帖:
5
金钱:
25 两
威望:
5 点
贡献值:
0 点
综合积分:
10 分
注册时间:
2011-05-10
最后登录:
2011-05-10
2楼
发表于: 2011-05-10 13:45
只看该作者
|
小
中
大
牛
真正彪悍的人生不需要做任何解释
顶端
回复
引用
分享
qq595016883
级别: 侠客
作者资料
发送短消息
加为好友
UID:
31905
精华:
0
发帖:
58
金钱:
295 两
威望:
59 点
贡献值:
0 点
综合积分:
116 分
注册时间:
2010-11-07
最后登录:
2015-12-25
3楼
发表于: 2011-05-11 14:43
只看该作者
|
小
中
大
这个是不是在Linux下编写的程序。
顶端
回复
引用
分享
牧渔
又来了一次,不得不成为打渔的
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
45139
精华:
0
发帖:
11
金钱:
55 两
威望:
11 点
贡献值:
0 点
综合积分:
22 分
注册时间:
2011-05-02
最后登录:
2011-06-03
4楼
发表于: 2011-05-12 20:32
只看该作者
|
小
中
大
ARM的初始化有这么简单么,是不是因为是裸机程序,就只设置使用到的项目?
顶端
回复
引用
分享
wuha
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
22064
精华:
0
发帖:
13
金钱:
70 两
威望:
14 点
贡献值:
0 点
综合积分:
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 点
贡献值:
0 点
综合积分:
108 分
注册时间:
2011-05-15
最后登录:
2012-05-25
6楼
发表于: 2011-08-04 09:58
只看该作者
|
小
中
大
学习了
顶端
回复
引用
分享
sheshiji
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
53539
精华:
0
发帖:
14
金钱:
70 两
威望:
14 点
贡献值:
0 点
综合积分:
28 分
注册时间:
2011-08-10
最后登录:
2013-10-09
7楼
发表于: 2011-08-10 12:08
只看该作者
|
小
中
大
不错!
顶端
回复
引用
分享
jason2001
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
53468
精华:
0
发帖:
6
金钱:
30 两
威望:
6 点
贡献值:
0 点
综合积分:
12 分
注册时间:
2011-08-08
最后登录:
2011-08-10
8楼
发表于: 2011-08-10 21:03
只看该作者
|
小
中
大
樓主你好,有些問題想問你,請問你QQ多少呢?
如果方便的話可以發我郵箱:
woods2001@126.com
謝謝~
顶端
回复
引用
分享
上一主题
下一主题
友善之家
裸机程序和微型OS
http://www.aiothome.net
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问