From 0133f7439abf88e7c06e55a9b36e2df8159b3804 Mon Sep 17 00:00:00 2001 From: Pierre Barbier Date: Fri, 29 May 2026 11:33:37 +0200 Subject: [PATCH] We fast as fuck with osThreadFlagsSet/Wait --- STM32/CM7/Core/Src/main.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/STM32/CM7/Core/Src/main.c b/STM32/CM7/Core/Src/main.c index 43d5201..3ddbb0f 100644 --- a/STM32/CM7/Core/Src/main.c +++ b/STM32/CM7/Core/Src/main.c @@ -92,8 +92,11 @@ void TellTime(void *argument); void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { if (htim->Instance == TIM2 && htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) { trig_value = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); - trig_flag = 1; - xTaskNotifyFromISR(TimeCHHandle,trig_value,eSetValueWithOverwrite,NULL); + //trig_flag = 1; + //xTaskNotifyFromISR(TimeCHHandle,trig_value,eSetValueWithOverwrite,NULL); + TimeCHBuffer[0]=trig_value; + osThreadFlagsSet(TimeCHHandle,0x01); + } } @@ -395,9 +398,9 @@ void StartDefaultTask(void *argument) uint32_t t = 0; for(;;) { - SEGGER_RTT_printf(0, "%lu\n\r",__HAL_TIM_GET_COUNTER(&htim2)-t); - t=__HAL_TIM_GET_COUNTER(&htim2); - osDelay(1000); + //SEGGER_RTT_printf(0, "%lu\n\r",__HAL_TIM_GET_COUNTER(&htim2)-t); + //t=__HAL_TIM_GET_COUNTER(&htim2); + //osDelay(1000); } /* USER CODE END 5 */ } @@ -416,8 +419,9 @@ void TellTime(void *argument) uint32_t ulvalue; for(;;) { - xTaskNotifyWait(0,0,&ulvalue,portMAX_DELAY); - SEGGER_RTT_printf(0, "%lu, %lu\n\r",ulvalue,__HAL_TIM_GET_COUNTER(&htim2)); + //xTaskNotifyWait(0,0,&ulvalue,portMAX_DELAY); + osThreadFlagsWait(0x01,osFlagsWaitAny,osWaitForever); + SEGGER_RTT_printf(0, "%lu, %lu\n\r",TimeCHBuffer[0],__HAL_TIM_GET_COUNTER(&htim2)); } /* USER CODE END TellTime */ }