From 47c4133d2e3e01d3533bd4a4f8e145c2c8ee25c7 Mon Sep 17 00:00:00 2001 From: guozhanxin Date: Tue, 6 Nov 2018 10:18:01 +0800 Subject: [PATCH] =?UTF-8?q?[update]add=20LONG=5FHOLD=5FCYC=20control=20LON?= =?UTF-8?q?G=5FPRESS=5FHOLD=20callback=20period.|=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AE=8FLONG=5FHOLD=5FCYC=E6=8E=A7=E5=88=B6=E9=95=BF=E6=8C=89?= =?UTF-8?q?=E4=BF=9D=E6=8C=81=E4=BA=8B=E4=BB=B6=E7=9A=84=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E5=91=A8=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- multi_button.c | 5 ++++- multi_button.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/multi_button.c b/multi_button.c index 0f561b4..9b0b6dc 100644 --- a/multi_button.c +++ b/multi_button.c @@ -178,7 +178,10 @@ void button_handler(struct button* handle) if(handle->button_level == handle->active_level) { handle->event = (uint8_t)LONG_PRESS_HOLD; - EVENT_CB(LONG_PRESS_HOLD); + if (handle->ticks % LONG_HOLD_CYC == 0) + { + EVENT_CB(LONG_PRESS_HOLD); + } } else { diff --git a/multi_button.h b/multi_button.h index fd9f46c..938c6f8 100644 --- a/multi_button.h +++ b/multi_button.h @@ -9,6 +9,7 @@ #define DEBOUNCE_TICKS 3 //MAX 8 #define SHORT_TICKS (300 / TICKS_INTERVAL) #define LONG_TICKS (1000 / TICKS_INTERVAL) +#define LONG_HOLD_CYC (500 / TICKS_INTERVAL) typedef void (*BtnCallback)(void*);