按键实现arm开发板led灯
来源:互联网 发布:arashi smap 地位知乎 编辑:程序博客网 时间:2024/04/28 14:41
1、新建一个工程,命名为“button_led”,再在工程下新建一个文件start.s。
/* start.s */
area init,code,readonly //该伪指令定义了一个代码段,段名为Init,属性只读
b begin //跳转到begin处执行
begin
ldr sp,=1024*4 //设置堆栈,注意:不能大于4k, 因为现在可用的内只有4K存 只有4K,nand flash中的代码在复位后会移到内部ram中,此ram只有4K
export main //声明主函数Main
b main //调用C程序中的main函数
end
2、再新建一个头文件对端口进行初始化和宏定义。
/* button.h */
#ifndef _LED_
#define _LED_
#define rGPBCON (*((volatile unsigned *)0x56000010)) //定义一个寄存器变量(详细请访问链接地址:http://blog.csdn.net/yimu13/article/details/6329306)
#define rGPBDAT (*((volatile unsigned *)0x56000014)) //Port B数据寄存器 #... 要想实现对G口的配置,只要在地址0x56000060中给32位的每一位赋值就可以了#define rGPGCON ((*(volatile unsigned *)0x56000060))
#define rGPGDAT ((*(volatile unsigned *)0x56000064))
#define LED1_ON rGPBDAT&=(~(0x1<<5))
#define LED2_ON rGPBDAT&=(~(0x1<<6))
#define LED3_ON rGPBDAT&=(~(0x1<<7))
#define LED4_ON rGPBDAT&=(~(0x1<<8))
#define LED1_OFF rGPBDAT|=(0x1<<5)
#define LED2_OFF rGPBDAT|=(0x1<<6)
#define LED3_OFF rGPBDAT|=(0x1<<7)
#define LED4_OFF rGPBDAT|=(0x1<<8)
#endif
3、在工程中再新建一个源文件,button.c 。
/* button.c */
#include "dey.h"
int delay(unsigned int n)
{
while(n--);
return 0;
}
int main()
{
rGPBCON |= 0x15400;
while(1)
{
if((rGPGDAT &0x1)==0x0)
LED1_ON;
delay(1000);
if((rGPGDAT &0x8)==0x0)
LED2_ON;
delay(1000);
if((rGPGDAT &0x20)==0x0)
LED3_ON;
delay(1000);
if((rGPGDAT &0x40)==0x0)
LED4_ON;
delay(1000);
if((rGPGDAT&0x1)==0x1)
LED1_OFF;
if((rGPGDAT&0x8)==0x8)
LED2_OFF;
if((rGPGDAT&0x20)==0x20)
LED3_OFF;
if((rGPGDAT&0x40)==0x40)
LED4_OFF;
delay(1000);
if((rGPGDAT&0x80)==0x0)
{
int i=5;
while(i!=0)
{
LED1_ON;
delay(1000000);
LED2_ON;
delay(1000000);
LED3_ON;
delay(1000000);
LED4_ON;
delay(1000000);
LED1_OFF;
delay(1000000);
LED2_OFF;
delay(1000000);
LED3_OFF;
delay(1000000);
LED4_OFF;
delay(1000000);
i--;
}
}
if((rGPGDAT &0x800)==0x0)
{
LED1_ON;
LED2_ON;
LED3_ON;
LED4_ON;
}
}
return 0;
}
总结:以上代码能编译通过,但如果对每个键在button.h中进行宏定义,则编译能通过,但得不到正确的结果。
- 按键实现arm开发板led灯
- ARM裸机程序开发——按键控制LED灯
- ARM开发板mini2440的按键控制LED小程序
- arm开发板led灯的控制实现
- arm汇编按键控制led灯
- ARM按键控制LED
- ARM开发板(S3C2440)上LED灯驱动及跑马灯的实现
- 汇编实现arm开发板LED跑马灯 相关知识和原理
- 【ARM】按键·查询式控制led灯·fs2410
- ARM 按键控制LED灯+IO控制buzzer蜂鸣器
- 按键实现led
- micro2440利用LEDS与BUTTONS驱动实现按键控制led灯【开发总结】
- ARM开发板 led闪亮程序。。。S3c2410
- 按键 led灯实验
- 嵌入式按键LED灯
- ARM开发(4)基于STM32的矩阵键盘按键控制TM1629A LED显示
- 嵌入式S3C2440开发板LED灯和按键(去抖)驱动实验
- Linux驱动开发--通过按键控制led灯
- 关于linux内核学习
- c#窗体间的传值_winvay
- dalivk tools
- 3D图像引擎,3D图像引擎原理
- [SQL Server]嵌套事务与分布式事务
- 按键实现arm开发板led灯
- MFC UpdateData()
- linux下多线程基础
- 记忆深刻的一段简单代码_winvay
- 在OpenGL中使用FreeImage库生成纹理
- Realview MDK中链接脚本详细解析
- 积累
- (转)android如何调用显示和隐藏系统默认的输入法
- 21个故事