129 lines
4.0 KiB
C
129 lines
4.0 KiB
C
|
/**
|
|||
|
******************************************************************************
|
|||
|
* @file hc32_key_driver.h
|
|||
|
* @author (C)2020, Qindao ieslab Co., Ltd
|
|||
|
* @version V1.0
|
|||
|
* @date 2020-7-1
|
|||
|
* @brief the function of the entity of system processor
|
|||
|
******************************************************************************
|
|||
|
*/
|
|||
|
|
|||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|||
|
|
|||
|
#ifndef __UWater_KEY_DRIVER_H
|
|||
|
#define __UWater_KEY_DRIVER_H
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C" {
|
|||
|
#endif
|
|||
|
|
|||
|
#include "ddl.h"
|
|||
|
#include "type.h"
|
|||
|
#include "sys_config.h"
|
|||
|
|
|||
|
/* MACRO Define---------------------------------------------------------------*/
|
|||
|
|
|||
|
|
|||
|
#if (HARDWARE_VERSION==0x14)//<2F><><EFBFBD>DZ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD>
|
|||
|
#define KEY_GPIO GpioPortE //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define KEY_PIN GpioPin11 //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#define KEY_IRQ PORTC_E_IRQn
|
|||
|
#define KEY_PRIORITY (IrqLevel3)
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD>
|
|||
|
#define TCH_KEY_GPIO GpioPortC //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
#define TCH_KEY_PIN GpioPin10 //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#define TCH_KEY_POWER_GPIO GpioPortF //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
#define TCH_KEY_POWER_PIN GpioPin6 //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
|
|||
|
#define TCH_KEY_IRQ PORTC_E_IRQn
|
|||
|
#define TCH_KEY_PRIORITY (IrqLevel3)
|
|||
|
|
|||
|
#elif (HARDWARE_VERSION==0x18)//Բ<>DZ<EFBFBD>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD>
|
|||
|
#define KEY_GPIO GpioPortE //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define KEY_PIN GpioPin11 //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#define KEY_IRQ PORTC_E_IRQn
|
|||
|
#define KEY_PRIORITY (IrqLevel3)
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD>
|
|||
|
#define TCH_KEY_GPIO GpioPortC //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
#define TCH_KEY_PIN GpioPin13 //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#define TCH_KEY_POWER_GPIO GpioPortF //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
#define TCH_KEY_POWER_PIN GpioPin1 //HD<48><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
|
|||
|
#define TCH_KEY_IRQ PORTC_E_IRQn
|
|||
|
#define TCH_KEY_PRIORITY (IrqLevel3)
|
|||
|
#endif
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ͵<C4B5>ƽ<EFBFBD>ǰ<EFBFBD><C7B0>»<EFBFBD><C2BB>Ǹߵ<C7B8>ƽ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>)
|
|||
|
#define KEY_NO_PRESS (u32)1
|
|||
|
#define KEY_PRESS (u32)(!KEY_NO_PRESS)
|
|||
|
|
|||
|
//<2F>жϱ<D0B6><CFB1><EFBFBD>
|
|||
|
#define KEY_RISING_EDGE 0
|
|||
|
#define KEY_FALLING_EDGE (!KEY_RISING_EDGE)
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define NONE_KEY 0
|
|||
|
#define MEGNET_KEY 1
|
|||
|
#define TOUCH_KEY 2
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
#define NO_EVENT 0x00 //<2F><EFBFBD><DEB2><EFBFBD>
|
|||
|
#define SHORT_PRESS 0x01 //<2F>̰<EFBFBD><CCB0>¼<EFBFBD>
|
|||
|
#define LONG_PRESS 0x02 //<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
#define ERR_PRESS 0x04 //<2F><><EFBFBD><EFBFBD><EFBFBD>쳣<EFBFBD>¼<EFBFBD>
|
|||
|
#define LONGLONG_PRESS 0x08 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
|||
|
#define SHORT_START 1 //<2F>̰<EFBFBD><CCB0><EFBFBD>ʼʱ<CABC><CAB1>
|
|||
|
#define SHORT_END 200 //<2F>̰<EFBFBD><CCB0><EFBFBD>ֹʱ<D6B9><CAB1>
|
|||
|
#define LONG_INTERVAL 100 //<2F><><EFBFBD><EFBFBD>MSG<53><47><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
#define LONG_END 60 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹʱ<D6B9><CAB1> 60s<30><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ60s
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>
|
|||
|
#define KEY_CHECK_TIME 2 //10ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
|||
|
#define TCH_PRESS_LIMIT_CNT 30
|
|||
|
//״̬<D7B4><CCAC>״̬
|
|||
|
#define KEY_M_S0 0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
#define KEY_M_S1 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
#define KEY_M_S2 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
#define KEY_M_S3 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
#define KEY_M_S4 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
#define KEY_M_S5 5 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
#define KEY_M_S6 6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
#define KEY_M_S7 7 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
#define KEY_M_S8 8 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
#define KEY_M_S9 9 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
|
|||
|
|
|||
|
//<2F>ⲿ<EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|||
|
#define EXTI0_OPEN 0 //A
|
|||
|
#define EXTI1_OPEN 0 //B
|
|||
|
#define EXTI2_OPEN 1 //C
|
|||
|
#define EXTI3_OPEN 0 //D
|
|||
|
#define EXTI4_OPEN 1 //E
|
|||
|
#define EXTI5_OPEN 0 //F
|
|||
|
|
|||
|
|
|||
|
/* Function Declare------------------------------------------------------------*/
|
|||
|
void KeyInit(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
u8 KeyIfIdle(void); //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void KeyMachineDriver(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
|
|||
|
u8 KeyCheckMsg(void); //<2F><><EFBFBD>ⰴ<EFBFBD><E2B0B4><EFBFBD><EFBFBD>Ϣ
|
|||
|
void KeyClearMsg(u8 msg); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
u8 KeyIfSleep(void); //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void KeyPreSleep(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ӿ<EFBFBD>
|
|||
|
void KeyWakeSleep(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѽӿ<D1BD>
|
|||
|
u8 TchKey_GetPressLimitState(void);
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
#endif /* __UWater_KEY_DRIVER_H */
|