Subversion Repositories DashDisplay

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 5
Line 1... Line 1...
1
/**
1
/**
2
  ******************************************************************************
2
  ******************************************************************************
3
  * @file    stm32f1xx_hal_tim.c
3
  * @file    stm32f1xx_hal_tim.c
4
  * @author  MCD Application Team
4
  * @author  MCD Application Team
5
  * @version V1.0.1
5
  * @version V1.0.4
6
  * @date    31-July-2015
6
  * @date    29-April-2016
7
  * @brief   TIM HAL module driver
7
  * @brief   TIM HAL module driver
8
  *          This file provides firmware functions to manage the following
8
  *          This file provides firmware functions to manage the following
9
  *          functionalities of the Timer (TIM) peripheral:
9
  *          functionalities of the Timer (TIM) peripheral:
10
  *           + Time Base Initialization
10
  *           + Time Base Initialization
11
  *           + Time Base Start
11
  *           + Time Base Start
Line 59... Line 59...
59
 
59
 
60
     (#) Initialize the TIM low level resources :
60
     (#) Initialize the TIM low level resources :
61
        (##) Enable the TIM interface clock using __HAL_RCC_TIMx_CLK_ENABLE();
61
        (##) Enable the TIM interface clock using __HAL_RCC_TIMx_CLK_ENABLE();
62
        (##) TIM pins configuration
62
        (##) TIM pins configuration
63
            (+++) Enable the clock for the TIM GPIOs using the following function:
63
            (+++) Enable the clock for the TIM GPIOs using the following function:
64
             __HAL_GPIOx_CLK_ENABLE();
64
             __HAL_RCC_GPIOx_CLK_ENABLE();
65
            (+++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init();
65
            (+++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init();
66
 
66
 
67
     (#) The external Clock can be configured, if needed (the default clock is the
67
     (#) The external Clock can be configured, if needed (the default clock is the
68
         internal clock from the APBx), using the following function:
68
         internal clock from the APBx), using the following function:
69
         HAL_TIM_ConfigClockSource, the clock configuration should be done before
69
         HAL_TIM_ConfigClockSource, the clock configuration should be done before
Line 96... Line 96...
96
 
96
 
97
  @endverbatim
97
  @endverbatim
98
  ******************************************************************************
98
  ******************************************************************************
99
  * @attention
99
  * @attention
100
  *
100
  *
101
  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
101
  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
102
  *
102
  *
103
  * Redistribution and use in source and binary forms, with or without modification,
103
  * Redistribution and use in source and binary forms, with or without modification,
104
  * are permitted provided that the following conditions are met:
104
  * are permitted provided that the following conditions are met:
105
  *   1. Redistributions of source code must retain the above copyright notice,
105
  *   1. Redistributions of source code must retain the above copyright notice,
106
  *      this list of conditions and the following disclaimer.
106
  *      this list of conditions and the following disclaimer.
Line 269... Line 269...
269
  * @param  htim : TIM handle
269
  * @param  htim : TIM handle
270
  * @retval None
270
  * @retval None
271
  */
271
  */
272
__weak void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
272
__weak void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
273
{
273
{
-
 
274
  /* Prevent unused argument(s) compilation warning */
-
 
275
  UNUSED(htim);
274
  /* NOTE : This function Should not be modified, when the callback is needed,
276
  /* NOTE : This function Should not be modified, when the callback is needed,
275
            the HAL_TIM_Base_MspInit could be implemented in the user file
277
            the HAL_TIM_Base_MspInit could be implemented in the user file
276
   */
278
   */
277
}
279
}
278
 
280
 
Line 281... Line 283...
281
  * @param  htim : TIM handle
283
  * @param  htim : TIM handle
282
  * @retval None
284
  * @retval None
283
  */
285
  */
284
__weak void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
286
__weak void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
285
{
287
{
-
 
288
  /* Prevent unused argument(s) compilation warning */
-
 
289
  UNUSED(htim);
286
  /* NOTE : This function Should not be modified, when the callback is needed,
290
  /* NOTE : This function Should not be modified, when the callback is needed,
287
            the HAL_TIM_Base_MspDeInit could be implemented in the user file
291
            the HAL_TIM_Base_MspDeInit could be implemented in the user file
288
   */
292
   */
289
}
293
}
290
 
