main: improve button press detection

This commit is contained in:
King Kévin 2021-08-23 17:34:25 +02:00
parent 73a55e2a3f
commit eb4e30f79a
1 changed files with 2 additions and 2 deletions

4
main.c
View File

@ -308,10 +308,10 @@ void main(void)
IWDG_KR = IWDG_KR_KEY_REFRESH; // reset watchdog
// handle button press
if (rw_button_pressed) {
wait_10us(100); // wait 1 ms for the noise to be gone
wait_10us(10000); // wait 100 ms for the noise to be gone
IWDG_KR = IWDG_KR_KEY_REFRESH; // reset watchdog
if (0 == (RW_BUTTON_PORT->IDR.reg & RW_BUTTON_PIN)) { // ensure the button is pressed (the pull-up is really weak)
run_led_off(); // clear RUN LED to see result at the end
wait_10us(10000); // debounce for 100 ms
uint8_t press_duration = 1; // start counting how long the button is pressed
while (0 == (RW_BUTTON_PORT->IDR.reg & RW_BUTTON_PIN)) { // wait until button is depressed
wait_10us(10000); // wait for 100 ms