Use semaphores and one shot RTOS timers to better manage LEDs for incoming CAN message on FIFO buffer #8

Merged
eeeck merged 22 commits from led-semaphore into j1939 2026-06-14 16:49:18 +02:00

22 Commits

Author SHA1 Message Date
eeeck 53772ccb7d Remove error handling as it would cause crash on full queue 2026-06-14 16:45:02 +02:00
eeeck 9d4d807cfb Fix race condition that could cause a hard fault 2026-06-14 16:21:55 +02:00
eeeck 5ec806ffea Add CMSIS include 2026-06-14 16:17:01 +02:00
eeeck 8777f742ac Move typedef to header 2026-06-14 16:15:33 +02:00
eeeck 4aafa81009 Change CODE BEGIN N value 2026-06-14 16:14:20 +02:00
eeeck ac16f8150e Use a more sensible number of semaphores 2026-06-14 16:10:18 +02:00
eeeck f0d2990b8d Move below timer setup 2026-06-14 16:10:00 +02:00
eeeck 72ffb2644e Use more clear variable names 2026-06-14 16:09:45 +02:00
eeeck 2a3d5d17b3 Remove unnecessary declarations 2026-06-14 16:08:43 +02:00
eeeck 151bac7a13 Fix typo 2026-06-14 16:08:21 +02:00
eeeck 75efc4840d Use new context structure instead of direct pass 2026-06-14 15:17:03 +02:00
eeeck a75d42faeb Create context structure for timer callback
Strucure is made of
-  LED (port, pin)
- Semaphore
- Timer handle
2026-06-14 15:16:23 +02:00
eeeck 5b500d72ff Avoid having to declare additional variable 2026-06-14 14:56:32 +02:00
eeeck 5f1695dc0d Start timer once for automatic rearming with semaphore release 2026-06-14 14:51:46 +02:00
eeeck de6dc24dd3 Acquire semaphore and restart timer if new message incoming 2026-06-14 14:51:33 +02:00
eeeck 1b38c0f29a Release semaphore on incoming message
- Discard previous solution with timer only
2026-06-14 14:50:49 +02:00
eeeck 7ece650f72 Move declaration on top 2026-06-14 14:49:54 +02:00
eeeck ebbd1816fa Write LOW status on LED when timer triggers 2026-06-14 14:19:44 +02:00
eeeck 2e2150ebd2 Write HIGH status on LED on incoming CAN message and start 25ms timer 2026-06-14 14:19:30 +02:00
eeeck d6ea04e33e Change variable name 2026-06-14 14:18:40 +02:00
eeeck 7c7d774522 Create semaphores for signalling new message in FIFO buffer 2026-06-14 14:18:28 +02:00
eeeck c65341c662 Change periodic timers to one shot timers 2026-06-14 14:18:07 +02:00