전원 버튼 ON/OFF 임계 카운트 분리

- 버튼 감지 타이밍이 초기화 등으로 런타임과 달라서 체감상 3초로 맞추기 위해 분리
This commit is contained in:
2026-07-21 15:51:25 +09:00
parent b6d79ad16a
commit abb8d6078a
+8 -7
View File
@@ -17,11 +17,12 @@
#include "ble_service.h"
#include "battery_adc.h"
#define POWER_HOLD_NODE DT_NODELABEL(pwr_hold) // 전원 래치
#define POWER_BTN_NODE DT_NODELABEL(button_check) // 전원 버튼
#define POWER_LOOP_INTERVAL 20 // 전원 시퀀스 타이머 간격(ms)
#define BOOT_THRESHOLD 350 // power button hold threshold
#define BOND_RESET_THRESHOLD (15000 / POWER_ON_DELAY) // 15s long press bond reset
#define POWER_HOLD_NODE DT_NODELABEL(pwr_hold) // 전원 래치
#define POWER_BTN_NODE DT_NODELABEL(button_check) // 전원 버튼
#define POWER_LOOP_INTERVAL 20 // 전원 시퀀스 타이머 간격(ms)
#define POWER_ON_THRESHOLD 350 // power button hold threshold(off -> on)
#define POWER_OFF_THRESHOLD 500 // power button hold threshold(on -> off)
#define BOND_RESET_THRESHOLD (15000 / POWER_ON_DELAY) // 15s long press bond reset
static const struct gpio_dt_spec power_hold = GPIO_DT_SPEC_GET(POWER_HOLD_NODE, gpios); // 전원 유지 출력
static const struct gpio_dt_spec power_btn = GPIO_DT_SPEC_GET(POWER_BTN_NODE, gpios); // 전원 버튼 입력
@@ -211,7 +212,7 @@ static void main_s(struct k_timer *timer)
{
cnt_s++;
if (cnt_s == BOOT_THRESHOLD) // 임계 시간 도달 시 전원 ON 확정
if (cnt_s == POWER_ON_THRESHOLD) // 임계 시간 도달 시 전원 ON 확정
{
device_on = true;
power_control_handler(ON, "button-2s-latch");
@@ -248,7 +249,7 @@ static void main_s(struct k_timer *timer)
{
cnt_s++;
if (cnt_s >= BOOT_THRESHOLD)
if (cnt_s >= POWER_OFF_THRESHOLD)
{
battery_timer_stop();
k_work_submit(&adv_stop_work);