u-boot下运行key简单测试测程序
2013-08-12 00:32
393 查看
硬件平台:友善之臂mini2440
u-boot:2010.03
交叉工具链:arm-linux-gcc 4.3.2
led1 led2 led3 led4
GPB5 GPB6 GPB7 GPB8
key1 key2 key3 key4 key5 key6
GPG0 GPG3 GPG5 GPG6 GPG7 GPG11
code:main.c
#include "led.h"
#include "key.h"
int main(void)
{
int count = 0;
show("hello.world!\n");
led_x_init(LED2);
led_x_init(LED1);
led_x_init(LED4);
led_x_init(LED3);
key_x_init(KEY6);
key_x_init(KEY5);
key_x_init(KEY4);
key_x_init(KEY3);
key_x_init(KEY2);
key_x_init(KEY1);
while(1)
{
if (!get_x_key(KEY1))
{
led_x_on(LED1);
}
else
led_x_off(LED1);
if (!get_x_key(KEY5))
{
led_x_on(LED1);
led_x_on(LED2);
led_x_on(LED3);
led_x_on(LED4);
}
else
{
led_x_off(LED1);
led_x_off(LED2);
led_x_off(LED3);
led_x_off(LED4);
}
if (!get_x_key(KEY2))
{
led_x_on(LED2);
}
else
led_x_off(LED2);
if (!get_x_key(KEY3))
{
led_x_on(LED3);
}
else
led_x_off(LED3);
if (!get_x_key(KEY4))
{
led_x_on(LED4);
}
else
led_x_off(LED4);
if (!get_x_key(KEY6))
break;
}
led_x_off(LED1);
led_x_off(LED2);
led_x_off(LED3);
led_x_off(LED4);
show("hello.linux!\n");
return 0;
}
key.h
#ifndef __KEY_H__
#define __KEY_H__
#include "mini2440addr.h"
#define KEY1 0x0
#define KEY2 0x3
#define KEY3 0x5
#define KEY4 0x6
#define KEY5 0x7
#define KEY6 0x11
#define GPG_OUT 0x1
#define GPG_IN 0x0
#define key_x_init(n) {rGPGCON &= ~(0x11<<((n)*2));rGPGCON |= (GPG_OUT<<((n)*2));rGPGUP &= 1<<((n)*2);}
#define get_x_key(n) (rGPGDAT & (1<<(n)))
#endif /*__KEY_H__*/
调试记录:按键初始化不存在led初始化那样有顺序要求,顺序跟倒序都可以顺利初始化按键!
u-boot:2010.03
交叉工具链:arm-linux-gcc 4.3.2
led1 led2 led3 led4
GPB5 GPB6 GPB7 GPB8
key1 key2 key3 key4 key5 key6
GPG0 GPG3 GPG5 GPG6 GPG7 GPG11
code:main.c
#include "led.h"
#include "key.h"
int main(void)
{
int count = 0;
show("hello.world!\n");
led_x_init(LED2);
led_x_init(LED1);
led_x_init(LED4);
led_x_init(LED3);
key_x_init(KEY6);
key_x_init(KEY5);
key_x_init(KEY4);
key_x_init(KEY3);
key_x_init(KEY2);
key_x_init(KEY1);
while(1)
{
if (!get_x_key(KEY1))
{
led_x_on(LED1);
}
else
led_x_off(LED1);
if (!get_x_key(KEY5))
{
led_x_on(LED1);
led_x_on(LED2);
led_x_on(LED3);
led_x_on(LED4);
}
else
{
led_x_off(LED1);
led_x_off(LED2);
led_x_off(LED3);
led_x_off(LED4);
}
if (!get_x_key(KEY2))
{
led_x_on(LED2);
}
else
led_x_off(LED2);
if (!get_x_key(KEY3))
{
led_x_on(LED3);
}
else
led_x_off(LED3);
if (!get_x_key(KEY4))
{
led_x_on(LED4);
}
else
led_x_off(LED4);
if (!get_x_key(KEY6))
break;
}
led_x_off(LED1);
led_x_off(LED2);
led_x_off(LED3);
led_x_off(LED4);
show("hello.linux!\n");
return 0;
}
key.h
#ifndef __KEY_H__
#define __KEY_H__
#include "mini2440addr.h"
#define KEY1 0x0
#define KEY2 0x3
#define KEY3 0x5
#define KEY4 0x6
#define KEY5 0x7
#define KEY6 0x11
#define GPG_OUT 0x1
#define GPG_IN 0x0
#define key_x_init(n) {rGPGCON &= ~(0x11<<((n)*2));rGPGCON |= (GPG_OUT<<((n)*2));rGPGUP &= 1<<((n)*2);}
#define get_x_key(n) (rGPGDAT & (1<<(n)))
#endif /*__KEY_H__*/
调试记录:按键初始化不存在led初始化那样有顺序要求,顺序跟倒序都可以顺利初始化按键!
相关文章推荐
- 简单的测试程序运行时间,避免输入干扰
- u-boot下运行led测试测程序
- FL2440开发版烧录,u-boot移植,和简单C程序运行
- Hadoop测试-简单分布式程序运行
- 用C语言和VC6.0做个最简单的CGI程序,并且运行在apache服务器环境中。
- linux .sh文件,简单命令执行重启scrapy 程序(批量kill pid、后台运行程序)
- 测试某一段程序运行时间的方法
- 简单的hbase监控程序,用于监测hbase集群是否正常运行--66
- 一个简单的GNU assert用法测试程序
- java简单编译程序的运行
- 测试程序运行耗时(毫秒级的)---感觉蛮有意思的
- Java测试程序运行时间
- C++ boost类库timer测试程序运行时间
- 我写了一个简单的APP,用到了数据库,在程序中我自动建立了一个数据库,可以在File Explorer中找到,然后我把软件安装到虚拟机可以运行。
- u-boot下运行下载和运行程序“Helloworld”
- 提高程序运行效率的10个简单方法
- LAUNCHPAD运行5110测试程序
- 使用J2SE开发一个测试Xfire的webservice的简单程序
- 用Stopwatch类来测试你的程序运行时间
- 让控制台程序后台运行并开机启动的简单方法