Browse Source

update

Finny_test
zwsd 3 years ago
parent
commit
6d8e81882d
  1. 2
      main/app_main.cpp
  2. 26
      main/key.c
  3. 2
      main/key.h

2
main/app_main.cpp

@ -55,7 +55,7 @@ wifi_state_light_structer_t wifi_state_light_structer = {
T_key_structer_t T_key_structer = {
.key_before_state = false,
.key_now_state = false,
.key_start_press_down_time = 0,
.key_press_down_keep_time = 0,
};
/***********************************************************************************************************************

26
main/key.c

@ -36,22 +36,40 @@ void T_key_on_event(void)
void T_key_schedule(void)
{
static uint32_t key_start_press_down_time = 0;
T_key_structer_s->key_now_state = T_key_get_level();
/* 检查是否盖上盖 */
if (cover_get_level())
{
/* 上升沿 */
if ((T_key_structer_s->key_before_state != T_key_structer_s->key_now_state) && (T_key_structer_s->key_now_state == true))
{
short_press_event_cb_s();
T_key_structer_s->key_start_press_down_time = port_get_ticket();
if (T_key_structer_s->key_press_down_keep_time != 0)
{
T_key_structer_s->key_press_down_keep_time = 0;
}
key_start_press_down_time = port_get_ticket();
}
if (T_key_structer_s->key_now_state)
/* 下降沿 */
if ((T_key_structer_s->key_before_state != T_key_structer_s->key_now_state) && (T_key_structer_s->key_now_state == false))
{
if (port_get_ticket() - T_key_structer_s->key_start_press_down_time > key_long_press_time_ms)
T_key_structer_s->key_press_down_keep_time = port_get_ticket() - key_start_press_down_time;
}
/* 20ms消抖 */
if ((T_key_structer_s->key_press_down_keep_time > 20) && (key_start_press_down_time != 0))
{
if (T_key_structer_s->key_press_down_keep_time < 500)
{
short_press_event_cb_s();
}
else if (T_key_structer_s->key_press_down_keep_time >= 3000)
{
long_press_event_cb_s();
}
key_start_press_down_time = 0;
T_key_structer_s->key_press_down_keep_time = 0;
}
}
else

2
main/key.h

@ -7,7 +7,7 @@ typedef struct
{
bool key_before_state;
bool key_now_state;
uint32_t key_start_press_down_time;
uint32_t key_press_down_keep_time;
} T_key_structer_t;
typedef bool (*key_camera_cb)(void);

Loading…
Cancel
Save