2 Commits

Author SHA1 Message Date
eeeck 657d6914ac Syncronize semaphore counters to queue dimension 2026-06-15 14:01:55 +02:00
eeeck cad3d841f4 Transition from timer based to task based LED signal
- Remove RTOS timers
- Create LED task
- Avoid polling, instead wait for semaphore
2026-06-15 14:01:51 +02:00
+6 -13
View File
@@ -98,20 +98,13 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)
void vCANLoggerListen(void *argument) void vCANLoggerListen(void *argument)
{ {
/* CODE BEGIN */ /* CODE BEGIN */
CAN_HandleTypeDef *hcan = (CAN_HandleTypeDef*)argument; LEDContext *context = (LEDContext*)argument;
osMessageQueueId_t queue;
CanMessage_t message;
queue = (hcan->Instance == CAN1) ? xCAN1RxQueue : xCAN2RxQueue; for (;;)
{
for (;;) if (osSemaphoreAcquire(context->semaphore, 25U) == osOK) HAL_GPIO_WritePin(context->led->port, context->led->pin, GPIO_PIN_SET);
{ else HAL_GPIO_WritePin(context->led->port, context->led->pin, GPIO_PIN_RESET);
if (osMessageQueueGet(queue, &message, NULL, osWaitForever) == osOK) /* CODE END */
{
osSemaphoreRelease( (hcan->Instance == CAN1) ? xSemaphoreCAN1 : xSemaphoreCAN2 );
}
}
/* CODE END */
} }
/* END vCANLoggerListen */ /* END vCANLoggerListen */