key-yf.c

来自「新一代基于事件的嵌入式操作系统dyos在三星的s3c44b0的arm芯片上的完整」· C语言 代码 · 共 56 行

C
56
字号
//----------------------------------------------------
//Copyright (C), 2004-2009,  lst.
//版权所有 (C), 2004-2009,   lst.
//所属模块:键盘
//作者:lst
//版本:V1.0.0
//文件描述: 扫描硬件读按键函数,只需直接给出按键当前值,无须防抖。
//其他说明:
//修订历史:
//    1. 日期:20090131
//       作者:lst
//       新版本号:v1.0.0
//       修改说明:原始版本
//------------------------------------------------------
#include "inc_os.h"
#include "key.h"
#include "gpio.h"
extern uint16_t u16g_key_table[];


//----键盘硬件扫描------------------------------------------------------------
//功能: 共4个键,可读入复合键,最多2个键复合,pg0~3.
//参数: key,键值数组指针,可存放2个单键值
//返回: 读到的键的个数0,1,2
//----------------------------------------------------------------------------
uint8_t key_scan_hard(uint16_t *key)
{
    uint8_t i = 0;
    if( ! (pg_gpio_reg->PDATG & 0x10))
    {
        key[i] = 1;
        i++;
    }
    if( ! (pg_gpio_reg->PDATG & 0x20))
    {
        key[i] = 2;
        i++;
        if(i == 2)
            return i;
    }
    if( ! (pg_gpio_reg->PDATG & 0x40))
    {
        key[i] = 3;
        i++;
        if(i == 2)
            return i;
    }
    if( ! (pg_gpio_reg->PDATG & 0x80))
    {
        key[i] = 4;
        i++;
    }
    return(i);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?