#ifndef KEY_H #define KEY_H #include "STC8xxxx.h" #define DELAY_TIME 10 #define KEY_DELAY_COUNT 2 #define KEY_DELAY_COUNT_LONG 100 #define KEY_PRESS 0 #define KEY_LOOSEN 1 typedef enum { KEY_CH1, KEY_CHN_MAX, }KEY_CHN_e; typedef enum { KEY_STA_S0 = 0, KEY_STA_S1 = 1, KEY_STA_S2 = 2, }KEY_STA_e; typedef enum { KEY_VAL_NOT, //没按下 KEY_VAL_SHORT_PRESS, //单击 KEY_VAL_CONT_LONG_PRESS, //连续长按 KEY_VAL_SINGLE_LONG_PRESS, //长按单击 KEY_VAL_LONG_PRESS_LOOSEN, //长按松开 }KEY_VAL_e; typedef struct { u8 Key_pin[KEY_CHN_MAX]; u8 KEY_STA[KEY_CHN_MAX]; u8 key_val[KEY_CHN_MAX]; //0:没动作, 1:短按松开, 2:长按连击, 3:长按松开 u8 key_longPress[KEY_CHN_MAX]; //0:没动作, 1:长按单击 u8 key_time[KEY_CHN_MAX]; u8 delayCnt[KEY_CHN_MAX]; }KEY_t; void Key_Init(void); void Key_ScanTask(void); void KEY_TEST(void); extern KEY_t g_Key; #endif