summaryrefslogtreecommitdiff
path: root/project/Core
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-11-05 15:20:26 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-11-05 15:20:26 -0500
commite51714a66f5361c5f063f1395fdd441567932d19 (patch)
tree5eacdb49f843def645107a1e6aa60e5fbe9f7b3d /project/Core
parentab8b31b6af51ac46880d852134267905fc57d5ee (diff)
download340-repo-Sowgro-e51714a66f5361c5f063f1395fdd441567932d19.tar.gz
340-repo-Sowgro-e51714a66f5361c5f063f1395fdd441567932d19.tar.bz2
340-repo-Sowgro-e51714a66f5361c5f063f1395fdd441567932d19.zip
fix external button and handle bounce
Diffstat (limited to '')
-rw-r--r--project/Core/Src/Project/local_control.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/project/Core/Src/Project/local_control.c b/project/Core/Src/Project/local_control.c
index 6b6f5e4..7a4ba2f 100644
--- a/project/Core/Src/Project/local_control.c
+++ b/project/Core/Src/Project/local_control.c
@@ -20,6 +20,7 @@ void local_control_loop() {
}
void EXTI9_5_IRQHandler() {
+ static int prevStatus = -1;
if (~EXTI->PR1 & EXTI_PR1_PIF9)
return;
EXTI->PR1 |= EXTI_PR1_PIF9;
@@ -27,6 +28,10 @@ void EXTI9_5_IRQHandler() {
if (project_get_mode() != LOCAL_MODE)
return;
- int status = !(GPIOC->IDR & GPIO_PIN_9);
- printf("Other %i\r\n", status);
+ int status = !!(GPIOA->IDR & GPIO_PIN_9);
+ if (prevStatus == status)
+ return;
+ prevStatus = status;
+
+ printf("EXT BUTTON %i\r\n", status);
}