STM32L4xx_HAL_Driver  1.14.0
TIM IRQ handler management

TIM IRQ handler management. More...

Functions

void HAL_TIM_IRQHandler (TIM_HandleTypeDef *htim)
 This function handles TIM interrupts requests. More...
 

Detailed Description

TIM IRQ handler management.

IRQ handler management.

  ==============================================================================
                        ##### IRQ handler management #####
  ==============================================================================
  [..]
    This section provides Timer IRQ handler function.

Function Documentation

◆ HAL_TIM_IRQHandler()

void HAL_TIM_IRQHandler ( TIM_HandleTypeDef htim)

This function handles TIM interrupts requests.

Parameters
htimTIM handle
Return values
None

Definition at line 3178 of file stm32l4xx_hal_tim.c.

3179 {
3180  /* Capture compare 1 event */
3181  if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
3182  {
3183  if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET)
3184  {
3185  {
3186  __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
3187  htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
3188 
3189  /* Input capture event */
3190  if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
3191  {
3192 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3193  htim->IC_CaptureCallback(htim);
3194 #else
3196 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3197  }
3198  /* Output compare event */
3199  else
3200  {
3201 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3202  htim->OC_DelayElapsedCallback(htim);
3203  htim->PWM_PulseFinishedCallback(htim);
3204 #else
3207 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3208  }
3209  htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
3210  }
3211  }
3212  }
3213  /* Capture compare 2 event */
3214  if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET)
3215  {
3216  if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET)
3217  {
3218  __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2);
3219  htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
3220  /* Input capture event */
3221  if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
3222  {
3223 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3224  htim->IC_CaptureCallback(htim);
3225 #else
3227 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3228  }
3229  /* Output compare event */
3230  else
3231  {
3232 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3233  htim->OC_DelayElapsedCallback(htim);
3234  htim->PWM_PulseFinishedCallback(htim);
3235 #else
3238 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3239  }
3240  htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
3241  }
3242  }
3243  /* Capture compare 3 event */
3244  if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET)
3245  {
3246  if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET)
3247  {
3248  __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3);
3249  htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
3250  /* Input capture event */
3251  if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
3252  {
3253 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3254  htim->IC_CaptureCallback(htim);
3255 #else
3257 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3258  }
3259  /* Output compare event */
3260  else
3261  {
3262 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3263  htim->OC_DelayElapsedCallback(htim);
3264  htim->PWM_PulseFinishedCallback(htim);
3265 #else
3268 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3269  }
3270  htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
3271  }
3272  }
3273  /* Capture compare 4 event */
3274  if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET)
3275  {
3276  if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET)
3277  {
3278  __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4);
3279  htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
3280  /* Input capture event */
3281  if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
3282  {
3283 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3284  htim->IC_CaptureCallback(htim);
3285 #else
3287 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3288  }
3289  /* Output compare event */
3290  else
3291  {
3292 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3293  htim->OC_DelayElapsedCallback(htim);
3294  htim->PWM_PulseFinishedCallback(htim);
3295 #else
3298 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3299  }
3300  htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
3301  }
3302  }
3303  /* TIM Update event */
3304  if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)
3305  {
3306  if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET)
3307  {
3308  __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
3309 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3310  htim->PeriodElapsedCallback(htim);
3311 #else
3313 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3314  }
3315  }
3316  /* TIM Break input event */
3317  if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET)
3318  {
3319  if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
3320  {
3321  __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
3322 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3323  htim->BreakCallback(htim);
3324 #else
3326 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3327  }
3328  }
3329  /* TIM Break2 input event */
3330  if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET)
3331  {
3332  if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
3333  {
3334  __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2);
3335 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3336  htim->Break2Callback(htim);
3337 #else
3339 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3340  }
3341  }
3342  /* TIM Trigger detection event */
3343  if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET)
3344  {
3345  if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET)
3346  {
3347  __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
3348 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3349  htim->TriggerCallback(htim);
3350 #else
3352 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3353  }
3354  }
3355  /* TIM commutation event */
3356  if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET)
3357  {
3358  if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET)
3359  {
3360  __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
3361 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3362  htim->CommutationCallback(htim);
3363 #else
3365 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
3366  }
3367  }
3368 }
void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim)
Hall Break detection callback in non-blocking mode.
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
PWM Pulse finished callback in non-blocking mode.
void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim)
Hall commutation changed callback in non-blocking mode.
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
Output Compare callback in non-blocking mode.
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
Period elapsed callback in non-blocking mode.
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
Input Capture callback in non-blocking mode.
void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim)
Hall Break2 detection callback in non blocking mode.
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
Hall Trigger detection callback in non-blocking mode.