summaryrefslogtreecommitdiff
path: root/project/Core/Src/Project/local_control.c
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-11-05 22:56:07 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-11-05 22:56:07 -0500
commit843e263ac896fae11b8c176810bab4866eb8b2a8 (patch)
treeabe5938c16b5537192edb989b189e4e1afd90a2e /project/Core/Src/Project/local_control.c
parente51714a66f5361c5f063f1395fdd441567932d19 (diff)
download340-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/local_control.c')
-rw-r--r--project/Core/Src/Project/local_control.c23
1 files changed, 21 insertions, 2 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;
+ }
+}
+