294
 
Line 540... Line 544...
540
  * @param  htim : TIM handle
544
  * @param  htim : TIM handle
541
  * @retval None
545
  * @retval None
542
  */
546
  */
543
__weak void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim)
547
__weak void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim)
544
{
548
{
-
 
549
  /* Prevent unused argument(s) compilation warning */
-
 
550
  UNUSED(htim);
545
  /* NOTE : This function Should not be modified, when the callback is needed,
551
  /* NOTE : This function Should not be modified, when the callback is needed,
546
            the HAL_TIM_OC_MspInit could be implemented in the user file
552
            the HAL_TIM_OC_MspInit could be implemented in the user file
547
   */
553
   */
548
}
554
}
549
 
555
 
Line 552... Line 558...
552
  * @param  htim : TIM handle
558
  * @param  htim : TIM handle
553
  * @retval None
559
  * @retval None
554
  */
560
  */
555
__weak void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim)
561
__weak void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim)
556
{
562
{
-
 
563
  /* Prevent unused argument(s) compilation warning */
-
 
564
  UNUSED(htim);
557
  /* NOTE : This function Should not be modified, when the callback is needed,
565
  /* NOTE : This function Should not be modified, when the callback is needed,
558
            the HAL_TIM_OC_MspDeInit could be implemented in the user file
566
            the HAL_TIM_OC_MspDeInit could be implemented in the user file
559
   */
567
   */
560
}
568
}
561
 
569
 
Line 1040... Line 1048...
1040
  * @param  htim : TIM handle
1048
  * @param  htim : TIM handle
1041
  * @retval None
1049
  * @retval None
1042
  */
1050
  */
1043
__weak void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
1051
__weak void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
1044
{
1052
{
-
 
1053
  /* Prevent unused argument(s) compilation warning */
-
 
1054
  UNUSED(htim);
1045
  /* NOTE : This function Should not be modified, when the callback is needed,
1055
  /* NOTE : This function Should not be modified, when the callback is needed,
1046
            the HAL_TIM_PWM_MspInit could be implemented in the user file
1056
            the HAL_TIM_PWM_MspInit could be implemented in the user file
1047
   */
1057
   */
1048
}
1058
}
1049
 
1059
 
Line 1052... Line 1062...
1052
  * @param  htim : TIM handle
1062
  * @param  htim : TIM handle
1053
  * @retval None
1063
  * @retval None
1054
  */
1064
  */
1055
__weak void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim)
1065
__weak void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim)
1056
{
1066
{
-
 
1067
  /* Prevent unused argument(s) compilation warning */
-
 
1068
  UNUSED(htim);
1057
  /* NOTE : This function Should not be modified, when the callback is needed,
1069
  /* NOTE : This function Should not be modified, when the callback is needed,
1058
            the HAL_TIM_PWM_MspDeInit could be implemented in the user file
1070
            the HAL_TIM_PWM_MspDeInit could be implemented in the user file
1059
   */
1071
   */
1060
}
1072
}
1061
 
1073
 
Line 1543... Line 1555...
1543
  * @param  htim : TIM handle
1555
  * @param  htim : TIM handle
1544
  * @retval None
1556
  * @retval None
1545
  */
1557
  */
1546
__weak void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim)
1558
__weak void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim)
1547
{
1559
{
-
 
1560
  /* Prevent unused argument(s) compilation warning */
-
 
1561
  UNUSED(htim);
1548
  /* NOTE : This function Should not be modified, when the callback is needed,
1562
  /* NOTE : This function Should not be modified, when the callback is needed,
1549
            the HAL_TIM_IC_MspInit could be implemented in the user file
1563
            the HAL_TIM_IC_MspInit could be implemented in the user file
1550
   */
1564
   */
1551
}
1565
}
1552
 
1566
 
Line 1555... Line 1569...
1555
  * @param  htim : TIM handle
1569
  * @param  htim : TIM handle
1556
  * @retval None
1570
  * @retval None
1557
  */
1571
  */
