stm32g4xx_hal_tim_ex.h 119 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140
  1. /**
  2. ******************************************************************************
  3. * @file stm32g4xx_hal_tim_ex.h
  4. * @author MCD Application Team
  5. * @brief Header file of TIM HAL Extended module.
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * Copyright (c) 2019 STMicroelectronics.
  10. * All rights reserved.
  11. *
  12. * This software is licensed under terms that can be found in the LICENSE file
  13. * in the root directory of this software component.
  14. * If no LICENSE file comes with this software, it is provided AS-IS.
  15. *
  16. ******************************************************************************
  17. */
  18. /* Define to prevent recursive inclusion -------------------------------------*/
  19. #ifndef STM32G4xx_HAL_TIM_EX_H
  20. #define STM32G4xx_HAL_TIM_EX_H
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. /* Includes ------------------------------------------------------------------*/
  25. #include "stm32g4xx_hal_def.h"
  26. /** @addtogroup STM32G4xx_HAL_Driver
  27. * @{
  28. */
  29. /** @addtogroup TIMEx
  30. * @{
  31. */
  32. /* Exported types ------------------------------------------------------------*/
  33. /** @defgroup TIMEx_Exported_Types TIM Extended Exported Types
  34. * @{
  35. */
  36. /**
  37. * @brief TIM Hall sensor Configuration Structure definition
  38. */
  39. typedef struct
  40. {
  41. uint32_t IC1Polarity; /*!< Specifies the active edge of the input signal.
  42. This parameter can be a value of @ref TIM_Input_Capture_Polarity */
  43. uint32_t IC1Prescaler; /*!< Specifies the Input Capture Prescaler.
  44. This parameter can be a value of @ref TIM_Input_Capture_Prescaler */
  45. uint32_t IC1Filter; /*!< Specifies the input capture filter.
  46. This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
  47. uint32_t Commutation_Delay; /*!< Specifies the pulse value to be loaded into the Capture Compare Register.
  48. This parameter can be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF */
  49. } TIM_HallSensor_InitTypeDef;
  50. /**
  51. * @brief TIM Break/Break2 input configuration
  52. */
  53. typedef struct
  54. {
  55. uint32_t Source; /*!< Specifies the source of the timer break input.
  56. This parameter can be a value of @ref TIMEx_Break_Input_Source */
  57. uint32_t Enable; /*!< Specifies whether or not the break input source is enabled.
  58. This parameter can be a value of @ref TIMEx_Break_Input_Source_Enable */
  59. uint32_t Polarity; /*!< Specifies the break input source polarity.
  60. This parameter can be a value of @ref TIMEx_Break_Input_Source_Polarity */
  61. } TIMEx_BreakInputConfigTypeDef;
  62. /**
  63. * @brief TIM Encoder index configuration
  64. */
  65. typedef struct
  66. {
  67. uint32_t Polarity; /*!< TIM Encoder index polarity.This parameter can be a value of @ref TIMEx_Encoder_Index_Polarity */
  68. uint32_t Prescaler; /*!< TIM Encoder index prescaler.This parameter can be a value of @ref TIMEx_Encoder_Index_Prescaler */
  69. uint32_t Filter; /*!< TIM Encoder index filter.This parameter can be a number between Min_Data = 0x0 and Max_Data = 0xF */
  70. FunctionalState FirstIndexEnable; /*!< Specifies whether or not the encoder first index is enabled.This parameter value can be ENABLE or DISABLE. */
  71. uint32_t Position; /*!< Specifies in which AB input configuration the index event resets the counter.This parameter can be a value of @ref TIMEx_Encoder_Index_Position */
  72. uint32_t Direction; /*!< Specifies in which counter direction the index event resets the counter.This parameter can be a value of @ref TIMEx_Encoder_Index_Direction */
  73. } TIMEx_EncoderIndexConfigTypeDef;
  74. /**
  75. * @}
  76. */
  77. /* End of exported types -----------------------------------------------------*/
  78. /* Exported constants --------------------------------------------------------*/
  79. /** @defgroup TIMEx_Exported_Constants TIM Extended Exported Constants
  80. * @{
  81. */
  82. /** @defgroup TIMEx_Remap TIM Extended Remapping
  83. * @{
  84. */
  85. #define TIM_TIM1_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */
  86. #define TIM_TIM1_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */
  87. #define TIM_TIM1_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */
  88. #define TIM_TIM1_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */
  89. #define TIM_TIM1_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */
  90. #if defined(COMP5)
  91. #define TIM_TIM1_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */
  92. #endif /* COMP5 */
  93. #if defined(COMP6)
  94. #define TIM_TIM1_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */
  95. #endif /* COMP6 */
  96. #if defined(COMP7)
  97. #define TIM_TIM1_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */
  98. #endif /* COMP7 */
  99. #define TIM_TIM1_ETR_ADC1_AWD1 TIM1_AF1_ETRSEL_3 /*!< ADC1 analog watchdog 1 */
  100. #define TIM_TIM1_ETR_ADC1_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ADC1 analog watchdog 2 */
  101. #define TIM_TIM1_ETR_ADC1_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1) /*!< ADC1 analog watchdog 3 */
  102. #if defined (ADC4)
  103. #define TIM_TIM1_ETR_ADC4_AWD1 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ADC4 analog watchdog 1 */
  104. #define TIM_TIM1_ETR_ADC4_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2) /*!< ADC4 analog watchdog 2 */
  105. #define TIM_TIM1_ETR_ADC4_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ADC4 analog watchdog 3 */
  106. #endif /* ADC4 */
  107. #define TIM_TIM2_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */
  108. #define TIM_TIM2_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */
  109. #define TIM_TIM2_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */
  110. #define TIM_TIM2_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */
  111. #define TIM_TIM2_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */
  112. #if defined(COMP5)
  113. #define TIM_TIM2_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */
  114. #endif /* COMP5 */
  115. #if defined(COMP6)
  116. #define TIM_TIM2_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */
  117. #endif /* COMP6 */
  118. #if defined(COMP7)
  119. #define TIM_TIM2_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0)/*!< ETR input is connected to COMP7_OUT */
  120. #endif /* COMP7 */
  121. #define TIM_TIM2_ETR_TIM3_ETR TIM1_AF1_ETRSEL_3 /*!< ETR input is connected to TIM3 ETR */
  122. #define TIM_TIM2_ETR_TIM4_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to TIM4 ETR */
  123. #if defined (TIM5)
  124. #define TIM_TIM2_ETR_TIM5_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to TIM5 ETR */
  125. #endif /* TIM5 */
  126. #define TIM_TIM2_ETR_LSE (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to LSE */
  127. #define TIM_TIM3_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */
  128. #define TIM_TIM3_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */
  129. #define TIM_TIM3_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */
  130. #define TIM_TIM3_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */
  131. #define TIM_TIM3_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */
  132. #if defined(COMP5)
  133. #define TIM_TIM3_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */
  134. #endif /* COMP5 */
  135. #if defined(COMP6)
  136. #define TIM_TIM3_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */
  137. #endif /* COMP6 */
  138. #if defined(COMP7)
  139. #define TIM_TIM3_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */
  140. #endif /* COMP7 */
  141. #define TIM_TIM3_ETR_TIM2_ETR TIM1_AF1_ETRSEL_3 /*!< ETR input is connected to TIM2 ETR */
  142. #define TIM_TIM3_ETR_TIM4_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to TIM4 ETR */
  143. #define TIM_TIM3_ETR_ADC2_AWD1 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ADC2 analog watchdog 1 */
  144. #define TIM_TIM3_ETR_ADC2_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2) /*!< ADC2 analog watchdog 2 */
  145. #define TIM_TIM3_ETR_ADC2_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ADC2 analog watchdog 3 */
  146. #define TIM_TIM4_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */
  147. #define TIM_TIM4_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */
  148. #define TIM_TIM4_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */
  149. #define TIM_TIM4_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */
  150. #define TIM_TIM4_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */
  151. #if defined(COMP5)
  152. #define TIM_TIM4_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */
  153. #endif /* COMP5 */
  154. #if defined(COMP6)
  155. #define TIM_TIM4_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */
  156. #endif /* COMP6 */
  157. #if defined(COMP7)
  158. #define TIM_TIM4_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */
  159. #endif /* COMP7 */
  160. #define TIM_TIM4_ETR_TIM3_ETR TIM1_AF1_ETRSEL_3 /*!< ETR input is connected to TIM3 ETR */
  161. #if defined (TIM5)
  162. #define TIM_TIM4_ETR_TIM5_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to TIM5 ETR */
  163. #endif /* TIM5 */
  164. #if defined (TIM5)
  165. #define TIM_TIM5_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */
  166. #define TIM_TIM5_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */
  167. #define TIM_TIM5_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */
  168. #define TIM_TIM5_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */
  169. #define TIM_TIM5_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */
  170. #if defined(COMP5)
  171. #define TIM_TIM5_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */
  172. #endif /* COMP5 */
  173. #if defined(COMP6)
  174. #define TIM_TIM5_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */
  175. #endif /* COMP6 */
  176. #if defined(COMP7)
  177. #define TIM_TIM5_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */
  178. #endif /* COMP7 */
  179. #define TIM_TIM5_ETR_TIM2_ETR TIM1_AF1_ETRSEL_3 /*!< ETR input is connected to TIM2 ETR */
  180. #define TIM_TIM5_ETR_TIM3_ETR (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to TIM3 ETR */
  181. #endif /* TIM5 */
  182. #define TIM_TIM8_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */
  183. #define TIM_TIM8_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */
  184. #define TIM_TIM8_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */
  185. #define TIM_TIM8_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */
  186. #define TIM_TIM8_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */
  187. #if defined(COMP5)
  188. #define TIM_TIM8_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */
  189. #endif /* COMP5 */
  190. #if defined(COMP6)
  191. #define TIM_TIM8_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */
  192. #endif /* COMP6 */
  193. #if defined(COMP7)
  194. #define TIM_TIM8_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */
  195. #endif /* COMP7 */
  196. #define TIM_TIM8_ETR_ADC2_AWD1 TIM1_AF1_ETRSEL_3 /*!< ADC2 analog watchdog 1 */
  197. #define TIM_TIM8_ETR_ADC2_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ADC2 analog watchdog 2 */
  198. #define TIM_TIM8_ETR_ADC2_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1) /*!< ADC2 analog watchdog 3 */
  199. #if defined (ADC3)
  200. #define TIM_TIM8_ETR_ADC3_AWD1 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ADC3 analog watchdog 1 */
  201. #define TIM_TIM8_ETR_ADC3_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2) /*!< ADC3 analog watchdog 2 */
  202. #define TIM_TIM8_ETR_ADC3_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ADC3 analog watchdog 3 */
  203. #endif /* ADC3 */
  204. #if defined (TIM20)
  205. #define TIM_TIM20_ETR_GPIO 0x00000000U /*!< ETR input is connected to GPIO */
  206. #define TIM_TIM20_ETR_COMP1 TIM1_AF1_ETRSEL_0 /*!< ETR input is connected to COMP1_OUT */
  207. #define TIM_TIM20_ETR_COMP2 TIM1_AF1_ETRSEL_1 /*!< ETR input is connected to COMP2_OUT */
  208. #define TIM_TIM20_ETR_COMP3 (TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP3_OUT */
  209. #define TIM_TIM20_ETR_COMP4 TIM1_AF1_ETRSEL_2 /*!< ETR input is connected to COMP4_OUT */
  210. #if defined(COMP5)
  211. #define TIM_TIM20_ETR_COMP5 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP5_OUT */
  212. #endif /* COMP5 */
  213. #if defined(COMP6)
  214. #define TIM_TIM20_ETR_COMP6 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1) /*!< ETR input is connected to COMP6_OUT */
  215. #endif /* COMP6 */
  216. #if defined(COMP7)
  217. #define TIM_TIM20_ETR_COMP7 (TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ETR input is connected to COMP7_OUT */
  218. #endif /* COMP7 */
  219. #define TIM_TIM20_ETR_ADC3_AWD1 TIM1_AF1_ETRSEL_3 /*!< ADC3 analog watchdog 1 */
  220. #define TIM_TIM20_ETR_ADC3_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_0) /*!< ADC3 analog watchdog 2 */
  221. #define TIM_TIM20_ETR_ADC3_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1) /*!< ADC3 analog watchdog 3 */
  222. #if defined (ADC5)
  223. #define TIM_TIM20_ETR_ADC5_AWD1 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_1 | TIM1_AF1_ETRSEL_0) /*!< ADC5 analog watchdog 1 */
  224. #define TIM_TIM20_ETR_ADC5_AWD2 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2) /*!< ADC5 analog watchdog 2 */
  225. #define TIM_TIM20_ETR_ADC5_AWD3 (TIM1_AF1_ETRSEL_3 | TIM1_AF1_ETRSEL_2 | TIM1_AF1_ETRSEL_0) /*!< ADC5 analog watchdog 3 */
  226. #endif /* ADC5 */
  227. #endif /* TIM20 */
  228. /**
  229. * @}
  230. */
  231. /** @defgroup TIMEx_Break_Input TIM Extended Break input
  232. * @{
  233. */
  234. #define TIM_BREAKINPUT_BRK 0x00000001U /*!< Timer break input */
  235. #define TIM_BREAKINPUT_BRK2 0x00000002U /*!< Timer break2 input */
  236. /**
  237. * @}
  238. */
  239. /** @defgroup TIMEx_Break_Input_Source TIM Extended Break input source
  240. * @{
  241. */
  242. #define TIM_BREAKINPUTSOURCE_BKIN 0x00000001U /*!< An external source (GPIO) is connected to the BKIN pin */
  243. #define TIM_BREAKINPUTSOURCE_COMP1 0x00000002U /*!< The COMP1 output is connected to the break input */
  244. #define TIM_BREAKINPUTSOURCE_COMP2 0x00000004U /*!< The COMP2 output is connected to the break input */
  245. #define TIM_BREAKINPUTSOURCE_COMP3 0x00000008U /*!< The COMP3 output is connected to the break input */
  246. #define TIM_BREAKINPUTSOURCE_COMP4 0x00000010U /*!< The COMP4 output is connected to the break input */
  247. #if defined(COMP5)
  248. #define TIM_BREAKINPUTSOURCE_COMP5 0x00000020U /*!< The COMP5 output is connected to the break input */
  249. #endif /* COMP5 */
  250. #if defined(COMP6)
  251. #define TIM_BREAKINPUTSOURCE_COMP6 0x00000040U /*!< The COMP6 output is connected to the break input */
  252. #endif /* COMP6 */
  253. #if defined(COMP7)
  254. #define TIM_BREAKINPUTSOURCE_COMP7 0x00000080U /*!< The COMP7 output is connected to the break input */
  255. #endif /* COMP7 */
  256. /**
  257. * @}
  258. */
  259. /** @defgroup TIMEx_Break_Input_Source_Enable TIM Extended Break input source enabling
  260. * @{
  261. */
  262. #define TIM_BREAKINPUTSOURCE_DISABLE 0x00000000U /*!< Break input source is disabled */
  263. #define TIM_BREAKINPUTSOURCE_ENABLE 0x00000001U /*!< Break input source is enabled */
  264. /**
  265. * @}
  266. */
  267. /** @defgroup TIMEx_Break_Input_Source_Polarity TIM Extended Break input polarity
  268. * @{
  269. */
  270. #define TIM_BREAKINPUTSOURCE_POLARITY_LOW 0x00000001U /*!< Break input source is active low */
  271. #define TIM_BREAKINPUTSOURCE_POLARITY_HIGH 0x00000000U /*!< Break input source is active_high */
  272. /**
  273. * @}
  274. */
  275. /** @defgroup TIMEx_Timer_Input_Selection TIM Extended Timer input selection
  276. * @{
  277. */
  278. #define TIM_TIM1_TI1_GPIO 0x00000000U /*!< TIM1 input 1 is connected to GPIO */
  279. #define TIM_TIM1_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM1 input 1 is connected to COMP1_OUT */
  280. #define TIM_TIM1_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM1 input 1 is connected to COMP2_OUT */
  281. #define TIM_TIM1_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM1 input 1 is connected to COMP3_OUT */
  282. #define TIM_TIM1_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM1 input 1 is connected to COMP4_OUT */
  283. #define TIM_TIM2_TI1_GPIO 0x00000000U /*!< TIM2 input 1 is connected to GPIO */
  284. #define TIM_TIM2_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM2 input 1 is connected to COMP1_OUT */
  285. #define TIM_TIM2_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM2 input 1 is connected to COMP2_OUT */
  286. #define TIM_TIM2_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM2 input 1 is connected to COMP3_OUT */
  287. #define TIM_TIM2_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM2 input 1 is connected to COMP4_OUT */
  288. #if defined (COMP5)
  289. #define TIM_TIM2_TI1_COMP5 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM2 input 1 is connected to COMP5_OUT */
  290. #endif /* COMP5 */
  291. #define TIM_TIM2_TI2_GPIO 0x00000000U /*!< TIM2 input 2 is connected to GPIO */
  292. #define TIM_TIM2_TI2_COMP1 TIM_TISEL_TI2SEL_0 /*!< TIM2 input 2 is connected to COMP1_OUT */
  293. #define TIM_TIM2_TI2_COMP2 TIM_TISEL_TI2SEL_1 /*!< TIM2 input 2 is connected to COMP2_OUT */
  294. #define TIM_TIM2_TI2_COMP3 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM2 input 2 is connected to COMP3_OUT */
  295. #define TIM_TIM2_TI2_COMP4 TIM_TISEL_TI2SEL_2 /*!< TIM2 input 2 is connected to COMP4_OUT */
  296. #if defined (COMP6)
  297. #define TIM_TIM2_TI2_COMP6 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_0) /*!< TIM2 input 2 is connected to COMP6_OUT */
  298. #endif /* COMP6 */
  299. #define TIM_TIM2_TI3_GPIO 0x00000000U /*!< TIM2 input 3 is connected to GPIO */
  300. #define TIM_TIM2_TI3_COMP4 TIM_TISEL_TI3SEL_0 /*!< TIM2 input 3 is connected to COMP4_OUT */
  301. #define TIM_TIM2_TI4_GPIO 0x00000000U /*!< TIM2 input 4 is connected to GPIO */
  302. #define TIM_TIM2_TI4_COMP1 TIM_TISEL_TI4SEL_0 /*!< TIM2 input 4 is connected to COMP1_OUT */
  303. #define TIM_TIM2_TI4_COMP2 TIM_TISEL_TI4SEL_1 /*!< TIM2 input 4 is connected to COMP2_OUT */
  304. #define TIM_TIM3_TI1_GPIO 0x00000000U /*!< TIM3 input 1 is connected to GPIO */
  305. #define TIM_TIM3_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM3 input 1 is connected to COMP1_OUT */
  306. #define TIM_TIM3_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM3 input 1 is connected to COMP2_OUT */
  307. #define TIM_TIM3_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM3 input 1 is connected to COMP3_OUT */
  308. #define TIM_TIM3_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM3 input 1 is connected to COMP4_OUT */
  309. #if defined (COMP5)
  310. #define TIM_TIM3_TI1_COMP5 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM3 input 1 is connected to COMP5_OUT */
  311. #endif /* COMP5 */
  312. #if defined (COMP6)
  313. #define TIM_TIM3_TI1_COMP6 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM3 input 1 is connected to COMP6_OUT */
  314. #endif /* COMP6 */
  315. #if defined (COMP7)
  316. #define TIM_TIM3_TI1_COMP7 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM3 input 1 is connected to COMP7_OUT */
  317. #endif /* COMP7 */
  318. #define TIM_TIM3_TI2_GPIO 0x00000000U /*!< TIM3 input 2 is connected to GPIO */
  319. #define TIM_TIM3_TI2_COMP1 TIM_TISEL_TI2SEL_0 /*!< TIM3 input 2 is connected to COMP1_OUT */
  320. #define TIM_TIM3_TI2_COMP2 TIM_TISEL_TI2SEL_1 /*!< TIM3 input 2 is connected to COMP2_OUT */
  321. #define TIM_TIM3_TI2_COMP3 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM3 input 2 is connected to COMP3_OUT */
  322. #define TIM_TIM3_TI2_COMP4 TIM_TISEL_TI2SEL_2 /*!< TIM3 input 2 is connected to COMP4_OUT */
  323. #if defined (COMP5)
  324. #define TIM_TIM3_TI2_COMP5 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_0) /*!< TIM3 input 2 is connected to COMP5_OUT */
  325. #endif /* COMP5 */
  326. #if defined (COMP6)
  327. #define TIM_TIM3_TI2_COMP6 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1) /*!< TIM3 input 2 is connected to COMP6_OUT */
  328. #endif /* COMP6 */
  329. #if defined (COMP7)
  330. #define TIM_TIM3_TI2_COMP7 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM3 input 2 is connected to COMP7_OUT */
  331. #endif /* COMP7 */
  332. #define TIM_TIM3_TI3_GPIO 0x00000000U /*!< TIM3 input 3 is connected to GPIO */
  333. #define TIM_TIM3_TI3_COMP3 TIM_TISEL_TI3SEL_0 /*!< TIM3 input 3 is connected to COMP3_OUT */
  334. #define TIM_TIM4_TI1_GPIO 0x00000000U /*!< TIM4 input 1 is connected to GPIO */
  335. #define TIM_TIM4_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM4 input 1 is connected to COMP1_OUT */
  336. #define TIM_TIM4_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM4 input 1 is connected to COMP2_OUT */
  337. #define TIM_TIM4_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM4 input 1 is connected to COMP3_OUT */
  338. #define TIM_TIM4_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM4 input 1 is connected to COMP4_OUT */
  339. #if defined (COMP5)
  340. #define TIM_TIM4_TI1_COMP5 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM4 input 1 is connected to COMP5_OUT */
  341. #endif /* COMP5 */
  342. #if defined (COMP6)
  343. #define TIM_TIM4_TI1_COMP6 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM4 input 1 is connected to COMP6_OUT */
  344. #endif /* COMP6 */
  345. #if defined (COMP7)
  346. #define TIM_TIM4_TI1_COMP7 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM4 input 1 is connected to COMP7_OUT */
  347. #endif /* COMP7 */
  348. #define TIM_TIM4_TI2_GPIO 0x00000000U /*!< TIM4 input 2 is connected to GPIO */
  349. #define TIM_TIM4_TI2_COMP1 TIM_TISEL_TI2SEL_0 /*!< TIM4 input 2 is connected to COMP1_OUT */
  350. #define TIM_TIM4_TI2_COMP2 TIM_TISEL_TI2SEL_1 /*!< TIM4 input 2 is connected to COMP2_OUT */
  351. #define TIM_TIM4_TI2_COMP3 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM4 input 2 is connected to COMP3_OUT */
  352. #define TIM_TIM4_TI2_COMP4 TIM_TISEL_TI2SEL_2 /*!< TIM4 input 2 is connected to COMP4_OUT */
  353. #if defined (COMP5)
  354. #define TIM_TIM4_TI2_COMP5 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_0) /*!< TIM4 input 2 is connected to COMP5_OUT */
  355. #endif /* COMP5 */
  356. #if defined (COMP6)
  357. #define TIM_TIM4_TI2_COMP6 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1) /*!< TIM4 input 2 is connected to COMP6_OUT */
  358. #endif /* COMP6 */
  359. #if defined (COMP7)
  360. #define TIM_TIM4_TI2_COMP7 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM4 input 2 is connected to COMP7_OUT */
  361. #endif /* COMP7 */
  362. #define TIM_TIM4_TI3_GPIO 0x00000000U /*!< TIM4 input 3 is connected to GPIO */
  363. #if defined (COMP5)
  364. #define TIM_TIM4_TI3_COMP5 TIM_TISEL_TI3SEL_0 /*!< TIM4 input 3 is connected to COMP5_OUT */
  365. #endif /* COMP5 */
  366. #define TIM_TIM4_TI4_GPIO 0x00000000U /*!< TIM4 input 4 is connected to GPIO */
  367. #if defined (COMP6)
  368. #define TIM_TIM4_TI4_COMP6 TIM_TISEL_TI4SEL_0 /*!< TIM4 input 4 is connected to COMP6_OUT */
  369. #endif /* COMP6 */
  370. #if defined(TIM5)
  371. #define TIM_TIM5_TI1_GPIO 0x00000000U /*!< TIM5 input 1 is connected to GPIO */
  372. #define TIM_TIM5_TI1_LSI TIM_TISEL_TI1SEL_0 /*!< TIM5 input 1 is connected to LSI */
  373. #define TIM_TIM5_TI1_LSE TIM_TISEL_TI1SEL_1 /*!< TIM5 input 1 is connected to LSE */
  374. #define TIM_TIM5_TI1_RTC_WK (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM5 input 1 is connected to RTC_WAKEUP */
  375. #define TIM_TIM5_TI1_COMP1 TIM_TISEL_TI1SEL_2 /*!< TIM5 input 1 is connected to COMP1_OUT */
  376. #define TIM_TIM5_TI1_COMP2 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM5 input 1 is connected to COMP2_OUT */
  377. #define TIM_TIM5_TI1_COMP3 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM5 input 1 is connected to COMP3_OUT */
  378. #define TIM_TIM5_TI1_COMP4 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM5 input 1 is connected to COMP4_OUT */
  379. #if defined(COMP5)
  380. #define TIM_TIM5_TI1_COMP5 TIM_TISEL_TI1SEL_3 /*!< TIM5 input 1 is connected to COMP5_OUT */
  381. #endif /* COMP5 */
  382. #if defined(COMP6)
  383. #define TIM_TIM5_TI1_COMP6 (TIM_TISEL_TI1SEL_3 | TIM_TISEL_TI1SEL_0) /*!< TIM5 input 1 is connected to COMP6_OUT */
  384. #endif /* COMP6 */
  385. #if defined(COMP7)
  386. #define TIM_TIM5_TI1_COMP7 (TIM_TISEL_TI1SEL_3 | TIM_TISEL_TI1SEL_1) /*!< TIM5 input 1 is connected to COMP7_OUT */
  387. #endif /* COMP7 */
  388. #define TIM_TIM5_TI2_GPIO 0x00000000U /*!< TIM5 input 2 is connected to GPIO */
  389. #define TIM_TIM5_TI2_COMP1 TIM_TISEL_TI2SEL_0 /*!< TIM5 input 2 is connected to COMP1_OUT */
  390. #define TIM_TIM5_TI2_COMP2 TIM_TISEL_TI2SEL_1 /*!< TIM5 input 2 is connected to COMP2_OUT */
  391. #define TIM_TIM5_TI2_COMP3 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM5 input 2 is connected to COMP3_OUT */
  392. #define TIM_TIM5_TI2_COMP4 TIM_TISEL_TI2SEL_2 /*!< TIM5 input 2 is connected to COMP4_OUT */
  393. #if defined(COMP5)
  394. #define TIM_TIM5_TI2_COMP5 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_0) /*!< TIM5 input 2 is connected to COMP5_OUT */
  395. #endif /* COMP5 */
  396. #if defined(COMP6)
  397. #define TIM_TIM5_TI2_COMP6 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1) /*!< TIM5 input 2 is connected to COMP6_OUT */
  398. #endif /* COMP6 */
  399. #if defined(COMP7)
  400. #define TIM_TIM5_TI2_COMP7 (TIM_TISEL_TI2SEL_2 | TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM5 input 2 is connected to COMP7_OUT */
  401. #endif /* COMP7 */
  402. #endif /* TIM5 */
  403. #define TIM_TIM8_TI1_GPIO 0x00000000U /*!< TIM8 input 1 is connected to GPIO */
  404. #define TIM_TIM8_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM8 input 1 is connected to COMP1_OUT */
  405. #define TIM_TIM8_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM8 input 1 is connected to COMP2_OUT */
  406. #define TIM_TIM8_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM8 input 1 is connected to COMP3_OUT */
  407. #define TIM_TIM8_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM8 input 1 is connected to COMP4_OUT */
  408. #define TIM_TIM15_TI1_GPIO 0x00000000U /*!< TIM15 input 1 is connected to GPIO */
  409. #define TIM_TIM15_TI1_LSE TIM_TISEL_TI1SEL_0 /*!< TIM15 input 1 is connected to LSE */
  410. #define TIM_TIM15_TI1_COMP1 TIM_TISEL_TI1SEL_1 /*!< TIM15 input 1 is connected to COMP1_OUT */
  411. #define TIM_TIM15_TI1_COMP2 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM15 input 1 is connected to COMP2_OUT */
  412. #if defined (COMP5)
  413. #define TIM_TIM15_TI1_COMP5 TIM_TISEL_TI1SEL_2 /*!< TIM15 input 1 is connected to COMP5_OUT */
  414. #endif /* COMP5 */
  415. #if defined(COMP7)
  416. #define TIM_TIM15_TI1_COMP7 (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM15 input 1 is connected to COMP7_OUT */
  417. #endif /* COMP7 */
  418. #define TIM_TIM15_TI2_GPIO 0x00000000U /*!< TIM15 input 2 is connected to GPIO */
  419. #define TIM_TIM15_TI2_COMP2 TIM_TISEL_TI2SEL_0 /*!< TIM15 input 2 is connected to COMP2_OUT */
  420. #define TIM_TIM15_TI2_COMP3 TIM_TISEL_TI2SEL_1 /*!< TIM15 input 2 is connected to COMP3_OUT */
  421. #if defined (COMP6)
  422. #define TIM_TIM15_TI2_COMP6 (TIM_TISEL_TI2SEL_1 | TIM_TISEL_TI2SEL_0) /*!< TIM15 input 2 is connected to COMP6_OUT */
  423. #endif /* COMP6 */
  424. #if defined(COMP7)
  425. #define TIM_TIM15_TI2_COMP7 TIM_TISEL_TI2SEL_2 /*!< TIM15 input 2 is connected to COMP7_OUT */
  426. #endif /* COMP7 */
  427. #define TIM_TIM16_TI1_GPIO 0x00000000U /*!< TIM16 input 1 is connected to GPIO */
  428. #if defined (COMP6)
  429. #define TIM_TIM16_TI1_COMP6 TIM_TISEL_TI1SEL_0 /*!< TIM16 input 1 is connected to COMP6_OUT */
  430. #endif /* COMP6 */
  431. #define TIM_TIM16_TI1_MCO TIM_TISEL_TI1SEL_1 /*!< TIM16 input 1 is connected to MCO */
  432. #define TIM_TIM16_TI1_HSE_32 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM16 input 1 is connected to HSE/32 */
  433. #define TIM_TIM16_TI1_RTC_WK TIM_TISEL_TI1SEL_2 /*!< TIM16 input 1 is connected to RTC_WAKEUP */
  434. #define TIM_TIM16_TI1_LSE (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM16 input 1 is connected to LSE */
  435. #define TIM_TIM16_TI1_LSI (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM16 input 1 is connected to LSI */
  436. #define TIM_TIM17_TI1_GPIO 0x00000000U /*!< TIM17 input 1 is connected to GPIO */
  437. #if defined (COMP5)
  438. #define TIM_TIM17_TI1_COMP5 TIM_TISEL_TI1SEL_0 /*!< TIM17 input 1 is connected to COMP5_OUT */
  439. #endif /* COMP5 */
  440. #define TIM_TIM17_TI1_MCO TIM_TISEL_TI1SEL_1 /*!< TIM17 input 1 is connected to MCO */
  441. #define TIM_TIM17_TI1_HSE_32 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM17 input 1 is connected to HSE/32 */
  442. #define TIM_TIM17_TI1_RTC_WK TIM_TISEL_TI1SEL_2 /*!< TIM17 input 1 is connected to RTC_WAKEUP */
  443. #define TIM_TIM17_TI1_LSE (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_0) /*!< TIM17 input 1 is connected to LSE */
  444. #define TIM_TIM17_TI1_LSI (TIM_TISEL_TI1SEL_2 | TIM_TISEL_TI1SEL_1) /*!< TIM17 input 1 is connected to LSI */
  445. #if defined (TIM20)
  446. #define TIM_TIM20_TI1_GPIO 0x00000000U /*!< TIM20 input 1 is connected to GPIO */
  447. #define TIM_TIM20_TI1_COMP1 TIM_TISEL_TI1SEL_0 /*!< TIM20 input 1 is connected to COMP1_OUT */
  448. #define TIM_TIM20_TI1_COMP2 TIM_TISEL_TI1SEL_1 /*!< TIM20 input 1 is connected to COMP2_OUT */
  449. #define TIM_TIM20_TI1_COMP3 (TIM_TISEL_TI1SEL_1 | TIM_TISEL_TI1SEL_0) /*!< TIM20 input 1 is connected to COMP3_OUT */
  450. #define TIM_TIM20_TI1_COMP4 TIM_TISEL_TI1SEL_2 /*!< TIM20 input 1 is connected to COMP4_OUT */
  451. #endif /* TIM20 */
  452. /**
  453. * @}
  454. */
  455. /** @defgroup TIMEx_SMS_Preload_Enable TIM Extended Bitfield SMS preload enabling
  456. * @{
  457. */
  458. #define TIM_SMS_PRELOAD_SOURCE_UPDATE 0x00000000U /*!< Prelaod of SMS bitfield is disabled */
  459. #define TIM_SMS_PRELOAD_SOURCE_INDEX TIM_SMCR_SMSPS /*!< Preload of SMS bitfield is enabled */
  460. /**
  461. * @}
  462. */
  463. /** @defgroup TIMEx_Encoder_Index_Position TIM Extended Encoder index position
  464. * @{
  465. */
  466. #define TIM_ENCODERINDEX_POSITION_00 0x00000000U /*!< Encoder index position is AB=00 */
  467. #define TIM_ENCODERINDEX_POSITION_01 TIM_ECR_IPOS_0 /*!< Encoder index position is AB=01 */
  468. #define TIM_ENCODERINDEX_POSITION_10 TIM_ECR_IPOS_1 /*!< Encoder index position is AB=10 */
  469. #define TIM_ENCODERINDEX_POSITION_11 (TIM_ECR_IPOS_1 | TIM_ECR_IPOS_0) /*!< Encoder index position is AB=11 */
  470. #define TIM_ENCODERINDEX_POSITION_0 0x00000000U /*!< In directional clock mode or clock plus direction mode, index resets the counter when clock is 0 */
  471. #define TIM_ENCODERINDEX_POSITION_1 TIM_ECR_IPOS_0 /*!< In directional clock mode or clock plus direction mode, index resets the counter when clock is 1 */
  472. /**
  473. * @}
  474. */
  475. /** @defgroup TIMEx_Encoder_Index_Direction TIM Extended Encoder index direction
  476. * @{
  477. */
  478. #define TIM_ENCODERINDEX_DIRECTION_UP_DOWN 0x00000000U /*!< Index resets the counter whatever the direction */
  479. #define TIM_ENCODERINDEX_DIRECTION_UP TIM_ECR_IDIR_0 /*!< Index resets the counter when up-counting only */
  480. #define TIM_ENCODERINDEX_DIRECTION_DOWN TIM_ECR_IDIR_1 /*!< Index resets the counter when down-counting only */
  481. /**
  482. * @}
  483. */
  484. /** @defgroup TIMEx_Encoder_Index_Polarity TIM Extended Encoder index polarity
  485. * @{
  486. */
  487. #define TIM_ENCODERINDEX_POLARITY_INVERTED TIM_ETRPOLARITY_INVERTED /*!< Polarity for ETRx pin */
  488. #define TIM_ENCODERINDEX_POLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED /*!< Polarity for ETRx pin */
  489. /**
  490. * @}
  491. */
  492. /** @defgroup TIMEx_Encoder_Index_Prescaler TIM Extended Encodder index prescaler
  493. * @{
  494. */
  495. #define TIM_ENCODERINDEX_PRESCALER_DIV1 TIM_ETRPRESCALER_DIV1 /*!< No prescaler is used */
  496. #define TIM_ENCODERINDEX_PRESCALER_DIV2 TIM_ETRPRESCALER_DIV2 /*!< Prescaler for External ETR pin: Capture performed once every 2 events. */
  497. #define TIM_ENCODERINDEX_PRESCALER_DIV4 TIM_ETRPRESCALER_DIV4 /*!< Prescaler for External ETR pin: Capture performed once every 4 events. */
  498. #define TIM_ENCODERINDEX_PRESCALER_DIV8 TIM_ETRPRESCALER_DIV8 /*!< Prescaler for External ETR pin: Capture performed once every 8 events. */
  499. /**
  500. * @}
  501. */
  502. /**
  503. * @}
  504. */
  505. /* End of exported constants -------------------------------------------------*/
  506. /* Exported macro ------------------------------------------------------------*/
  507. /** @defgroup TIMEx_Exported_Macros TIM Extended Exported Macros
  508. * @{
  509. */
  510. /**
  511. * @brief HELPER macro calculating the prescaler value to achieve the required counter clock frequency.
  512. * @note ex: @ref __HAL_TIM_CALC_PSC(80000000, 1000000);
  513. * @param __TIMCLK__ timer input clock frequency (in Hz)
  514. * @param __CNTCLK__ counter clock frequency (in Hz)
  515. * @retval Prescaler value (between Min_Data=0 and Max_Data=65535)
  516. */
  517. #define __HAL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \
  518. ((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((__TIMCLK__)/(__CNTCLK__) - 1U) : 0U
  519. /**
  520. * @brief HELPER macro calculating the auto-reload value to achieve the required output signal frequency.
  521. * @note ex: @ref __HAL_TIM_CALC_PERIOD(1000000, 0, 10000);
  522. * @param __TIMCLK__ timer input clock frequency (in Hz)
  523. * @param __PSC__ prescaler
  524. * @param __FREQ__ output signal frequency (in Hz)
  525. * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535)
  526. */
  527. #define __HAL_TIM_CALC_PERIOD(__TIMCLK__, __PSC__, __FREQ__) \
  528. (((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? ((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U)) - 1U) : 0U
  529. /**
  530. * @brief HELPER macro calculating the auto-reload value, with dithering feature enabled, to achieve the required
  531. * output signal frequency.
  532. * @note ex: @ref __HAL_TIM_CALC_PERIOD_DITHER(1000000, 0, 10000);
  533. * @note This macro should be used only if dithering is already enabled
  534. * @param __TIMCLK__ timer input clock frequency (in Hz)
  535. * @param __PSC__ prescaler
  536. * @param __FREQ__ output signal frequency (in Hz)
  537. * @retval Auto-reload value (between Min_Data=0 and Max_Data=65519)
  538. */
  539. #define __HAL_TIM_CALC_PERIOD_DITHER(__TIMCLK__, __PSC__, __FREQ__) \
  540. (((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? \
  541. (uint32_t)(((uint64_t)(__TIMCLK__)*16/((__FREQ__) * ((__PSC__) + 1U)) - 16U)) : 0U
  542. /**
  543. * @brief HELPER macro calculating the compare value required to achieve the required timer output compare
  544. * active/inactive delay.
  545. * @note ex: @ref __HAL_TIM_CALC_PULSE(1000000, 0, 10);
  546. * @param __TIMCLK__ timer input clock frequency (in Hz)
  547. * @param __PSC__ prescaler
  548. * @param __DELAY__ timer output compare active/inactive delay (in us)
  549. * @retval Compare value (between Min_Data=0 and Max_Data=65535)
  550. */
  551. #define __HAL_TIM_CALC_PULSE(__TIMCLK__, __PSC__, __DELAY__) \
  552. ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__)) \
  553. / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U))))
  554. /**
  555. * @brief HELPER macro calculating the compare value, with dithering feature enabled, to achieve the required timer
  556. * output compare active/inactive delay.
  557. * @note ex: @ref __HAL_TIM_CALC_PULSE_DITHER(1000000, 0, 10);
  558. * @note This macro should be used only if dithering is already enabled
  559. * @param __TIMCLK__ timer input clock frequency (in Hz)
  560. * @param __PSC__ prescaler
  561. * @param __DELAY__ timer output compare active/inactive delay (in us)
  562. * @retval Compare value (between Min_Data=0 and Max_Data=65519)
  563. */
  564. #define __HAL_TIM_CALC_PULSE_DITHER(__TIMCLK__, __PSC__, __DELAY__) \
  565. ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__) * 16U) \
  566. / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U))))
  567. /**
  568. * @brief HELPER macro calculating the auto-reload value to achieve the required pulse duration
  569. * (when the timer operates in one pulse mode).
  570. * @note ex: @ref __HAL_TIM_CALC_PERIOD_BY_DELAY(1000000, 0, 10, 20);
  571. * @param __TIMCLK__ timer input clock frequency (in Hz)
  572. * @param __PSC__ prescaler
  573. * @param __DELAY__ timer output compare active/inactive delay (in us)
  574. * @param __PULSE__ pulse duration (in us)
  575. * @retval Auto-reload value (between Min_Data=0 and Max_Data=65535)
  576. */
  577. #define __HAL_TIM_CALC_PERIOD_BY_DELAY(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \
  578. ((uint32_t)(__HAL_TIM_CALC_PULSE((__TIMCLK__), (__PSC__), (__PULSE__)) \
  579. + __HAL_TIM_CALC_PULSE((__TIMCLK__), (__PSC__), (__DELAY__))))
  580. /**
  581. * @brief HELPER macro calculating the auto-reload value, with dithering feature enabled, to achieve the required
  582. * pulse duration (when the timer operates in one pulse mode).
  583. * @note ex: @ref __HAL_TIM_CALC_PERIOD_DITHER_BY_DELAY(1000000, 0, 10, 20);
  584. * @note This macro should be used only if dithering is already enabled
  585. * @param __TIMCLK__ timer input clock frequency (in Hz)
  586. * @param __PSC__ prescaler
  587. * @param __DELAY__ timer output compare active/inactive delay (in us)
  588. * @param __PULSE__ pulse duration (in us)
  589. * @retval Auto-reload value (between Min_Data=0 and Max_Data=65519)
  590. */
  591. #define __HAL_TIM_CALC_PERIOD_DITHER_BY_DELAY(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \
  592. ((uint32_t)(__HAL_TIM_CALC_PULSE_DITHER((__TIMCLK__), (__PSC__), (__PULSE__)) \
  593. + __HAL_TIM_CALC_PULSE_DITHER((__TIMCLK__), (__PSC__), (__DELAY__))))
  594. /**
  595. * @}
  596. */
  597. /* End of exported macro -----------------------------------------------------*/
  598. /* Private macro -------------------------------------------------------------*/
  599. /** @defgroup TIMEx_Private_Macros TIM Extended Private Macros
  600. * @{
  601. */
  602. #define IS_TIM_REMAP(__REMAP__) ((((__REMAP__) & 0xFFFC3FFFU) == 0x00000000U))
  603. #define IS_TIM_BREAKINPUT(__BREAKINPUT__) (((__BREAKINPUT__) == TIM_BREAKINPUT_BRK) || \
  604. ((__BREAKINPUT__) == TIM_BREAKINPUT_BRK2))
  605. #if defined (COMP5) && defined (COMP6) && defined (COMP7)
  606. #define IS_TIM_BREAKINPUTSOURCE(__SOURCE__) (((__SOURCE__) == TIM_BREAKINPUTSOURCE_BKIN) || \
  607. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP1) || \
  608. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP2) || \
  609. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP3) || \
  610. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP4) || \
  611. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP5) || \
  612. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP6) || \
  613. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP7))
  614. #else
  615. #define IS_TIM_BREAKINPUTSOURCE(__SOURCE__) (((__SOURCE__) == TIM_BREAKINPUTSOURCE_BKIN) || \
  616. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP1) || \
  617. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP2) || \
  618. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP3) || \
  619. ((__SOURCE__) == TIM_BREAKINPUTSOURCE_COMP4))
  620. #endif /* COMP5 && COMP6 && COMP7 */
  621. #define IS_TIM_BREAKINPUTSOURCE_STATE(__STATE__) (((__STATE__) == TIM_BREAKINPUTSOURCE_DISABLE) || \
  622. ((__STATE__) == TIM_BREAKINPUTSOURCE_ENABLE))
  623. #define IS_TIM_BREAKINPUTSOURCE_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKINPUTSOURCE_POLARITY_LOW) || \
  624. ((__POLARITY__) == TIM_BREAKINPUTSOURCE_POLARITY_HIGH))
  625. #define IS_TIM_TISEL(__TISEL__) ((((__TISEL__) & 0xF0F0F0F0U) == 0x00000000U))
  626. #define IS_TIM_TISEL_TIX_INSTANCE(INSTANCE, CHANNEL) \
  627. (IS_TIM_CCX_INSTANCE(INSTANCE, CHANNEL) && ((CHANNEL) < TIM_CHANNEL_5))
  628. #if defined(TIM5) && defined(TIM20)
  629. #define IS_TIM_CLOCKSOURCE_INSTANCE(INSTANCE, __CLOCK__) \
  630. ((((INSTANCE) == TIM1) && \
  631. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  632. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  633. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  634. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  635. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  636. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  637. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  638. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  639. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  640. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  641. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  642. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  643. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  644. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  645. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \
  646. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \
  647. || \
  648. (((INSTANCE) == TIM2) && \
  649. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  650. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  651. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  652. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  653. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  654. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  655. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  656. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  657. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  658. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  659. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  660. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  661. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  662. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  663. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \
  664. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10) || \
  665. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11))) \
  666. || \
  667. (((INSTANCE) == TIM3) && \
  668. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  669. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  670. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  671. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  672. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  673. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  674. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  675. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  676. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  677. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  678. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  679. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  680. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  681. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  682. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \
  683. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \
  684. || \
  685. (((INSTANCE) == TIM4) && \
  686. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  687. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  688. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  689. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  690. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  691. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  692. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  693. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  694. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  695. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  696. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  697. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  698. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  699. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  700. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \
  701. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \
  702. || \
  703. (((INSTANCE) == TIM5) && \
  704. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  705. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  706. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  707. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  708. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  709. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  710. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  711. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  712. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  713. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  714. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  715. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  716. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  717. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  718. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \
  719. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \
  720. || \
  721. (((INSTANCE) == TIM8) && \
  722. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  723. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  724. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  725. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  726. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  727. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  728. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  729. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  730. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  731. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  732. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  733. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  734. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  735. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  736. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \
  737. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \
  738. || \
  739. (((INSTANCE) == TIM15) && \
  740. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  741. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  742. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  743. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  744. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  745. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  746. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  747. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  748. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  749. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  750. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  751. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  752. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \
  753. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))) \
  754. || \
  755. (((INSTANCE) == TIM20) && \
  756. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  757. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  758. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  759. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  760. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  761. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  762. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  763. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  764. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  765. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  766. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  767. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  768. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  769. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  770. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  771. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR10))))
  772. #define IS_TIM_TRIGGER_INSTANCE(INSTANCE, __SELECTION__) \
  773. ((((INSTANCE) == TIM1) && \
  774. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  775. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  776. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  777. ((__SELECTION__) == TIM_TS_ETRF) || \
  778. ((__SELECTION__) == TIM_TS_ITR1) || \
  779. ((__SELECTION__) == TIM_TS_ITR2) || \
  780. ((__SELECTION__) == TIM_TS_ITR3) || \
  781. ((__SELECTION__) == TIM_TS_ITR4) || \
  782. ((__SELECTION__) == TIM_TS_ITR5) || \
  783. ((__SELECTION__) == TIM_TS_ITR6) || \
  784. ((__SELECTION__) == TIM_TS_ITR7) || \
  785. ((__SELECTION__) == TIM_TS_ITR8) || \
  786. ((__SELECTION__) == TIM_TS_ITR9) || \
  787. ((__SELECTION__) == TIM_TS_ITR10))) \
  788. || \
  789. (((INSTANCE) == TIM2) && \
  790. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  791. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  792. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  793. ((__SELECTION__) == TIM_TS_ETRF) || \
  794. ((__SELECTION__) == TIM_TS_ITR0) || \
  795. ((__SELECTION__) == TIM_TS_ITR2) || \
  796. ((__SELECTION__) == TIM_TS_ITR3) || \
  797. ((__SELECTION__) == TIM_TS_ITR4) || \
  798. ((__SELECTION__) == TIM_TS_ITR5) || \
  799. ((__SELECTION__) == TIM_TS_ITR6) || \
  800. ((__SELECTION__) == TIM_TS_ITR7) || \
  801. ((__SELECTION__) == TIM_TS_ITR8) || \
  802. ((__SELECTION__) == TIM_TS_ITR9) || \
  803. ((__SELECTION__) == TIM_TS_ITR10) || \
  804. ((__SELECTION__) == TIM_TS_ITR11))) \
  805. || \
  806. (((INSTANCE) == TIM3) && \
  807. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  808. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  809. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  810. ((__SELECTION__) == TIM_TS_ETRF) || \
  811. ((__SELECTION__) == TIM_TS_ITR0) || \
  812. ((__SELECTION__) == TIM_TS_ITR1) || \
  813. ((__SELECTION__) == TIM_TS_ITR3) || \
  814. ((__SELECTION__) == TIM_TS_ITR4) || \
  815. ((__SELECTION__) == TIM_TS_ITR5) || \
  816. ((__SELECTION__) == TIM_TS_ITR6) || \
  817. ((__SELECTION__) == TIM_TS_ITR7) || \
  818. ((__SELECTION__) == TIM_TS_ITR8) || \
  819. ((__SELECTION__) == TIM_TS_ITR9) || \
  820. ((__SELECTION__) == TIM_TS_ITR10))) \
  821. || \
  822. (((INSTANCE) == TIM4) && \
  823. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  824. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  825. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  826. ((__SELECTION__) == TIM_TS_ETRF) || \
  827. ((__SELECTION__) == TIM_TS_ITR0) || \
  828. ((__SELECTION__) == TIM_TS_ITR1) || \
  829. ((__SELECTION__) == TIM_TS_ITR2) || \
  830. ((__SELECTION__) == TIM_TS_ITR4) || \
  831. ((__SELECTION__) == TIM_TS_ITR5) || \
  832. ((__SELECTION__) == TIM_TS_ITR6) || \
  833. ((__SELECTION__) == TIM_TS_ITR7) || \
  834. ((__SELECTION__) == TIM_TS_ITR8) || \
  835. ((__SELECTION__) == TIM_TS_ITR9) || \
  836. ((__SELECTION__) == TIM_TS_ITR10))) \
  837. || \
  838. (((INSTANCE) == TIM5) && \
  839. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  840. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  841. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  842. ((__SELECTION__) == TIM_TS_ETRF) || \
  843. ((__SELECTION__) == TIM_TS_ITR0) || \
  844. ((__SELECTION__) == TIM_TS_ITR1) || \
  845. ((__SELECTION__) == TIM_TS_ITR2) || \
  846. ((__SELECTION__) == TIM_TS_ITR3) || \
  847. ((__SELECTION__) == TIM_TS_ITR5) || \
  848. ((__SELECTION__) == TIM_TS_ITR6) || \
  849. ((__SELECTION__) == TIM_TS_ITR7) || \
  850. ((__SELECTION__) == TIM_TS_ITR8) || \
  851. ((__SELECTION__) == TIM_TS_ITR9) || \
  852. ((__SELECTION__) == TIM_TS_ITR10))) \
  853. || \
  854. (((INSTANCE) == TIM8) && \
  855. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  856. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  857. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  858. ((__SELECTION__) == TIM_TS_ETRF) || \
  859. ((__SELECTION__) == TIM_TS_ITR0) || \
  860. ((__SELECTION__) == TIM_TS_ITR1) || \
  861. ((__SELECTION__) == TIM_TS_ITR2) || \
  862. ((__SELECTION__) == TIM_TS_ITR3) || \
  863. ((__SELECTION__) == TIM_TS_ITR4) || \
  864. ((__SELECTION__) == TIM_TS_ITR6) || \
  865. ((__SELECTION__) == TIM_TS_ITR7) || \
  866. ((__SELECTION__) == TIM_TS_ITR8) || \
  867. ((__SELECTION__) == TIM_TS_ITR9) || \
  868. ((__SELECTION__) == TIM_TS_ITR10))) \
  869. || \
  870. (((INSTANCE) == TIM15) && \
  871. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  872. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  873. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  874. ((__SELECTION__) == TIM_TS_ITR0) || \
  875. ((__SELECTION__) == TIM_TS_ITR1) || \
  876. ((__SELECTION__) == TIM_TS_ITR2) || \
  877. ((__SELECTION__) == TIM_TS_ITR3) || \
  878. ((__SELECTION__) == TIM_TS_ITR4) || \
  879. ((__SELECTION__) == TIM_TS_ITR5) || \
  880. ((__SELECTION__) == TIM_TS_ITR7) || \
  881. ((__SELECTION__) == TIM_TS_ITR8) || \
  882. ((__SELECTION__) == TIM_TS_ITR9) || \
  883. ((__SELECTION__) == TIM_TS_ITR10))) \
  884. || \
  885. (((INSTANCE) == TIM20) && \
  886. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  887. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  888. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  889. ((__SELECTION__) == TIM_TS_ETRF) || \
  890. ((__SELECTION__) == TIM_TS_ITR0) || \
  891. ((__SELECTION__) == TIM_TS_ITR1) || \
  892. ((__SELECTION__) == TIM_TS_ITR2) || \
  893. ((__SELECTION__) == TIM_TS_ITR3) || \
  894. ((__SELECTION__) == TIM_TS_ITR4) || \
  895. ((__SELECTION__) == TIM_TS_ITR5) || \
  896. ((__SELECTION__) == TIM_TS_ITR6) || \
  897. ((__SELECTION__) == TIM_TS_ITR7) || \
  898. ((__SELECTION__) == TIM_TS_ITR8) || \
  899. ((__SELECTION__) == TIM_TS_ITR10))))
  900. #define IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(INSTANCE, __SELECTION__) \
  901. ((((INSTANCE) == TIM1) && \
  902. (((__SELECTION__) == TIM_TS_ITR1) || \
  903. ((__SELECTION__) == TIM_TS_ITR2) || \
  904. ((__SELECTION__) == TIM_TS_ITR3) || \
  905. ((__SELECTION__) == TIM_TS_ITR4) || \
  906. ((__SELECTION__) == TIM_TS_ITR5) || \
  907. ((__SELECTION__) == TIM_TS_ITR6) || \
  908. ((__SELECTION__) == TIM_TS_ITR7) || \
  909. ((__SELECTION__) == TIM_TS_ITR8) || \
  910. ((__SELECTION__) == TIM_TS_ITR9) || \
  911. ((__SELECTION__) == TIM_TS_ITR10)|| \
  912. ((__SELECTION__) == TIM_TS_NONE))) \
  913. || \
  914. (((INSTANCE) == TIM2) && \
  915. (((__SELECTION__) == TIM_TS_ITR0) || \
  916. ((__SELECTION__) == TIM_TS_ITR2) || \
  917. ((__SELECTION__) == TIM_TS_ITR3) || \
  918. ((__SELECTION__) == TIM_TS_ITR4) || \
  919. ((__SELECTION__) == TIM_TS_ITR5) || \
  920. ((__SELECTION__) == TIM_TS_ITR6) || \
  921. ((__SELECTION__) == TIM_TS_ITR7) || \
  922. ((__SELECTION__) == TIM_TS_ITR8) || \
  923. ((__SELECTION__) == TIM_TS_ITR9) || \
  924. ((__SELECTION__) == TIM_TS_ITR10)|| \
  925. ((__SELECTION__) == TIM_TS_ITR11)|| \
  926. ((__SELECTION__) == TIM_TS_NONE))) \
  927. || \
  928. (((INSTANCE) == TIM3) && \
  929. (((__SELECTION__) == TIM_TS_ITR0) || \
  930. ((__SELECTION__) == TIM_TS_ITR1) || \
  931. ((__SELECTION__) == TIM_TS_ITR3) || \
  932. ((__SELECTION__) == TIM_TS_ITR4) || \
  933. ((__SELECTION__) == TIM_TS_ITR5) || \
  934. ((__SELECTION__) == TIM_TS_ITR6) || \
  935. ((__SELECTION__) == TIM_TS_ITR7) || \
  936. ((__SELECTION__) == TIM_TS_ITR8) || \
  937. ((__SELECTION__) == TIM_TS_ITR9) || \
  938. ((__SELECTION__) == TIM_TS_ITR10)|| \
  939. ((__SELECTION__) == TIM_TS_NONE))) \
  940. || \
  941. (((INSTANCE) == TIM4) && \
  942. (((__SELECTION__) == TIM_TS_ITR0) || \
  943. ((__SELECTION__) == TIM_TS_ITR1) || \
  944. ((__SELECTION__) == TIM_TS_ITR2) || \
  945. ((__SELECTION__) == TIM_TS_ITR4) || \
  946. ((__SELECTION__) == TIM_TS_ITR5) || \
  947. ((__SELECTION__) == TIM_TS_ITR6) || \
  948. ((__SELECTION__) == TIM_TS_ITR7) || \
  949. ((__SELECTION__) == TIM_TS_ITR8) || \
  950. ((__SELECTION__) == TIM_TS_ITR9) || \
  951. ((__SELECTION__) == TIM_TS_ITR10)|| \
  952. ((__SELECTION__) == TIM_TS_NONE))) \
  953. || \
  954. (((INSTANCE) == TIM5) && \
  955. (((__SELECTION__) == TIM_TS_ITR0) || \
  956. ((__SELECTION__) == TIM_TS_ITR1) || \
  957. ((__SELECTION__) == TIM_TS_ITR2) || \
  958. ((__SELECTION__) == TIM_TS_ITR3) || \
  959. ((__SELECTION__) == TIM_TS_ITR5) || \
  960. ((__SELECTION__) == TIM_TS_ITR6) || \
  961. ((__SELECTION__) == TIM_TS_ITR7) || \
  962. ((__SELECTION__) == TIM_TS_ITR8) || \
  963. ((__SELECTION__) == TIM_TS_ITR9) || \
  964. ((__SELECTION__) == TIM_TS_ITR10)|| \
  965. ((__SELECTION__) == TIM_TS_NONE))) \
  966. || \
  967. (((INSTANCE) == TIM8) && \
  968. (((__SELECTION__) == TIM_TS_ITR0) || \
  969. ((__SELECTION__) == TIM_TS_ITR1) || \
  970. ((__SELECTION__) == TIM_TS_ITR2) || \
  971. ((__SELECTION__) == TIM_TS_ITR3) || \
  972. ((__SELECTION__) == TIM_TS_ITR4) || \
  973. ((__SELECTION__) == TIM_TS_ITR6) || \
  974. ((__SELECTION__) == TIM_TS_ITR7) || \
  975. ((__SELECTION__) == TIM_TS_ITR8) || \
  976. ((__SELECTION__) == TIM_TS_ITR9) || \
  977. ((__SELECTION__) == TIM_TS_ITR10)|| \
  978. ((__SELECTION__) == TIM_TS_NONE))) \
  979. || \
  980. (((INSTANCE) == TIM15) && \
  981. (((__SELECTION__) == TIM_TS_ITR0) || \
  982. ((__SELECTION__) == TIM_TS_ITR1) || \
  983. ((__SELECTION__) == TIM_TS_ITR2) || \
  984. ((__SELECTION__) == TIM_TS_ITR3) || \
  985. ((__SELECTION__) == TIM_TS_ITR4) || \
  986. ((__SELECTION__) == TIM_TS_ITR5) || \
  987. ((__SELECTION__) == TIM_TS_ITR7) || \
  988. ((__SELECTION__) == TIM_TS_ITR8) || \
  989. ((__SELECTION__) == TIM_TS_ITR9) || \
  990. ((__SELECTION__) == TIM_TS_ITR10)|| \
  991. ((__SELECTION__) == TIM_TS_NONE))) \
  992. || \
  993. (((INSTANCE) == TIM20) && \
  994. (((__SELECTION__) == TIM_TS_ITR0) || \
  995. ((__SELECTION__) == TIM_TS_ITR1) || \
  996. ((__SELECTION__) == TIM_TS_ITR2) || \
  997. ((__SELECTION__) == TIM_TS_ITR3) || \
  998. ((__SELECTION__) == TIM_TS_ITR4) || \
  999. ((__SELECTION__) == TIM_TS_ITR5) || \
  1000. ((__SELECTION__) == TIM_TS_ITR6) || \
  1001. ((__SELECTION__) == TIM_TS_ITR7) || \
  1002. ((__SELECTION__) == TIM_TS_ITR8) || \
  1003. ((__SELECTION__) == TIM_TS_ITR10)|| \
  1004. ((__SELECTION__) == TIM_TS_NONE))))
  1005. #elif defined(TIM5)
  1006. #define IS_TIM_CLOCKSOURCE_INSTANCE(INSTANCE, __CLOCK__) \
  1007. ((((INSTANCE) == TIM1) && \
  1008. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1009. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1010. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1011. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1012. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1013. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1014. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1015. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1016. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1017. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  1018. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1019. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1020. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1021. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \
  1022. || \
  1023. (((INSTANCE) == TIM2) && \
  1024. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1025. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1026. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1027. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1028. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1029. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1030. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1031. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1032. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1033. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  1034. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1035. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1036. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1037. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  1038. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11))) \
  1039. || \
  1040. (((INSTANCE) == TIM3) && \
  1041. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1042. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1043. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1044. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1045. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1046. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1047. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1048. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1049. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1050. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  1051. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1052. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1053. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1054. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \
  1055. || \
  1056. (((INSTANCE) == TIM4) && \
  1057. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1058. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1059. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1060. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1061. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1062. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1063. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1064. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1065. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1066. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  1067. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1068. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1069. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1070. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \
  1071. || \
  1072. (((INSTANCE) == TIM5) && \
  1073. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1074. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1075. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1076. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1077. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1078. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1079. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1080. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1081. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1082. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1083. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1084. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1085. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1086. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \
  1087. || \
  1088. (((INSTANCE) == TIM8) && \
  1089. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1090. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1091. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1092. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1093. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1094. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1095. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1096. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1097. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1098. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1099. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  1100. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1101. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1102. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \
  1103. || \
  1104. (((INSTANCE) == TIM15) && \
  1105. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1106. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1107. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1108. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1109. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1110. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1111. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1112. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1113. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR4) || \
  1114. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1115. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1116. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))))
  1117. #define IS_TIM_TRIGGER_INSTANCE(INSTANCE, __SELECTION__) \
  1118. ((((INSTANCE) == TIM1) && \
  1119. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1120. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1121. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1122. ((__SELECTION__) == TIM_TS_ETRF) || \
  1123. ((__SELECTION__) == TIM_TS_ITR1) || \
  1124. ((__SELECTION__) == TIM_TS_ITR2) || \
  1125. ((__SELECTION__) == TIM_TS_ITR3) || \
  1126. ((__SELECTION__) == TIM_TS_ITR4) || \
  1127. ((__SELECTION__) == TIM_TS_ITR5) || \
  1128. ((__SELECTION__) == TIM_TS_ITR6) || \
  1129. ((__SELECTION__) == TIM_TS_ITR7) || \
  1130. ((__SELECTION__) == TIM_TS_ITR8))) \
  1131. || \
  1132. (((INSTANCE) == TIM2) && \
  1133. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1134. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1135. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1136. ((__SELECTION__) == TIM_TS_ETRF) || \
  1137. ((__SELECTION__) == TIM_TS_ITR0) || \
  1138. ((__SELECTION__) == TIM_TS_ITR2) || \
  1139. ((__SELECTION__) == TIM_TS_ITR3) || \
  1140. ((__SELECTION__) == TIM_TS_ITR4) || \
  1141. ((__SELECTION__) == TIM_TS_ITR5) || \
  1142. ((__SELECTION__) == TIM_TS_ITR6) || \
  1143. ((__SELECTION__) == TIM_TS_ITR7) || \
  1144. ((__SELECTION__) == TIM_TS_ITR8) || \
  1145. ((__SELECTION__) == TIM_TS_ITR11))) \
  1146. || \
  1147. (((INSTANCE) == TIM3) && \
  1148. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1149. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1150. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1151. ((__SELECTION__) == TIM_TS_ETRF) || \
  1152. ((__SELECTION__) == TIM_TS_ITR0) || \
  1153. ((__SELECTION__) == TIM_TS_ITR1) || \
  1154. ((__SELECTION__) == TIM_TS_ITR3) || \
  1155. ((__SELECTION__) == TIM_TS_ITR4) || \
  1156. ((__SELECTION__) == TIM_TS_ITR5) || \
  1157. ((__SELECTION__) == TIM_TS_ITR6) || \
  1158. ((__SELECTION__) == TIM_TS_ITR7) || \
  1159. ((__SELECTION__) == TIM_TS_ITR8))) \
  1160. || \
  1161. (((INSTANCE) == TIM4) && \
  1162. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1163. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1164. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1165. ((__SELECTION__) == TIM_TS_ETRF) || \
  1166. ((__SELECTION__) == TIM_TS_ITR0) || \
  1167. ((__SELECTION__) == TIM_TS_ITR1) || \
  1168. ((__SELECTION__) == TIM_TS_ITR2) || \
  1169. ((__SELECTION__) == TIM_TS_ITR4) || \
  1170. ((__SELECTION__) == TIM_TS_ITR5) || \
  1171. ((__SELECTION__) == TIM_TS_ITR6) || \
  1172. ((__SELECTION__) == TIM_TS_ITR7) || \
  1173. ((__SELECTION__) == TIM_TS_ITR8))) \
  1174. || \
  1175. (((INSTANCE) == TIM5) && \
  1176. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1177. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1178. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1179. ((__SELECTION__) == TIM_TS_ETRF) || \
  1180. ((__SELECTION__) == TIM_TS_ITR0) || \
  1181. ((__SELECTION__) == TIM_TS_ITR1) || \
  1182. ((__SELECTION__) == TIM_TS_ITR2) || \
  1183. ((__SELECTION__) == TIM_TS_ITR3) || \
  1184. ((__SELECTION__) == TIM_TS_ITR5) || \
  1185. ((__SELECTION__) == TIM_TS_ITR6) || \
  1186. ((__SELECTION__) == TIM_TS_ITR7) || \
  1187. ((__SELECTION__) == TIM_TS_ITR8))) \
  1188. || \
  1189. (((INSTANCE) == TIM8) && \
  1190. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1191. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1192. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1193. ((__SELECTION__) == TIM_TS_ETRF) || \
  1194. ((__SELECTION__) == TIM_TS_ITR0) || \
  1195. ((__SELECTION__) == TIM_TS_ITR1) || \
  1196. ((__SELECTION__) == TIM_TS_ITR2) || \
  1197. ((__SELECTION__) == TIM_TS_ITR3) || \
  1198. ((__SELECTION__) == TIM_TS_ITR4) || \
  1199. ((__SELECTION__) == TIM_TS_ITR6) || \
  1200. ((__SELECTION__) == TIM_TS_ITR7) || \
  1201. ((__SELECTION__) == TIM_TS_ITR8))) \
  1202. || \
  1203. (((INSTANCE) == TIM15) && \
  1204. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1205. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1206. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1207. ((__SELECTION__) == TIM_TS_ITR0) || \
  1208. ((__SELECTION__) == TIM_TS_ITR1) || \
  1209. ((__SELECTION__) == TIM_TS_ITR2) || \
  1210. ((__SELECTION__) == TIM_TS_ITR3) || \
  1211. ((__SELECTION__) == TIM_TS_ITR4) || \
  1212. ((__SELECTION__) == TIM_TS_ITR5) || \
  1213. ((__SELECTION__) == TIM_TS_ITR7) || \
  1214. ((__SELECTION__) == TIM_TS_ITR8))))
  1215. #define IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(INSTANCE, __SELECTION__) \
  1216. ((((INSTANCE) == TIM1) && \
  1217. (((__SELECTION__) == TIM_TS_ITR1) || \
  1218. ((__SELECTION__) == TIM_TS_ITR2) || \
  1219. ((__SELECTION__) == TIM_TS_ITR3) || \
  1220. ((__SELECTION__) == TIM_TS_ITR4) || \
  1221. ((__SELECTION__) == TIM_TS_ITR5) || \
  1222. ((__SELECTION__) == TIM_TS_ITR6) || \
  1223. ((__SELECTION__) == TIM_TS_ITR7) || \
  1224. ((__SELECTION__) == TIM_TS_ITR8) || \
  1225. ((__SELECTION__) == TIM_TS_NONE))) \
  1226. || \
  1227. (((INSTANCE) == TIM2) && \
  1228. (((__SELECTION__) == TIM_TS_ITR0) || \
  1229. ((__SELECTION__) == TIM_TS_ITR2) || \
  1230. ((__SELECTION__) == TIM_TS_ITR3) || \
  1231. ((__SELECTION__) == TIM_TS_ITR4) || \
  1232. ((__SELECTION__) == TIM_TS_ITR5) || \
  1233. ((__SELECTION__) == TIM_TS_ITR6) || \
  1234. ((__SELECTION__) == TIM_TS_ITR7) || \
  1235. ((__SELECTION__) == TIM_TS_ITR8) || \
  1236. ((__SELECTION__) == TIM_TS_ITR11)|| \
  1237. ((__SELECTION__) == TIM_TS_NONE))) \
  1238. || \
  1239. (((INSTANCE) == TIM3) && \
  1240. (((__SELECTION__) == TIM_TS_ITR0) || \
  1241. ((__SELECTION__) == TIM_TS_ITR1) || \
  1242. ((__SELECTION__) == TIM_TS_ITR3) || \
  1243. ((__SELECTION__) == TIM_TS_ITR4) || \
  1244. ((__SELECTION__) == TIM_TS_ITR5) || \
  1245. ((__SELECTION__) == TIM_TS_ITR6) || \
  1246. ((__SELECTION__) == TIM_TS_ITR7) || \
  1247. ((__SELECTION__) == TIM_TS_ITR8) || \
  1248. ((__SELECTION__) == TIM_TS_NONE))) \
  1249. || \
  1250. (((INSTANCE) == TIM4) && \
  1251. (((__SELECTION__) == TIM_TS_ITR0) || \
  1252. ((__SELECTION__) == TIM_TS_ITR1) || \
  1253. ((__SELECTION__) == TIM_TS_ITR2) || \
  1254. ((__SELECTION__) == TIM_TS_ITR4) || \
  1255. ((__SELECTION__) == TIM_TS_ITR5) || \
  1256. ((__SELECTION__) == TIM_TS_ITR6) || \
  1257. ((__SELECTION__) == TIM_TS_ITR7) || \
  1258. ((__SELECTION__) == TIM_TS_ITR8) || \
  1259. ((__SELECTION__) == TIM_TS_NONE))) \
  1260. || \
  1261. (((INSTANCE) == TIM5) && \
  1262. (((__SELECTION__) == TIM_TS_ITR0) || \
  1263. ((__SELECTION__) == TIM_TS_ITR1) || \
  1264. ((__SELECTION__) == TIM_TS_ITR2) || \
  1265. ((__SELECTION__) == TIM_TS_ITR3) || \
  1266. ((__SELECTION__) == TIM_TS_ITR5) || \
  1267. ((__SELECTION__) == TIM_TS_ITR6) || \
  1268. ((__SELECTION__) == TIM_TS_ITR7) || \
  1269. ((__SELECTION__) == TIM_TS_ITR8) || \
  1270. ((__SELECTION__) == TIM_TS_NONE))) \
  1271. || \
  1272. (((INSTANCE) == TIM8) && \
  1273. (((__SELECTION__) == TIM_TS_ITR0) || \
  1274. ((__SELECTION__) == TIM_TS_ITR1) || \
  1275. ((__SELECTION__) == TIM_TS_ITR2) || \
  1276. ((__SELECTION__) == TIM_TS_ITR3) || \
  1277. ((__SELECTION__) == TIM_TS_ITR4) || \
  1278. ((__SELECTION__) == TIM_TS_ITR6) || \
  1279. ((__SELECTION__) == TIM_TS_ITR7) || \
  1280. ((__SELECTION__) == TIM_TS_ITR8) || \
  1281. ((__SELECTION__) == TIM_TS_NONE))) \
  1282. || \
  1283. (((INSTANCE) == TIM15) && \
  1284. (((__SELECTION__) == TIM_TS_ITR0) || \
  1285. ((__SELECTION__) == TIM_TS_ITR1) || \
  1286. ((__SELECTION__) == TIM_TS_ITR2) || \
  1287. ((__SELECTION__) == TIM_TS_ITR3) || \
  1288. ((__SELECTION__) == TIM_TS_ITR4) || \
  1289. ((__SELECTION__) == TIM_TS_ITR5) || \
  1290. ((__SELECTION__) == TIM_TS_ITR7) || \
  1291. ((__SELECTION__) == TIM_TS_ITR8) || \
  1292. ((__SELECTION__) == TIM_TS_NONE))))
  1293. #elif defined(TIM20)
  1294. #define IS_TIM_CLOCKSOURCE_INSTANCE(INSTANCE, __CLOCK__) \
  1295. ((((INSTANCE) == TIM1) && \
  1296. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1297. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1298. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1299. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1300. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1301. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1302. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1303. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1304. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1305. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1306. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1307. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1308. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  1309. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \
  1310. || \
  1311. (((INSTANCE) == TIM2) && \
  1312. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1313. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1314. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1315. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1316. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1317. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1318. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1319. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1320. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1321. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1322. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1323. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1324. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  1325. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9) || \
  1326. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11))) \
  1327. || \
  1328. (((INSTANCE) == TIM3) && \
  1329. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1330. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1331. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1332. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1333. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1334. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1335. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1336. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1337. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1338. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1339. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1340. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1341. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  1342. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \
  1343. || \
  1344. (((INSTANCE) == TIM4) && \
  1345. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1346. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1347. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1348. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1349. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1350. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1351. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1352. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1353. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1354. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1355. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1356. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1357. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  1358. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \
  1359. || \
  1360. (((INSTANCE) == TIM8) && \
  1361. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1362. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1363. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1364. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1365. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1366. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1367. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1368. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1369. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1370. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1371. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1372. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1373. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  1374. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \
  1375. || \
  1376. (((INSTANCE) == TIM15) && \
  1377. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1378. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1379. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1380. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1381. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1382. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1383. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1384. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1385. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1386. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1387. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  1388. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR9))) \
  1389. || \
  1390. (((INSTANCE) == TIM20) && \
  1391. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1392. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1393. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1394. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1395. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1396. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1397. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1398. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1399. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1400. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1401. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1402. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1403. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1404. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))))
  1405. #define IS_TIM_TRIGGER_INSTANCE(INSTANCE, __SELECTION__) \
  1406. ((((INSTANCE) == TIM1) && \
  1407. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1408. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1409. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1410. ((__SELECTION__) == TIM_TS_ETRF) || \
  1411. ((__SELECTION__) == TIM_TS_ITR1) || \
  1412. ((__SELECTION__) == TIM_TS_ITR2) || \
  1413. ((__SELECTION__) == TIM_TS_ITR3) || \
  1414. ((__SELECTION__) == TIM_TS_ITR5) || \
  1415. ((__SELECTION__) == TIM_TS_ITR6) || \
  1416. ((__SELECTION__) == TIM_TS_ITR7) || \
  1417. ((__SELECTION__) == TIM_TS_ITR8) || \
  1418. ((__SELECTION__) == TIM_TS_ITR9))) \
  1419. || \
  1420. (((INSTANCE) == TIM2) && \
  1421. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1422. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1423. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1424. ((__SELECTION__) == TIM_TS_ETRF) || \
  1425. ((__SELECTION__) == TIM_TS_ITR0) || \
  1426. ((__SELECTION__) == TIM_TS_ITR2) || \
  1427. ((__SELECTION__) == TIM_TS_ITR3) || \
  1428. ((__SELECTION__) == TIM_TS_ITR5) || \
  1429. ((__SELECTION__) == TIM_TS_ITR6) || \
  1430. ((__SELECTION__) == TIM_TS_ITR7) || \
  1431. ((__SELECTION__) == TIM_TS_ITR8) || \
  1432. ((__SELECTION__) == TIM_TS_ITR9) || \
  1433. ((__SELECTION__) == TIM_TS_ITR11))) \
  1434. || \
  1435. (((INSTANCE) == TIM3) && \
  1436. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1437. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1438. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1439. ((__SELECTION__) == TIM_TS_ETRF) || \
  1440. ((__SELECTION__) == TIM_TS_ITR0) || \
  1441. ((__SELECTION__) == TIM_TS_ITR1) || \
  1442. ((__SELECTION__) == TIM_TS_ITR3) || \
  1443. ((__SELECTION__) == TIM_TS_ITR5) || \
  1444. ((__SELECTION__) == TIM_TS_ITR6) || \
  1445. ((__SELECTION__) == TIM_TS_ITR7) || \
  1446. ((__SELECTION__) == TIM_TS_ITR8) || \
  1447. ((__SELECTION__) == TIM_TS_ITR9))) \
  1448. || \
  1449. (((INSTANCE) == TIM4) && \
  1450. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1451. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1452. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1453. ((__SELECTION__) == TIM_TS_ETRF) || \
  1454. ((__SELECTION__) == TIM_TS_ITR0) || \
  1455. ((__SELECTION__) == TIM_TS_ITR1) || \
  1456. ((__SELECTION__) == TIM_TS_ITR2) || \
  1457. ((__SELECTION__) == TIM_TS_ITR5) || \
  1458. ((__SELECTION__) == TIM_TS_ITR6) || \
  1459. ((__SELECTION__) == TIM_TS_ITR7) || \
  1460. ((__SELECTION__) == TIM_TS_ITR8) || \
  1461. ((__SELECTION__) == TIM_TS_ITR9))) \
  1462. || \
  1463. (((INSTANCE) == TIM8) && \
  1464. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1465. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1466. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1467. ((__SELECTION__) == TIM_TS_ETRF) || \
  1468. ((__SELECTION__) == TIM_TS_ITR0) || \
  1469. ((__SELECTION__) == TIM_TS_ITR1) || \
  1470. ((__SELECTION__) == TIM_TS_ITR2) || \
  1471. ((__SELECTION__) == TIM_TS_ITR3) || \
  1472. ((__SELECTION__) == TIM_TS_ITR6) || \
  1473. ((__SELECTION__) == TIM_TS_ITR7) || \
  1474. ((__SELECTION__) == TIM_TS_ITR8) || \
  1475. ((__SELECTION__) == TIM_TS_ITR9))) \
  1476. || \
  1477. (((INSTANCE) == TIM15) && \
  1478. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1479. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1480. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1481. ((__SELECTION__) == TIM_TS_ITR0) || \
  1482. ((__SELECTION__) == TIM_TS_ITR1) || \
  1483. ((__SELECTION__) == TIM_TS_ITR2) || \
  1484. ((__SELECTION__) == TIM_TS_ITR3) || \
  1485. ((__SELECTION__) == TIM_TS_ITR5) || \
  1486. ((__SELECTION__) == TIM_TS_ITR7) || \
  1487. ((__SELECTION__) == TIM_TS_ITR8) || \
  1488. ((__SELECTION__) == TIM_TS_ITR9))) \
  1489. || \
  1490. (((INSTANCE) == TIM20) && \
  1491. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1492. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1493. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1494. ((__SELECTION__) == TIM_TS_ETRF) || \
  1495. ((__SELECTION__) == TIM_TS_ITR0) || \
  1496. ((__SELECTION__) == TIM_TS_ITR1) || \
  1497. ((__SELECTION__) == TIM_TS_ITR2) || \
  1498. ((__SELECTION__) == TIM_TS_ITR3) || \
  1499. ((__SELECTION__) == TIM_TS_ITR5) || \
  1500. ((__SELECTION__) == TIM_TS_ITR6) || \
  1501. ((__SELECTION__) == TIM_TS_ITR7) || \
  1502. ((__SELECTION__) == TIM_TS_ITR8))))
  1503. #define IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(INSTANCE, __SELECTION__) \
  1504. ((((INSTANCE) == TIM1) && \
  1505. (((__SELECTION__) == TIM_TS_ITR1) || \
  1506. ((__SELECTION__) == TIM_TS_ITR2) || \
  1507. ((__SELECTION__) == TIM_TS_ITR3) || \
  1508. ((__SELECTION__) == TIM_TS_ITR5) || \
  1509. ((__SELECTION__) == TIM_TS_ITR6) || \
  1510. ((__SELECTION__) == TIM_TS_ITR7) || \
  1511. ((__SELECTION__) == TIM_TS_ITR8) || \
  1512. ((__SELECTION__) == TIM_TS_ITR9) || \
  1513. ((__SELECTION__) == TIM_TS_NONE))) \
  1514. || \
  1515. (((INSTANCE) == TIM2) && \
  1516. (((__SELECTION__) == TIM_TS_ITR0) || \
  1517. ((__SELECTION__) == TIM_TS_ITR2) || \
  1518. ((__SELECTION__) == TIM_TS_ITR3) || \
  1519. ((__SELECTION__) == TIM_TS_ITR5) || \
  1520. ((__SELECTION__) == TIM_TS_ITR6) || \
  1521. ((__SELECTION__) == TIM_TS_ITR7) || \
  1522. ((__SELECTION__) == TIM_TS_ITR8) || \
  1523. ((__SELECTION__) == TIM_TS_ITR9) || \
  1524. ((__SELECTION__) == TIM_TS_ITR11)|| \
  1525. ((__SELECTION__) == TIM_TS_NONE))) \
  1526. || \
  1527. (((INSTANCE) == TIM3) && \
  1528. (((__SELECTION__) == TIM_TS_ITR0) || \
  1529. ((__SELECTION__) == TIM_TS_ITR1) || \
  1530. ((__SELECTION__) == TIM_TS_ITR3) || \
  1531. ((__SELECTION__) == TIM_TS_ITR5) || \
  1532. ((__SELECTION__) == TIM_TS_ITR6) || \
  1533. ((__SELECTION__) == TIM_TS_ITR7) || \
  1534. ((__SELECTION__) == TIM_TS_ITR8) || \
  1535. ((__SELECTION__) == TIM_TS_ITR9) || \
  1536. ((__SELECTION__) == TIM_TS_NONE))) \
  1537. || \
  1538. (((INSTANCE) == TIM4) && \
  1539. (((__SELECTION__) == TIM_TS_ITR0) || \
  1540. ((__SELECTION__) == TIM_TS_ITR1) || \
  1541. ((__SELECTION__) == TIM_TS_ITR2) || \
  1542. ((__SELECTION__) == TIM_TS_ITR5) || \
  1543. ((__SELECTION__) == TIM_TS_ITR6) || \
  1544. ((__SELECTION__) == TIM_TS_ITR7) || \
  1545. ((__SELECTION__) == TIM_TS_ITR8) || \
  1546. ((__SELECTION__) == TIM_TS_ITR9) || \
  1547. ((__SELECTION__) == TIM_TS_NONE))) \
  1548. || \
  1549. (((INSTANCE) == TIM8) && \
  1550. (((__SELECTION__) == TIM_TS_ITR0) || \
  1551. ((__SELECTION__) == TIM_TS_ITR1) || \
  1552. ((__SELECTION__) == TIM_TS_ITR2) || \
  1553. ((__SELECTION__) == TIM_TS_ITR3) || \
  1554. ((__SELECTION__) == TIM_TS_ITR6) || \
  1555. ((__SELECTION__) == TIM_TS_ITR7) || \
  1556. ((__SELECTION__) == TIM_TS_ITR8) || \
  1557. ((__SELECTION__) == TIM_TS_ITR9) || \
  1558. ((__SELECTION__) == TIM_TS_NONE))) \
  1559. || \
  1560. (((INSTANCE) == TIM15) && \
  1561. (((__SELECTION__) == TIM_TS_ITR0) || \
  1562. ((__SELECTION__) == TIM_TS_ITR1) || \
  1563. ((__SELECTION__) == TIM_TS_ITR2) || \
  1564. ((__SELECTION__) == TIM_TS_ITR3) || \
  1565. ((__SELECTION__) == TIM_TS_ITR5) || \
  1566. ((__SELECTION__) == TIM_TS_ITR7) || \
  1567. ((__SELECTION__) == TIM_TS_ITR8) || \
  1568. ((__SELECTION__) == TIM_TS_ITR9) || \
  1569. ((__SELECTION__) == TIM_TS_NONE))) \
  1570. || \
  1571. (((INSTANCE) == TIM20) && \
  1572. (((__SELECTION__) == TIM_TS_ITR0) || \
  1573. ((__SELECTION__) == TIM_TS_ITR1) || \
  1574. ((__SELECTION__) == TIM_TS_ITR2) || \
  1575. ((__SELECTION__) == TIM_TS_ITR3) || \
  1576. ((__SELECTION__) == TIM_TS_ITR5) || \
  1577. ((__SELECTION__) == TIM_TS_ITR6) || \
  1578. ((__SELECTION__) == TIM_TS_ITR7) || \
  1579. ((__SELECTION__) == TIM_TS_ITR8) || \
  1580. ((__SELECTION__) == TIM_TS_NONE))))
  1581. #else
  1582. #define IS_TIM_CLOCKSOURCE_INSTANCE(INSTANCE, __CLOCK__) \
  1583. ((((INSTANCE) == TIM1) && \
  1584. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1585. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1586. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1587. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1588. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1589. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1590. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1591. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1592. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1593. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1594. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1595. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1596. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \
  1597. || \
  1598. (((INSTANCE) == TIM2) && \
  1599. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1600. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1601. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1602. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1603. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1604. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1605. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1606. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1607. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1608. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1609. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1610. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1611. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8) || \
  1612. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR11))) \
  1613. || \
  1614. (((INSTANCE) == TIM3) && \
  1615. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1616. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1617. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1618. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1619. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1620. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1621. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1622. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1623. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1624. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1625. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1626. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1627. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \
  1628. || \
  1629. (((INSTANCE) == TIM4) && \
  1630. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1631. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1632. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1633. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1634. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1635. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1636. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1637. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1638. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1639. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1640. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1641. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1642. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \
  1643. || \
  1644. (((INSTANCE) == TIM8) && \
  1645. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1646. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
  1647. ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
  1648. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1649. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1650. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1651. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1652. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1653. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1654. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1655. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR6) || \
  1656. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1657. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))) \
  1658. || \
  1659. (((INSTANCE) == TIM15) && \
  1660. (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
  1661. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
  1662. ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
  1663. ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
  1664. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
  1665. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
  1666. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
  1667. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3) || \
  1668. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR5) || \
  1669. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR7) || \
  1670. ((__CLOCK__) == TIM_CLOCKSOURCE_ITR8))))
  1671. #define IS_TIM_TRIGGER_INSTANCE(INSTANCE, __SELECTION__) \
  1672. ((((INSTANCE) == TIM1) && \
  1673. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1674. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1675. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1676. ((__SELECTION__) == TIM_TS_ETRF) || \
  1677. ((__SELECTION__) == TIM_TS_ITR1) || \
  1678. ((__SELECTION__) == TIM_TS_ITR2) || \
  1679. ((__SELECTION__) == TIM_TS_ITR3) || \
  1680. ((__SELECTION__) == TIM_TS_ITR5) || \
  1681. ((__SELECTION__) == TIM_TS_ITR6) || \
  1682. ((__SELECTION__) == TIM_TS_ITR7) || \
  1683. ((__SELECTION__) == TIM_TS_ITR8))) \
  1684. || \
  1685. (((INSTANCE) == TIM2) && \
  1686. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1687. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1688. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1689. ((__SELECTION__) == TIM_TS_ETRF) || \
  1690. ((__SELECTION__) == TIM_TS_ITR0) || \
  1691. ((__SELECTION__) == TIM_TS_ITR2) || \
  1692. ((__SELECTION__) == TIM_TS_ITR3) || \
  1693. ((__SELECTION__) == TIM_TS_ITR5) || \
  1694. ((__SELECTION__) == TIM_TS_ITR6) || \
  1695. ((__SELECTION__) == TIM_TS_ITR7) || \
  1696. ((__SELECTION__) == TIM_TS_ITR8) || \
  1697. ((__SELECTION__) == TIM_TS_ITR11))) \
  1698. || \
  1699. (((INSTANCE) == TIM3) && \
  1700. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1701. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1702. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1703. ((__SELECTION__) == TIM_TS_ETRF) || \
  1704. ((__SELECTION__) == TIM_TS_ITR0) || \
  1705. ((__SELECTION__) == TIM_TS_ITR1) || \
  1706. ((__SELECTION__) == TIM_TS_ITR3) || \
  1707. ((__SELECTION__) == TIM_TS_ITR5) || \
  1708. ((__SELECTION__) == TIM_TS_ITR6) || \
  1709. ((__SELECTION__) == TIM_TS_ITR7) || \
  1710. ((__SELECTION__) == TIM_TS_ITR8))) \
  1711. || \
  1712. (((INSTANCE) == TIM4) && \
  1713. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1714. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1715. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1716. ((__SELECTION__) == TIM_TS_ETRF) || \
  1717. ((__SELECTION__) == TIM_TS_ITR0) || \
  1718. ((__SELECTION__) == TIM_TS_ITR1) || \
  1719. ((__SELECTION__) == TIM_TS_ITR2) || \
  1720. ((__SELECTION__) == TIM_TS_ITR5) || \
  1721. ((__SELECTION__) == TIM_TS_ITR6) || \
  1722. ((__SELECTION__) == TIM_TS_ITR7) || \
  1723. ((__SELECTION__) == TIM_TS_ITR8))) \
  1724. || \
  1725. (((INSTANCE) == TIM8) && \
  1726. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1727. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1728. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1729. ((__SELECTION__) == TIM_TS_ETRF) || \
  1730. ((__SELECTION__) == TIM_TS_ITR0) || \
  1731. ((__SELECTION__) == TIM_TS_ITR1) || \
  1732. ((__SELECTION__) == TIM_TS_ITR2) || \
  1733. ((__SELECTION__) == TIM_TS_ITR3) || \
  1734. ((__SELECTION__) == TIM_TS_ITR6) || \
  1735. ((__SELECTION__) == TIM_TS_ITR7) || \
  1736. ((__SELECTION__) == TIM_TS_ITR8))) \
  1737. || \
  1738. (((INSTANCE) == TIM15) && \
  1739. (((__SELECTION__) == TIM_TS_TI1F_ED) || \
  1740. ((__SELECTION__) == TIM_TS_TI1FP1) || \
  1741. ((__SELECTION__) == TIM_TS_TI2FP2) || \
  1742. ((__SELECTION__) == TIM_TS_ITR0) || \
  1743. ((__SELECTION__) == TIM_TS_ITR1) || \
  1744. ((__SELECTION__) == TIM_TS_ITR2) || \
  1745. ((__SELECTION__) == TIM_TS_ITR3) || \
  1746. ((__SELECTION__) == TIM_TS_ITR5) || \
  1747. ((__SELECTION__) == TIM_TS_ITR7) || \
  1748. ((__SELECTION__) == TIM_TS_ITR8))))
  1749. #define IS_TIM_INTERNAL_TRIGGEREVENT_INSTANCE(INSTANCE, __SELECTION__) \
  1750. ((((INSTANCE) == TIM1) && \
  1751. (((__SELECTION__) == TIM_TS_ITR1) || \
  1752. ((__SELECTION__) == TIM_TS_ITR2) || \
  1753. ((__SELECTION__) == TIM_TS_ITR3) || \
  1754. ((__SELECTION__) == TIM_TS_ITR5) || \
  1755. ((__SELECTION__) == TIM_TS_ITR6) || \
  1756. ((__SELECTION__) == TIM_TS_ITR7) || \
  1757. ((__SELECTION__) == TIM_TS_ITR8) || \
  1758. ((__SELECTION__) == TIM_TS_NONE))) \
  1759. || \
  1760. (((INSTANCE) == TIM2) && \
  1761. (((__SELECTION__) == TIM_TS_ITR0) || \
  1762. ((__SELECTION__) == TIM_TS_ITR2) || \
  1763. ((__SELECTION__) == TIM_TS_ITR3) || \
  1764. ((__SELECTION__) == TIM_TS_ITR5) || \
  1765. ((__SELECTION__) == TIM_TS_ITR6) || \
  1766. ((__SELECTION__) == TIM_TS_ITR7) || \
  1767. ((__SELECTION__) == TIM_TS_ITR8) || \
  1768. ((__SELECTION__) == TIM_TS_ITR11)|| \
  1769. ((__SELECTION__) == TIM_TS_NONE))) \
  1770. || \
  1771. (((INSTANCE) == TIM3) && \
  1772. (((__SELECTION__) == TIM_TS_ITR0) || \
  1773. ((__SELECTION__) == TIM_TS_ITR1) || \
  1774. ((__SELECTION__) == TIM_TS_ITR3) || \
  1775. ((__SELECTION__) == TIM_TS_ITR5) || \
  1776. ((__SELECTION__) == TIM_TS_ITR6) || \
  1777. ((__SELECTION__) == TIM_TS_ITR7) || \
  1778. ((__SELECTION__) == TIM_TS_ITR8) || \
  1779. ((__SELECTION__) == TIM_TS_NONE))) \
  1780. || \
  1781. (((INSTANCE) == TIM4) && \
  1782. (((__SELECTION__) == TIM_TS_ITR0) || \
  1783. ((__SELECTION__) == TIM_TS_ITR1) || \
  1784. ((__SELECTION__) == TIM_TS_ITR2) || \
  1785. ((__SELECTION__) == TIM_TS_ITR5) || \
  1786. ((__SELECTION__) == TIM_TS_ITR6) || \
  1787. ((__SELECTION__) == TIM_TS_ITR7) || \
  1788. ((__SELECTION__) == TIM_TS_ITR8) || \
  1789. ((__SELECTION__) == TIM_TS_NONE))) \
  1790. || \
  1791. (((INSTANCE) == TIM8) && \
  1792. (((__SELECTION__) == TIM_TS_ITR0) || \
  1793. ((__SELECTION__) == TIM_TS_ITR1) || \
  1794. ((__SELECTION__) == TIM_TS_ITR2) || \
  1795. ((__SELECTION__) == TIM_TS_ITR3) || \
  1796. ((__SELECTION__) == TIM_TS_ITR6) || \
  1797. ((__SELECTION__) == TIM_TS_ITR7) || \
  1798. ((__SELECTION__) == TIM_TS_ITR8) || \
  1799. ((__SELECTION__) == TIM_TS_NONE))) \
  1800. || \
  1801. (((INSTANCE) == TIM15) && \
  1802. (((__SELECTION__) == TIM_TS_ITR0) || \
  1803. ((__SELECTION__) == TIM_TS_ITR1) || \
  1804. ((__SELECTION__) == TIM_TS_ITR2) || \
  1805. ((__SELECTION__) == TIM_TS_ITR3) || \
  1806. ((__SELECTION__) == TIM_TS_ITR5) || \
  1807. ((__SELECTION__) == TIM_TS_ITR7) || \
  1808. ((__SELECTION__) == TIM_TS_ITR8) || \
  1809. ((__SELECTION__) == TIM_TS_NONE))))
  1810. #endif /* TIM5 && TIM20 */
  1811. #define IS_TIM_OC_CHANNEL_MODE(__MODE__, __CHANNEL__) \
  1812. (IS_TIM_OC_MODE(__MODE__) \
  1813. && ((((__MODE__) == TIM_OCMODE_DIRECTION_OUTPUT) || ((__MODE__) == TIM_OCMODE_PULSE_ON_COMPARE)) \
  1814. ? (((__CHANNEL__) == TIM_CHANNEL_3) || ((__CHANNEL__) == TIM_CHANNEL_4)) : (1 == 1)))
  1815. #define IS_TIM_PULSEONCOMPARE_CHANNEL(__CHANNEL__) \
  1816. (((__CHANNEL__) == TIM_CHANNEL_3) || \
  1817. ((__CHANNEL__) == TIM_CHANNEL_4))
  1818. #define IS_TIM_PULSEONCOMPARE_INSTANCE(INSTANCE) IS_TIM_CC3_INSTANCE(INSTANCE)
  1819. #define IS_TIM_PULSEONCOMPARE_WIDTH(__WIDTH__) ((__WIDTH__) <= 0xFFU)
  1820. #define IS_TIM_PULSEONCOMPARE_WIDTHPRESCALER(__PRESCALER__) ((__PRESCALER__) <= 0x7U)
  1821. #define IS_TIM_SLAVE_PRELOAD_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_SMS_PRELOAD_SOURCE_UPDATE) \
  1822. || ((__SOURCE__) == TIM_SMS_PRELOAD_SOURCE_INDEX))
  1823. #define IS_TIM_ENCODERINDEX_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ENCODERINDEX_POLARITY_INVERTED) || \
  1824. ((__POLARITY__) == TIM_ENCODERINDEX_POLARITY_NONINVERTED))
  1825. #define IS_TIM_ENCODERINDEX_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ENCODERINDEX_PRESCALER_DIV1) || \
  1826. ((__PRESCALER__) == TIM_ENCODERINDEX_PRESCALER_DIV2) || \
  1827. ((__PRESCALER__) == TIM_ENCODERINDEX_PRESCALER_DIV4) || \
  1828. ((__PRESCALER__) == TIM_ENCODERINDEX_PRESCALER_DIV8))
  1829. #define IS_TIM_ENCODERINDEX_FILTER(__FILTER__) ((__FILTER__) <= 0xFUL)
  1830. #define IS_TIM_ENCODERINDEX_POSITION(__POSITION__) (((__POSITION__) == TIM_ENCODERINDEX_POSITION_00) || \
  1831. ((__POSITION__) == TIM_ENCODERINDEX_POSITION_01) || \
  1832. ((__POSITION__) == TIM_ENCODERINDEX_POSITION_10) || \
  1833. ((__POSITION__) == TIM_ENCODERINDEX_POSITION_11) || \
  1834. ((__POSITION__) == TIM_ENCODERINDEX_POSITION_0) || \
  1835. ((__POSITION__) == TIM_ENCODERINDEX_POSITION_1))
  1836. #define IS_TIM_ENCODERINDEX_DIRECTION(__DIRECTION__) (((__DIRECTION__) == TIM_ENCODERINDEX_DIRECTION_UP_DOWN) || \
  1837. ((__DIRECTION__) == TIM_ENCODERINDEX_DIRECTION_UP) || \
  1838. ((__DIRECTION__) == TIM_ENCODERINDEX_DIRECTION_DOWN))
  1839. /**
  1840. * @}
  1841. */
  1842. /* End of private macro ------------------------------------------------------*/
  1843. /* Exported functions --------------------------------------------------------*/
  1844. /** @addtogroup TIMEx_Exported_Functions TIM Extended Exported Functions
  1845. * @{
  1846. */
  1847. /** @addtogroup TIMEx_Exported_Functions_Group1 Extended Timer Hall Sensor functions
  1848. * @brief Timer Hall Sensor functions
  1849. * @{
  1850. */
  1851. /* Timer Hall Sensor functions **********************************************/
  1852. HAL_StatusTypeDef HAL_TIMEx_HallSensor_Init(TIM_HandleTypeDef *htim, const TIM_HallSensor_InitTypeDef *sConfig);
  1853. HAL_StatusTypeDef HAL_TIMEx_HallSensor_DeInit(TIM_HandleTypeDef *htim);
  1854. void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef *htim);
  1855. void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef *htim);
  1856. /* Blocking mode: Polling */
  1857. HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef *htim);
  1858. HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop(TIM_HandleTypeDef *htim);
  1859. /* Non-Blocking mode: Interrupt */
  1860. HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef *htim);
  1861. HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_IT(TIM_HandleTypeDef *htim);
  1862. /* Non-Blocking mode: DMA */
  1863. HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length);
  1864. HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_DMA(TIM_HandleTypeDef *htim);
  1865. /**
  1866. * @}
  1867. */
  1868. /** @addtogroup TIMEx_Exported_Functions_Group2 Extended Timer Complementary Output Compare functions
  1869. * @brief Timer Complementary Output Compare functions
  1870. * @{
  1871. */
  1872. /* Timer Complementary Output Compare functions *****************************/
  1873. /* Blocking mode: Polling */
  1874. HAL_StatusTypeDef HAL_TIMEx_OCN_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
  1875. HAL_StatusTypeDef HAL_TIMEx_OCN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
  1876. /* Non-Blocking mode: Interrupt */
  1877. HAL_StatusTypeDef HAL_TIMEx_OCN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
  1878. HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
  1879. /* Non-Blocking mode: DMA */
  1880. HAL_StatusTypeDef HAL_TIMEx_OCN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
  1881. uint16_t Length);
  1882. HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
  1883. /**
  1884. * @}
  1885. */
  1886. /** @addtogroup TIMEx_Exported_Functions_Group3 Extended Timer Complementary PWM functions
  1887. * @brief Timer Complementary PWM functions
  1888. * @{
  1889. */
  1890. /* Timer Complementary PWM functions ****************************************/
  1891. /* Blocking mode: Polling */
  1892. HAL_StatusTypeDef HAL_TIMEx_PWMN_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
  1893. HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
  1894. /* Non-Blocking mode: Interrupt */
  1895. HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
  1896. HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
  1897. /* Non-Blocking mode: DMA */
  1898. HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
  1899. uint16_t Length);
  1900. HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
  1901. /**
  1902. * @}
  1903. */
  1904. /** @addtogroup TIMEx_Exported_Functions_Group4 Extended Timer Complementary One Pulse functions
  1905. * @brief Timer Complementary One Pulse functions
  1906. * @{
  1907. */
  1908. /* Timer Complementary One Pulse functions **********************************/
  1909. /* Blocking mode: Polling */
  1910. HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
  1911. HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
  1912. /* Non-Blocking mode: Interrupt */
  1913. HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
  1914. HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
  1915. /**
  1916. * @}
  1917. */
  1918. /** @addtogroup TIMEx_Exported_Functions_Group5 Extended Peripheral Control functions
  1919. * @brief Peripheral Control functions
  1920. * @{
  1921. */
  1922. /* Extended Control functions ************************************************/
  1923. HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent(TIM_HandleTypeDef *htim, uint32_t InputTrigger,
  1924. uint32_t CommutationSource);
  1925. HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_IT(TIM_HandleTypeDef *htim, uint32_t InputTrigger,
  1926. uint32_t CommutationSource);
  1927. HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_DMA(TIM_HandleTypeDef *htim, uint32_t InputTrigger,
  1928. uint32_t CommutationSource);
  1929. HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim,
  1930. const TIM_MasterConfigTypeDef *sMasterConfig);
  1931. HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef *htim,
  1932. const TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig);
  1933. HAL_StatusTypeDef HAL_TIMEx_ConfigBreakInput(TIM_HandleTypeDef *htim, uint32_t BreakInput,
  1934. const TIMEx_BreakInputConfigTypeDef *sBreakInputConfig);
  1935. HAL_StatusTypeDef HAL_TIMEx_GroupChannel5(TIM_HandleTypeDef *htim, uint32_t Channels);
  1936. HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_t Remap);
  1937. HAL_StatusTypeDef HAL_TIMEx_TISelection(TIM_HandleTypeDef *htim, uint32_t TISelection, uint32_t Channel);
  1938. HAL_StatusTypeDef HAL_TIMEx_DisarmBreakInput(TIM_HandleTypeDef *htim, uint32_t BreakInput);
  1939. HAL_StatusTypeDef HAL_TIMEx_ReArmBreakInput(const TIM_HandleTypeDef *htim, uint32_t BreakInput);
  1940. HAL_StatusTypeDef HAL_TIMEx_DitheringEnable(TIM_HandleTypeDef *htim);
  1941. HAL_StatusTypeDef HAL_TIMEx_DitheringDisable(TIM_HandleTypeDef *htim);
  1942. HAL_StatusTypeDef HAL_TIMEx_OC_ConfigPulseOnCompare(TIM_HandleTypeDef *htim, uint32_t PulseWidthPrescaler,
  1943. uint32_t PulseWidth);
  1944. HAL_StatusTypeDef HAL_TIMEx_ConfigSlaveModePreload(TIM_HandleTypeDef *htim, uint32_t Source);
  1945. HAL_StatusTypeDef HAL_TIMEx_EnableSlaveModePreload(TIM_HandleTypeDef *htim);
  1946. HAL_StatusTypeDef HAL_TIMEx_DisableSlaveModePreload(TIM_HandleTypeDef *htim);
  1947. HAL_StatusTypeDef HAL_TIMEx_EnableDeadTimePreload(TIM_HandleTypeDef *htim);
  1948. HAL_StatusTypeDef HAL_TIMEx_DisableDeadTimePreload(TIM_HandleTypeDef *htim);
  1949. HAL_StatusTypeDef HAL_TIMEx_ConfigDeadTime(TIM_HandleTypeDef *htim, uint32_t Deadtime);
  1950. HAL_StatusTypeDef HAL_TIMEx_ConfigAsymmetricalDeadTime(TIM_HandleTypeDef *htim, uint32_t FallingDeadtime);
  1951. HAL_StatusTypeDef HAL_TIMEx_EnableAsymmetricalDeadTime(TIM_HandleTypeDef *htim);
  1952. HAL_StatusTypeDef HAL_TIMEx_DisableAsymmetricalDeadTime(TIM_HandleTypeDef *htim);
  1953. HAL_StatusTypeDef HAL_TIMEx_ConfigEncoderIndex(TIM_HandleTypeDef *htim,
  1954. TIMEx_EncoderIndexConfigTypeDef *sEncoderIndexConfig);
  1955. HAL_StatusTypeDef HAL_TIMEx_EnableEncoderIndex(TIM_HandleTypeDef *htim);
  1956. HAL_StatusTypeDef HAL_TIMEx_DisableEncoderIndex(TIM_HandleTypeDef *htim);
  1957. HAL_StatusTypeDef HAL_TIMEx_EnableEncoderFirstIndex(TIM_HandleTypeDef *htim);
  1958. HAL_StatusTypeDef HAL_TIMEx_DisableEncoderFirstIndex(TIM_HandleTypeDef *htim);
  1959. /**
  1960. * @}
  1961. */
  1962. /** @addtogroup TIMEx_Exported_Functions_Group6 Extended Callbacks functions
  1963. * @brief Extended Callbacks functions
  1964. * @{
  1965. */
  1966. /* Extended Callback **********************************************************/
  1967. void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim);
  1968. void HAL_TIMEx_CommutHalfCpltCallback(TIM_HandleTypeDef *htim);
  1969. void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim);
  1970. void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim);
  1971. void HAL_TIMEx_EncoderIndexCallback(TIM_HandleTypeDef *htim);
  1972. void HAL_TIMEx_DirectionChangeCallback(TIM_HandleTypeDef *htim);
  1973. void HAL_TIMEx_IndexErrorCallback(TIM_HandleTypeDef *htim);
  1974. void HAL_TIMEx_TransitionErrorCallback(TIM_HandleTypeDef *htim);
  1975. /**
  1976. * @}
  1977. */
  1978. /** @addtogroup TIMEx_Exported_Functions_Group7 Extended Peripheral State functions
  1979. * @brief Extended Peripheral State functions
  1980. * @{
  1981. */
  1982. /* Extended Peripheral State functions ***************************************/
  1983. HAL_TIM_StateTypeDef HAL_TIMEx_HallSensor_GetState(const TIM_HandleTypeDef *htim);
  1984. HAL_TIM_ChannelStateTypeDef HAL_TIMEx_GetChannelNState(const TIM_HandleTypeDef *htim, uint32_t ChannelN);
  1985. /**
  1986. * @}
  1987. */
  1988. /**
  1989. * @}
  1990. */
  1991. /* End of exported functions -------------------------------------------------*/
  1992. /* Private functions----------------------------------------------------------*/
  1993. /** @addtogroup TIMEx_Private_Functions TIM Extended Private Functions
  1994. * @{
  1995. */
  1996. void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma);
  1997. void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma);
  1998. /**
  1999. * @}
  2000. */
  2001. /* End of private functions --------------------------------------------------*/
  2002. /**
  2003. * @}
  2004. */
  2005. /**
  2006. * @}
  2007. */
  2008. #ifdef __cplusplus
  2009. }
  2010. #endif
  2011. #endif /* STM32G4xx_HAL_TIM_EX_H */