diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-05 22:56:07 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-05 22:56:07 -0500 |
| commit | 843e263ac896fae11b8c176810bab4866eb8b2a8 (patch) | |
| tree | abe5938c16b5537192edb989b189e4e1afd90a2e /project/Core/Src/Project | |
| parent | e51714a66f5361c5f063f1395fdd441567932d19 (diff) | |
| download | 340-repo-Sowgro-843e263ac896fae11b8c176810bab4866eb8b2a8.tar.gz 340-repo-Sowgro-843e263ac896fae11b8c176810bab4866eb8b2a8.tar.bz2 340-repo-Sowgro-843e263ac896fae11b8c176810bab4866eb8b2a8.zip | |
begin logic for local control
Diffstat (limited to 'project/Core/Src/Project')
| -rw-r--r-- | project/Core/Src/Project/local_control.c | 23 | ||||
| -rw-r--r-- | project/Core/Src/Project/player_actions.c | 4 | ||||
| -rw-r--r-- | project/Core/Src/Project/project.c | 1 |
3 files changed, 23 insertions, 5 deletions
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 <stm32l4xx.h> #include <stdio.h> +#include <stdint.h> #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(); |