1558
__weak void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim)
1572
__weak void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim)
1559
{
1573
{
-
 
1574
  /* Prevent unused argument(s) compilation warning */
-
 
1575
  UNUSED(htim);
1560
  /* NOTE : This function Should not be modified, when the callback is needed,
1576
  /* NOTE : This function Should not be modified, when the callback is needed,
1561
            the HAL_TIM_IC_MspDeInit could be implemented in the user file
1577
            the HAL_TIM_IC_MspDeInit could be implemented in the user file
1562
   */
1578
   */
1563
}
1579
}
1564
 
1580
 
Line 2019... Line 2035...
2019
  * @param  htim : TIM handle
2035
  * @param  htim : TIM handle
2020
  * @retval None
2036
  * @retval None
2021
  */
2037
  */
2022
__weak void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim)
2038
__weak void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim)
2023
{
2039
{
-
 
2040
  /* Prevent unused argument(s) compilation warning */
-
 
2041
  UNUSED(htim);
2024
  /* NOTE : This function Should not be modified, when the callback is needed,
2042
  /* NOTE : This function Should not be modified, when the callback is needed,
2025
            the HAL_TIM_OnePulse_MspInit could be implemented in the user file
2043
            the HAL_TIM_OnePulse_MspInit could be implemented in the user file
2026
   */
2044
   */
2027
}
2045
}
2028
 
2046
 
Line 2031... Line 2049...
2031
  * @param  htim : TIM handle
2049
  * @param  htim : TIM handle
2032
  * @retval None
2050
  * @retval None
2033
  */
2051
  */
2034
__weak void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim)
2052
__weak void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim)
2035
{
2053
{
-
 
2054
  /* Prevent unused argument(s) compilation warning */
-
 
2055
  UNUSED(htim);
2036
  /* NOTE : This function Should not be modified, when the callback is needed,
2056
  /* NOTE : This function Should not be modified, when the callback is needed,
2037
            the HAL_TIM_OnePulse_MspDeInit could be implemented in the user file
2057
            the HAL_TIM_OnePulse_MspDeInit could be implemented in the user file
2038
   */
2058
   */
2039
}
2059
}
2040
 
2060
 
Line 2329... Line 2349...
2329
  * @param  htim : TIM handle
2349
  * @param  htim : TIM handle
2330
  * @retval None
2350
  * @retval None
2331
  */
2351
  */
2332
__weak void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim)
2352
__weak void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim)
2333
{
2353
{
-
 
2354
  /* Prevent unused argument(s) compilation warning */
-
 
2355
  UNUSED(htim);
2334
  /* NOTE : This function Should not be modified, when the callback is needed,
2356
  /* NOTE : This function Should not be modified, when the callback is needed,
2335
            the HAL_TIM_Encoder_MspInit could be implemented in the user file
2357
            the HAL_TIM_Encoder_MspInit could be implemented in the user file
2336
   */
2358
   */
2337
}
2359
}
2338
 
2360
 
Line 2341... Line 2363...
2341
  * @param  htim : TIM handle
2363
  * @param  htim : TIM handle
2342
  * @retval None
2364
  * @retval None
2343
  */
2365
  */
2344
__weak void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim)
2366
__weak void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim)
2345
{
2367
{
-
 
2368
  /* Prevent unused argument(s) compilation warning */
-
 
2369
  UNUSED(htim);
2346
  /* NOTE : This function Should not be modified, when the callback is needed,
2370
  /* NOTE : This function Should not be modified, when the callback is needed,
2347
            the HAL_TIM_Encoder_MspDeInit could be implemented in the user file
2371
            the HAL_TIM_Encoder_MspDeInit could be implemented in the user file
2348
   */
2372
   */
2349
}
2373
}
2350
 
2374
 
Line 2892... Line 2916...
2892
{
2916
{
2893
  /* Check the parameters */
2917
  /* Check the parameters */
2894
  assert_param(IS_TIM_CHANNELS(Channel));
2918
  assert_param(IS_TIM_CHANNELS(Channel));
2895
  assert_param(IS_TIM_OC_MODE(sConfig->OCMode));
2919
  assert_param(IS_TIM_OC_MODE(sConfig->OCMode));
2896
  assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity));
2920
  assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity));
2897
  assert_param(IS_TIM_OCN_POLARITY(sConfig->OCNPolarity));
-
 
2898
  assert_param(IS_TIM_OCNIDLE_STATE(sConfig->OCNIdleState));
