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

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