116 lines
3.7 KiB
C
116 lines
3.7 KiB
C
/** ##########################################################################
|
|
** Filename : keyboard_drive.h
|
|
** Project : RGB LED
|
|
** Module :
|
|
** Processor : Cypress CY8C4147AZI-S475
|
|
** Version : V1.0
|
|
** Compiler : PSoC Creator 4.2
|
|
** Date/Time : 2019/10/08
|
|
** Abstract :
|
|
**
|
|
** Contents :
|
|
**
|
|
**
|
|
** (c) Copyright dmdz Co.,Ltd
|
|
** --------------------------------------------------------------------------
|
|
** R E V I S I O N H I S T O R Y
|
|
** --------------------------------------------------------------------------
|
|
** Date Ver Author Description
|
|
|
|
** --------- ---- ----------------- --------------------------------------
|
|
** #########################################################################*/
|
|
#ifndef _KEY_ADC_MID_H_
|
|
#define _KEY_ADC_MID_H_
|
|
|
|
/*****************************************************************************
|
|
* I N C L U D E F I L E S
|
|
*****************************************************************************/
|
|
|
|
#include "key_adc_mid_cfg.h"
|
|
#include "key_adc_driver.h"
|
|
|
|
/*****************************************************************************
|
|
* D E F I N E S
|
|
*****************************************************************************/
|
|
typedef enum
|
|
{
|
|
KEY_ADC_MID_DIFF_NULL =0u,
|
|
KEY_ADC_MID_DIFF_SURE ,
|
|
}key_adc_mid_driver_diff_e;
|
|
|
|
/*****************************************************************************
|
|
* M A C R O S
|
|
*****************************************************************************/
|
|
|
|
/*****************************************************************************
|
|
* T Y P E D E F I N I T I O N S
|
|
*****************************************************************************/
|
|
|
|
/*****************************************************************************
|
|
* S T A T I C V A R I A B L E S
|
|
|
|
*****************************************************************************/
|
|
typedef struct
|
|
{
|
|
u8 event;
|
|
#ifndef RAM_OPTIMIZE_EN
|
|
key_adc_result_e state;
|
|
key_adc_result_e pre_state;
|
|
u8 state_change;
|
|
u8 sub_state;
|
|
#else
|
|
u8 state_change:1;
|
|
u8 sub_state:1;
|
|
key_adc_result_e state:3;
|
|
key_adc_result_e pre_state:3;
|
|
#endif
|
|
u16 count;
|
|
#ifdef KEY_ADC_MID_DEBUG_STATE
|
|
u8 result;
|
|
#endif
|
|
}key_adc_mid_ele_s;
|
|
|
|
typedef struct
|
|
{
|
|
key_adc_mid_ele_s key[KEY_ADC_ID_MAX];
|
|
#ifndef RAM_OPTIMIZE_EN //只有在休眠喚醒,快速掃描才有用
|
|
u16 channel[KEY_ADC_CHANNEL_TOTALS];
|
|
#endif
|
|
}key_adc_mid_s;
|
|
//
|
|
/*****************************************************************************
|
|
* G L O B A L V A R I A B L E S
|
|
*****************************************************************************/
|
|
|
|
/*****************************************************************************
|
|
* C O N S T A N T S
|
|
*****************************************************************************/
|
|
|
|
/*****************************************************************************
|
|
* F U N C T I O N P R O T O T Y P E
|
|
*****************************************************************************/
|
|
void key_adc_mid_init(void); //按键初始化
|
|
void key_adc_mid_task(void); //按键任务周期调用
|
|
key_adc_result_e key_adc_mid_get_result(u8 key_id);
|
|
u8 key_adc_mid_driver_get_change(u8 id);
|
|
|
|
u8 key_adc_judge_valid(void);
|
|
u8 key_adc_judge_wake(void);
|
|
u8 key_adc_judge_pre_wake(void);
|
|
void key_adc_clear_result(void);
|
|
void key_adc_mid_quick_task(void);
|
|
//u16 key_adc_mid_get_org_adc(u8 key_id);
|
|
key_adc_mid_driver_diff_e key_adc_mid_judge_diff_wakeup(void);
|
|
key_adc_mid_driver_diff_e key_adc_mid_judge_state_wakeup(void);
|
|
|
|
|
|
key_adc_result_e key_adc_mid_get_drv_state(u8 key_id);
|
|
void key_adc_mid_goto_sleep(void);
|
|
void key_adc_mid_goto_wakeup(void);
|
|
|
|
u8 key_adc_mid_driver_get_event(u8 id);
|
|
|
|
#endif /*_KEYBOARD_DRIVE_H_*/
|
|
|
|
/* [] END OF FILE */
|