/** ########################################################################## ** 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 */