From 914abd85624af2be6092582eff90ac89fd2bd30a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Sun, 30 Aug 2020 18:20:58 +0200 Subject: [PATCH] Issue #17: Add override function for button --- stm-firmware/button.c | 13 +++++++++++++ stm-firmware/include/reflow-controller/button.h | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/stm-firmware/button.c b/stm-firmware/button.c index ec6a3fb..30939ec 100644 --- a/stm-firmware/button.c +++ b/stm-firmware/button.c @@ -29,6 +29,7 @@ static volatile uint64_t IN_SECTION(.ccm.bss) to_active_timestamp; static volatile enum button_state IN_SECTION(.ccm.bss) int_state; +static volatile enum button_state IN_SECTION(.ccm.bss) override_state; void button_init() { @@ -40,6 +41,7 @@ void button_init() to_active_timestamp = 0ULL; int_state = BUTTON_IDLE; + override_state = BUTTON_IDLE; SYSCFG->EXTICR[1] |= 0x3; EXTI->IMR |= (1U<<4); @@ -53,6 +55,12 @@ enum button_state button_read_event() uint64_t time_delta; enum button_state temp_state; + if (override_state != BUTTON_IDLE) { + temp_state = override_state; + override_state = BUTTON_IDLE; + return temp_state; + } + if (BUTTON_PORT->IDR & (1U<