Using xTaskNotifyFromISR is kinda slow

This commit is contained in:
2026-05-29 11:10:08 +02:00
parent 070f37548f
commit fa1792d6d6

View File

@@ -93,7 +93,7 @@ void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {
if (htim->Instance == TIM2 && htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) { if (htim->Instance == TIM2 && htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) {
trig_value = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); trig_value = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
trig_flag = 1; trig_flag = 1;
xTaskNotify(TimeCHHandle,trig_value,eSetValueWithOverwrite); xTaskNotifyFromISR(TimeCHHandle,trig_value,eSetValueWithOverwrite,NULL);
} }
} }
@@ -392,14 +392,12 @@ void StartDefaultTask(void *argument)
{ {
/* USER CODE BEGIN 5 */ /* USER CODE BEGIN 5 */
/* Infinite loop */ /* Infinite loop */
uint32_t t = 0;
for(;;) for(;;)
{ {
if(trig_flag==1){ SEGGER_RTT_printf(0, "%lu\n\r",__HAL_TIM_GET_COUNTER(&htim2)-t);
t=__HAL_TIM_GET_COUNTER(&htim2);
SEGGER_RTT_printf(0, "%lu\n\r",trig_value); osDelay(1000);
trig_flag=0;
}
osDelay(1);
} }
/* USER CODE END 5 */ /* USER CODE END 5 */
} }