ReadKEY

/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN Electronics Co.,LTD.
**                                      graduate school
**                                 http://www.zyinside.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date:  2006-07-08
** Last Version: 1.0
** Descriptions: DeviceARM2410A的基础实验---GPIO输入实验。
**               使用GPIO输入模式对GPF4口进行扫描,对蜂鸣器控制。
**
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by: 黄绍斌
** Modified date: 2006-07-08
** Version: 1.0
** Descriptions:
**
********************************************************************************************************/
#include "config.h"


// 定义独立按键KEY1的输入口
#define     KEY_CON    (1<<4)          /* GPF4口  */


// 定义蜂鸣器控制口
#define   BEEP   (1<<10)     /* GPH10口 */
#define   BEEP_MASK   (~BEEP)




/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 长软件延时。
**              延时时间与系统时钟有关。
** Input: dly 延时参数,值越大,延时越久
** Output: 无
** Created by: 黄绍斌
** Created Date: 2005-12-31 
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void  DelayNS(uint32  dly)
{  
uint32  i;


    for(; dly>0; dly--) 
       for(i=0; i<50000; i++);
}






/*********************************************************************************************************
** Function name: main
** Descriptions: 不断地读取GPF4口的值,并输出控制蜂鸣器B1。           
** Input: 无
** Output: 系统返回值0
** Created by: 黄绍斌
** Created Date: 2006-07-08 
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int  main(void)
{
    // 初始化I/O
    rGPFCON = (rGPFCON & (~(0x03<<8)));                 // rGPFCON[9:8] = 00b,设置GPF4为GPIO输入模式   
    rGPHCON = (rGPHCON & (~(0x03<<20))) | (0x01<<20);   // rGPHCON[21:20] = 01b,设置GPH10为GPIO输出模式
    
    while(1)
    {
        if(rGPFDAT & KEY_CON)   // 读取GPF口线上的电平,判断GPF4是否为高电平(判断的方法)
        {
            rGPHDAT = rGPHDAT | BEEP;       // GPF4为高电平,则设置GPH10=1
        }
        else
        {
            rGPHDAT = rGPHDAT & BEEP_MASK;  // GPF4为低电平,则设置GPH10=0
        }
        
        DelayNS(1);
    }
   
    return(0);
}


/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值