P5UWaterBuXiugang/hardinterface/inc/UWater_key_driver.h

129 lines
4.0 KiB
C
Raw Permalink Normal View History

2024-06-03 15:49:39 +08:00
/**
******************************************************************************
* @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 */