-
 
2899
  assert_param(IS_TIM_OCIDLE_STATE(sConfig->OCIdleState));
-
 
2900
 
2921
 
2901
  /* Check input state */
2922
  /* Check input state */
2902
  __HAL_LOCK(htim);
2923
  __HAL_LOCK(htim);
2903
 
2924
 
2904
  htim->State = HAL_TIM_STATE_BUSY;
2925
  htim->State = HAL_TIM_STATE_BUSY;
Line 3062... Line 3083...
3062
 
3083
 
3063
  /* Check the parameters */
3084
  /* Check the parameters */
3064
  assert_param(IS_TIM_CHANNELS(Channel));
3085
  assert_param(IS_TIM_CHANNELS(Channel));
3065
  assert_param(IS_TIM_PWM_MODE(sConfig->OCMode));
3086
  assert_param(IS_TIM_PWM_MODE(sConfig->OCMode));
3066
  assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity));
3087
  assert_param(IS_TIM_OC_POLARITY(sConfig->OCPolarity));
3067
  assert_param(IS_TIM_OCN_POLARITY(sConfig->OCNPolarity));
-
 
3068
  assert_param(IS_TIM_FAST_STATE(sConfig->OCFastMode));
3088
  assert_param(IS_TIM_FAST_STATE(sConfig->OCFastMode));
3069
  assert_param(IS_TIM_OCNIDLE_STATE(sConfig->OCNIdleState));
-
 
3070
  assert_param(IS_TIM_OCIDLE_STATE(sConfig->OCIdleState));
-
 
3071
 
3089
 
3072
  htim->State = HAL_TIM_STATE_BUSY;
3090
  htim->State = HAL_TIM_STATE_BUSY;
3073
 
3091
 
3074
  switch (Channel)
3092
  switch (Channel)
3075
  {
3093
  {
Line 3893... Line 3911...
3893
 
3911
 
3894
  htim->State = HAL_TIM_STATE_BUSY;
3912
  htim->State = HAL_TIM_STATE_BUSY;
3895
 
3913
 
3896
  /* Check the parameters */
3914
  /* Check the parameters */
3897
  assert_param(IS_TIM_CLOCKSOURCE(sClockSourceConfig->ClockSource));
3915
  assert_param(IS_TIM_CLOCKSOURCE(sClockSourceConfig->ClockSource));
3898
  assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity));
-
 
3899
  assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->ClockPrescaler));
-
 
3900
  assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter));
-
 
3901
 
3916
 
3902
  /* Reset the SMS, TS, ECE, ETPS and ETRF bits */
3917
  /* Reset the SMS, TS, ECE, ETPS and ETRF bits */
3903
  tmpsmcr = htim->Instance->SMCR;
3918
  tmpsmcr = htim->Instance->SMCR;
3904
  tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS);
3919
  tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS);
3905
  tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP);
3920
  tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP);
Line 3918... Line 3933...
3918
  case TIM_CLOCKSOURCE_ETRMODE1:
3933
  case TIM_CLOCKSOURCE_ETRMODE1:
3919
    {
3934
    {
3920
      /* Check whether or not the timer instance supports external trigger input mode 1 (ETRF)*/
3935
      /* Check whether or not the timer instance supports external trigger input mode 1 (ETRF)*/
3921
      assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance));
3936
      assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance));
3922
 
3937
 
-
 
3938
      /* Check ETR input conditioning related parameters */
-
 
3939
      assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->ClockPrescaler));
-
 
3940
      assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity));
-
 
3941
      assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter));
-
 
3942
     
3923
      /* Configure the ETR Clock source */
3943
      /* Configure the ETR Clock source */
3924
      TIM_ETR_SetConfig(htim->Instance,
3944
      TIM_ETR_SetConfig(htim->Instance,
3925
                        sClockSourceConfig->ClockPrescaler,
3945
                        sClockSourceConfig->ClockPrescaler,
3926
                        sClockSourceConfig->ClockPolarity,
3946
                        sClockSourceConfig->ClockPolarity,
3927
                        sClockSourceConfig->ClockFilter);
3947
                        sClockSourceConfig->ClockFilter);
