From 843e263ac896fae11b8c176810bab4866eb8b2a8 Mon Sep 17 00:00:00 2001 From: sowgro Date: Wed, 5 Nov 2025 22:56:07 -0500 Subject: begin logic for local control --- project/Core/Src/Project/local_control.c | 23 +++++++++++++++++++++-- project/Core/Src/Project/player_actions.c | 4 +--- project/Core/Src/Project/project.c | 1 + 3 files changed, 23 insertions(+), 5 deletions(-) (limited to 'project/Core/Src/Project') diff --git a/project/Core/Src/Project/local_control.c b/project/Core/Src/Project/local_control.c index 7a4ba2f..ce40c22 100644 --- a/project/Core/Src/Project/local_control.c +++ b/project/Core/Src/Project/local_control.c @@ -7,6 +7,7 @@ #include #include +#include #include "GPIO.h" #include "project.h" @@ -31,7 +32,25 @@ void EXTI9_5_IRQHandler() { int status = !!(GPIOA->IDR & GPIO_PIN_9); if (prevStatus == status) return; - prevStatus = status; - printf("EXT BUTTON %i\r\n", status); + handle_press(status); } + +uint32_t time_down = 0; +void handle_press(int pressed) { + uint32_t now = systick_get_count(); + if (pressed) { + time_down = now; + } else { + printf("now: %i, time_down: %i diff: %i\r\n", now, time_down, now - time_down); + if (now - time_down < 10) { + //ignore + } else if (now - time_down < 10000) { + printf("SHORT PRESS\r\n"); + } else { + printf("LONG_PRESS\r\n"); + } + time_down = 0; + } +} + diff --git a/project/Core/Src/Project/player_actions.c b/project/Core/Src/Project/player_actions.c index dbb7859..4fc29a1 100644 --- a/project/Core/Src/Project/player_actions.c +++ b/project/Core/Src/Project/player_actions.c @@ -65,13 +65,11 @@ void player_stop() { LED_Off(); } -void SysTick_Handler() { +void SysTick_Handler2(int count) { if (state != PAUSED_STATE) return; - static int count = 0; if(!(count & 1023)) { LED_Toggle(); } - count++; } diff --git a/project/Core/Src/Project/project.c b/project/Core/Src/Project/project.c index 56932f1..d4517d7 100644 --- a/project/Core/Src/Project/project.c +++ b/project/Core/Src/Project/project.c @@ -24,6 +24,7 @@ uint8_t project_get_mode() { } void project_run() { + HAL_Init(); local_control_init(); remote_control_init(); -- cgit v1.2.3