Files
RCU_C12_Dimming/key.h
caocong 2dd675869a fix:修复调光时间BUG
解决调光时间一样的情况下,调光亮与调光灭的实际调光时间不一致问题
2025-12-15 20:48:52 +08:00

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, //没按下
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