Line 3939... Line 3959...
3939
  case TIM_CLOCKSOURCE_ETRMODE2:
3959
  case TIM_CLOCKSOURCE_ETRMODE2:
3940
    {
3960
    {
3941
      /* Check whether or not the timer instance supports external trigger input mode 2 (ETRF)*/
3961
      /* Check whether or not the timer instance supports external trigger input mode 2 (ETRF)*/
3942
      assert_param(IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(htim->Instance));
3962
      assert_param(IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(htim->Instance));
3943
 
3963
 
-
 
3964
      /* Check ETR input conditioning related parameters */
-
 
3965
      assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->ClockPrescaler));
-
 
3966
      assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity));
-
 
3967
      assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter));
-
 
3968
     
3944
      /* Configure the ETR Clock source */
3969
      /* Configure the ETR Clock source */
3945
      TIM_ETR_SetConfig(htim->Instance,
3970
      TIM_ETR_SetConfig(htim->Instance,
3946
                        sClockSourceConfig->ClockPrescaler,
3971
                        sClockSourceConfig->ClockPrescaler,
3947
                        sClockSourceConfig->ClockPolarity,
3972
                        sClockSourceConfig->ClockPolarity,
3948
                        sClockSourceConfig->ClockFilter);
3973
                        sClockSourceConfig->ClockFilter);
Line 3954... Line 3979...
3954
  case TIM_CLOCKSOURCE_TI1:
3979
  case TIM_CLOCKSOURCE_TI1:
3955
    {
3980
    {
3956
      /* Check whether or not the timer instance supports external clock mode 1 */
3981
      /* Check whether or not the timer instance supports external clock mode 1 */
3957
      assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
3982
      assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
3958
 
3983
 
-
 
3984
      /* Check TI1 input conditioning related parameters */
-
 
3985
      assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity));
-
 
3986
      assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter));
-
 
3987
     
3959
      TIM_TI1_ConfigInputStage(htim->Instance,
3988
      TIM_TI1_ConfigInputStage(htim->Instance,
3960
                               sClockSourceConfig->ClockPolarity,
3989
                               sClockSourceConfig->ClockPolarity,
3961
                               sClockSourceConfig->ClockFilter);
3990
                               sClockSourceConfig->ClockFilter);
3962
      TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1);
3991
      TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1);
3963
    }
3992
    }
Line 3965... Line 3994...
3965
  case TIM_CLOCKSOURCE_TI2:
3994
  case TIM_CLOCKSOURCE_TI2:
3966
    {
3995
    {
3967
      /* Check whether or not the timer instance supports external clock mode 1 (ETRF)*/
3996
      /* Check whether or not the timer instance supports external clock mode 1 (ETRF)*/
3968
      assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
3997
      assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
3969
 
3998
 
-
 
3999
       /* Check TI2 input conditioning related parameters */
-
 
4000
      assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity));
-
 
4001
      assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter));
-
 
4002
 
3970
      TIM_TI2_ConfigInputStage(htim->Instance,
4003
      TIM_TI2_ConfigInputStage(htim->Instance,
3971
                               sClockSourceConfig->ClockPolarity,
4004
                               sClockSourceConfig->ClockPolarity,
3972
                               sClockSourceConfig->ClockFilter);
4005
                               sClockSourceConfig->ClockFilter);
3973
      TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI2);
4006
      TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI2);
3974
    }
4007
    }
Line 3976... Line 4009...
3976
  case TIM_CLOCKSOURCE_TI1ED:
4009
  case TIM_CLOCKSOURCE_TI1ED:
3977
    {
4010
    {
3978
      /* Check whether or not the timer instance supports external clock mode 1 */
4011
      /* Check whether or not the timer instance supports external clock mode 1 */
3979
      assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
4012
      assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
3980
 
4013
 
-
 
4014
      /* Check TI1 input conditioning related parameters */
-
 
4015
      assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->ClockPolarity));
-
 
4016
      assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->ClockFilter));
-
 
4017
 
3981
      TIM_TI1_ConfigInputStage(htim->Instance,
4018
      TIM_TI1_ConfigInputStage(htim->Instance,
3982
                               sClockSourceConfig->ClockPolarity,
4019
                               sClockSourceConfig->ClockPolarity,
3983
                               sClockSourceConfig->ClockFilter);
4020
                               sClockSourceConfig->ClockFilter);
