50 lines
1018 B
C
50 lines
1018 B
C
|
|
#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, //û<><C3BB><EFBFBD><EFBFBD>
|
|||
|
|
KEY_VAL_SHORT_PRESS, //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
KEY_VAL_CONT_LONG_PRESS, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
KEY_VAL_SINGLE_LONG_PRESS, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
KEY_VAL_LONG_PRESS_LOOSEN, //<2F><><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>
|
|||
|
|
}KEY_VAL_e;
|
|||
|
|
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u8 Key_pin[KEY_CHN_MAX];
|
|||
|
|
u8 KEY_STA[KEY_CHN_MAX];
|
|||
|
|
u8 key_val[KEY_CHN_MAX]; //0:û<><C3BB><EFBFBD><EFBFBD>, 1:<3A>̰<EFBFBD><CCB0>ɿ<EFBFBD>, 2:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 3:<3A><><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>
|
|||
|
|
u8 key_longPress[KEY_CHN_MAX]; //0:û<><C3BB><EFBFBD><EFBFBD>, 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
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
|