123456789101112131415161718192021222324252627282930 |
- #ifndef __KEY_H
- #define __KEY_H
- #include "stm8s.h"
- typedef enum
- {
- KeyState_IDLE, //空闲状态。
- KeyState_CUT, //消抖状态。
- KeyState_PRESSED, //按下状态。
- KeyState_WAIT_DOUBLE_CLICK, //等待双击状态。
- KeyState_DOUBLE_CLICKED, //双击状态。
- KeyState_LONG_PRESSED //长按状态。
- }KeyState;
- typedef struct key_state
- {
- KeyState key_flag; //按键标志
- BitStatus level_state; //电平状态
- uint16_t press_time; //按下时间
- uint16_t end_time; //松开时间
- uint8_t key_cut; //按键消抖
- KeyState key_last; //按键最终状态
- }key_state_t;
- extern key_state_t g_key; //按键状态全局结构体
- extern void KeyProcess(void);
- #endif
|