3984
      TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1ED);
4021
      TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1ED);
3985
    }
4022
    }
Line 4231... Line 4268...
4231
  * @param  htim : TIM handle
4268
  * @param  htim : TIM handle
4232
  * @retval None
4269
  * @retval None
4233
  */
4270
  */
4234
__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
4271
__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
4235
{
4272
{
-
 
4273
  /* Prevent unused argument(s) compilation warning */
-
 
4274
  UNUSED(htim);
4236
  /* NOTE : This function Should not be modified, when the callback is needed,
4275
  /* NOTE : This function Should not be modified, when the callback is needed,
4237
            the __HAL_TIM_PeriodElapsedCallback could be implemented in the user file
4276
            the __HAL_TIM_PeriodElapsedCallback could be implemented in the user file
4238
   */
4277
   */
4239
 
4278
 
4240
}
4279
}
Line 4243... Line 4282...
4243
  * @param  htim : TIM OC handle
4282
  * @param  htim : TIM OC handle
4244
  * @retval None
4283
  * @retval None
4245
  */
4284
  */
4246
__weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
4285
__weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
4247
{
4286
{
-
 
4287
  /* Prevent unused argument(s) compilation warning */
-
 
4288
  UNUSED(htim);
4248
  /* NOTE : This function Should not be modified, when the callback is needed,
4289
  /* NOTE : This function Should not be modified, when the callback is needed,
4249
            the __HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file
4290
            the __HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file
4250
   */
4291
   */
4251
}
4292
}
4252
/**
4293
/**
Line 4254... Line 4295...
4254
  * @param  htim : TIM IC handle
4295
  * @param  htim : TIM IC handle
4255
  * @retval None
4296
  * @retval None
4256
  */
4297
  */
4257
__weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
4298
__weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
4258
{
4299
{
-
 
4300
  /* Prevent unused argument(s) compilation warning */
-
 
4301
  UNUSED(htim);
4259
  /* NOTE : This function Should not be modified, when the callback is needed,
4302
  /* NOTE : This function Should not be modified, when the callback is needed,
4260
            the __HAL_TIM_IC_CaptureCallback could be implemented in the user file
4303
            the __HAL_TIM_IC_CaptureCallback could be implemented in the user file
4261
   */
4304
   */
4262
}
4305
}
4263
 
4306
 
Line 4266... Line 4309...
4266
  * @param  htim : TIM handle
4309
  * @param  htim : TIM handle
4267
  * @retval None
4310
  * @retval None
4268
  */
4311
  */
4269
__weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
4312
__weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
4270
{
4313
{
-
 
4314
  /* Prevent unused argument(s) compilation warning */
-
 
4315
  UNUSED(htim);
4271
  /* NOTE : This function Should not be modified, when the callback is needed,
4316
  /* NOTE : This function Should not be modified, when the callback is needed,
4272
            the __HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file
4317
            the __HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file
4273
   */
4318
   */
4274
}
4319
}
4275
 
4320
 
Line 4278... Line 4323...
4278
  * @param  htim : TIM handle
4323
  * @param  htim : TIM handle
4279
  * @retval None
4324
  * @retval None
4280
  */
4325
  */
4281
__weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
4326
__weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
4282
{
4327
{
-
 
4328
  /* Prevent unused argument(s) compilation warning */
-
 
4329
  UNUSED(htim);
4283
  /* NOTE : This function Should not be modified, when the callback is needed,
4330
  /* NOTE : This function Should not be modified, when the callback is needed,
4284
            the HAL_TIM_TriggerCallback could be implemented in the user file
4331
            the HAL_TIM_TriggerCallback could be implemented in the user file
4285
   */
4332
   */
4286
}
4333
}
4287
 
4334
 
Line 4290... Line 4337...
4290
  * @param  htim : TIM handle
4337
  * @param  htim : TIM handle
4291
  * @retval None
4338
  * @retval None
4292
  */
4339
  */
