国嵌实验:key_poll,采用查询的方式一旦按键再松开,LED亮灭一次
2011-09-25 20:33
771 查看
![](http://hi.csdn.net/attachment/201109/27/0_1317102040U8Md.gif)
![](http://hi.csdn.net/attachment/201109/27/0_1317102145xLxb.gif)
![](http://hi.csdn.net/attachment/201109/27/0_1317102133Y9mI.gif)
![](http://hi.csdn.net/attachment/201109/27/0_1317102068ipIg.gif)
![](http://hi.csdn.net/attachment/201109/27/0_1317102497mdEL.gif)
/*************************************************
Function name: 这是基础实验的一个模版
Parameter : 无
Description : 做基础实验,直接调用该模板即可
Return : 无
Argument : 无
Autor & date : Daniel
**************************************************/
#define GLOBAL_CLK1
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "profile.h"
#include "memtest.h"
int Wait_key(void);
void key_init(void);
void Led1_run(void);
void Led1_init(void);
/*************************************************
Function name: delay
Parameter : times
Description : 延时函数
Return : void
Argument : void
Autor & date :
**************************************************/
void delay(int times)
{
int i,j;
for(i=0;i<times;i++)
for(j=0;j<400;j++);
}
/*************************************************
Function name: Main
Parameter : void
Description : 主功能函数
Return : void
Argument : void
Autor & date :
**************************************************/
void Main(void)
{
Led1_init();
while(1)
{
if(Wait_key())
//if(!(rGPGDAT & 0x1))
Led1_run();
}
}
/*************************************************
Function name: key_init()
Parameter : void
Description : key的初始化函数,其中K1连接的是GPG0
初始化GPG0为输入模式
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
void key_init(void) /*为什么这个函数没有被调用?*/
{
rGPGCON &= ~(3<<0); //input mode
}
/*************************************************
Function name: beep_init()
Parameter : void
Description : Led1的初始化函数,其中Led1连接的是GPB5
初始化GPB5为输出模式
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
void Led1_init(void)
{
rGPBCON &= ~(3<<10);
rGPBCON |= (1<<10);
}
/*************************************************
Function name: beep_run()
Parameter : void
Description : beep的初始化函数,其中beep连接的是GPB0
初始化GPB0为输出模式
Return : void
Argument : void
Autor & date : Daniel
**************************************************/
void Led1_run(void)
{
rGPBDAT &=~(1<<5); /*LED亮还是灭?*///亮
delay(1000);
rGPBDAT |=(1<<5);//灭
delay(1000);
}
/*************************************************
Function name: Wait_key()
Parameter : void
Description : 按键等待函数
Return : 返回1表示有按键动作,返回0表示无按键
Argument : void
Autor & date : Daniel
**************************************************/
int Wait_key(void)
{
if(!(rGPGDAT & 0x1))//当有键按下时,port上为低电平.
delay(200);
if(!(rGPGDAT & 0x1)) /*为什么又要判断?*/ //去抖动
{
while(!(rGPGDAT & 0x1));//等待按键放开
return 1;
}
else
return 0;
}
相关文章推荐
- 国嵌实验:key_interrupt(按键中断),采用中断方式当KEY1 按下时,LED亮灭一次
- 用查询方式,用按键控制led灯亮灭
- 第三个实验 通过中断方式让按键控股按键控制LED
- ARM裸机——FS2410按键控制LED灯(查询方式)
- S3C2440按键查询方式点亮LED汇编程序
- 字符设备程序实列二-查询按键值,按键按下相应的LED灯亮,按键松开相应的LED灯灭
- 字符设备实验之按键查询
- 韦东山驱动视频笔记——1.字符设备驱动程序之查询方式的按键驱动程序
- C2000LaunchPad学习记录(2)——循环查询按键点亮LED
- 小e开发板按键中断回调函数airkiss_key_poll_task分析
- 基于Wolf32F031 自由评估板的KEY scan(查询方式)实验硬件原理及软件API使用方法(适用于STM32F030/031)
- 跟着韦东山老师学字符设备驱动之查询方式的按键驱动程序分析
- TI CC2530基础实验(定时器1查询方式——自由运行模式)
- CC2530学习路线-基础实验-GPIO 按键控制LED灯亮灭(2)
- 字符设备驱动程序之查询方式的按键驱动程序
- Mysql对子查询的支持与优化不是很好,建议采用jion的方式解决
- 友坚科技4412开发板Linux平台下UT4412BV03裸机开发指南(十二)查询方式检测按键
- Map容器小程序,学生作为key,地址作为value,采用keySet和entrySet两种取出方式
- Tiny6410按键轮询方式控制LED的SD卡启动裸机程序
- 字符设备实验之按键poll