diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-05 15:20:26 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-05 15:20:26 -0500 |
| commit | e51714a66f5361c5f063f1395fdd441567932d19 (patch) | |
| tree | 5eacdb49f843def645107a1e6aa60e5fbe9f7b3d /project/Core/Src | |
| parent | ab8b31b6af51ac46880d852134267905fc57d5ee (diff) | |
| download | 340-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 'project/Core/Src')
| -rw-r--r-- | project/Core/Src/Project/local_control.c | 9 |
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); } |