4293
__weak void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim)
4340
__weak void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim)
4294
{
4341
{
-
 
4342
  /* Prevent unused argument(s) compilation warning */
-
 
4343
  UNUSED(htim);
4295
  /* NOTE : This function Should not be modified, when the callback is needed,
4344
  /* NOTE : This function Should not be modified, when the callback is needed,
4296
            the HAL_TIM_ErrorCallback could be implemented in the user file
4345
            the HAL_TIM_ErrorCallback could be implemented in the user file
4297
   */
4346
   */
4298
}
4347
}
4299
 
4348
 
Line 4650... Line 4699...
4650
  tmpccer |= (OC_Config->OCPolarity << 4);
4699
  tmpccer |= (OC_Config->OCPolarity << 4);
4651
 
4700
 
4652
  if(IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_2))
4701
  if(IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_2))
4653
  {
4702
  {
4654
    assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity));
4703
    assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity));
4655
    assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState));
-
 
4656
    assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState));
-
 
4657
 
4704
 
4658
    /* Reset the Output N Polarity level */
4705
    /* Reset the Output N Polarity level */
4659
    tmpccer &= ~TIM_CCER_CC2NP;
4706
    tmpccer &= ~TIM_CCER_CC2NP;
4660
    /* Set the Output N Polarity */
4707
    /* Set the Output N Polarity */
4661
    tmpccer |= (OC_Config->OCNPolarity << 4);
4708
    tmpccer |= (OC_Config->OCNPolarity << 4);
Line 4727... Line 4774...
4727
  tmpccer |= (OC_Config->OCPolarity << 8);
4774
  tmpccer |= (OC_Config->OCPolarity << 8);
4728
 
4775
 
4729
  if(IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_3))
4776
  if(IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_3))
4730
  {
4777
  {
4731
    assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity));
4778
    assert_param(IS_TIM_OCN_POLARITY(OC_Config->OCNPolarity));
4732
    assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState));
-
 
4733
    assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState));
-
 
4734
 
4779
 
4735
    /* Reset the Output N Polarity level */
4780
    /* Reset the Output N Polarity level */
4736
    tmpccer &= ~TIM_CCER_CC3NP;
4781
    tmpccer &= ~TIM_CCER_CC3NP;
4737
    /* Set the Output N Polarity */
4782
    /* Set the Output N Polarity */
4738
    tmpccer |= (OC_Config->OCNPolarity << 8);
4783
    tmpccer |= (OC_Config->OCNPolarity << 8);
Line 5192... Line 5237...
5192
  *            @arg TIM_ICSELECTION_DIRECTTI:   TIM Input 4 is selected to be connected to IC4.
5237
  *            @arg TIM_ICSELECTION_DIRECTTI:   TIM Input 4 is selected to be connected to IC4.
5193
  *            @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 4 is selected to be connected to IC3.
5238
  *            @arg TIM_ICSELECTION_INDIRECTTI: TIM Input 4 is selected to be connected to IC3.
5194
  *            @arg TIM_ICSELECTION_TRC:        TIM Input 4 is selected to be connected to TRC.
5239
  *            @arg TIM_ICSELECTION_TRC:        TIM Input 4 is selected to be connected to TRC.
5195
  * @param  TIM_ICFilter : Specifies the Input Capture Filter.
5240
  * @param  TIM_ICFilter : Specifies the Input Capture Filter.
5196
  *          This parameter must be a value between 0x00 and 0x0F.
5241
  *          This parameter must be a value between 0x00 and 0x0F.
5197
  * @retval None
-
 
5198
  * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI4FP3
5242
  * @note TIM_ICFilter and TIM_ICPolarity are not used in INDIRECT mode as TI4FP3
5199
  *       (on channel1 path) is used as the input signal. Therefore CCMR2 must be
5243
  *       (on channel1 path) is used as the input signal. Therefore CCMR2 must be
5200
  *        protected against un-initialized filter and polarity values.
5244
  *        protected against un-initialized filter and polarity values.
-
 
5245
  * @retval None
5201
  */
5246
  */
5202
static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
5247
static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
5203
                       uint32_t TIM_ICFilter)
5248
                       uint32_t TIM_ICFilter)
5204
{
5249
{
5205
  uint32_t tmpccmr2 = 0;
5250
  uint32_t tmpccmr2 = 0;