?? key scan.c
字號:
/*
*******************************************************************************
* (c) Copyright 2008
* All Rights Reserved
*
* Version V1.00
*
* Product Number:
* Compiler Tool :
* MCU :
* File : Key Scan.c
* By :
* Date :
*******************************************************************************
*/
/*
*******************************************************************************
* INCLUDE FILE
*******************************************************************************
*/
#include "Include.h"
/*
*******************************************************************************
* GLOBAL
*******************************************************************************
*/
#define KEY_SCAN_MASK (((INT32U)BIN(00000011) << 24) + ((INT32U)BIN(11000000) << 16) + ((INT32U)BIN(00000000) << 8) + BIN(00000000))
unsigned char Key_Scaned;
/*
*******************************************************************************
* LOCAL DEFINE
*******************************************************************************
*/
/*
*******************************************************************************
* LOCAL PARAMETER
*******************************************************************************
*/
/*
*******************************************************************************
* FUNCTION DECLARE
*******************************************************************************
*/
void Key_IO_Config(void);
void Init_Key_Scan(void);
unsigned char Get_Key_Scan_Status(void);
unsigned char Has_New_Key_Pressed(void);
/*
*******************************************************************************
* Key_IO_Config
* Description: Key IO interface config
*
* Arguments : None
*
* Returns : None
*
* Programers : Tom.Yin
*
* Date :
*
*******************************************************************************
*/
void Key_IO_Config(void)
{
SET_PIN_DIR(GPIO_0_22, INPUT_ATTRIBUTE); //BTN_UP_PIN
SET_PIN_DIR(GPIO_0_23, INPUT_ATTRIBUTE); //BTN_DOWN_PIN
SET_PIN_DIR(GPIO_0_24, INPUT_ATTRIBUTE); //BTN_BACK_PIN
SET_PIN_DIR(GPIO_0_25, INPUT_ATTRIBUTE); //BTN_FRONT_PIN
}
/*
*******************************************************************************
* Init_Key_Scan
* Description: Initial Key Scan
*
* Arguments : None
*
* Returns : None
*
* Programers : Tom.Yin
*
* Date :
*
*******************************************************************************
*/
void Init_Key_Scan(void)
{
Key_IO_Config();
Key_Scaned = 0;
}
/*
*******************************************************************************
* Get_Key_Scan_Status
* Description: Get Key Scan Status
*
* Arguments : None
*
* Returns : Key Status
*
* Programers : Tom.Yin
*
* Date :
*
*******************************************************************************
*/
unsigned char Get_Key_Scan_Status(void)
{
unsigned int key;
IOSET0 |= KEY_SCAN_MASK;
key = ~IOPIN0 & KEY_SCAN_MASK;
key = key >> 22;
Key_Scaned = (unsigned char)(key & 0xff);
return Key_Scaned;
}
/*
*******************************************************************************
* Has_New_Key_Pressed
* Description: Has New Key Pressed
*
* Arguments : None
*
* Returns : Has key hold then return true, else return false
*
* Programers : Tom.Yin
*
* Date :
*
*******************************************************************************
*/
unsigned char Has_New_Key_Pressed(void)
{
if (Key_Scaned != 0)
{
return true;
}
return false;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -