stm32h7xx_hal_hrtim.h 225 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642
  1. /**
  2. ******************************************************************************
  3. * @file STM32h7xx_hal_hrtim.h
  4. * @author MCD Application Team
  5. * @version V1.0.0
  6. * @date 21-April-2017
  7. * @brief Header file of HRTIM HAL module.
  8. ******************************************************************************
  9. * @attention
  10. *
  11. * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
  12. *
  13. * Redistribution and use in source and binary forms, with or without modification,
  14. * are permitted provided that the following conditions are met:
  15. * 1. Redistributions of source code must retain the above copyright notice,
  16. * this list of conditions and the following disclaimer.
  17. * 2. Redistributions in binary form must reproduce the above copyright notice,
  18. * this list of conditions and the following disclaimer in the documentation
  19. * and/or other materials provided with the distribution.
  20. * 3. Neither the name of STMicroelectronics nor the names of its contributors
  21. * may be used to endorse or promote products derived from this software
  22. * without specific prior written permission.
  23. *
  24. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  25. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  26. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  27. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  28. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  29. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  30. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  31. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  32. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  33. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  34. *
  35. ******************************************************************************
  36. */
  37. /* Define to prevent recursive inclusion -------------------------------------*/
  38. #ifndef __STM32H7xx_HAL_HRTIM_H
  39. #define __STM32H7xx_HAL_HRTIM_H
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43. /* Includes ------------------------------------------------------------------*/
  44. #include "stm32h7xx_hal_def.h"
  45. /** @addtogroup STM32H7xx_HAL_Driver
  46. * @{
  47. */
  48. /** @addtogroup HRTIM HRTIM
  49. * @{
  50. */
  51. /* Exported types ------------------------------------------------------------*/
  52. /** @addtogroup HRTIM_Exported_Constants HRTIM Exported Constants
  53. * @{
  54. */
  55. /** @defgroup HRTIM_Max_Timer HRTIM Max Timer
  56. * @{
  57. */
  58. #define MAX_HRTIM_TIMER 6U
  59. /**
  60. * @}
  61. */
  62. /**
  63. * @}
  64. */
  65. /** @defgroup HRTIM_Exported_Types HRTIM Exported Types
  66. * @{
  67. */
  68. /**
  69. * @brief HRTIM Configuration Structure definition - Time base related parameters
  70. */
  71. typedef struct
  72. {
  73. uint32_t HRTIMInterruptResquests; /*!< Specifies which interrupts requests must enabled for the HRTIM instance
  74. This parameter can be any combination of @ref HRTIM_Common_Interrupt_Enable */
  75. uint32_t SyncOptions; /*!< Specifies how the HRTIM instance handles the external synchronization signals
  76. This parameter can be a combination of @ref HRTIM_Synchronization_Options */
  77. uint32_t SyncInputSource; /*!< Specifies the external synchronization input source
  78. This parameter can be a value of @ref HRTIM_Synchronization_Input_Source */
  79. uint32_t SyncOutputSource; /*!< Specifies the source and event to be sent on the external synchronization outputs
  80. This parameter can be a value of @ref HRTIM_Synchronization_Output_Source */
  81. uint32_t SyncOutputPolarity; /*!< Specifies the conditionning of the event to be sent on the external synchronization outputs
  82. This parameter can be a value of @ref HRTIM_Synchronization_Output_Polarity */
  83. } HRTIM_InitTypeDef;
  84. /**
  85. * @brief HAL State structures definition
  86. */
  87. typedef enum
  88. {
  89. HAL_HRTIM_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */
  90. HAL_HRTIM_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */
  91. HAL_HRTIM_STATE_TIMEOUT = 0x06U, /*!< Timeout state */
  92. HAL_HRTIM_STATE_ERROR = 0x07U, /*!< Error state */
  93. } HAL_HRTIM_StateTypeDef;
  94. /**
  95. * @brief HRTIM Timer Structure definition
  96. */
  97. typedef struct
  98. {
  99. uint32_t CaptureTrigger1; /*!< Event(s) triggering capture unit 1.
  100. When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
  101. When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
  102. uint32_t CaptureTrigger2; /*!< Event(s) triggering capture unit 2.
  103. When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
  104. When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
  105. uint32_t InterruptRequests; /*!< Interrupts requests enabled for the timer. */
  106. uint32_t DMARequests; /*!< DMA requests enabled for the timer. */
  107. uint32_t DMASrcAddress; /*!< Address of the source address of the DMA transfer. */
  108. uint32_t DMADstAddress; /*!< Address of the destination address of the DMA transfer. */
  109. uint32_t DMASize; /*!< Size of the DMA transfer */
  110. } HRTIM_TimerParamTypeDef;
  111. /**
  112. * @brief HRTIM Handle Structure definition
  113. */
  114. typedef struct __HRTIM_HandleTypeDef
  115. {
  116. HRTIM_TypeDef * Instance; /*!< Register base address */
  117. HRTIM_InitTypeDef Init; /*!< HRTIM required parameters */
  118. HRTIM_TimerParamTypeDef TimerParam[MAX_HRTIM_TIMER]; /*!< HRTIM timers - including the master - parameters */
  119. HAL_LockTypeDef Lock; /*!< Locking object */
  120. __IO HAL_HRTIM_StateTypeDef State; /*!< HRTIM communication state */
  121. DMA_HandleTypeDef * hdmaMaster; /*!< Master timer DMA handle parameters */
  122. DMA_HandleTypeDef * hdmaTimerA; /*!< Timer A DMA handle parameters */
  123. DMA_HandleTypeDef * hdmaTimerB; /*!< Timer B DMA handle parameters */
  124. DMA_HandleTypeDef * hdmaTimerC; /*!< Timer C DMA handle parameters */
  125. DMA_HandleTypeDef * hdmaTimerD; /*!< Timer D DMA handle parameters */
  126. DMA_HandleTypeDef * hdmaTimerE; /*!< Timer E DMA handle parameters */
  127. } HRTIM_HandleTypeDef;
  128. /**
  129. * @brief Simple output compare mode configuration definition
  130. */
  131. typedef struct {
  132. uint32_t Period; /*!< Specifies the timer period
  133. The period value must be above 3 periods of the fHRTIM clock.
  134. Maximum value is = 0xFFDF */
  135. uint32_t RepetitionCounter; /*!< Specifies the timer repetition period
  136. This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */
  137. uint32_t PrescalerRatio; /*!< Specifies the timer clock prescaler ratio.
  138. This parameter can be any value of @ref HRTIM_Prescaler_Ratio */
  139. uint32_t Mode; /*!< Specifies the counter operating mode
  140. This parameter can be any value of @ref HRTIM_Mode */
  141. } HRTIM_TimeBaseCfgTypeDef;
  142. /**
  143. * @brief Simple output compare mode configuration definition
  144. */
  145. typedef struct {
  146. uint32_t Mode; /*!< Specifies the output compare mode (toggle, active, inactive)
  147. This parameter can be any value of of @ref HRTIM_Simple_OC_Mode */
  148. uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
  149. The compare value must be above or equal to 3 periods of the fHRTIM clock */
  150. uint32_t Polarity; /*!< Specifies the output polarity
  151. This parameter can be any value of @ref HRTIM_Output_Polarity */
  152. uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state
  153. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  154. } HRTIM_SimpleOCChannelCfgTypeDef;
  155. /**
  156. * @brief Simple PWM output mode configuration definition
  157. */
  158. typedef struct {
  159. uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
  160. The compare value must be above or equal to 3 periods of the fHRTIM clock */
  161. uint32_t Polarity; /*!< Specifies the output polarity
  162. This parameter can be any value of @ref HRTIM_Output_Polarity */
  163. uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state
  164. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  165. } HRTIM_SimplePWMChannelCfgTypeDef;
  166. /**
  167. * @brief Simple capture mode configuration definition
  168. */
  169. typedef struct {
  170. uint32_t Event; /*!< Specifies the external event triggering the capture
  171. This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
  172. uint32_t EventPolarity; /*!< Specifies the polarity of the external event (in case of level sensitivity)
  173. This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  174. uint32_t EventSensitivity; /*!< Specifies the sensitivity of the external event
  175. This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
  176. uint32_t EventFilter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter
  177. This parameter can be a value of @ref HRTIM_External_Event_Filter */
  178. } HRTIM_SimpleCaptureChannelCfgTypeDef;
  179. /**
  180. * @brief Simple One Pulse mode configuration definition
  181. */
  182. typedef struct {
  183. uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
  184. The compare value must be above or equal to 3 periods of the fHRTIM clock */
  185. uint32_t OutputPolarity; /*!< Specifies the output polarity
  186. This parameter can be any value of @ref HRTIM_Output_Polarity */
  187. uint32_t OutputIdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state
  188. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  189. uint32_t Event; /*!< Specifies the external event triggering the pulse generation
  190. This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
  191. uint32_t EventPolarity; /*!< Specifies the polarity of the external event (in case of level sensitivity)
  192. This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  193. uint32_t EventSensitivity; /*!< Specifies the sensitivity of the external event
  194. This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
  195. uint32_t EventFilter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter
  196. This parameter can be a value of @ref HRTIM_External_Event_Filter */
  197. } HRTIM_SimpleOnePulseChannelCfgTypeDef;
  198. /**
  199. * @brief Timer configuration definition
  200. */
  201. typedef struct {
  202. uint32_t InterruptRequests; /*!< Relevant for all HRTIM timers, including the master
  203. Specifies which interrupts requests must enabled for the timer
  204. This parameter can be any combination of @ref HRTIM_Master_Interrupt_Enable
  205. or HRTIM_Timing_Unit_Interrupt_Enable */
  206. uint32_t DMARequests; /*!< Relevant for all HRTIM timers, including the master
  207. Specifies which DMA requests must be enabled for the timer
  208. This parameter can be any combination of @ref HRTIM_Master_DMA_Request_Enable
  209. or HRTIM_Timing_Unit_DMA_Request_Enable */
  210. uint32_t DMASrcAddress; /*!< Relevant for all HRTIM timers, including the master
  211. Specifies the address of the source address of the DMA transfer */
  212. uint32_t DMADstAddress; /*!< Relevant for all HRTIM timers, including the master
  213. Specifies the address of the destination address of the DMA transfer */
  214. uint32_t DMASize; /*!< Relevant for all HRTIM timers, including the master
  215. Specifies the size of the DMA transfer */
  216. uint32_t HalfModeEnable; /*!< Relevant for all HRTIM timers, including the master
  217. Specifies whether or not hald mode is enabled
  218. This parameter can be any value of @ref HRTIM_Half_Mode_Enable */
  219. uint32_t StartOnSync; /*!< Relevant for all HRTIM timers, including the master
  220. Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled)
  221. This parameter can be any value of @ref HRTIM_Start_On_Sync_Input_Event */
  222. uint32_t ResetOnSync; /*!< Relevant for all HRTIM timers, including the master
  223. Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled)
  224. This parameter can be any value of @ref HRTIM_Reset_On_Sync_Input_Event */
  225. uint32_t DACSynchro; /*!< Relevant for all HRTIM timers, including the master
  226. Indicates whether or not the a DAC synchronization event is generated
  227. This parameter can be any value of @ref HRTIM_DAC_Synchronization */
  228. uint32_t PreloadEnable; /*!< Relevant for all HRTIM timers, including the master
  229. Specifies whether or not register preload is enabled
  230. This parameter can be any value of @ref HRTIM_Register_Preload_Enable */
  231. uint32_t UpdateGating; /*!< Relevant for all HRTIM timers, including the master
  232. Specifies how the update occurs with respect to a burst DMA transaction or
  233. update enable inputs (Slave timers only)
  234. This parameter can be any value of @ref HRTIM_Update_Gating */
  235. uint32_t BurstMode; /*!< Relevant for all HRTIM timers, including the master
  236. Specifies how the timer behaves during a burst mode operation
  237. This parameter can be any value of @ref HRTIM_Timer_Burst_Mode */
  238. uint32_t RepetitionUpdate; /*!< Relevant for all HRTIM timers, including the master
  239. Specifies whether or not registers update is triggered by the repetition event
  240. This parameter can be any valuen of @ref HRTIM_Timer_Repetition_Update */
  241. uint32_t PushPull; /*!< Relevant for Timer A to Timer E
  242. Specifies whether or not the push-pull mode is enabled
  243. This parameter can be any value of @ref HRTIM_Timer_Push_Pull_Mode */
  244. uint32_t FaultEnable; /*!< Relevant for Timer A to Timer E
  245. Specifies which fault channels are enabled for the timer
  246. This parameter can be a combination of @ref HRTIM_Timer_Fault_Enabling */
  247. uint32_t FaultLock; /*!< Relevant for Timer A to Timer E
  248. Specifies whether or not fault enabling status is write protected
  249. This parameter can be a value of @ref HRTIM_Timer_Fault_Lock */
  250. uint32_t DeadTimeInsertion; /*!< Relevant for Timer A to Timer E
  251. Specifies whether or not deadtime insertion is enabled for the timer
  252. This parameter can be a value of @ref HRTIM_Timer_Deadtime_Insertion */
  253. uint32_t DelayedProtectionMode; /*!< Relevant for Timer A to Timer E
  254. Specifies the delayed protection mode
  255. This parameter can be a value of @ref HRTIM_Timer_Delayed_Protection_Mode */
  256. uint32_t UpdateTrigger; /*!< Relevant for Timer A to Timer E
  257. Specifies source(s) triggering the timer registers update
  258. This parameter can be a combination of @ref HRTIM_Timer_Update_Trigger */
  259. uint32_t ResetTrigger; /*!< Relevant for Timer A to Timer E
  260. Specifies source(s) triggering the timer counter reset
  261. This parameter can be a combination of @ref HRTIM_Timer_Reset_Trigger */
  262. uint32_t ResetUpdate; /*!< Relevant for Timer A to Timer E
  263. Specifies whether or not registers update is triggered when the timer counter is reset
  264. This parameter can be a value of @ref HRTIM_Timer_Reset_Update */
  265. } HRTIM_TimerCfgTypeDef;
  266. /**
  267. * @brief Compare unit configuration definition
  268. */
  269. typedef struct {
  270. uint32_t CompareValue; /*!< Specifies the compare value of the timer compare unit
  271. the minimum value must be greater than or equal to 3 periods of the fHRTIM clock
  272. the maximum value must be less than or equal to 0xFFFF - 1 periods of the fHRTIM clock */
  273. uint32_t AutoDelayedMode; /*!< Specifies the auto delayed mode for compare unit 2 or 4
  274. This parameter can be a value of @ref HRTIM_Compare_Unit_Auto_Delayed_Mode */
  275. uint32_t AutoDelayedTimeout; /*!< Specifies compare value for timing unit 1 or 3 when auto delayed mode with time out is selected
  276. CompareValue + AutoDelayedTimeout must be less than 0xFFFF */
  277. } HRTIM_CompareCfgTypeDef;
  278. /**
  279. * @brief Capture unit configuration definition
  280. */
  281. typedef struct {
  282. uint32_t Trigger; /*!< Specifies source(s) triggering the capture
  283. This parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger */
  284. } HRTIM_CaptureCfgTypeDef;
  285. /**
  286. * @brief Output configuration definition
  287. */
  288. typedef struct {
  289. uint32_t Polarity; /*!< Specifies the output polarity.
  290. This parameter can be any value of @ref HRTIM_Output_Polarity */
  291. uint32_t SetSource; /*!< Specifies the event(s) transitioning the output from its inactive level to its active level.
  292. This parameter can be a combination of @ref HRTIM_Output_Set_Source */
  293. uint32_t ResetSource; /*!< Specifies the event(s) transitioning the output from its active level to its inactive level.
  294. This parameter can be a combination of @ref HRTIM_Output_Reset_Source */
  295. uint32_t IdleMode; /*!< Specifies whether or not the output is affected by a burst mode operation.
  296. This parameter can be any value of @ref HRTIM_Output_Idle_Mode */
  297. uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
  298. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  299. uint32_t FaultLevel; /*!< Specifies whether the output level is active or inactive when in FAULT state.
  300. This parameter can be any value of @ref HRTIM_Output_FAULT_Level */
  301. uint32_t ChopperModeEnable; /*!< Indicates whether or not the chopper mode is enabled.
  302. This parameter can be any value of @ref HRTIM_Output_Chopper_Mode_Enable */
  303. uint32_t BurstModeEntryDelayed; /* !<Indicates whether or not deadtime is inserted when entering the IDLE state during a burst mode operation.
  304. This parameters can be any value of @ref HRTIM_Output_Burst_Mode_Entry_Delayed */
  305. } HRTIM_OutputCfgTypeDef;
  306. /**
  307. * @brief External event filtering in timing units configuration definition
  308. */
  309. typedef struct {
  310. uint32_t Filter; /*!< Specifies the type of event filtering within the timing unit
  311. This parameter can be a value of @ref HRTIM_Timer_External_Event_Filter */
  312. uint32_t Latch; /*!< Specifies whether or not the signal is latched
  313. This parameter can be a value of @ref HRTIM_Timer_External_Event_Latch */
  314. } HRTIM_TimerEventFilteringCfgTypeDef;
  315. /**
  316. * @brief Dead time feature configuration definition
  317. */
  318. typedef struct {
  319. uint32_t Prescaler; /*!< Specifies the Deadtime Prescaler
  320. This parameter can be a value of @ref HRTIM_Deadtime_Prescaler_Ratio */
  321. uint32_t RisingValue; /*!< Specifies the Deadtime following a rising edge
  322. This parameter can be a number between 0x0 and 0x1FF */
  323. uint32_t RisingSign; /*!< Specifies whether the deadtime is positive or negative on rising edge
  324. This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign */
  325. uint32_t RisingLock; /*!< Specifies whether or not deadtime rising settings (value and sign) are write protected
  326. This parameter can be a value of @ref HRTIM_Deadtime_Rising_Lock */
  327. uint32_t RisingSignLock; /*!< Specifies whether or not deadtime rising sign is write protected
  328. This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign_Lock */
  329. uint32_t FallingValue; /*!< Specifies the Deadtime following a falling edge
  330. This parameter can be a number between 0x0 and 0x1FF */
  331. uint32_t FallingSign; /*!< Specifies whether the deadtime is positive or negative on falling edge
  332. This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign */
  333. uint32_t FallingLock; /*!< Specifies whether or not deadtime falling settings (value and sign) are write protected
  334. This parameter can be a value of @ref HRTIM_Deadtime_Falling_Lock */
  335. uint32_t FallingSignLock; /*!< Specifies whether or not deadtime falling sign is write protected
  336. This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign_Lock */
  337. } HRTIM_DeadTimeCfgTypeDef ;
  338. /**
  339. * @brief Chopper mode configuration definition
  340. */
  341. typedef struct {
  342. uint32_t CarrierFreq; /*!< Specifies the Timer carrier frequency value.
  343. This parameter can be a value of @ref HRTIM_Chopper_Frequency */
  344. uint32_t DutyCycle; /*!< Specifies the Timer chopper duty cycle value.
  345. This parameter can be a value of @ref HRTIM_Chopper_Duty_Cycle */
  346. uint32_t StartPulse; /*!< Specifies the Timer pulse width value.
  347. This parameter can be a value of @ref HRTIM_Chopper_Start_Pulse_Width */
  348. } HRTIM_ChopperModeCfgTypeDef;
  349. /**
  350. * @brief External event channel configuration definition
  351. */
  352. typedef struct {
  353. uint32_t Source; /*!< Identifies the source of the external event
  354. This parameter can be a value of @ref HRTIM_External_Event_Sources */
  355. uint32_t Polarity; /*!< Specifies the polarity of the external event (in case of level sensitivity)
  356. This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  357. uint32_t Sensitivity; /*!< Specifies the sensitivity of the external event
  358. This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
  359. uint32_t Filter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter
  360. This parameter can be a value of @ref HRTIM_External_Event_Filter */
  361. uint32_t FastMode; /*!< Indicates whether or not low latency mode is enabled for the external event
  362. This parameter can be a value of @ref HRTIM_External_Event_Fast_Mode */
  363. } HRTIM_EventCfgTypeDef;
  364. /**
  365. * @brief Fault channel configuration definition
  366. */
  367. typedef struct {
  368. uint32_t Source; /*!< Identifies the source of the fault
  369. This parameter can be a value of @ref HRTIM_Fault_Sources */
  370. uint32_t Polarity; /*!< Specifies the polarity of the fault event
  371. This parameter can be a value of @ref HRTIM_Fault_Polarity */
  372. uint32_t Filter; /*!< Defines the frequency used to sample the Fault input and the length of the digital filter
  373. This parameter can be a value of @ref HRTIM_Fault_Filter */
  374. uint32_t Lock; /*!< Indicates whether or not fault programming bits are write protected
  375. This parameter can be a value of @ref HRTIM_Fault_Lock */
  376. } HRTIM_FaultCfgTypeDef;
  377. /**
  378. * @brief Burst mode configuration definition
  379. */
  380. typedef struct {
  381. uint32_t Mode; /*!< Specifies the burst mode operating mode
  382. This parameter can be a value of @ref HRTIM_Burst_Mode_Operating_Mode */
  383. uint32_t ClockSource; /*!< Specifies the burst mode clock source
  384. This parameter can be a value of @ref HRTIM_Burst_Mode_Clock_Source */
  385. uint32_t Prescaler; /*!< Specifies the burst mode prescaler
  386. This parameter can be a value of @ref HRTIM_Burst_Mode_Prescaler */
  387. uint32_t PreloadEnable; /*!< Specifies whether or not preload is enabled for burst mode related registers (HRTIM_BMCMPR and HRTIM_BMPER)
  388. This parameter can be a combination of @ref HRTIM_Burst_Mode_Register_Preload_Enable */
  389. uint32_t Trigger; /*!< Specifies the event(s) trigering the burst operation
  390. This parameter can be a combination of @ref HRTIM_Burst_Mode_Trigger */
  391. uint32_t IdleDuration; /*!< Specifies number of periods during which the selected timers are in idle state
  392. This parameter can be a number between 0x0 and 0xFFFF */
  393. uint32_t Period; /*!< Specifies burst mode repetition period
  394. This parameter can be a number between 0x1 and 0xFFFF */
  395. } HRTIM_BurstModeCfgTypeDef;
  396. /**
  397. * @brief ADC trigger configuration definition
  398. */
  399. typedef struct {
  400. uint32_t UpdateSource; /*!< Specifies the ADC trigger update source
  401. This parameter can be a combination of @ref HRTIM_ADC_Trigger_Update_Source */
  402. uint32_t Trigger; /*!< Specifies the event(s) triggering the ADC conversion
  403. This parameter can be a value of @ref HRTIM_ADC_Trigger_Event */
  404. } HRTIM_ADCTriggerCfgTypeDef;
  405. /**
  406. * @}
  407. */
  408. /* Exported constants --------------------------------------------------------*/
  409. /** @defgroup HRTIM_Exported_Constants HRTIM Exported Constants
  410. * @{
  411. */
  412. /** @defgroup HRTIM_Timer_Index HRTIM Timer Index
  413. * @{
  414. * @brief Constants defining the timer indexes
  415. */
  416. #define HRTIM_TIMERINDEX_TIMER_A (uint32_t)0x0U /*!< Index used to access timer A registers */
  417. #define HRTIM_TIMERINDEX_TIMER_B (uint32_t)0x1U /*!< Index used to access timer B registers */
  418. #define HRTIM_TIMERINDEX_TIMER_C (uint32_t)0x2U /*!< Index used to access timer C registers */
  419. #define HRTIM_TIMERINDEX_TIMER_D (uint32_t)0x3U /*!< Index used to access timer D registers */
  420. #define HRTIM_TIMERINDEX_TIMER_E (uint32_t)0x4U /*!< Index used to access timer E registers */
  421. #define HRTIM_TIMERINDEX_MASTER (uint32_t)0x5U /*!< Index used to access master registers */
  422. #define HRTIM_TIMERINDEX_COMMON (uint32_t)0xFFU /*!< Index used to access HRTIM common registers */
  423. /**
  424. * @}
  425. */
  426. /** @defgroup HRTIM_Timer_identifier HRTIM Timer identifier
  427. * @{
  428. * @brief Constants defining timer identifiers
  429. */
  430. #define HRTIM_TIMERID_MASTER (HRTIM_MCR_MCEN) /*!< Master identifier*/
  431. #define HRTIM_TIMERID_TIMER_A (HRTIM_MCR_TACEN) /*!< Timer A identifier */
  432. #define HRTIM_TIMERID_TIMER_B (HRTIM_MCR_TBCEN) /*!< Timer B identifier */
  433. #define HRTIM_TIMERID_TIMER_C (HRTIM_MCR_TCCEN) /*!< Timer C identifier */
  434. #define HRTIM_TIMERID_TIMER_D (HRTIM_MCR_TDCEN) /*!< Timer D identifier */
  435. #define HRTIM_TIMERID_TIMER_E (HRTIM_MCR_TECEN) /*!< Timer E identifier */
  436. #define IS_HRTIM_TIMERID(TIMERID) (((TIMERID) & 0xFFC0FFFFU) == 0x00000000U)
  437. /**
  438. * @}
  439. */
  440. /** @defgroup HRTIM_Compare_Unit HRTIM Compare Unit
  441. * @{
  442. * @brief Constants defining compare unit identifiers
  443. */
  444. #define HRTIM_COMPAREUNIT_1 (uint32_t)0x00000001U /*!< Compare unit 1 identifier. */
  445. #define HRTIM_COMPAREUNIT_2 (uint32_t)0x00000002U /*!< Compare unit 2 identifier. */
  446. #define HRTIM_COMPAREUNIT_3 (uint32_t)0x00000004U /*!< Compare unit 3 identifier. */
  447. #define HRTIM_COMPAREUNIT_4 (uint32_t)0x00000008U /*!< Compare unit 4 identifier. */
  448. /**
  449. * @}
  450. */
  451. /** @defgroup HRTIM_Capture_Unit HRTIM Capture Unit
  452. * @{
  453. * @brief Constants defining capture unit identifiers
  454. */
  455. #define HRTIM_CAPTUREUNIT_1 (uint32_t)0x00000001U /*!< Capture unit 1 identifier. */
  456. #define HRTIM_CAPTUREUNIT_2 (uint32_t)0x00000002U /*!< Capture unit 2 identifier. */
  457. /**
  458. * @}
  459. */
  460. /** @defgroup HRTIM_Timer_Output HRTIM Timer Output
  461. * @{
  462. * @brief Constants defining timer output identifiers
  463. */
  464. #define HRTIM_OUTPUT_TA1 (uint32_t)0x00000001U /*!< Timer A - Ouput 1 identifier. */
  465. #define HRTIM_OUTPUT_TA2 (uint32_t)0x00000002U /*!< Timer A - Ouput 2 identifier. */
  466. #define HRTIM_OUTPUT_TB1 (uint32_t)0x00000004U /*!< Timer B - Ouput 1 identifier. */
  467. #define HRTIM_OUTPUT_TB2 (uint32_t)0x00000008U /*!< Timer B - Ouput 2 identifier. */
  468. #define HRTIM_OUTPUT_TC1 (uint32_t)0x00000010U /*!< Timer C - Ouput 1 identifier. */
  469. #define HRTIM_OUTPUT_TC2 (uint32_t)0x00000020U /*!< Timer C - Ouput 2 identifier. */
  470. #define HRTIM_OUTPUT_TD1 (uint32_t)0x00000040U /*!< Timer D - Ouput 1 identifier. */
  471. #define HRTIM_OUTPUT_TD2 (uint32_t)0x00000080U /*!< Timer D - Ouput 2 identifier. */
  472. #define HRTIM_OUTPUT_TE1 (uint32_t)0x00000100U /*!< Timer E - Ouput 1 identifier. */
  473. #define HRTIM_OUTPUT_TE2 (uint32_t)0x00000200U /*!< Timer E - Ouput 2 identifier. */
  474. /**
  475. * @}
  476. */
  477. /** @defgroup HRTIM_ADC_Trigger HRTIM ADC Trigger
  478. * @{
  479. * @brief Constants defining ADC triggers identifiers
  480. */
  481. #define HRTIM_ADCTRIGGER_1 (uint32_t)0x00000001U /*!< ADC trigger 1 identifier. */
  482. #define HRTIM_ADCTRIGGER_2 (uint32_t)0x00000002U /*!< ADC trigger 2 identifier. */
  483. #define HRTIM_ADCTRIGGER_3 (uint32_t)0x00000004U /*!< ADC trigger 3 identifier. */
  484. #define HRTIM_ADCTRIGGER_4 (uint32_t)0x00000008U /*!< ADC trigger 4 identifier. */
  485. /**
  486. * @}
  487. */
  488. /** @defgroup HRTIM_External_Event_Channels HRTIM External Event Channels
  489. * @{
  490. * @brief Constants defining external event channel identifiers
  491. */
  492. #define HRTIM_EVENT_NONE ((uint32_t)0x00000000U) /*!< Undefined event channel. */
  493. #define HRTIM_EVENT_1 ((uint32_t)0x00000001U) /*!< External event channel 1 identifier. */
  494. #define HRTIM_EVENT_2 ((uint32_t)0x00000002U) /*!< External event channel 2 identifier. */
  495. #define HRTIM_EVENT_3 ((uint32_t)0x00000004U) /*!< External event channel 3 identifier. */
  496. #define HRTIM_EVENT_4 ((uint32_t)0x00000008U) /*!< External event channel 4 identifier. */
  497. #define HRTIM_EVENT_5 ((uint32_t)0x00000010U) /*!< External event channel 5 identifier. */
  498. #define HRTIM_EVENT_6 ((uint32_t)0x00000020U) /*!< External event channel 6 identifier. */
  499. #define HRTIM_EVENT_7 ((uint32_t)0x00000040U) /*!< External event channel 7 identifier. */
  500. #define HRTIM_EVENT_8 ((uint32_t)0x00000080U) /*!< External event channel 8 identifier. */
  501. #define HRTIM_EVENT_9 ((uint32_t)0x00000100U) /*!< External event channel 9 identifier. */
  502. #define HRTIM_EVENT_10 ((uint32_t)0x00000200U) /*!< External event channel 10 identifier. */
  503. /**
  504. * @}
  505. */
  506. /** @defgroup HRTIM_Fault_Channel HRTIM Fault Channel
  507. * @{
  508. * @brief Constants defining fault channel identifiers
  509. */
  510. #define HRTIM_FAULT_1 ((uint32_t)0x01U) /*!< Fault channel 1 identifier. */
  511. #define HRTIM_FAULT_2 ((uint32_t)0x02U) /*!< Fault channel 2 identifier. */
  512. #define HRTIM_FAULT_3 ((uint32_t)0x04U) /*!< Fault channel 3 identifier. */
  513. #define HRTIM_FAULT_4 ((uint32_t)0x08U) /*!< Fault channel 4 identifier. */
  514. #define HRTIM_FAULT_5 ((uint32_t)0x10U) /*!< Fault channel 5 identifier. */
  515. /**
  516. * @}
  517. */
  518. /** @defgroup HRTIM_Prescaler_Ratio HRTIM Prescaler Ratio
  519. * @{
  520. * @brief Constants defining timer high-resolution clock prescaler ratio.
  521. */
  522. #define HRTIM_PRESCALERRATIO_MUL32 ((uint32_t)0x00000000U) /*!< fHRCK: 4.608 GHz - Resolution: 217 ps - Min PWM frequency: 70.3 kHz (fHRTIM=144MHz). */
  523. #define HRTIM_PRESCALERRATIO_MUL16 ((uint32_t)0x00000001U) /*!< fHRCK: 2.304 GHz - Resolution: 434 ps - Min PWM frequency: 35.1 KHz (fHRTIM=144MHz). */
  524. #define HRTIM_PRESCALERRATIO_MUL8 ((uint32_t)0x00000002U) /*!< fHRCK: 1.152 GHz - Resolution: 868 ps - Min PWM frequency: 17.6 kHz (fHRTIM=144MHz). */
  525. #define HRTIM_PRESCALERRATIO_MUL4 ((uint32_t)0x00000003U) /*!< fHRCK: 576 MHz - Resolution: 1.73 ns - Min PWM frequency: 8.8 kHz (fHRTIM=144MHz). */
  526. #define HRTIM_PRESCALERRATIO_MUL2 ((uint32_t)0x00000004U) /*!< fHRCK: 288 MHz - Resolution: 3.47 ns - Min PWM frequency: 4.4 kHz (fHRTIM=144MHz). */
  527. #define HRTIM_PRESCALERRATIO_DIV1 ((uint32_t)0x00000005U) /*!< fHRCK: 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz). */
  528. #define HRTIM_PRESCALERRATIO_DIV2 ((uint32_t)0x00000006U) /*!< fHRCK: 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz). */
  529. #define HRTIM_PRESCALERRATIO_DIV4 ((uint32_t)0x00000007U) /*!< fHRCK: 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz). */
  530. /**
  531. * @}
  532. */
  533. /** @defgroup HRTIM_Mode HRTIM Mode
  534. * @{
  535. * @brief Constants defining timer counter operating mode.
  536. */
  537. #define HRTIM_MODE_CONTINUOUS ((uint32_t)0x00000008U) /*!< The timer operates in continuous (free-running) mode. */
  538. #define HRTIM_MODE_SINGLESHOT ((uint32_t)0x00000000U) /*!< The timer operates in non retriggerable single-shot mode. */
  539. #define HRTIM_MODE_SINGLESHOT_RETRIGGERABLE ((uint32_t)0x00000010U) /*!< The timer operates in retriggerable single-shot mode. */
  540. /**
  541. * @}
  542. */
  543. /** @defgroup HRTIM_Half_Mode_Enable HRTIM Half Mode Enable
  544. * @{
  545. * @brief Constants defining half mode enabling status.
  546. */
  547. #define HRTIM_HALFMODE_DISABLED ((uint32_t)0x00000000U) /*!< Half mode is disabled. */
  548. #define HRTIM_HALFMODE_ENABLED ((uint32_t)0x00000020U) /*!< Half mode is enabled. */
  549. /**
  550. * @}
  551. */
  552. /** @defgroup HRTIM_Start_On_Sync_Input_Event HRTIM Start On Sync Input Event
  553. * @{
  554. * @brief Constants defining the timer behavior following the synchronization event
  555. */
  556. #define HRTIM_SYNCSTART_DISABLED ((uint32_t)0x00000000U) /*!< Synchronization input event has effect on the timer. */
  557. #define HRTIM_SYNCSTART_ENABLED (HRTIM_MCR_SYNCSTRTM) /*!< Synchronization input event starts the timer. */
  558. /**
  559. * @}
  560. */
  561. /** @defgroup HRTIM_Reset_On_Sync_Input_Event HRTIM Reset On Sync Input Event
  562. * @{
  563. * @brief Constants defining the timer behavior following the synchronization event
  564. */
  565. #define HRTIM_SYNCRESET_DISABLED ((uint32_t)0x00000000U) /*!< Synchronization input event has effect on the timer. */
  566. #define HRTIM_SYNCRESET_ENABLED (HRTIM_MCR_SYNCRSTM) /*!< Synchronization input event resets the timer. */
  567. /**
  568. * @}
  569. */
  570. /** @defgroup HRTIM_DAC_Synchronization HRTIM DAC Synchronization
  571. * @{
  572. * @brief Constants defining on which output the DAC synchronization event is sent
  573. */
  574. #define HRTIM_DACSYNC_NONE ((uint32_t)0x00000000U) /*!< No DAC synchronization event generated. */
  575. #define HRTIM_DACSYNC_DACTRIGOUT_1 (HRTIM_MCR_DACSYNC_0) /*!< DAC synchronization event generated on DACTrigOut1 output upon timer update. */
  576. #define HRTIM_DACSYNC_DACTRIGOUT_2 (HRTIM_MCR_DACSYNC_1) /*!< DAC synchronization event generated on DACTrigOut2 output upon timer update. */
  577. #define HRTIM_DACSYNC_DACTRIGOUT_3 (HRTIM_MCR_DACSYNC_1 | HRTIM_MCR_DACSYNC_0) /*!< DAC update generated on DACTrigOut3 output upon timer update. */
  578. /**
  579. * @}
  580. */
  581. /** @defgroup HRTIM_Register_Preload_Enable HRTIM Register Preload Enable
  582. * @{
  583. * @brief Constants defining whether a write access into a preloadable
  584. * register is done into the active or the preload register.
  585. */
  586. #define HRTIM_PRELOAD_DISABLED 0x00000000U /*!< Preload disabled: the write access is directly done into the active register. */
  587. #define HRTIM_PRELOAD_ENABLED (HRTIM_MCR_PREEN) /*!< Preload enabled: the write access is done into the preload register. */
  588. /**
  589. * @}
  590. */
  591. /** @defgroup HRTIM_Update_Gating HRTIM Update Gating
  592. * @{
  593. * @brief Constants defining how the update occurs relatively to the burst DMA
  594. * transaction and the external update request on update enable inputs 1 to 3.
  595. */
  596. #define HRTIM_UPDATEGATING_INDEPENDENT ((uint32_t)0x00000000U) /*!< Update done independently from the DMA burst transfer completion. */
  597. #define HRTIM_UPDATEGATING_DMABURST (HRTIM_TIMCR_UPDGAT_0) /*!< Update done when the DMA burst transfer is completed. */
  598. #define HRTIM_UPDATEGATING_DMABURST_UPDATE (HRTIM_TIMCR_UPDGAT_1) /*!< Update done on timer roll-over following a DMA burst transfer completion. */
  599. #define HRTIM_UPDATEGATING_UPDEN1 (HRTIM_TIMCR_UPDGAT_1 | HRTIM_TIMCR_UPDGAT_0) /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 1. */
  600. #define HRTIM_UPDATEGATING_UPDEN2 (HRTIM_TIMCR_UPDGAT_2) /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 2. */
  601. #define HRTIM_UPDATEGATING_UPDEN3 (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_0) /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 3. */
  602. #define HRTIM_UPDATEGATING_UPDEN1_UPDATE (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_1) /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 1. */
  603. #define HRTIM_UPDATEGATING_UPDEN2_UPDATE (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_1 | HRTIM_TIMCR_UPDGAT_0) /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 2. */
  604. #define HRTIM_UPDATEGATING_UPDEN3_UPDATE (HRTIM_TIMCR_UPDGAT_3) /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 3. */
  605. /**
  606. * @}
  607. */
  608. /** @defgroup HRTIM_Timer_Burst_Mode HRTIM Timer Burst Mode
  609. * @{
  610. * @brief Constants defining how the timer behaves during a burst
  611. mode operation.
  612. */
  613. #define HRTIM_TIMERBURSTMODE_MAINTAINCLOCK ((uint32_t)0x000000U) /*!< Timer counter clock is maintained and the timer operates normally. */
  614. #define HRTIM_TIMERBURSTMODE_RESETCOUNTER (HRTIM_BMCR_MTBM) /*!< Timer counter clock is stopped and the counter is reset. */
  615. /**
  616. * @}
  617. */
  618. /** @defgroup HRTIM_Timer_Repetition_Update HRTIM Timer Repetition Update
  619. * @{
  620. * @brief Constants defining whether registers are updated when the timer
  621. * repetition period is completed (either due to roll-over or
  622. * reset events)
  623. */
  624. #define HRTIM_UPDATEONREPETITION_DISABLED ((uint32_t)0x00000000U) /*!< Update on repetition disabled. */
  625. #define HRTIM_UPDATEONREPETITION_ENABLED (HRTIM_MCR_MREPU) /*!< Update on repetition enabled. */
  626. /**
  627. * @}
  628. */
  629. /** @defgroup HRTIM_Timer_Push_Pull_Mode HRTIM Timer Push Pull Mode
  630. * @{
  631. * @brief Constants defining whether or not the puhs-pull mode is enabled for
  632. * a timer.
  633. */
  634. #define HRTIM_TIMPUSHPULLMODE_DISABLED ((uint32_t)0x00000000U) /*!< Push-Pull mode disabled. */
  635. #define HRTIM_TIMPUSHPULLMODE_ENABLED ((uint32_t)HRTIM_TIMCR_PSHPLL) /*!< Push-Pull mode enabled. */
  636. /**
  637. * @}
  638. */
  639. /** @defgroup HRTIM_Timer_Fault_Enabling HRTIM Timer Fault Enabling
  640. * @{
  641. * @brief Constants defining whether a faut channel is enabled for a timer
  642. */
  643. #define HRTIM_TIMFAULTENABLE_NONE ((uint32_t)0x00000000U) /*!< No fault enabled. */
  644. #define HRTIM_TIMFAULTENABLE_FAULT1 (HRTIM_FLTR_FLT1EN) /*!< Fault 1 enabled. */
  645. #define HRTIM_TIMFAULTENABLE_FAULT2 (HRTIM_FLTR_FLT2EN) /*!< Fault 2 enabled. */
  646. #define HRTIM_TIMFAULTENABLE_FAULT3 (HRTIM_FLTR_FLT3EN) /*!< Fault 3 enabled. */
  647. #define HRTIM_TIMFAULTENABLE_FAULT4 (HRTIM_FLTR_FLT4EN) /*!< Fault 4 enabled. */
  648. #define HRTIM_TIMFAULTENABLE_FAULT5 (HRTIM_FLTR_FLT5EN) /*!< Fault 5 enabled. */
  649. /**
  650. * @}
  651. */
  652. /** @defgroup HRTIM_Timer_Fault_Lock HRTIM Timer Fault Lock
  653. * @{
  654. * @brief Constants defining whether or not fault enabling bits are write
  655. * protected for a timer
  656. */
  657. #define HRTIM_TIMFAULTLOCK_READWRITE ((uint32_t)0x00000000U) /*!< Timer fault enabling bits are read/write. */
  658. #define HRTIM_TIMFAULTLOCK_READONLY (HRTIM_FLTR_FLTLCK) /*!< Timer fault enabling bits are read only. */
  659. /**
  660. * @}
  661. */
  662. /** @defgroup HRTIM_Timer_Deadtime_Insertion HRTIM Timer Deadtime Insertion
  663. * @{
  664. * @brief Constants defining whether or not fault the dead time insertion
  665. * feature is enabled for a timer
  666. */
  667. #define HRTIM_TIMDEADTIMEINSERTION_DISABLED ((uint32_t)0x00000000U) /*!< Output 1 and output 2 signals are independent. */
  668. #define HRTIM_TIMDEADTIMEINSERTION_ENABLED HRTIM_OUTR_DTEN /*!< Deadtime is inserted between output 1 and output 2. */
  669. /**
  670. * @}
  671. */
  672. /** @defgroup HRTIM_Timer_Delayed_Protection_Mode HRTIM Timer Delayed Protection Mode
  673. * @{
  674. * @brief Constants defining all possible delayed protection modes
  675. * for a timer. Also definethe source and outputs on which the delayed
  676. * protection schemes are applied
  677. */
  678. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED ((uint32_t)0x00000000U) /*!< No action. */
  679. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6 (HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 delayed Idle on external Event 6. */
  680. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_EEV6 (HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 2 delayed Idle on external Event 6. */
  681. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV6 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 and output 2 delayed Idle on external Event 6. */
  682. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV6 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Balanced Idle on external Event 6. */
  683. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_DEEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 delayed Idle on external Event 7. */
  684. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_DEEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 2 delayed Idle on external Event 7. */
  685. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 and output2 delayed Idle on external Event 7. */
  686. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Balanced Idle on external Event 7. */
  687. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DISABLED ((uint32_t)0x00000000U) /*!< No action. */
  688. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT1_EEV8 (HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 delayed Idle on external Event 6. */
  689. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT2_EEV8 (HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 2 delayed Idle on external Event 6. */
  690. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDBOTH_EEV8 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 and output 2 delayed Idle on external Event 6. */
  691. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_BALANCED_EEV8 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Balanced Idle on external Event 6. */
  692. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT1_DEEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 delayed Idle on external Event 7. */
  693. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT2_DEEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 2 delayed Idle on external Event 7. */
  694. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDBOTH_EEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 and output2 delayed Idle on external Event 7. */
  695. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_BALANCED_EEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Balanced Idle on external Event 7. */
  696. /**
  697. * @}
  698. */
  699. /** @defgroup HRTIM_Timer_Update_Trigger HRTIM Timer Update Trigger
  700. * @{
  701. * @brief Constants defining whether the registers update is done synchronously
  702. * with any other timer or master update
  703. */
  704. #define HRTIM_TIMUPDATETRIGGER_NONE ((uint32_t)0x00000000U) /*!< Register update is disabled. */
  705. #define HRTIM_TIMUPDATETRIGGER_MASTER (HRTIM_TIMCR_MSTU) /*!< Register update is triggered by the master timer update. */
  706. #define HRTIM_TIMUPDATETRIGGER_TIMER_A (HRTIM_TIMCR_TAU) /*!< Register update is triggered by the timer A update. */
  707. #define HRTIM_TIMUPDATETRIGGER_TIMER_B (HRTIM_TIMCR_TBU) /*!< Register update is triggered by the timer B update. */
  708. #define HRTIM_TIMUPDATETRIGGER_TIMER_C (HRTIM_TIMCR_TCU) /*!< Register update is triggered by the timer C update. */
  709. #define HRTIM_TIMUPDATETRIGGER_TIMER_D (HRTIM_TIMCR_TDU) /*!< Register update is triggered by the timer D update. */
  710. #define HRTIM_TIMUPDATETRIGGER_TIMER_E (HRTIM_TIMCR_TEU) /*!< Register update is triggered by the timer E update. */
  711. /**
  712. * @}
  713. */
  714. /** @defgroup HRTIM_Timer_Reset_Trigger HRTIM Timer Reset Trigger
  715. * @{
  716. * @brief Constants defining the events that can be selected to trigger the reset
  717. * of the timer counter
  718. */
  719. #define HRTIM_TIMRESETTRIGGER_NONE ((uint32_t)0x00000000U)/*!< No counter reset trigger. */
  720. #define HRTIM_TIMRESETTRIGGER_UPDATE (HRTIM_RSTR_UPDATE) /*!< The timer counter is reset upon update event. */
  721. #define HRTIM_TIMRESETTRIGGER_CMP2 (HRTIM_RSTR_CMP2) /*!< The timer counter is reset upon Timer Compare 2 event. */
  722. #define HRTIM_TIMRESETTRIGGER_CMP4 (HRTIM_RSTR_CMP4) /*!< The timer counter is reset upon Timer Compare 4 event. */
  723. #define HRTIM_TIMRESETTRIGGER_MASTER_PER (HRTIM_RSTR_MSTPER) /*!< The timercounter is reset upon master timer period event. */
  724. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP1 (HRTIM_RSTR_MSTCMP1) /*!< The timer counter is reset upon master timer Compare 1 event. */
  725. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP2 (HRTIM_RSTR_MSTCMP2) /*!< The timer counter is reset upon master timer Compare 2 event. */
  726. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP3 (HRTIM_RSTR_MSTCMP3) /*!< The timer counter is reset upon master timer Compare 3 event. */
  727. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP4 (HRTIM_RSTR_MSTCMP4) /*!< The timer counter is reset upon master timer Compare 4 event. */
  728. #define HRTIM_TIMRESETTRIGGER_EEV_1 (HRTIM_RSTR_EXTEVNT1) /*!< The timer counter is reset upon external event 1. */
  729. #define HRTIM_TIMRESETTRIGGER_EEV_2 (HRTIM_RSTR_EXTEVNT2) /*!< The timer counter is reset upon external event 2. */
  730. #define HRTIM_TIMRESETTRIGGER_EEV_3 (HRTIM_RSTR_EXTEVNT3) /*!< The timer counter is reset upon external event 3. */
  731. #define HRTIM_TIMRESETTRIGGER_EEV_4 (HRTIM_RSTR_EXTEVNT4) /*!< The timer counter is reset upon external event 4. */
  732. #define HRTIM_TIMRESETTRIGGER_EEV_5 (HRTIM_RSTR_EXTEVNT5) /*!< The timer counter is reset upon external event 5. */
  733. #define HRTIM_TIMRESETTRIGGER_EEV_6 (HRTIM_RSTR_EXTEVNT6) /*!< The timer counter is reset upon external event 6. */
  734. #define HRTIM_TIMRESETTRIGGER_EEV_7 (HRTIM_RSTR_EXTEVNT7) /*!< The timer counter is reset upon external event 7. */
  735. #define HRTIM_TIMRESETTRIGGER_EEV_8 (HRTIM_RSTR_EXTEVNT8) /*!< The timer counter is reset upon external event 8. */
  736. #define HRTIM_TIMRESETTRIGGER_EEV_9 (HRTIM_RSTR_EXTEVNT9) /*!< The timer counter is reset upon external event 9. */
  737. #define HRTIM_TIMRESETTRIGGER_EEV_10 (HRTIM_RSTR_EXTEVNT10) /*!< The timer counter is reset upon external event 10. */
  738. #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP1 (HRTIM_RSTR_TIMBCMP1) /*!< The timer counter is reset upon other timer Compare 1 event. */
  739. #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP2 (HRTIM_RSTR_TIMBCMP2) /*!< The timer counter is reset upon other timer Compare 2 event. */
  740. #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP4 (HRTIM_RSTR_TIMBCMP4) /*!< The timer counter is reset upon other timer Compare 4 event. */
  741. #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP1 (HRTIM_RSTR_TIMCCMP1) /*!< The timer counter is reset upon other timer Compare 1 event. */
  742. #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP2 (HRTIM_RSTR_TIMCCMP2) /*!< The timer counter is reset upon other timer Compare 2 event. */
  743. #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP4 (HRTIM_RSTR_TIMCCMP4) /*!< The timer counter is reset upon other timer Compare 4 event. */
  744. #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP1 (HRTIM_RSTR_TIMDCMP1) /*!< The timer counter is reset upon other timer Compare 1 event. */
  745. #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP2 (HRTIM_RSTR_TIMDCMP2) /*!< The timer counter is reset upon other timer Compare 2 event. */
  746. #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP4 (HRTIM_RSTR_TIMDCMP4) /*!< The timer counter is reset upon other timer Compare 4 event. */
  747. #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP1 (HRTIM_RSTR_TIMECMP1) /*!< The timer counter is reset upon other timer Compare 1 event. */
  748. #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP2 (HRTIM_RSTR_TIMECMP2) /*!< The timer counter is reset upon other timer Compare 2 event. */
  749. #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP4 (HRTIM_RSTR_TIMECMP4) /*!< The timer counter is reset upon other timer Compare 4 event. */
  750. /**
  751. * @}
  752. */
  753. /** @defgroup HRTIM_Timer_Reset_Update HRTIM Timer Reset Update
  754. * @{
  755. * @brief Constants defining whether the register are updated upon Timerx
  756. * counter reset or roll-over to 0 after reaching the period value
  757. * in continuous mode
  758. */
  759. #define HRTIM_TIMUPDATEONRESET_DISABLED ((uint32_t)0x00000000U) /*!< Update by timer x reset / roll-over disabled. */
  760. #define HRTIM_TIMUPDATEONRESET_ENABLED (HRTIM_TIMCR_TRSTU) /*!< Update by timer x reset / roll-over enabled. */
  761. /**
  762. * @}
  763. */
  764. /** @defgroup HRTIM_Compare_Unit_Auto_Delayed_Mode HRTIM Compare Unit Auto Delayed Mode
  765. * @{
  766. * @brief Constants defining whether the compare register is behaving in
  767. * regular mode (compare match issued as soon as counter equal compare),
  768. * or in auto-delayed mode
  769. */
  770. #define HRTIM_AUTODELAYEDMODE_REGULAR ((uint32_t)0x00000000U) /*!< standard compare mode. */
  771. #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT (HRTIM_TIMCR_DELCMP2_0) /*!< Compare event generated only if a capture has occurred. */
  772. #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1 (HRTIM_TIMCR_DELCMP2_1) /*!< Compare event generated if a capture has occurred or after a Compare 1 match (timeout if capture event is missing). */
  773. #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3 (HRTIM_TIMCR_DELCMP2_1 | HRTIM_TIMCR_DELCMP2_0) /*!< Compare event generated if a capture has occurred or after a Compare 3 match (timeout if capture event is missing). */
  774. /**
  775. * @}
  776. */
  777. /** @defgroup HRTIM_Simple_OC_Mode HRTIM Simple OC Mode
  778. * @{
  779. * @brief Constants defining the behavior of the output signal when the timer
  780. operates in basic output compare mode
  781. */
  782. #define HRTIM_BASICOCMODE_TOGGLE (0x00000001U) /*!< Output toggles when the timer counter reaches the compare value. */
  783. #define HRTIM_BASICOCMODE_INACTIVE (0x00000002U) /*!< Output forced to active level when the timer counter reaches the compare value. */
  784. #define HRTIM_BASICOCMODE_ACTIVE (0x00000003U) /*!< Output forced to inactive level when the timer counter reaches the compare value. */
  785. /**
  786. * @}
  787. */
  788. /** @defgroup HRTIM_Output_Polarity HRTIM Output Polarity
  789. * @{
  790. * @brief Constants defining the polarity of a timer output
  791. */
  792. #define HRTIM_OUTPUTPOLARITY_HIGH ((uint32_t)0x00000000U) /*!< Output is acitve HIGH. */
  793. #define HRTIM_OUTPUTPOLARITY_LOW (HRTIM_OUTR_POL1) /*!< Output is active LOW. */
  794. /**
  795. * @}
  796. */
  797. /** @defgroup HRTIM_Output_Set_Source HRTIM Output Set Source
  798. * @{
  799. * @brief Constants defining the events that can be selected to configure the
  800. * set crossbar of a timer output
  801. */
  802. #define HRTIM_OUTPUTSET_NONE ((uint32_t)0x00000000U) /*!< Reset the output set crossbar. */
  803. #define HRTIM_OUTPUTSET_RESYNC (HRTIM_SET1R_RESYNC) /*!< Timer reset event coming solely from software or SYNC input forces the output to its active state. */
  804. #define HRTIM_OUTPUTSET_TIMPER (HRTIM_SET1R_PER) /*!< Timer period event forces the output to its active state. */
  805. #define HRTIM_OUTPUTSET_TIMCMP1 (HRTIM_SET1R_CMP1) /*!< Timer compare 1 event forces the output to its active state. */
  806. #define HRTIM_OUTPUTSET_TIMCMP2 (HRTIM_SET1R_CMP2) /*!< Timer compare 2 event forces the output to its active state. */
  807. #define HRTIM_OUTPUTSET_TIMCMP3 (HRTIM_SET1R_CMP3) /*!< Timer compare 3 event forces the output to its active state. */
  808. #define HRTIM_OUTPUTSET_TIMCMP4 (HRTIM_SET1R_CMP4) /*!< Timer compare 4 event forces the output to its active state. */
  809. #define HRTIM_OUTPUTSET_MASTERPER (HRTIM_SET1R_MSTPER) /*!< The master timer period event forces the output to its active state. */
  810. #define HRTIM_OUTPUTSET_MASTERCMP1 (HRTIM_SET1R_MSTCMP1) /*!< Master Timer compare 1 event forces the output to its active state. */
  811. #define HRTIM_OUTPUTSET_MASTERCMP2 (HRTIM_SET1R_MSTCMP2) /*!< Master Timer compare 2 event forces the output to its active state. */
  812. #define HRTIM_OUTPUTSET_MASTERCMP3 (HRTIM_SET1R_MSTCMP3) /*!< Master Timer compare 3 event forces the output to its active state. */
  813. #define HRTIM_OUTPUTSET_MASTERCMP4 (HRTIM_SET1R_MSTCMP4) /*!< Master Timer compare 4 event forces the output to its active state. */
  814. #define HRTIM_OUTPUTSET_TIMEV_1 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state. */
  815. #define HRTIM_OUTPUTSET_TIMEV_2 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state. */
  816. #define HRTIM_OUTPUTSET_TIMEV_3 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state. */
  817. #define HRTIM_OUTPUTSET_TIMEV_4 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state. */
  818. #define HRTIM_OUTPUTSET_TIMEV_5 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state. */
  819. #define HRTIM_OUTPUTSET_TIMEV_6 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state. */
  820. #define HRTIM_OUTPUTSET_TIMEV_7 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state. */
  821. #define HRTIM_OUTPUTSET_TIMEV_8 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state. */
  822. #define HRTIM_OUTPUTSET_TIMEV_9 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state. */
  823. #define HRTIM_OUTPUTSET_EEV_1 (HRTIM_SET1R_EXTVNT1) /*!< External event 1 forces the output to its active state. */
  824. #define HRTIM_OUTPUTSET_EEV_2 (HRTIM_SET1R_EXTVNT2) /*!< External event 2 forces the output to its active state. */
  825. #define HRTIM_OUTPUTSET_EEV_3 (HRTIM_SET1R_EXTVNT3) /*!< External event 3 forces the output to its active state. */
  826. #define HRTIM_OUTPUTSET_EEV_4 (HRTIM_SET1R_EXTVNT4) /*!< External event 4 forces the output to its active state. */
  827. #define HRTIM_OUTPUTSET_EEV_5 (HRTIM_SET1R_EXTVNT5) /*!< External event 5 forces the output to its active state. */
  828. #define HRTIM_OUTPUTSET_EEV_6 (HRTIM_SET1R_EXTVNT6) /*!< External event 6 forces the output to its active state. */
  829. #define HRTIM_OUTPUTSET_EEV_7 (HRTIM_SET1R_EXTVNT7) /*!< External event 7 forces the output to its active state. */
  830. #define HRTIM_OUTPUTSET_EEV_8 (HRTIM_SET1R_EXTVNT8) /*!< External event 8 forces the output to its active state. */
  831. #define HRTIM_OUTPUTSET_EEV_9 (HRTIM_SET1R_EXTVNT9) /*!< External event 9 forces the output to its active state. */
  832. #define HRTIM_OUTPUTSET_EEV_10 (HRTIM_SET1R_EXTVNT10) /*!< External event 10 forces the output to its active state. */
  833. #define HRTIM_OUTPUTSET_UPDATE (HRTIM_SET1R_UPDATE) /*!< Timer register update event forces the output to its active state. */
  834. /**
  835. * @}
  836. */
  837. /** @defgroup HRTIM_Output_Reset_Source HRTIM Output Reset Source
  838. * @{
  839. * @brief Constants defining the events that can be selected to configure the
  840. * set crossbar of a timer output
  841. */
  842. #define HRTIM_OUTPUTRESET_NONE ((uint32_t)0x00000000U) /*!< Reset the output reset crossbar. */
  843. #define HRTIM_OUTPUTRESET_RESYNC (HRTIM_RST1R_RESYNC) /*!< Timer reset event coming solely from software or SYNC input forces the output to its inactive state. */
  844. #define HRTIM_OUTPUTRESET_TIMPER (HRTIM_RST1R_PER) /*!< Timer period event forces the output to its inactive state. */
  845. #define HRTIM_OUTPUTRESET_TIMCMP1 (HRTIM_RST1R_CMP1) /*!< Timer compare 1 event forces the output to its inactive state. */
  846. #define HRTIM_OUTPUTRESET_TIMCMP2 (HRTIM_RST1R_CMP2) /*!< Timer compare 2 event forces the output to its inactive state. */
  847. #define HRTIM_OUTPUTRESET_TIMCMP3 (HRTIM_RST1R_CMP3) /*!< Timer compare 3 event forces the output to its inactive state. */
  848. #define HRTIM_OUTPUTRESET_TIMCMP4 (HRTIM_RST1R_CMP4) /*!< Timer compare 4 event forces the output to its inactive state. */
  849. #define HRTIM_OUTPUTRESET_MASTERPER (HRTIM_RST1R_MSTPER) /*!< The master timer period event forces the output to its inactive state. */
  850. #define HRTIM_OUTPUTRESET_MASTERCMP1 (HRTIM_RST1R_MSTCMP1) /*!< Master Timer compare 1 event forces the output to its inactive state. */
  851. #define HRTIM_OUTPUTRESET_MASTERCMP2 (HRTIM_RST1R_MSTCMP2) /*!< Master Timer compare 2 event forces the output to its inactive state. */
  852. #define HRTIM_OUTPUTRESET_MASTERCMP3 (HRTIM_RST1R_MSTCMP3) /*!< Master Timer compare 3 event forces the output to its inactive state. */
  853. #define HRTIM_OUTPUTRESET_MASTERCMP4 (HRTIM_RST1R_MSTCMP4) /*!< Master Timer compare 4 event forces the output to its inactive state. */
  854. #define HRTIM_OUTPUTRESET_TIMEV_1 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state. */
  855. #define HRTIM_OUTPUTRESET_TIMEV_2 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state. */
  856. #define HRTIM_OUTPUTRESET_TIMEV_3 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state. */
  857. #define HRTIM_OUTPUTRESET_TIMEV_4 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state. */
  858. #define HRTIM_OUTPUTRESET_TIMEV_5 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state. */
  859. #define HRTIM_OUTPUTRESET_TIMEV_6 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state. */
  860. #define HRTIM_OUTPUTRESET_TIMEV_7 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state. */
  861. #define HRTIM_OUTPUTRESET_TIMEV_8 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state. */
  862. #define HRTIM_OUTPUTRESET_TIMEV_9 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state. */
  863. #define HRTIM_OUTPUTRESET_EEV_1 (HRTIM_RST1R_EXTVNT1) /*!< External event 1 forces the output to its inactive state. */
  864. #define HRTIM_OUTPUTRESET_EEV_2 (HRTIM_RST1R_EXTVNT2) /*!< External event 2 forces the output to its inactive state. */
  865. #define HRTIM_OUTPUTRESET_EEV_3 (HRTIM_RST1R_EXTVNT3) /*!< External event 3 forces the output to its inactive state. */
  866. #define HRTIM_OUTPUTRESET_EEV_4 (HRTIM_RST1R_EXTVNT4) /*!< External event 4 forces the output to its inactive state. */
  867. #define HRTIM_OUTPUTRESET_EEV_5 (HRTIM_RST1R_EXTVNT5) /*!< External event 5 forces the output to its inactive state. */
  868. #define HRTIM_OUTPUTRESET_EEV_6 (HRTIM_RST1R_EXTVNT6) /*!< External event 6 forces the output to its inactive state. */
  869. #define HRTIM_OUTPUTRESET_EEV_7 (HRTIM_RST1R_EXTVNT7) /*!< External event 7 forces the output to its inactive state. */
  870. #define HRTIM_OUTPUTRESET_EEV_8 (HRTIM_RST1R_EXTVNT8) /*!< External event 8 forces the output to its inactive state. */
  871. #define HRTIM_OUTPUTRESET_EEV_9 (HRTIM_RST1R_EXTVNT9) /*!< External event 9 forces the output to its inactive state. */
  872. #define HRTIM_OUTPUTRESET_EEV_10 (HRTIM_RST1R_EXTVNT10) /*!< External event 10 forces the output to its inactive state. */
  873. #define HRTIM_OUTPUTRESET_UPDATE (HRTIM_RST1R_UPDATE) /*!< Timer register update event forces the output to its inactive state. */
  874. /**
  875. * @}
  876. */
  877. /** @defgroup HRTIM_Output_Idle_Mode HRTIM Output Idle Mode
  878. * @{
  879. * @brief Constants defining whether or not the timer output transition to its
  880. IDLE state when burst mode is entered
  881. */
  882. #define HRTIM_OUTPUTIDLEMODE_NONE ((uint32_t)0x00000000U) /*!< The output is not affected by the burst mode operation. */
  883. #define HRTIM_OUTPUTIDLEMODE_IDLE (HRTIM_OUTR_IDLM1) /*!< The output is in idle state when requested by the burst mode controller. */
  884. /**
  885. * @}
  886. */
  887. /** @defgroup HRTIM_Output_IDLE_Level HRTIM Output IDLE Level
  888. * @{
  889. * @brief Constants defining the output level when output is in IDLE state
  890. */
  891. #define HRTIM_OUTPUTIDLELEVEL_INACTIVE ((uint32_t)0x00000000U) /*!< Output at inactive level when in IDLE state. */
  892. #define HRTIM_OUTPUTIDLELEVEL_ACTIVE (HRTIM_OUTR_IDLES1) /*!< Output at active level when in IDLE state. */
  893. /**
  894. * @}
  895. */
  896. /** @defgroup HRTIM_Output_FAULT_Level HRTIM Output FAULT Level
  897. * @{
  898. * @brief Constants defining the output level when output is in FAULT state
  899. */
  900. #define HRTIM_OUTPUTFAULTLEVEL_NONE ((uint32_t)0x00000000U) /*!< The output is not affected by the fault input. */
  901. #define HRTIM_OUTPUTFAULTLEVEL_ACTIVE (HRTIM_OUTR_FAULT1_0) /*!< Output at active level when in FAULT state. */
  902. #define HRTIM_OUTPUTFAULTLEVEL_INACTIVE (HRTIM_OUTR_FAULT1_1) /*!< Output at inactive level when in FAULT state. */
  903. #define HRTIM_OUTPUTFAULTLEVEL_HIGHZ (HRTIM_OUTR_FAULT1_1 | HRTIM_OUTR_FAULT1_0) /*!< Output is tri-stated when in FAULT state. */
  904. /**
  905. * @}
  906. */
  907. /** @defgroup HRTIM_Output_Chopper_Mode_Enable HRTIM Output Chopper Mode Enable
  908. * @{
  909. * @brief Constants defining whether or not chopper mode is enabled for a timer
  910. output
  911. */
  912. #define HRTIM_OUTPUTCHOPPERMODE_DISABLED ((uint32_t)0x00000000U) /*!< Output signal is not altered. */
  913. #define HRTIM_OUTPUTCHOPPERMODE_ENABLED (HRTIM_OUTR_CHP1) /*!< Output signal is chopped by a carrier signal. */
  914. /**
  915. * @}
  916. */
  917. /** @defgroup HRTIM_Output_Burst_Mode_Entry_Delayed HRTIM Output Burst Mode Entry Delayed
  918. * @{
  919. * @brief Constants defining the idle mode entry is delayed by forcing a
  920. deadtime insertion before switching the outputs to their idle state
  921. */
  922. #define HRTIM_OUTPUTBURSTMODEENTRY_REGULAR ((uint32_t)0x00000000U) /*!< The programmed Idle state is applied immediately to the Output. */
  923. #define HRTIM_OUTPUTBURSTMODEENTRY_DELAYED (HRTIM_OUTR_DIDL1) /*!< Deadtime is inserted on output before entering the idle mode. */
  924. /**
  925. * @}
  926. */
  927. /** @defgroup HRTIM_Capture_Unit_Trigger HRTIM Capture Unit Trigger
  928. * @{
  929. * @brief Constants defining the events that can be selected to trigger the
  930. * capture of the timing unit counter
  931. */
  932. #define HRTIM_CAPTURETRIGGER_NONE ((uint32_t)0x00000000U) /*!< Capture trigger is disabled. */
  933. #define HRTIM_CAPTURETRIGGER_UPDATE (HRTIM_CPT1CR_UPDCPT) /*!< The update event triggers the Capture. */
  934. #define HRTIM_CAPTURETRIGGER_EEV_1 (HRTIM_CPT1CR_EXEV1CPT) /*!< The External event 1 triggers the Capture. */
  935. #define HRTIM_CAPTURETRIGGER_EEV_2 (HRTIM_CPT1CR_EXEV2CPT) /*!< The External event 2 triggers the Capture. */
  936. #define HRTIM_CAPTURETRIGGER_EEV_3 (HRTIM_CPT1CR_EXEV3CPT) /*!< The External event 3 triggers the Capture. */
  937. #define HRTIM_CAPTURETRIGGER_EEV_4 (HRTIM_CPT1CR_EXEV4CPT) /*!< The External event 4 triggers the Capture. */
  938. #define HRTIM_CAPTURETRIGGER_EEV_5 (HRTIM_CPT1CR_EXEV5CPT) /*!< The External event 5 triggers the Capture. */
  939. #define HRTIM_CAPTURETRIGGER_EEV_6 (HRTIM_CPT1CR_EXEV6CPT) /*!< The External event 6 triggers the Capture. */
  940. #define HRTIM_CAPTURETRIGGER_EEV_7 (HRTIM_CPT1CR_EXEV7CPT) /*!< The External event 7 triggers the Capture. */
  941. #define HRTIM_CAPTURETRIGGER_EEV_8 (HRTIM_CPT1CR_EXEV8CPT) /*!< The External event 8 triggers the Capture. */
  942. #define HRTIM_CAPTURETRIGGER_EEV_9 (HRTIM_CPT1CR_EXEV9CPT) /*!< The External event 9 triggers the Capture. */
  943. #define HRTIM_CAPTURETRIGGER_EEV_10 (HRTIM_CPT1CR_EXEV10CPT) /*!< The External event 10 triggers the Capture. */
  944. #define HRTIM_CAPTURETRIGGER_TA1_SET (HRTIM_CPT1CR_TA1SET) /*!< Capture is triggered by TA1 output inactive to active transition. */
  945. #define HRTIM_CAPTURETRIGGER_TA1_RESET (HRTIM_CPT1CR_TA1RST) /*!< Capture is triggered by TA1 output active to inactive transition. */
  946. #define HRTIM_CAPTURETRIGGER_TIMERA_CMP1 (HRTIM_CPT1CR_TIMACMP1) /*!< Timer A Compare 1 triggers Capture. */
  947. #define HRTIM_CAPTURETRIGGER_TIMERA_CMP2 (HRTIM_CPT1CR_TIMACMP2) /*!< Timer A Compare 2 triggers Capture. */
  948. #define HRTIM_CAPTURETRIGGER_TB1_SET (HRTIM_CPT1CR_TB1SET) /*!< Capture is triggered by TB1 output inactive to active transition. */
  949. #define HRTIM_CAPTURETRIGGER_TB1_RESET (HRTIM_CPT1CR_TB1RST) /*!< Capture is triggered by TB1 output active to inactive transition. */
  950. #define HRTIM_CAPTURETRIGGER_TIMERB_CMP1 (HRTIM_CPT1CR_TIMBCMP1) /*!< Timer B Compare 1 triggers Capture. */
  951. #define HRTIM_CAPTURETRIGGER_TIMERB_CMP2 (HRTIM_CPT1CR_TIMBCMP2) /*!< Timer B Compare 2 triggers Capture. */
  952. #define HRTIM_CAPTURETRIGGER_TC1_SET (HRTIM_CPT1CR_TC1SET) /*!< Capture is triggered by TC1 output inactive to active transition. */
  953. #define HRTIM_CAPTURETRIGGER_TC1_RESET (HRTIM_CPT1CR_TC1RST) /*!< Capture is triggered by TC1 output active to inactive transition. */
  954. #define HRTIM_CAPTURETRIGGER_TIMERC_CMP1 (HRTIM_CPT1CR_TIMCCMP1) /*!< Timer C Compare 1 triggers Capture. */
  955. #define HRTIM_CAPTURETRIGGER_TIMERC_CMP2 (HRTIM_CPT1CR_TIMCCMP2) /*!< Timer C Compare 2 triggers Capture. */
  956. #define HRTIM_CAPTURETRIGGER_TD1_SET (HRTIM_CPT1CR_TD1SET) /*!< Capture is triggered by TD1 output inactive to active transition. */
  957. #define HRTIM_CAPTURETRIGGER_TD1_RESET (HRTIM_CPT1CR_TD1RST) /*!< Capture is triggered by TD1 output active to inactive transition. */
  958. #define HRTIM_CAPTURETRIGGER_TIMERD_CMP1 (HRTIM_CPT1CR_TIMDCMP1) /*!< Timer D Compare 1 triggers Capture. */
  959. #define HRTIM_CAPTURETRIGGER_TIMERD_CMP2 (HRTIM_CPT1CR_TIMDCMP2) /*!< Timer D Compare 2 triggers Capture. */
  960. #define HRTIM_CAPTURETRIGGER_TE1_SET (HRTIM_CPT1CR_TE1SET) /*!< Capture is triggered by TE1 output inactive to active transition. */
  961. #define HRTIM_CAPTURETRIGGER_TE1_RESET (HRTIM_CPT1CR_TE1RST) /*!< Capture is triggered by TE1 output active to inactive transition. */
  962. #define HRTIM_CAPTURETRIGGER_TIMERE_CMP1 (HRTIM_CPT1CR_TIMECMP1) /*!< Timer E Compare 1 triggers Capture. */
  963. #define HRTIM_CAPTURETRIGGER_TIMERE_CMP2 (HRTIM_CPT1CR_TIMECMP2) /*!< Timer E Compare 2 triggers Capture. */
  964. /**
  965. * @}
  966. */
  967. /** @defgroup HRTIM_Timer_External_Event_Filter HRTIM Timer External Event Filter
  968. * @{
  969. * @brief Constants defining the event filtering apploed to external events
  970. * by a timer
  971. */
  972. #define HRTIM_TIMEVENTFILTER_NONE (0x00000000U)
  973. #define HRTIM_TIMEVENTFILTER_BLANKINGCMP1 (HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from counter reset/roll-over to Compare 1 */
  974. #define HRTIM_TIMEVENTFILTER_BLANKINGCMP2 (HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from counter reset/roll-over to Compare 2 */
  975. #define HRTIM_TIMEVENTFILTER_BLANKINGCMP3 (HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from counter reset/roll-over to Compare 3 */
  976. #define HRTIM_TIMEVENTFILTER_BLANKINGCMP4 (HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from counter reset/roll-over to Compare 4 */
  977. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR1 source */
  978. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR2 source */
  979. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR3 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR3 source */
  980. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR4 (HRTIM_EEFR1_EE1FLTR_3) /*!< Blanking from another timing unit: TIMFLTR4 source */
  981. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR5 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR5 source */
  982. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR6 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR6 source */
  983. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR7 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR7 source */
  984. #define HRTIM_TIMEVENTFILTER_BLANKINGFLTR8 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from another timing unit: TIMFLTR8 source */
  985. #define HRTIM_TIMEVENTFILTER_WINDOWINGCMP2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Windowing from counter reset/roll-over to Compare 2 */
  986. #define HRTIM_TIMEVENTFILTER_WINDOWINGCMP3 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Windowing from counter reset/roll-over to Compare 3 */
  987. #define HRTIM_TIMEVENTFILTER_WINDOWINGTIM (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Windowing from another timing unit: TIMWIN source */
  988. /**
  989. * @}
  990. */
  991. /** @defgroup HRTIM_Timer_External_Event_Latch HRTIM Timer External Event Latch
  992. * @{
  993. * @brief Constants defining whether or not the external event is
  994. * memorized (latched) and generated as soon as the blanking period
  995. * is completed or the window ends
  996. */
  997. #define HRTIM_TIMEVENTLATCH_DISABLED ((uint32_t)0x00000000U) /*!< Event is ignored if it happens during a blank, or passed through during a window. */
  998. #define HRTIM_TIMEVENTLATCH_ENABLED HRTIM_EEFR1_EE1LTCH /*!< Event is latched and delayed till the end of the blanking or windowing period. */
  999. /**
  1000. * @}
  1001. */
  1002. /** @defgroup HRTIM_Deadtime_Prescaler_Ratio HRTIM Deadtime Prescaler Ratio
  1003. * @{
  1004. * @brief Constants defining division ratio between the timer clock frequency
  1005. * (fHRTIM) and the deadtime generator clock (fDTG)
  1006. */
  1007. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL8 ((uint32_t)0x00000000U) /*!< fDTG = fHRTIM * 8. */
  1008. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL4 (HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM * 4. */
  1009. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL2 (HRTIM_DTR_DTPRSC_1) /*!< fDTG = fHRTIM * 2. */
  1010. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV1 (HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM. */
  1011. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV2 (HRTIM_DTR_DTPRSC_2) /*!< fDTG = fHRTIM / 2. */
  1012. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV4 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM / 4. */
  1013. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV8 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1) /*!< fDTG = fHRTIM / 8. */
  1014. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV16 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM / 16. */
  1015. /**
  1016. * @}
  1017. */
  1018. /** @defgroup HRTIM_Deadtime_Rising_Sign HRTIM Deadtime Rising Sign
  1019. * @{
  1020. * @brief Constants defining whether the deadtime is positive or negative
  1021. * (overlapping signal) on rising edge
  1022. */
  1023. #define HRTIM_TIMDEADTIME_RISINGSIGN_POSITIVE ((uint32_t)0x00000000U) /*!< Positive deadtime on rising edge. */
  1024. #define HRTIM_TIMDEADTIME_RISINGSIGN_NEGATIVE (HRTIM_DTR_SDTR) /*!< Negative deadtime on rising edge. */
  1025. /**
  1026. * @}
  1027. */
  1028. /** @defgroup HRTIM_Deadtime_Rising_Lock HRTIM Deadtime Rising Lock
  1029. * @{
  1030. * @brief Constants defining whether or not the deadtime (rising sign and
  1031. * value) is write protected
  1032. */
  1033. #define HRTIM_TIMDEADTIME_RISINGLOCK_WRITE ((uint32_t)0x00000000U) /*!< Deadtime rising value and sign is writeable. */
  1034. #define HRTIM_TIMDEADTIME_RISINGLOCK_READONLY (HRTIM_DTR_DTRLK) /*!< Deadtime rising value and sign is read-only. */
  1035. /**
  1036. * @}
  1037. */
  1038. /** @defgroup HRTIM_Deadtime_Rising_Sign_Lock HRTIM Deadtime Rising Sign Lock
  1039. * @{
  1040. * @brief Constants defining whether or not the deadtime rising sign is write
  1041. * protected
  1042. */
  1043. #define HRTIM_TIMDEADTIME_RISINGSIGNLOCK_WRITE ((uint32_t)0x00000000U) /*!< Deadtime rising sign is writable. */
  1044. #define HRTIM_TIMDEADTIME_RISINGSIGNLOCK_READONLY (HRTIM_DTR_DTRSLK) /*!< Deadtime rising sign is read-only. */
  1045. /**
  1046. * @}
  1047. */
  1048. /** @defgroup HRTIM_Deadtime_Falling_Sign HRTIM Deadtime Falling Sign
  1049. * @{
  1050. * @brief Constants defining whether the deadtime is positive or negative
  1051. * (overlapping signal) on falling edge
  1052. */
  1053. #define HRTIM_TIMDEADTIME_FALLINGSIGN_POSITIVE ((uint32_t)0x00000000U) /*!< Positive deadtime on falling edge. */
  1054. #define HRTIM_TIMDEADTIME_FALLINGSIGN_NEGATIVE (HRTIM_DTR_SDTF) /*!< Negative deadtime on falling edge. */
  1055. /**
  1056. * @}
  1057. */
  1058. /** @defgroup HRTIM_Deadtime_Falling_Lock HRTIM Deadtime Falling Lock
  1059. * @{
  1060. * @brief Constants defining whether or not the deadtime (falling sign and
  1061. * value) is write protected
  1062. */
  1063. #define HRTIM_TIMDEADTIME_FALLINGLOCK_WRITE ((uint32_t)0x00000000U) /*!< Deadtime falling value and sign is writeable. */
  1064. #define HRTIM_TIMDEADTIME_FALLINGLOCK_READONLY (HRTIM_DTR_DTFLK) /*!< Deadtime falling value and sign is read-only. */
  1065. /**
  1066. * @}
  1067. */
  1068. /** @defgroup HRTIM_Deadtime_Falling_Sign_Lock HRTIM Deadtime Falling Sign Lock
  1069. * @{
  1070. * @brief Constants defining whether or not the deadtime falling sign is write
  1071. * protected
  1072. */
  1073. #define HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_WRITE ((uint32_t)0x00000000U) /*!< Deadtime falling sign is writeable. */
  1074. #define HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_READONLY (HRTIM_DTR_DTFSLK) /*!< Deadtime falling sign is read-only. */
  1075. /**
  1076. * @}
  1077. */
  1078. /** @defgroup HRTIM_Chopper_Frequency HRTIM Chopper Frequency
  1079. * @{
  1080. * @brief Constants defining the frequency of the generated high frequency carrier
  1081. */
  1082. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV16 ((uint32_t)0x000000U) /*!< fCHPFRQ = fHRTIM / 16. */
  1083. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV32 (HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 32. */
  1084. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV48 (HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 48. */
  1085. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV64 (HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 64. */
  1086. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV80 (HRTIM_CHPR_CARFRQ_2) /*!< fCHPFRQ = fHRTIM / 80. */
  1087. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV96 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 96. */
  1088. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV112 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 112. */
  1089. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV128 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 128. */
  1090. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV144 (HRTIM_CHPR_CARFRQ_3) /*!< fCHPFRQ = fHRTIM / 144. */
  1091. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV160 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 160. */
  1092. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV176 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 176. */
  1093. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV192 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 192. */
  1094. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV208 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2) /*!< fCHPFRQ = fHRTIM / 208. */
  1095. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV224 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 224. */
  1096. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV240 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 240. */
  1097. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV256 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 256. */
  1098. /**
  1099. * @}
  1100. */
  1101. /** @defgroup HRTIM_Chopper_Duty_Cycle HRTIM Chopper Duty Cycle
  1102. * @{
  1103. * @brief Constants defining the duty cycle of the generated high frequency carrier
  1104. * Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8)
  1105. */
  1106. #define HRTIM_CHOPPER_DUTYCYCLE_0 ((uint32_t)0x000000U) /*!< Only 1st pulse is present. */
  1107. #define HRTIM_CHOPPER_DUTYCYCLE_125 (HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 12.5 %. */
  1108. #define HRTIM_CHOPPER_DUTYCYCLE_250 (HRTIM_CHPR_CARDTY_1) /*!< Duty cycle of the carrier signal is 25 %. */
  1109. #define HRTIM_CHOPPER_DUTYCYCLE_375 (HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 37.5 %. */
  1110. #define HRTIM_CHOPPER_DUTYCYCLE_500 (HRTIM_CHPR_CARDTY_2) /*!< Duty cycle of the carrier signal is 50 %. */
  1111. #define HRTIM_CHOPPER_DUTYCYCLE_625 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 62.5 %. */
  1112. #define HRTIM_CHOPPER_DUTYCYCLE_750 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1) /*!< Duty cycle of the carrier signal is 75 %. */
  1113. #define HRTIM_CHOPPER_DUTYCYCLE_875 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 87.5 %. */
  1114. /**
  1115. * @}
  1116. */
  1117. /** @defgroup HRTIM_Chopper_Start_Pulse_Width HRTIM Chopper Start Pulse Width
  1118. * @{
  1119. * @brief Constants defining the pulse width of the first pulse of the generated
  1120. * high frequency carrier
  1121. */
  1122. #define HRTIM_CHOPPER_PULSEWIDTH_16 ((uint32_t)0x000000U) /*!< tSTPW = tHRTIM x 16. */
  1123. #define HRTIM_CHOPPER_PULSEWIDTH_32 (HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 32. */
  1124. #define HRTIM_CHOPPER_PULSEWIDTH_48 (HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 48. */
  1125. #define HRTIM_CHOPPER_PULSEWIDTH_64 (HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 64. */
  1126. #define HRTIM_CHOPPER_PULSEWIDTH_80 (HRTIM_CHPR_STRPW_2) /*!< tSTPW = tHRTIM x 80. */
  1127. #define HRTIM_CHOPPER_PULSEWIDTH_96 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 96. */
  1128. #define HRTIM_CHOPPER_PULSEWIDTH_112 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 112. */
  1129. #define HRTIM_CHOPPER_PULSEWIDTH_128 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 128. */
  1130. #define HRTIM_CHOPPER_PULSEWIDTH_144 (HRTIM_CHPR_STRPW_3) /*!< tSTPW = tHRTIM x 144. */
  1131. #define HRTIM_CHOPPER_PULSEWIDTH_160 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 160. */
  1132. #define HRTIM_CHOPPER_PULSEWIDTH_176 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 176. */
  1133. #define HRTIM_CHOPPER_PULSEWIDTH_192 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 192. */
  1134. #define HRTIM_CHOPPER_PULSEWIDTH_208 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2) /*!< tSTPW = tHRTIM x 208. */
  1135. #define HRTIM_CHOPPER_PULSEWIDTH_224 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 224. */
  1136. #define HRTIM_CHOPPER_PULSEWIDTH_240 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 240. */
  1137. #define HRTIM_CHOPPER_PULSEWIDTH_256 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 256. */
  1138. /**
  1139. * @}
  1140. */
  1141. /** @defgroup HRTIM_Synchronization_Options HRTIM Synchronization Options
  1142. * @{
  1143. * @brief Constants defining the options for synchronizing multiple HRTIM
  1144. * instances, as a master unit (generating a synchronization signal)
  1145. * or as a slave (waiting for a trigger to be synchronized)
  1146. */
  1147. #define HRTIM_SYNCOPTION_NONE ((uint32_t)0x00000000U) /*!< HRTIM instance doesn't handle external synchronization signals (SYNCIN, SYNCOUT). */
  1148. #define HRTIM_SYNCOPTION_MASTER ((uint32_t)0x00000001U) /*!< HRTIM instance acts as a MASTER, i.e. generates external synchronization output (SYNCOUT).*/
  1149. #define HRTIM_SYNCOPTION_SLAVE ((uint32_t)0x00000002U) /*!< HRTIM instance acts as a SLAVE, i.e. it is synchronized by external sources (SYNCIN). */
  1150. /**
  1151. * @}
  1152. */
  1153. /** @defgroup HRTIM_Synchronization_Input_Source HRTIM Synchronization Input Source
  1154. * @{
  1155. * @brief Constants defining defining the synchronization input source
  1156. */
  1157. #define HRTIM_SYNCINPUTSOURCE_NONE ((uint32_t)0x00000000U) /*!< disabled. HRTIM is not synchronized and runs in standalone mode. */
  1158. #define HRTIM_SYNCINPUTSOURCE_INTERNALEVENT HRTIM_MCR_SYNC_IN_1 /*!< The HRTIM is synchronized with the on-chip timer. */
  1159. #define HRTIM_SYNCINPUTSOURCE_EXTERNALEVENT (HRTIM_MCR_SYNC_IN_1 | HRTIM_MCR_SYNC_IN_0) /*!< A positive pulse on SYNCIN input triggers the HRTIM. */
  1160. /**
  1161. * @}
  1162. */
  1163. /** @defgroup HRTIM_Synchronization_Output_Source HRTIM Synchronization Output Source
  1164. * @{
  1165. * @brief Constants defining the source and event to be sent on the
  1166. * synchronization outputs
  1167. */
  1168. #define HRTIM_SYNCOUTPUTSOURCE_MASTER_START ((uint32_t)0x00000000U) /*!< A pulse is sent on the SYNCOUT output upon master timer start event. */
  1169. #define HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1 (HRTIM_MCR_SYNC_SRC_0) /*!< A pulse is sent on the SYNCOUT output upon master timer compare 1 event. */
  1170. #define HRTIM_SYNCOUTPUTSOURCE_TIMA_START (HRTIM_MCR_SYNC_SRC_1) /*!< A pulse is sent on the SYNCOUT output upon timer A start or reset events. */
  1171. #define HRTIM_SYNCOUTPUTSOURCE_TIMA_CMP1 (HRTIM_MCR_SYNC_SRC_1 | HRTIM_MCR_SYNC_SRC_0) /*!< A pulse is sent on the SYNCOUT output upon timer A compare 1 event. */
  1172. /**
  1173. * @}
  1174. */
  1175. /** @defgroup HRTIM_Synchronization_Output_Polarity HRTIM Synchronization Output Polarity
  1176. * @{
  1177. * @brief Constants defining the routing and conditioning of the synchronization output event
  1178. */
  1179. #define HRTIM_SYNCOUTPUTPOLARITY_NONE ((uint32_t)0x00000000U) /*!< Synchronization output event is disabled. */
  1180. #define HRTIM_SYNCOUTPUTPOLARITY_POSITIVE (HRTIM_MCR_SYNC_OUT_1) /*!< SCOUT pin has a low idle level and issues a positive pulse of 16 fHRTIM clock cycles length for the synchronization. */
  1181. #define HRTIM_SYNCOUTPUTPOLARITY_NEGATIVE (HRTIM_MCR_SYNC_OUT_1 | HRTIM_MCR_SYNC_OUT_0) /*!< SCOUT pin has a high idle level and issues a negative pulse of 16 fHRTIM clock cycles length for the synchronization. */
  1182. /**
  1183. * @}
  1184. */
  1185. /** @defgroup HRTIM_External_Event_Sources HRTIM External Event Sources
  1186. * @{
  1187. * @brief Constants defining available sources associated to external events
  1188. */
  1189. #define HRTIM_EVENTSRC_1 ((uint32_t)0x00000000U) /*!< External event source 1. */
  1190. #define HRTIM_EVENTSRC_2 (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2. */
  1191. #define HRTIM_EVENTSRC_3 (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3. */
  1192. #define HRTIM_EVENTSRC_4 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4. */
  1193. /**
  1194. * @}
  1195. */
  1196. /** @defgroup HRTIM_External_Event_Polarity HRTIM External Event Polarity
  1197. * @{
  1198. * @brief Constants defining the polarity of an external event
  1199. */
  1200. #define HRTIM_EVENTPOLARITY_HIGH ((uint32_t)0x00000000U) /*!< External event is active high. */
  1201. #define HRTIM_EVENTPOLARITY_LOW (HRTIM_EECR1_EE1POL) /*!< External event is active low. */
  1202. /**
  1203. * @}
  1204. */
  1205. /** @defgroup HRTIM_External_Event_Sensitivity HRTIM External Event Sensitivity
  1206. * @{
  1207. * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive)
  1208. * of an external event
  1209. */
  1210. #define HRTIM_EVENTSENSITIVITY_LEVEL ((uint32_t)0x00000000U) /*!< External event is active on level. */
  1211. #define HRTIM_EVENTSENSITIVITY_RISINGEDGE (HRTIM_EECR1_EE1SNS_0) /*!< External event is active on Rising edge. */
  1212. #define HRTIM_EVENTSENSITIVITY_FALLINGEDGE (HRTIM_EECR1_EE1SNS_1) /*!< External event is active on Falling edge. */
  1213. #define HRTIM_EVENTSENSITIVITY_BOTHEDGES (HRTIM_EECR1_EE1SNS_1 | HRTIM_EECR1_EE1SNS_0) /*!< External event is active on Rising and Falling edges. */
  1214. /**
  1215. * @}
  1216. */
  1217. /** @defgroup HRTIM_External_Event_Fast_Mode HRTIM External Event Fast Mode
  1218. * @{
  1219. * @brief Constants defining whether or not an external event is programmed in
  1220. fast mode
  1221. */
  1222. #define HRTIM_EVENTFASTMODE_DISABLE ((uint32_t)0x00000000U) /*!< External Event is acting asynchronously on outputs (low latency mode). */
  1223. #define HRTIM_EVENTFASTMODE_ENABLE (HRTIM_EECR1_EE1FAST) /*!< External Event is re-synchronized by the HRTIM logic before acting on outputs. */
  1224. /**
  1225. * @}
  1226. */
  1227. /** @defgroup HRTIM_External_Event_Filter HRTIM External Event Filter
  1228. * @{
  1229. * @brief Constants defining the frequency used to sample an external event 6
  1230. * input and the length (N) of the digital filter applied
  1231. */
  1232. #define HRTIM_EVENTFILTER_NONE ((uint32_t)0x00000000U) /*!< Filter disabled. */
  1233. #define HRTIM_EVENTFILTER_1 (HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fHRTIM, N=2. */
  1234. #define HRTIM_EVENTFILTER_2 (HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fHRTIM, N=4. */
  1235. #define HRTIM_EVENTFILTER_3 (HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fHRTIM, N=8. */
  1236. #define HRTIM_EVENTFILTER_4 (HRTIM_EECR3_EE6F_2) /*!< fSAMPLING= fEEVS/2, N=6. */
  1237. #define HRTIM_EVENTFILTER_5 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/2, N=8. */
  1238. #define HRTIM_EVENTFILTER_6 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fEEVS/4, N=6. */
  1239. #define HRTIM_EVENTFILTER_7 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/4, N=8. */
  1240. #define HRTIM_EVENTFILTER_8 (HRTIM_EECR3_EE6F_3) /*!< fSAMPLING= fEEVS/8, N=6. */
  1241. #define HRTIM_EVENTFILTER_9 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/8, N=8. */
  1242. #define HRTIM_EVENTFILTER_10 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fEEVS/16, N=5. */
  1243. #define HRTIM_EVENTFILTER_11 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/16, N=6. */
  1244. #define HRTIM_EVENTFILTER_12 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2) /*!< fSAMPLING= fEEVS/16, N=8. */
  1245. #define HRTIM_EVENTFILTER_13 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/32, N=5. */
  1246. #define HRTIM_EVENTFILTER_14 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fEEVS/32, N=6. */
  1247. #define HRTIM_EVENTFILTER_15 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/32, N=8. */
  1248. /**
  1249. * @}
  1250. */
  1251. /** @defgroup HRTIM_External_Event_Prescaler HRTIM External Event Prescaler
  1252. * @{
  1253. * @brief Constants defining division ratio between the timer clock frequency
  1254. * fHRTIM) and the external event signal sampling clock (fEEVS)
  1255. * used by the digital filters
  1256. */
  1257. #define HRTIM_EVENTPRESCALER_DIV1 ((uint32_t)0x00000000U) /*!< fEEVS=fHRTIM. */
  1258. #define HRTIM_EVENTPRESCALER_DIV2 (HRTIM_EECR3_EEVSD_0) /*!< fEEVS=fHRTIM / 2. */
  1259. #define HRTIM_EVENTPRESCALER_DIV4 (HRTIM_EECR3_EEVSD_1) /*!< fEEVS=fHRTIM / 4. */
  1260. #define HRTIM_EVENTPRESCALER_DIV8 (HRTIM_EECR3_EEVSD_1 | HRTIM_EECR3_EEVSD_0) /*!< fEEVS=fHRTIM / 8. */
  1261. /**
  1262. * @}
  1263. */
  1264. /** @defgroup HRTIM_Fault_Sources HRTIM Fault Sources
  1265. * @{
  1266. * @brief Constants defining whether a faults is be triggered by any external
  1267. * or internal fault source
  1268. */
  1269. #define HRTIM_FAULTSOURCE_DIGITALINPUT ((uint32_t)0x00000000U) /*!< Fault input is FLT input pin. */
  1270. #define HRTIM_FAULTSOURCE_INTERNAL (HRTIM_FLTINR1_FLT1SRC) /*!< Fault input is FLT_Int signal (e.g. internal comparator). */
  1271. /**
  1272. * @}
  1273. */
  1274. /** @defgroup HRTIM_Fault_Polarity HRTIM Fault Polarity
  1275. * @{
  1276. * @brief Constants defining the polarity of a fault event
  1277. */
  1278. #define HRTIM_FAULTPOLARITY_LOW ((uint32_t)0x00000000U) /*!< Fault input is active low. */
  1279. #define HRTIM_FAULTPOLARITY_HIGH (HRTIM_FLTINR1_FLT1P) /*!< Fault input is active high. */
  1280. /**
  1281. * @}
  1282. */
  1283. /** @defgroup HRTIM_Fault_Filter HRTIM Fault Filter
  1284. * @{
  1285. * @ brief Constants defining the frequency used to sample the fault input and
  1286. * the length (N) of the digital filter applied
  1287. */
  1288. #define HRTIM_FAULTFILTER_NONE ((uint32_t)0x00000000U) /*!< Filter disabled. */
  1289. #define HRTIM_FAULTFILTER_1 (HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fHRTIM, N=2. */
  1290. #define HRTIM_FAULTFILTER_2 (HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fHRTIM, N=4. */
  1291. #define HRTIM_FAULTFILTER_3 (HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fHRTIM, N=8. */
  1292. #define HRTIM_FAULTFILTER_4 (HRTIM_FLTINR1_FLT1F_2) /*!< fSAMPLING= fFLTS/2, N=6. */
  1293. #define HRTIM_FAULTFILTER_5 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/2, N=8. */
  1294. #define HRTIM_FAULTFILTER_6 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/4, N=6. */
  1295. #define HRTIM_FAULTFILTER_7 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/4, N=8. */
  1296. #define HRTIM_FAULTFILTER_8 (HRTIM_FLTINR1_FLT1F_3) /*!< fSAMPLING= fFLTS/8, N=6. */
  1297. #define HRTIM_FAULTFILTER_9 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/8, N=8. */
  1298. #define HRTIM_FAULTFILTER_10 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/16, N=5. */
  1299. #define HRTIM_FAULTFILTER_11 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/16, N=6. */
  1300. #define HRTIM_FAULTFILTER_12 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2) /*!< fSAMPLING= fFLTS/16, N=8. */
  1301. #define HRTIM_FAULTFILTER_13 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/32, N=5. */
  1302. #define HRTIM_FAULTFILTER_14 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/32, N=6. */
  1303. #define HRTIM_FAULTFILTER_15 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/32, N=8. */
  1304. /**
  1305. * @}
  1306. */
  1307. /** @defgroup HRTIM_Fault_Lock HRTIM Fault Lock
  1308. * @{
  1309. * @brief Constants defining whether or not the fault programming bits are
  1310. write protected
  1311. */
  1312. #define HRTIM_FAULTLOCK_READWRITE ((uint32_t)0x00000000U) /*!< Fault settings bits are read/write. */
  1313. #define HRTIM_FAULTLOCK_READONLY (HRTIM_FLTINR1_FLT1LCK) /*!< Fault settings bits are read only. */
  1314. /**
  1315. * @}
  1316. */
  1317. /** @defgroup HRTIM_External_Fault_Prescaler HRTIM External Fault Prescaler
  1318. * @{
  1319. * @brief Constants defining the division ratio between the timer clock
  1320. * frequency (fHRTIM) and the fault signal sampling clock (fFLTS) used
  1321. * by the digital filters.
  1322. */
  1323. #define HRTIM_FAULTPRESCALER_DIV1 ((uint32_t)0x00000000U) /*!< fFLTS=fHRTIM. */
  1324. #define HRTIM_FAULTPRESCALER_DIV2 (HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS=fHRTIM / 2. */
  1325. #define HRTIM_FAULTPRESCALER_DIV4 (HRTIM_FLTINR2_FLTSD_1) /*!< fFLTS=fHRTIM / 4. */
  1326. #define HRTIM_FAULTPRESCALER_DIV8 (HRTIM_FLTINR2_FLTSD_1 | HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS=fHRTIM / 8. */
  1327. /**
  1328. * @}
  1329. */
  1330. /** @defgroup HRTIM_Burst_Mode_Operating_Mode HRTIM Burst Mode Operating Mode
  1331. * @{
  1332. * @brief Constants defining if the burst mode is entered once or if it is
  1333. * continuously operating
  1334. */
  1335. #define HRTIM_BURSTMODE_SINGLESHOT ((uint32_t)0x00000000U) /*!< Burst mode operates in single shot mode. */
  1336. #define HRTIM_BURSTMODE_CONTINOUS (HRTIM_BMCR_BMOM) /*!< Burst mode operates in continuous mode. */
  1337. /**
  1338. * @}
  1339. */
  1340. /** @defgroup HRTIM_Burst_Mode_Clock_Source HRTIM Burst Mode Clock Source
  1341. * @{
  1342. * @brief Constants defining the clock source for the burst mode counter
  1343. */
  1344. #define HRTIM_BURSTMODECLOCKSOURCE_MASTER ((uint32_t)0x00000000U) /*!< Master timer counter reset/roll-over is used as clock source for the burst mode counter. */
  1345. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_A (HRTIM_BMCR_BMCLK_0) /*!< Timer A counter reset/roll-over is used as clock source for the burst mode counter. */
  1346. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_B (HRTIM_BMCR_BMCLK_1) /*!< Timer B counter reset/roll-over is used as clock source for the burst mode counter. */
  1347. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_C (HRTIM_BMCR_BMCLK_1 | HRTIM_BMCR_BMCLK_0) /*!< Timer C counter reset/roll-over is used as clock source for the burst mode counter. */
  1348. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_D (HRTIM_BMCR_BMCLK_2) /*!< Timer D counter reset/roll-over is used as clock source for the burst mode counter. */
  1349. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_E (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_0) /*!< Timer E counter reset/roll-over is used as clock source for the burst mode counter. */
  1350. #define HRTIM_BURSTMODECLOCKSOURCE_TIM16_OC (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_1) /*!< On-chip Event 1 (BMClk[1]), acting as a burst mode counter clock. */
  1351. #define HRTIM_BURSTMODECLOCKSOURCE_TIM17_OC (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_1 | HRTIM_BMCR_BMCLK_0) /*!< On-chip Event 2 (BMClk[2]), acting as a burst mode counter clock. */
  1352. #define HRTIM_BURSTMODECLOCKSOURCE_TIM7_TRGO (HRTIM_BMCR_BMCLK_3) /*!< On-chip Event 3 (BMClk[3]), acting as a burst mode counter clock. */
  1353. #define HRTIM_BURSTMODECLOCKSOURCE_FHRTIM (HRTIM_BMCR_BMCLK_3 | HRTIM_BMCR_BMCLK_1) /*!< Prescaled fHRTIM clock is used as clock source for the burst mode counter. */
  1354. /**
  1355. * @}
  1356. */
  1357. /** @defgroup HRTIM_Burst_Mode_Prescaler HRTIM Burst Mode Prescaler
  1358. * @{
  1359. * @brief Constants defining the prescaling ratio of the fHRTIM clock
  1360. * for the burst mode controller
  1361. */
  1362. #define HRTIM_BURSTMODEPRESCALER_DIV1 ((uint32_t)0x00000000U) /*!< fBRST = fHRTIM. */
  1363. #define HRTIM_BURSTMODEPRESCALER_DIV2 (HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/2. */
  1364. #define HRTIM_BURSTMODEPRESCALER_DIV4 (HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/4. */
  1365. #define HRTIM_BURSTMODEPRESCALER_DIV8 (HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/8. */
  1366. #define HRTIM_BURSTMODEPRESCALER_DIV16 (HRTIM_BMCR_BMPRSC_2) /*!< fBRST = fHRTIM/16. */
  1367. #define HRTIM_BURSTMODEPRESCALER_DIV32 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32. */
  1368. #define HRTIM_BURSTMODEPRESCALER_DIV64 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/64. */
  1369. #define HRTIM_BURSTMODEPRESCALER_DIV128 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/128. */
  1370. #define HRTIM_BURSTMODEPRESCALER_DIV256 (HRTIM_BMCR_BMPRSC_3) /*!< fBRST = fHRTIM/256. */
  1371. #define HRTIM_BURSTMODEPRESCALER_DIV512 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/512. */
  1372. #define HRTIM_BURSTMODEPRESCALER_DIV1024 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/1024. */
  1373. #define HRTIM_BURSTMODEPRESCALER_DIV2048 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/2048. */
  1374. #define HRTIM_BURSTMODEPRESCALER_DIV4096 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2) /*!< fBRST = fHRTIM/4096. */
  1375. #define HRTIM_BURSTMODEPRESCALER_DIV8192 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/8192. */
  1376. #define HRTIM_BURSTMODEPRESCALER_DIV16384 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/16384. */
  1377. #define HRTIM_BURSTMODEPRESCALER_DIV32768 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32768. */
  1378. /**
  1379. * @}
  1380. */
  1381. /** @defgroup HRTIM_Burst_Mode_Register_Preload_Enable HRTIM Burst Mode Register Preload Enable
  1382. * @{
  1383. * @brief Constants defining whether or not burst mode registers preload
  1384. mechanism is enabled, i.e. a write access into a preloadable register
  1385. (HRTIM_BMCMPR, HRTIM_BMPER) is done into the active or the preload register
  1386. */
  1387. #define HRIM_BURSTMODEPRELOAD_DISABLED ((uint32_t)0x00000000U) /*!< Preload disabled: the write access is directly done into active registers. */
  1388. #define HRIM_BURSTMODEPRELOAD_ENABLED (HRTIM_BMCR_BMPREN) /*!< Preload enabled: the write access is done into preload registers. */
  1389. /**
  1390. * @}
  1391. */
  1392. /** @defgroup HRTIM_Burst_Mode_Trigger HRTIM Burst Mode Trigger
  1393. * @{
  1394. * @brief Constants defining the events that can be used tor trig the burst
  1395. * mode operation
  1396. */
  1397. #define HRTIM_BURSTMODETRIGGER_NONE ((uint32_t)0x00000000U) /*!< No trigger. */
  1398. #define HRTIM_BURSTMODETRIGGER_MASTER_RESET (HRTIM_BMTRGR_MSTRST) /*!< Master reset. */
  1399. #define HRTIM_BURSTMODETRIGGER_MASTER_REPETITION (HRTIM_BMTRGR_MSTREP) /*!< Master repetition. */
  1400. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP1 (HRTIM_BMTRGR_MSTCMP1) /*!< Master compare 1. */
  1401. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP2 (HRTIM_BMTRGR_MSTCMP2) /*!< Master compare 2. */
  1402. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP3 (HRTIM_BMTRGR_MSTCMP3) /*!< Master compare 3. */
  1403. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP4 (HRTIM_BMTRGR_MSTCMP4) /*!< Master compare 4. */
  1404. #define HRTIM_BURSTMODETRIGGER_TIMERA_RESET (HRTIM_BMTRGR_TARST) /*!< Timer A reset. */
  1405. #define HRTIM_BURSTMODETRIGGER_TIMERA_REPETITION (HRTIM_BMTRGR_TAREP) /*!< Timer A repetition. */
  1406. #define HRTIM_BURSTMODETRIGGER_TIMERA_CMP1 (HRTIM_BMTRGR_TACMP1) /*!< Timer A compare 1. */
  1407. #define HRTIM_BURSTMODETRIGGER_TIMERA_CMP2 (HRTIM_BMTRGR_TACMP2) /*!< Timer A compare 2. */
  1408. #define HRTIM_BURSTMODETRIGGER_TIMERB_RESET (HRTIM_BMTRGR_TBRST) /*!< Timer B reset. */
  1409. #define HRTIM_BURSTMODETRIGGER_TIMERB_REPETITION (HRTIM_BMTRGR_TBREP) /*!< Timer B repetition. */
  1410. #define HRTIM_BURSTMODETRIGGER_TIMERB_CMP1 (HRTIM_BMTRGR_TBCMP1) /*!< Timer B compare 1. */
  1411. #define HRTIM_BURSTMODETRIGGER_TIMERB_CMP2 (HRTIM_BMTRGR_TBCMP2) /*!< Timer B compare 2. */
  1412. #define HRTIM_BURSTMODETRIGGER_TIMERC_RESET (HRTIM_BMTRGR_TCRST) /*!< Timer C reset. */
  1413. #define HRTIM_BURSTMODETRIGGER_TIMERC_REPETITION (HRTIM_BMTRGR_TCREP) /*!< Timer C repetition. */
  1414. #define HRTIM_BURSTMODETRIGGER_TIMERC_CMP1 (HRTIM_BMTRGR_TCCMP1) /*!< Timer C compare 1. */
  1415. #define HRTIM_BURSTMODETRIGGER_TIMERC_CMP2 (HRTIM_BMTRGR_TCCMP2) /*!< Timer C compare 2. */
  1416. #define HRTIM_BURSTMODETRIGGER_TIMERD_RESET (HRTIM_BMTRGR_TDRST) /*!< Timer D reset. */
  1417. #define HRTIM_BURSTMODETRIGGER_TIMERD_REPETITION (HRTIM_BMTRGR_TDREP) /*!< Timer D repetition. */
  1418. #define HRTIM_BURSTMODETRIGGER_TIMERD_CMP1 (HRTIM_BMTRGR_TDCMP1) /*!< Timer D compare 1. */
  1419. #define HRTIM_BURSTMODETRIGGER_TIMERD_CMP2 (HRTIM_BMTRGR_TDCMP2) /*!< Timer D compare 2. */
  1420. #define HRTIM_BURSTMODETRIGGER_TIMERE_RESET (HRTIM_BMTRGR_TERST) /*!< Timer E reset. */
  1421. #define HRTIM_BURSTMODETRIGGER_TIMERE_REPETITION (HRTIM_BMTRGR_TEREP) /*!< Timer E repetition. */
  1422. #define HRTIM_BURSTMODETRIGGER_TIMERE_CMP1 (HRTIM_BMTRGR_TECMP1) /*!< Timer E compare 1. */
  1423. #define HRTIM_BURSTMODETRIGGER_TIMERE_CMP2 (HRTIM_BMTRGR_TECMP2) /*!< Timer E compare 2. */
  1424. #define HRTIM_BURSTMODETRIGGER_TIMERA_EVENT7 (HRTIM_BMTRGR_TAEEV7) /*!< Timer A period following External Event 7. */
  1425. #define HRTIM_BURSTMODETRIGGER_TIMERD_EVENT8 (HRTIM_BMTRGR_TDEEV8) /*!< Timer D period following External Event 8. */
  1426. #define HRTIM_BURSTMODETRIGGER_EVENT_7 (HRTIM_BMTRGR_EEV7) /*!< External Event 7 (timer A filters applied). */
  1427. #define HRTIM_BURSTMODETRIGGER_EVENT_8 (HRTIM_BMTRGR_EEV8) /*!< External Event 8 (timer D filters applied). */
  1428. #define HRTIM_BURSTMODETRIGGER_EVENT_ONCHIP (HRTIM_BMTRGR_OCHPEV) /*!< On-chip Event */
  1429. /**
  1430. * @}
  1431. */
  1432. /** @defgroup HRTIM_ADC_Trigger_Update_Source HRTIM ADC Trigger Update Source
  1433. * @{
  1434. * @brief constants defining the source triggering the update of the
  1435. HRTIM_ADCxR register (transfer from preload to active register).
  1436. */
  1437. #define HRTIM_ADCTRIGGERUPDATE_MASTER ((uint32_t)0x00000000U) /*!< Master timer. */
  1438. #define HRTIM_ADCTRIGGERUPDATE_TIMER_A (HRTIM_CR1_ADC1USRC_0) /*!< Timer A. */
  1439. #define HRTIM_ADCTRIGGERUPDATE_TIMER_B (HRTIM_CR1_ADC1USRC_1) /*!< Timer B. */
  1440. #define HRTIM_ADCTRIGGERUPDATE_TIMER_C (HRTIM_CR1_ADC1USRC_1 | HRTIM_CR1_ADC1USRC_0) /*!< Timer C. */
  1441. #define HRTIM_ADCTRIGGERUPDATE_TIMER_D (HRTIM_CR1_ADC1USRC_2) /*!< Timer D. */
  1442. #define HRTIM_ADCTRIGGERUPDATE_TIMER_E (HRTIM_CR1_ADC1USRC_2 | HRTIM_CR1_ADC1USRC_0) /*!< Timer E. */
  1443. /**
  1444. * @}
  1445. */
  1446. /** @defgroup HRTIM_ADC_Trigger_Event HRTIM ADC Trigger Event
  1447. * @{
  1448. * @brief constants defining the events triggering ADC conversion.
  1449. * HRTIM_ADCTRIGGEREVENT13_*: ADC Triggers 1 and 3
  1450. * HRTIM_ADCTRIGGEREVENT24_*: ADC Triggers 2 and 4
  1451. */
  1452. #define HRTIM_ADCTRIGGEREVENT13_NONE ((uint32_t)0x00000000U) /*!< No ADC trigger event. */
  1453. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP1 (HRTIM_ADC1R_AD1MC1) /*!< ADC Trigger on master compare 1. */
  1454. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP2 (HRTIM_ADC1R_AD1MC2) /*!< ADC Trigger on master compare 2. */
  1455. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP3 (HRTIM_ADC1R_AD1MC3) /*!< ADC Trigger on master compare 3. */
  1456. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP4 (HRTIM_ADC1R_AD1MC4) /*!< ADC Trigger on master compare 4. */
  1457. #define HRTIM_ADCTRIGGEREVENT13_MASTER_PERIOD (HRTIM_ADC1R_AD1MPER) /*!< ADC Trigger on master period. */
  1458. #define HRTIM_ADCTRIGGEREVENT13_EVENT_1 (HRTIM_ADC1R_AD1EEV1) /*!< ADC Trigger on external event 1. */
  1459. #define HRTIM_ADCTRIGGEREVENT13_EVENT_2 (HRTIM_ADC1R_AD1EEV2) /*!< ADC Trigger on external event 2. */
  1460. #define HRTIM_ADCTRIGGEREVENT13_EVENT_3 (HRTIM_ADC1R_AD1EEV3) /*!< ADC Trigger on external event 3. */
  1461. #define HRTIM_ADCTRIGGEREVENT13_EVENT_4 (HRTIM_ADC1R_AD1EEV4) /*!< ADC Trigger on external event 4. */
  1462. #define HRTIM_ADCTRIGGEREVENT13_EVENT_5 (HRTIM_ADC1R_AD1EEV5) /*!< ADC Trigger on external event 5. */
  1463. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP2 (HRTIM_ADC1R_AD1TAC2) /*!< ADC Trigger on Timer A compare 2. */
  1464. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP3 (HRTIM_ADC1R_AD1TAC3) /*!< ADC Trigger on Timer A compare 3. */
  1465. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP4 (HRTIM_ADC1R_AD1TAC4) /*!< ADC Trigger on Timer A compare 4. */
  1466. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_PERIOD (HRTIM_ADC1R_AD1TAPER) /*!< ADC Trigger on Timer A period. */
  1467. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_RESET (HRTIM_ADC1R_AD1TARST) /*!< ADC Trigger on Timer A reset. */
  1468. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP2 (HRTIM_ADC1R_AD1TBC2) /*!< ADC Trigger on Timer B compare 2. */
  1469. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP3 (HRTIM_ADC1R_AD1TBC3) /*!< ADC Trigger on Timer B compare 3. */
  1470. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP4 (HRTIM_ADC1R_AD1TBC4) /*!< ADC Trigger on Timer B compare 4. */
  1471. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_PERIOD (HRTIM_ADC1R_AD1TBPER) /*!< ADC Trigger on Timer B period. */
  1472. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_RESET (HRTIM_ADC1R_AD1TBRST) /*!< ADC Trigger on Timer B reset. */
  1473. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP2 (HRTIM_ADC1R_AD1TCC2) /*!< ADC Trigger on Timer C compare 2. */
  1474. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP3 (HRTIM_ADC1R_AD1TCC3) /*!< ADC Trigger on Timer C compare 3. */
  1475. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP4 (HRTIM_ADC1R_AD1TCC4) /*!< ADC Trigger on Timer C compare 4. */
  1476. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_PERIOD (HRTIM_ADC1R_AD1TCPER) /*!< ADC Trigger on Timer C period. */
  1477. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP2 (HRTIM_ADC1R_AD1TDC2) /*!< ADC Trigger on Timer D compare 2. */
  1478. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP3 (HRTIM_ADC1R_AD1TDC3) /*!< ADC Trigger on Timer D compare 3. */
  1479. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP4 (HRTIM_ADC1R_AD1TDC4) /*!< ADC Trigger on Timer D compare 4. */
  1480. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_PERIOD (HRTIM_ADC1R_AD1TDPER) /*!< ADC Trigger on Timer D period. */
  1481. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP2 (HRTIM_ADC1R_AD1TEC2) /*!< ADC Trigger on Timer E compare 2. */
  1482. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP3 (HRTIM_ADC1R_AD1TEC3) /*!< ADC Trigger on Timer E compare 3. */
  1483. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP4 (HRTIM_ADC1R_AD1TEC4) /*!< ADC Trigger on Timer E compare 4. */
  1484. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_PERIOD (HRTIM_ADC1R_AD1TEPER) /*!< ADC Trigger on Timer E period. */
  1485. #define HRTIM_ADCTRIGGEREVENT24_NONE ((uint32_t)0x00000000U) /*!< No ADC trigger event. */
  1486. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP1 (HRTIM_ADC2R_AD2MC1) /*!< ADC Trigger on master compare 1. */
  1487. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP2 (HRTIM_ADC2R_AD2MC2) /*!< ADC Trigger on master compare 2. */
  1488. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP3 (HRTIM_ADC2R_AD2MC3) /*!< ADC Trigger on master compare 3. */
  1489. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP4 (HRTIM_ADC2R_AD2MC4) /*!< ADC Trigger on master compare 4. */
  1490. #define HRTIM_ADCTRIGGEREVENT24_MASTER_PERIOD (HRTIM_ADC2R_AD2MPER) /*!< ADC Trigger on master period. */
  1491. #define HRTIM_ADCTRIGGEREVENT24_EVENT_6 (HRTIM_ADC2R_AD2EEV6) /*!< ADC Trigger on external event 6. */
  1492. #define HRTIM_ADCTRIGGEREVENT24_EVENT_7 (HRTIM_ADC2R_AD2EEV7) /*!< ADC Trigger on external event 7. */
  1493. #define HRTIM_ADCTRIGGEREVENT24_EVENT_8 (HRTIM_ADC2R_AD2EEV8) /*!< ADC Trigger on external event 8. */
  1494. #define HRTIM_ADCTRIGGEREVENT24_EVENT_9 (HRTIM_ADC2R_AD2EEV9) /*!< ADC Trigger on external event 9. */
  1495. #define HRTIM_ADCTRIGGEREVENT24_EVENT_10 (HRTIM_ADC2R_AD2EEV10) /*!< ADC Trigger on external event 10. */
  1496. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP2 (HRTIM_ADC2R_AD2TAC2) /*!< ADC Trigger on Timer A compare 2. */
  1497. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP3 (HRTIM_ADC2R_AD2TAC3) /*!< ADC Trigger on Timer A compare 3. */
  1498. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP4 (HRTIM_ADC2R_AD2TAC4) /*!< ADC Trigger on Timer A compare 4. */
  1499. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_PERIOD (HRTIM_ADC2R_AD2TAPER) /*!< ADC Trigger on Timer A period. */
  1500. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP2 (HRTIM_ADC2R_AD2TBC2) /*!< ADC Trigger on Timer B compare 2. */
  1501. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP3 (HRTIM_ADC2R_AD2TBC3) /*!< ADC Trigger on Timer B compare 3. */
  1502. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP4 (HRTIM_ADC2R_AD2TBC4) /*!< ADC Trigger on Timer B compare 4. */
  1503. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_PERIOD (HRTIM_ADC2R_AD2TBPER) /*!< ADC Trigger on Timer B period. */
  1504. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP2 (HRTIM_ADC2R_AD2TCC2) /*!< ADC Trigger on Timer C compare 2. */
  1505. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP3 (HRTIM_ADC2R_AD2TCC3) /*!< ADC Trigger on Timer C compare 3. */
  1506. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP4 (HRTIM_ADC2R_AD2TCC4) /*!< ADC Trigger on Timer C compare 4. */
  1507. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_PERIOD (HRTIM_ADC2R_AD2TCPER) /*!< ADC Trigger on Timer C period. */
  1508. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_RESET (HRTIM_ADC2R_AD2TCRST) /*!< ADC Trigger on Timer C reset. */
  1509. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP2 (HRTIM_ADC2R_AD2TDC2) /*!< ADC Trigger on Timer D compare 2. */
  1510. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP3 (HRTIM_ADC2R_AD2TDC3) /*!< ADC Trigger on Timer D compare 3. */
  1511. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP4 (HRTIM_ADC2R_AD2TDC4) /*!< ADC Trigger on Timer D compare 4. */
  1512. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_PERIOD (HRTIM_ADC2R_AD2TDPER) /*!< ADC Trigger on Timer D period. */
  1513. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_RESET (HRTIM_ADC2R_AD2TDRST) /*!< ADC Trigger on Timer D reset. */
  1514. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP2 (HRTIM_ADC2R_AD2TEC2) /*!< ADC Trigger on Timer E compare 2 .*/
  1515. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP3 (HRTIM_ADC2R_AD2TEC3) /*!< ADC Trigger on Timer E compare 3. */
  1516. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP4 (HRTIM_ADC2R_AD2TEC4) /*!< ADC Trigger on Timer E compare 4. */
  1517. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_RESET (HRTIM_ADC2R_AD2TERST) /*!< ADC Trigger on Timer E reset. */
  1518. /**
  1519. * @}
  1520. */
  1521. /** @defgroup HRTIM_Burst_DMA_Registers_Update HRTIM Burst DMA Registers Update
  1522. * @{
  1523. * @brief Constants defining the registers that can be written during a burst
  1524. * DMA operation
  1525. */
  1526. #define HRTIM_BURSTDMA_NONE ((uint32_t)0x00000000U) /*!< No register is updated by Burst DMA accesses. */
  1527. #define HRTIM_BURSTDMA_CR (HRTIM_BDTUPR_TIMCR) /*!< MCR or TIMxCR register is updated by Burst DMA accesses. */
  1528. #define HRTIM_BURSTDMA_ICR (HRTIM_BDTUPR_TIMICR) /*!< MICR or TIMxICR register is updated by Burst DMA accesses. */
  1529. #define HRTIM_BURSTDMA_DIER (HRTIM_BDTUPR_TIMDIER) /*!< MDIER or TIMxDIER register is updated by Burst DMA accesses. */
  1530. #define HRTIM_BURSTDMA_CNT (HRTIM_BDTUPR_TIMCNT) /*!< MCNTR or CNTxCR register is updated by Burst DMA accesses. */
  1531. #define HRTIM_BURSTDMA_PER (HRTIM_BDTUPR_TIMPER) /*!< MPER or PERxR register is updated by Burst DMA accesses. */
  1532. #define HRTIM_BURSTDMA_REP (HRTIM_BDTUPR_TIMREP) /*!< MREPR or REPxR register is updated by Burst DMA accesses. */
  1533. #define HRTIM_BURSTDMA_CMP1 (HRTIM_BDTUPR_TIMCMP1) /*!< MCMP1R or CMP1xR register is updated by Burst DMA accesses. */
  1534. #define HRTIM_BURSTDMA_CMP2 (HRTIM_BDTUPR_TIMCMP2) /*!< MCMP2R or CMP2xR register is updated by Burst DMA accesses. */
  1535. #define HRTIM_BURSTDMA_CMP3 (HRTIM_BDTUPR_TIMCMP3) /*!< MCMP3R or CMP3xR register is updated by Burst DMA accesses. */
  1536. #define HRTIM_BURSTDMA_CMP4 (HRTIM_BDTUPR_TIMCMP4) /*!< MCMP4R or CMP4xR register is updated by Burst DMA accesses. */
  1537. #define HRTIM_BURSTDMA_DTR (HRTIM_BDTUPR_TIMDTR) /*!< TDxR register is updated by Burst DMA accesses. */
  1538. #define HRTIM_BURSTDMA_SET1R (HRTIM_BDTUPR_TIMSET1R) /*!< SET1R register is updated by Burst DMA accesses. */
  1539. #define HRTIM_BURSTDMA_RST1R (HRTIM_BDTUPR_TIMRST1R) /*!< RST1R register is updated by Burst DMA accesses. */
  1540. #define HRTIM_BURSTDMA_SET2R (HRTIM_BDTUPR_TIMSET2R) /*!< SET2R register is updated by Burst DMA accesses. */
  1541. #define HRTIM_BURSTDMA_RST2R (HRTIM_BDTUPR_TIMRST2R) /*!< RST1R register is updated by Burst DMA accesses. */
  1542. #define HRTIM_BURSTDMA_EEFR1 (HRTIM_BDTUPR_TIMEEFR1) /*!< EEFxR1 register is updated by Burst DMA accesses. */
  1543. #define HRTIM_BURSTDMA_EEFR2 (HRTIM_BDTUPR_TIMEEFR2) /*!< EEFxR2 register is updated by Burst DMA accesses. */
  1544. #define HRTIM_BURSTDMA_RSTR (HRTIM_BDTUPR_TIMRSTR) /*!< RSTxR register is updated by Burst DMA accesses. */
  1545. #define HRTIM_BURSTDMA_CHPR (HRTIM_BDTUPR_TIMCHPR) /*!< CHPxR register is updated by Burst DMA accesses. */
  1546. #define HRTIM_BURSTDMA_OUTR (HRTIM_BDTUPR_TIMOUTR) /*!< OUTxR register is updated by Burst DMA accesses. */
  1547. #define HRTIM_BURSTDMA_FLTR (HRTIM_BDTUPR_TIMFLTR) /*!< FLTxR register is updated by Burst DMA accesses. */
  1548. /**
  1549. * @}
  1550. */
  1551. /** @defgroup HRTIM_Burst_Mode_Control HRTIM Burst Mode Control
  1552. * @{
  1553. * @brief Constants used to enable or disable the burst mode controller
  1554. */
  1555. #define HRTIM_BURSTMODECTL_DISABLED ((uint32_t)0x00000000U) /*!< Burst mode disabled. */
  1556. #define HRTIM_BURSTMODECTL_ENABLED (HRTIM_BMCR_BME) /*!< Burst mode enabled. */
  1557. /**
  1558. * @}
  1559. */
  1560. /** @defgroup HRTIM_Fault_Mode_Control HRTIM Fault Mode Control
  1561. * @{
  1562. * @brief Constants used to enable or disable a fault channel
  1563. */
  1564. #define HRTIM_FAULTMODECTL_DISABLED ((uint32_t)0x00000000U) /*!< Fault channel is disabled. */
  1565. #define HRTIM_FAULTMODECTL_ENABLED ((uint32_t)0x00000001U) /*!< Fault channel is enabled. */
  1566. /**
  1567. * @}
  1568. */
  1569. /** @defgroup HRTIM_Software_Timer_Update HRTIM Software Timer Update
  1570. * @{
  1571. * @brief Constants used to force timer registers update
  1572. */
  1573. #define HRTIM_TIMERUPDATE_MASTER (HRTIM_CR2_MSWU) /*!< Forces an immediate transfer from the preload to the active register in the master timer. */
  1574. #define HRTIM_TIMERUPDATE_A (HRTIM_CR2_TASWU) /*!< Forces an immediate transfer from the preload to the active register in the timer A. */
  1575. #define HRTIM_TIMERUPDATE_B (HRTIM_CR2_TBSWU) /*!< Forces an immediate transfer from the preload to the active register in the timer B. */
  1576. #define HRTIM_TIMERUPDATE_C (HRTIM_CR2_TCSWU) /*!< Forces an immediate transfer from the preload to the active register in the timer C. */
  1577. #define HRTIM_TIMERUPDATE_D (HRTIM_CR2_TDSWU) /*!< Forces an immediate transfer from the preload to the active register in the timer D. */
  1578. #define HRTIM_TIMERUPDATE_E (HRTIM_CR2_TESWU) /*!< Forces an immediate transfer from the preload to the active register in the timer E. */
  1579. /**
  1580. * @}
  1581. */
  1582. /** @defgroup HRTIM_Software_Timer_Reset HRTIM Software Timer Reset
  1583. * @{
  1584. * @brief Constants used to force timer counter reset
  1585. */
  1586. #define HRTIM_TIMERRESET_MASTER (HRTIM_CR2_MRST) /*!< Resets the master timer counter. */
  1587. #define HRTIM_TIMERRESET_TIMER_A (HRTIM_CR2_TARST) /*!< Resets the timer A counter. */
  1588. #define HRTIM_TIMERRESET_TIMER_B (HRTIM_CR2_TBRST) /*!< Resets the timer B counter. */
  1589. #define HRTIM_TIMERRESET_TIMER_C (HRTIM_CR2_TCRST) /*!< Resets the timer C counter. */
  1590. #define HRTIM_TIMERRESET_TIMER_D (HRTIM_CR2_TDRST) /*!< Resets the timer D counter. */
  1591. #define HRTIM_TIMERRESET_TIMER_E (HRTIM_CR2_TERST) /*!< Resets the timer E counter. */
  1592. /**
  1593. * @}
  1594. */
  1595. /** @defgroup HRTIM_Output_Level HRTIM Output Level
  1596. * @{
  1597. * @brief Constants defining the level of a timer output
  1598. */
  1599. #define HRTIM_OUTPUTLEVEL_ACTIVE ((uint32_t)0x00000001U) /*!< Forces the output to its active state. */
  1600. #define HRTIM_OUTPUTLEVEL_INACTIVE ((uint32_t)0x00000002U) /*!< Forces the output to its inactive state. */
  1601. /**
  1602. * @}
  1603. */
  1604. /** @defgroup HRTIM_Output_State HRTIM Output State
  1605. * @{
  1606. * @brief Constants defining the state of a timer output
  1607. */
  1608. #define HRTIM_OUTPUTSTATE_IDLE ((uint32_t)0x00000001U) /*!< Main operating mode, where the output can take the active or
  1609. inactive level as programmed in the crossbar unit. */
  1610. #define HRTIM_OUTPUTSTATE_RUN ((uint32_t)0x00000002U) /*!< Default operating state (e.g. after an HRTIM reset, when the
  1611. outputs are disabled by software or during a burst mode operation. */
  1612. #define HRTIM_OUTPUTSTATE_FAULT ((uint32_t)0x00000003U) /*!< Safety state, entered in case of a shut-down request on
  1613. FAULTx inputs. */
  1614. /**
  1615. * @}
  1616. */
  1617. /** @defgroup HRTIM_Burst_Mode_Status HRTIM Burst Mode Status
  1618. * @{
  1619. * @brief Constants defining the operating state of the burst mode controller
  1620. */
  1621. #define HRTIM_BURSTMODESTATUS_NORMAL ((uint32_t) 0x00000000U) /*!< Normal operation. */
  1622. #define HRTIM_BURSTMODESTATUS_ONGOING (HRTIM_BMCR_BMSTAT) /*!< Burst operation on-going. */
  1623. /**
  1624. * @}
  1625. */
  1626. /** @defgroup HRTIM_Current_Push_Pull_Status HRTIM Current Push Pull Status
  1627. * @{
  1628. * @brief Constants defining on which output the signal is currently applied
  1629. * in push-pull mode
  1630. */
  1631. #define HRTIM_PUSHPULL_CURRENTSTATUS_OUTPUT1 ((uint32_t) 0x00000000U) /*!< Signal applied on output 1 and output 2 forced inactive. */
  1632. #define HRTIM_PUSHPULL_CURRENTSTATUS_OUTPUT2 (HRTIM_TIMISR_CPPSTAT) /*!< Signal applied on output 2 and output 1 forced inactive. */
  1633. /**
  1634. * @}
  1635. */
  1636. /** @defgroup HRTIM_Idle_Push_Pull_Status HRTIM Idle Push Pull Status
  1637. * @{
  1638. * @brief Constants defining on which output the signal was applied, in
  1639. * push-pull mode balanced fault mode or delayed idle mode, when the
  1640. * protection was triggered
  1641. */
  1642. #define HRTIM_PUSHPULL_IDLESTATUS_OUTPUT1 ((uint32_t) 0x00000000U) /*!< Protection occurred when the output 1 was active and output 2 forced inactive. */
  1643. #define HRTIM_PUSHPULL_IDLESTATUS_OUTPUT2 (HRTIM_TIMISR_IPPSTAT) /*!< Protection occurred when the output 2 was active and output 1 forced inactive. */
  1644. /**
  1645. * @}
  1646. */
  1647. /** @defgroup HRTIM_Common_Interrupt_Enable HRTIM Common Interrupt Enable
  1648. * @{
  1649. */
  1650. #define HRTIM_IT_NONE ((uint32_t)0x00000000U) /*!< No interrupt enabled. */
  1651. #define HRTIM_IT_FLT1 HRTIM_IER_FLT1 /*!< Fault 1 interrupt enable. */
  1652. #define HRTIM_IT_FLT2 HRTIM_IER_FLT2 /*!< Fault 2 interrupt enable. */
  1653. #define HRTIM_IT_FLT3 HRTIM_IER_FLT3 /*!< Fault 3 interrupt enable. */
  1654. #define HRTIM_IT_FLT4 HRTIM_IER_FLT4 /*!< Fault 4 interrupt enable. */
  1655. #define HRTIM_IT_FLT5 HRTIM_IER_FLT5 /*!< Fault 5 interrupt enable. */
  1656. #define HRTIM_IT_SYSFLT HRTIM_IER_SYSFLT /*!< System Fault interrupt enable. */
  1657. #define HRTIM_IT_BMPER HRTIM_IER_BMPER /*!< Burst mode period interrupt enable. */
  1658. /**
  1659. * @}
  1660. */
  1661. /** @defgroup HRTIM_Master_Interrupt_Enable HRTIM Master Interrupt Enable
  1662. * @{
  1663. */
  1664. #define HRTIM_MASTER_IT_NONE ((uint32_t)0x00000000U) /*!< No interrupt enabled. */
  1665. #define HRTIM_MASTER_IT_MCMP1 HRTIM_MDIER_MCMP1IE /*!< Master compare 1 interrupt enable. */
  1666. #define HRTIM_MASTER_IT_MCMP2 HRTIM_MDIER_MCMP2IE /*!< Master compare 2 interrupt enable. */
  1667. #define HRTIM_MASTER_IT_MCMP3 HRTIM_MDIER_MCMP3IE /*!< Master compare 3 interrupt enable. */
  1668. #define HRTIM_MASTER_IT_MCMP4 HRTIM_MDIER_MCMP4IE /*!< Master compare 4 interrupt enable. */
  1669. #define HRTIM_MASTER_IT_MREP HRTIM_MDIER_MREPIE /*!< Master Repetition interrupt enable. */
  1670. #define HRTIM_MASTER_IT_SYNC HRTIM_MDIER_SYNCIE /*!< Synchronization input interrupt enable. */
  1671. #define HRTIM_MASTER_IT_MUPD HRTIM_MDIER_MUPDIE /*!< Master update interrupt enable. */
  1672. /**
  1673. * @}
  1674. */
  1675. /** @defgroup HRTIM_Timing_Unit_Interrupt_Enable HRTIM Timing Unit Interrupt Enable
  1676. * @{
  1677. */
  1678. #define HRTIM_TIM_IT_NONE ((uint32_t)0x00000000U) /*!< No interrupt enabled. */
  1679. #define HRTIM_TIM_IT_CMP1 HRTIM_TIMDIER_CMP1IE /*!< Timer compare 1 interrupt enable. */
  1680. #define HRTIM_TIM_IT_CMP2 HRTIM_TIMDIER_CMP2IE /*!< Timer compare 2 interrupt enable. */
  1681. #define HRTIM_TIM_IT_CMP3 HRTIM_TIMDIER_CMP3IE /*!< Timer compare 3 interrupt enable. */
  1682. #define HRTIM_TIM_IT_CMP4 HRTIM_TIMDIER_CMP4IE /*!< Timer compare 4 interrupt enable. */
  1683. #define HRTIM_TIM_IT_REP HRTIM_TIMDIER_REPIE /*!< Timer repetition interrupt enable. */
  1684. #define HRTIM_TIM_IT_UPD HRTIM_TIMDIER_UPDIE /*!< Timer update interrupt enable. */
  1685. #define HRTIM_TIM_IT_CPT1 HRTIM_TIMDIER_CPT1IE /*!< Timer capture 1 interrupt enable. */
  1686. #define HRTIM_TIM_IT_CPT2 HRTIM_TIMDIER_CPT2IE /*!< Timer capture 2 interrupt enable. */
  1687. #define HRTIM_TIM_IT_SET1 HRTIM_TIMDIER_SET1IE /*!< Timer output 1 set interrupt enable. */
  1688. #define HRTIM_TIM_IT_RST1 HRTIM_TIMDIER_RST1IE /*!< Timer output 1 reset interrupt enable. */
  1689. #define HRTIM_TIM_IT_SET2 HRTIM_TIMDIER_SET2IE /*!< Timer output 2 set interrupt enable. */
  1690. #define HRTIM_TIM_IT_RST2 HRTIM_TIMDIER_RST2IE /*!< Timer output 2 reset interrupt enable. */
  1691. #define HRTIM_TIM_IT_RST HRTIM_TIMDIER_RSTIE /*!< Timer reset interrupt enable. */
  1692. #define HRTIM_TIM_IT_DLYPRT HRTIM_TIMDIER_DLYPRTIE /*!< Timer delay protection interrupt enable. */
  1693. /**
  1694. * @}
  1695. */
  1696. /** @defgroup HRTIM_Common_Interrupt_Flag HRTIM Common Interrupt Flag
  1697. * @{
  1698. */
  1699. #define HRTIM_FLAG_FLT1 HRTIM_ISR_FLT1 /*!< Fault 1 interrupt flag. */
  1700. #define HRTIM_FLAG_FLT2 HRTIM_ISR_FLT2 /*!< Fault 2 interrupt flag. */
  1701. #define HRTIM_FLAG_FLT3 HRTIM_ISR_FLT3 /*!< Fault 3 interrupt flag. */
  1702. #define HRTIM_FLAG_FLT4 HRTIM_ISR_FLT4 /*!< Fault 4 interrupt flag. */
  1703. #define HRTIM_FLAG_FLT5 HRTIM_ISR_FLT5 /*!< Fault 5 interrupt flag. */
  1704. #define HRTIM_FLAG_SYSFLT HRTIM_ISR_SYSFLT /*!< System Fault interrupt flag. */
  1705. #define HRTIM_FLAG_BMPER HRTIM_ISR_BMPER /*!< Burst mode period interrupt flag. */
  1706. /**
  1707. * @}
  1708. */
  1709. /** @defgroup HRTIM_Master_Interrupt_Flag HRTIM Master Interrupt Flag
  1710. * @{
  1711. */
  1712. #define HRTIM_MASTER_FLAG_MCMP1 HRTIM_MISR_MCMP1 /*!< Master compare 1 interrupt flag. */
  1713. #define HRTIM_MASTER_FLAG_MCMP2 HRTIM_MISR_MCMP2 /*!< Master compare 2 interrupt flag. */
  1714. #define HRTIM_MASTER_FLAG_MCMP3 HRTIM_MISR_MCMP3 /*!< Master compare 3 interrupt flag. */
  1715. #define HRTIM_MASTER_FLAG_MCMP4 HRTIM_MISR_MCMP4 /*!< Master compare 4 interrupt flag. */
  1716. #define HRTIM_MASTER_FLAG_MREP HRTIM_MISR_MREP /*!< Master Repetition interrupt flag. */
  1717. #define HRTIM_MASTER_FLAG_SYNC HRTIM_MISR_SYNC /*!< Synchronization input interrupt flag. */
  1718. #define HRTIM_MASTER_FLAG_MUPD HRTIM_MISR_MUPD /*!< Master update interrupt flag. */
  1719. /**
  1720. * @}
  1721. */
  1722. /** @defgroup HRTIM_Timing_Unit_Interrupt_Flag HRTIM Timing Unit Interrupt Flag
  1723. * @{
  1724. */
  1725. #define HRTIM_TIM_FLAG_CMP1 HRTIM_TIMISR_CMP1 /*!< Timer compare 1 interrupt flag. */
  1726. #define HRTIM_TIM_FLAG_CMP2 HRTIM_TIMISR_CMP2 /*!< Timer compare 2 interrupt flag. */
  1727. #define HRTIM_TIM_FLAG_CMP3 HRTIM_TIMISR_CMP3 /*!< Timer compare 3 interrupt flag. */
  1728. #define HRTIM_TIM_FLAG_CMP4 HRTIM_TIMISR_CMP4 /*!< Timer compare 4 interrupt flag. */
  1729. #define HRTIM_TIM_FLAG_REP HRTIM_TIMISR_REP /*!< Timer repetition interrupt flag. */
  1730. #define HRTIM_TIM_FLAG_UPD HRTIM_TIMISR_UPD /*!< Timer update interrupt flag. */
  1731. #define HRTIM_TIM_FLAG_CPT1 HRTIM_TIMISR_CPT1 /*!< Timer capture 1 interrupt flag. */
  1732. #define HRTIM_TIM_FLAG_CPT2 HRTIM_TIMISR_CPT2 /*!< Timer capture 2 interrupt flag. */
  1733. #define HRTIM_TIM_FLAG_SET1 HRTIM_TIMISR_SET1 /*!< Timer output 1 set interrupt flag. */
  1734. #define HRTIM_TIM_FLAG_RST1 HRTIM_TIMISR_RST1 /*!< Timer output 1 reset interrupt flag. */
  1735. #define HRTIM_TIM_FLAG_SET2 HRTIM_TIMISR_SET2 /*!< Timer output 2 set interrupt flag. */
  1736. #define HRTIM_TIM_FLAG_RST2 HRTIM_TIMISR_RST2 /*!< Timer output 2 reset interrupt flag. */
  1737. #define HRTIM_TIM_FLAG_RST HRTIM_TIMISR_RST /*!< Timer reset interrupt flag. */
  1738. #define HRTIM_TIM_FLAG_DLYPRT HRTIM_TIMISR_DLYPRT /*!< Timer delay protection interrupt flag. */
  1739. /**
  1740. * @}
  1741. */
  1742. /** @defgroup HRTIM_Master_DMA_Request_Enable HRTIM Master DMA Request Enable
  1743. * @{
  1744. */
  1745. #define HRTIM_MASTER_DMA_NONE ((uint32_t)0x00000000U) /*!< No DMA request enable. */
  1746. #define HRTIM_MASTER_DMA_MCMP1 HRTIM_MDIER_MCMP1DE /*!< Master compare 1 DMA request enable. */
  1747. #define HRTIM_MASTER_DMA_MCMP2 HRTIM_MDIER_MCMP2DE /*!< Master compare 2 DMA request enable. */
  1748. #define HRTIM_MASTER_DMA_MCMP3 HRTIM_MDIER_MCMP3DE /*!< Master compare 3 DMA request enable. */
  1749. #define HRTIM_MASTER_DMA_MCMP4 HRTIM_MDIER_MCMP4DE /*!< Master compare 4 DMA request enable. */
  1750. #define HRTIM_MASTER_DMA_MREP HRTIM_MDIER_MREPDE /*!< Master Repetition DMA request enable. */
  1751. #define HRTIM_MASTER_DMA_SYNC HRTIM_MDIER_SYNCDE /*!< Synchronization input DMA request enable. */
  1752. #define HRTIM_MASTER_DMA_MUPD HRTIM_MDIER_MUPDDE /*!< Master update DMA request enable. */
  1753. /**
  1754. * @}
  1755. */
  1756. /** @defgroup HRTIM_Timing_Unit_DMA_Request_Enable HRTIM Timing Unit DMA Request Enable
  1757. * @{
  1758. */
  1759. #define HRTIM_TIM_DMA_NONE ((uint32_t)0x00000000U) /*!< No DMA request enable. */
  1760. #define HRTIM_TIM_DMA_CMP1 HRTIM_TIMDIER_CMP1DE /*!< Timer compare 1 DMA request enable. */
  1761. #define HRTIM_TIM_DMA_CMP2 HRTIM_TIMDIER_CMP2DE /*!< Timer compare 2 DMA request enable. */
  1762. #define HRTIM_TIM_DMA_CMP3 HRTIM_TIMDIER_CMP3DE /*!< Timer compare 3 DMA request enable. */
  1763. #define HRTIM_TIM_DMA_CMP4 HRTIM_TIMDIER_CMP4DE /*!< Timer compare 4 DMA request enable. */
  1764. #define HRTIM_TIM_DMA_REP HRTIM_TIMDIER_REPDE /*!< Timer repetition DMA request enable. */
  1765. #define HRTIM_TIM_DMA_UPD HRTIM_TIMDIER_UPDDE /*!< Timer update DMA request enable. */
  1766. #define HRTIM_TIM_DMA_CPT1 HRTIM_TIMDIER_CPT1DE /*!< Timer capture 1 DMA request enable. */
  1767. #define HRTIM_TIM_DMA_CPT2 HRTIM_TIMDIER_CPT2DE /*!< Timer capture 2 DMA request enable. */
  1768. #define HRTIM_TIM_DMA_SET1 HRTIM_TIMDIER_SET1DE /*!< Timer output 1 set DMA request enable. */
  1769. #define HRTIM_TIM_DMA_RST1 HRTIM_TIMDIER_RST1DE /*!< Timer output 1 reset DMA request enable. */
  1770. #define HRTIM_TIM_DMA_SET2 HRTIM_TIMDIER_SET2DE /*!< Timer output 2 set DMA request enable. */
  1771. #define HRTIM_TIM_DMA_RST2 HRTIM_TIMDIER_RST2DE /*!< Timer output 2 reset DMA request enable. */
  1772. #define HRTIM_TIM_DMA_RST HRTIM_TIMDIER_RSTDE /*!< Timer reset DMA request enable. */
  1773. #define HRTIM_TIM_DMA_DLYPRT HRTIM_TIMDIER_DLYPRTDE /*!< Timer delay protection DMA request enable. */
  1774. /**
  1775. * @}
  1776. */
  1777. /**
  1778. * @}
  1779. */
  1780. /* Private macros --------------------------------------------------------*/
  1781. /** @addtogroup HRTIM_Private_Macros HRTIM Private Macros
  1782. * @{
  1783. */
  1784. #define IS_HRTIM_TIMERINDEX(TIMERINDEX)\
  1785. (((TIMERINDEX) == HRTIM_TIMERINDEX_MASTER) || \
  1786. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_A) || \
  1787. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_B) || \
  1788. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_C) || \
  1789. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_D) || \
  1790. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_E))
  1791. #define IS_HRTIM_TIMING_UNIT(TIMERINDEX)\
  1792. (((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_A) || \
  1793. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_B) || \
  1794. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_C) || \
  1795. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_D) || \
  1796. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_E))
  1797. #define IS_HRTIM_COMPAREUNIT(COMPAREUNIT)\
  1798. (((COMPAREUNIT) == HRTIM_COMPAREUNIT_1) || \
  1799. ((COMPAREUNIT) == HRTIM_COMPAREUNIT_2) || \
  1800. ((COMPAREUNIT) == HRTIM_COMPAREUNIT_3) || \
  1801. ((COMPAREUNIT) == HRTIM_COMPAREUNIT_4))
  1802. #define IS_HRTIM_CAPTUREUNIT(CAPTUREUNIT)\
  1803. (((CAPTUREUNIT) == HRTIM_CAPTUREUNIT_1) || \
  1804. ((CAPTUREUNIT) == HRTIM_CAPTUREUNIT_2))
  1805. #define IS_HRTIM_OUTPUT(OUTPUT) (((OUTPUT) & 0xFFFFFC00U) == 0x00000000U)
  1806. #define IS_HRTIM_TIMER_OUTPUT(TIMER, OUTPUT)\
  1807. ((((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && \
  1808. (((OUTPUT) == HRTIM_OUTPUT_TA1) || \
  1809. ((OUTPUT) == HRTIM_OUTPUT_TA2))) \
  1810. || \
  1811. (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && \
  1812. (((OUTPUT) == HRTIM_OUTPUT_TB1) || \
  1813. ((OUTPUT) == HRTIM_OUTPUT_TB2))) \
  1814. || \
  1815. (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && \
  1816. (((OUTPUT) == HRTIM_OUTPUT_TC1) || \
  1817. ((OUTPUT) == HRTIM_OUTPUT_TC2))) \
  1818. || \
  1819. (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && \
  1820. (((OUTPUT) == HRTIM_OUTPUT_TD1) || \
  1821. ((OUTPUT) == HRTIM_OUTPUT_TD2))) \
  1822. || \
  1823. (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && \
  1824. (((OUTPUT) == HRTIM_OUTPUT_TE1) || \
  1825. ((OUTPUT) == HRTIM_OUTPUT_TE2))))
  1826. #define IS_HRTIM_ADCTRIGGER(ADCTRIGGER)\
  1827. (((ADCTRIGGER) == HRTIM_ADCTRIGGER_1) || \
  1828. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_2) || \
  1829. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_3) || \
  1830. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_4))
  1831. #define IS_HRTIM_EVENT(EVENT)\
  1832. (((EVENT) == HRTIM_EVENT_1) || \
  1833. ((EVENT) == HRTIM_EVENT_2) || \
  1834. ((EVENT) == HRTIM_EVENT_3) || \
  1835. ((EVENT) == HRTIM_EVENT_4) || \
  1836. ((EVENT) == HRTIM_EVENT_5) || \
  1837. ((EVENT) == HRTIM_EVENT_6) || \
  1838. ((EVENT) == HRTIM_EVENT_7) || \
  1839. ((EVENT) == HRTIM_EVENT_8) || \
  1840. ((EVENT) == HRTIM_EVENT_9) || \
  1841. ((EVENT) == HRTIM_EVENT_10))
  1842. #define IS_HRTIM_FAULT(FAULT)\
  1843. (((FAULT) == HRTIM_FAULT_1) || \
  1844. ((FAULT) == HRTIM_FAULT_2) || \
  1845. ((FAULT) == HRTIM_FAULT_3) || \
  1846. ((FAULT) == HRTIM_FAULT_4) || \
  1847. ((FAULT) == HRTIM_FAULT_5))
  1848. #define IS_HRTIM_PRESCALERRATIO(PRESCALERRATIO)\
  1849. (((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL32) || \
  1850. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL16) || \
  1851. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL8) || \
  1852. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL4) || \
  1853. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL2) || \
  1854. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV1) || \
  1855. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV2) || \
  1856. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV4))
  1857. #define IS_HRTIM_MODE(MODE)\
  1858. (((MODE) == HRTIM_MODE_CONTINUOUS) || \
  1859. ((MODE) == HRTIM_MODE_SINGLESHOT) || \
  1860. ((MODE) == HRTIM_MODE_SINGLESHOT_RETRIGGERABLE))
  1861. #define IS_HRTIM_MODE_ONEPULSE(MODE)\
  1862. (((MODE) == HRTIM_MODE_SINGLESHOT) || \
  1863. ((MODE) == HRTIM_MODE_SINGLESHOT_RETRIGGERABLE))
  1864. #define IS_HRTIM_HALFMODE(HALFMODE)\
  1865. (((HALFMODE) == HRTIM_HALFMODE_DISABLED) || \
  1866. ((HALFMODE) == HRTIM_HALFMODE_ENABLED))
  1867. #define IS_HRTIM_SYNCSTART(SYNCSTART)\
  1868. (((SYNCSTART) == HRTIM_SYNCSTART_DISABLED) || \
  1869. ((SYNCSTART) == HRTIM_SYNCSTART_ENABLED))
  1870. #define IS_HRTIM_SYNCRESET(SYNCRESET)\
  1871. (((SYNCRESET) == HRTIM_SYNCRESET_DISABLED) || \
  1872. ((SYNCRESET) == HRTIM_SYNCRESET_ENABLED))
  1873. #define IS_HHRTIM_DACSYNC(DACSYNC)\
  1874. (((DACSYNC) == HRTIM_DACSYNC_NONE) || \
  1875. ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_1) || \
  1876. ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_2) || \
  1877. ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_3))
  1878. #define IS_HRTIM_PRELOAD(PRELOAD)\
  1879. (((PRELOAD) == HRTIM_PRELOAD_DISABLED) || \
  1880. ((PRELOAD) == HRTIM_PRELOAD_ENABLED))
  1881. #define IS_HRTIM_UPDATEGATING_MASTER(UPDATEGATING)\
  1882. (((UPDATEGATING) == HRTIM_UPDATEGATING_INDEPENDENT) || \
  1883. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST) || \
  1884. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST_UPDATE))
  1885. #define IS_HRTIM_UPDATEGATING_TIM(UPDATEGATING)\
  1886. (((UPDATEGATING) == HRTIM_UPDATEGATING_INDEPENDENT) || \
  1887. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST) || \
  1888. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST_UPDATE) || \
  1889. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN1) || \
  1890. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN2) || \
  1891. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN3) || \
  1892. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN1_UPDATE) || \
  1893. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN2_UPDATE) || \
  1894. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN3_UPDATE))
  1895. #define IS_HRTIM_TIMERBURSTMODE(TIMERBURSTMODE) \
  1896. (((TIMERBURSTMODE) == HRTIM_TIMERBURSTMODE_MAINTAINCLOCK) || \
  1897. ((TIMERBURSTMODE) == HRTIM_TIMERBURSTMODE_RESETCOUNTER))
  1898. #define IS_HRTIM_UPDATEONREPETITION(UPDATEONREPETITION)\
  1899. (((UPDATEONREPETITION) == HRTIM_UPDATEONREPETITION_DISABLED) || \
  1900. ((UPDATEONREPETITION) == HRTIM_UPDATEONREPETITION_ENABLED))
  1901. #define IS_HRTIM_TIMPUSHPULLMODE(TIMPUSHPULLMODE)\
  1902. (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_DISABLED) || \
  1903. ((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED))
  1904. #define IS_HRTIM_TIMFAULTENABLE(TIMFAULTENABLE) (((TIMFAULTENABLE) & 0xFFFFFFE0U) == 0x00000000U)
  1905. #define IS_HRTIM_TIMFAULTLOCK(TIMFAULTLOCK)\
  1906. (((TIMFAULTLOCK) == HRTIM_TIMFAULTLOCK_READWRITE) || \
  1907. ((TIMFAULTLOCK) == HRTIM_TIMFAULTLOCK_READONLY))
  1908. #define IS_HRTIM_TIMDEADTIMEINSERTION(TIMPUSHPULLMODE, TIMDEADTIMEINSERTION)\
  1909. ((((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_DISABLED) && \
  1910. ((((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_DISABLED) || \
  1911. ((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_ENABLED)))) \
  1912. || \
  1913. (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED) && \
  1914. ((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_DISABLED)))
  1915. #define IS_HRTIM_TIMDELAYEDPROTECTION(TIMPUSHPULLMODE, TIMDELAYEDPROTECTION)\
  1916. ((((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED) || \
  1917. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6) || \
  1918. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_EEV6) || \
  1919. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV6) || \
  1920. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_DEEV7) || \
  1921. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_DEEV7) || \
  1922. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV7)) \
  1923. || \
  1924. (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED) && \
  1925. (((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV6) || \
  1926. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV7))))
  1927. #define IS_HRTIM_TIMUPDATETRIGGER(TIMUPDATETRIGGER) (((TIMUPDATETRIGGER) & 0xFE07FFFFU) == 0x00000000U)
  1928. #define IS_HRTIM_TIMUPDATETRIGGER(TIMUPDATETRIGGER) (((TIMUPDATETRIGGER) & 0xFE07FFFFU) == 0x00000000U)
  1929. #define IS_HRTIM_TIMRESETTRIGGER(TIMRESETTRIGGER) (((TIMRESETTRIGGER) & 0x800000001U) == 0x00000000U)
  1930. #define IS_HRTIM_TIMUPDATEONRESET(TIMUPDATEONRESET) \
  1931. (((TIMUPDATEONRESET) == HRTIM_TIMUPDATEONRESET_DISABLED) || \
  1932. ((TIMUPDATEONRESET) == HRTIM_TIMUPDATEONRESET_ENABLED))
  1933. #define IS_HRTIM_AUTODELAYEDMODE(AUTODELAYEDMODE)\
  1934. (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR) || \
  1935. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT) || \
  1936. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) || \
  1937. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))
  1938. /* Auto delayed mode is only available for compare units 2 and 4 */
  1939. #define IS_HRTIM_COMPAREUNIT_AUTODELAYEDMODE(COMPAREUNIT, AUTODELAYEDMODE) \
  1940. ((((COMPAREUNIT) == HRTIM_COMPAREUNIT_2) && \
  1941. (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR) || \
  1942. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT) || \
  1943. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) || \
  1944. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))) \
  1945. || \
  1946. (((COMPAREUNIT) == HRTIM_COMPAREUNIT_4) && \
  1947. (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR) || \
  1948. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT) || \
  1949. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) || \
  1950. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))))
  1951. #define IS_HRTIM_BASICOCMODE(BASICOCMODE)\
  1952. (((BASICOCMODE) == HRTIM_BASICOCMODE_TOGGLE) || \
  1953. ((BASICOCMODE) == HRTIM_BASICOCMODE_INACTIVE) || \
  1954. ((BASICOCMODE) == HRTIM_BASICOCMODE_ACTIVE))
  1955. #define IS_HRTIM_OUTPUTPOLARITY(OUTPUTPOLARITY)\
  1956. (((OUTPUTPOLARITY) == HRTIM_OUTPUTPOLARITY_HIGH) || \
  1957. ((OUTPUTPOLARITY) == HRTIM_OUTPUTPOLARITY_LOW))
  1958. #define IS_HRTIM_OUTPUTSET(OUTPUTSET)\
  1959. (((OUTPUTSET) == HRTIM_OUTPUTSET_NONE) || \
  1960. ((OUTPUTSET) == HRTIM_OUTPUTSET_RESYNC) || \
  1961. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMPER) || \
  1962. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP1) || \
  1963. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP2) || \
  1964. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP3) || \
  1965. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP4) || \
  1966. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERPER) || \
  1967. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP1) || \
  1968. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP2) || \
  1969. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP3) || \
  1970. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP4) || \
  1971. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_1) || \
  1972. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_2) || \
  1973. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_3) || \
  1974. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_4) || \
  1975. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_5) || \
  1976. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_6) || \
  1977. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_7) || \
  1978. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_8) || \
  1979. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMEV_9) || \
  1980. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_1) || \
  1981. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_2) || \
  1982. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_3) || \
  1983. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_4) || \
  1984. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_5) || \
  1985. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_6) || \
  1986. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_7) || \
  1987. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_8) || \
  1988. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_9) || \
  1989. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_10) || \
  1990. ((OUTPUTSET) == HRTIM_OUTPUTSET_UPDATE))
  1991. #define IS_HRTIM_OUTPUTRESET(OUTPUTRESET)\
  1992. (((OUTPUTRESET) == HRTIM_OUTPUTRESET_NONE) || \
  1993. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_RESYNC) || \
  1994. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMPER) || \
  1995. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP1) || \
  1996. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP2) || \
  1997. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP3) || \
  1998. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP4) || \
  1999. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERPER) || \
  2000. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP1) || \
  2001. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP2) || \
  2002. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP3) || \
  2003. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP4) || \
  2004. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_1) || \
  2005. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_2) || \
  2006. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_3) || \
  2007. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_4) || \
  2008. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_5) || \
  2009. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_6) || \
  2010. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_7) || \
  2011. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_8) || \
  2012. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMEV_9) || \
  2013. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_1) || \
  2014. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_2) || \
  2015. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_3) || \
  2016. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_4) || \
  2017. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_5) || \
  2018. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_6) || \
  2019. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_7) || \
  2020. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_8) || \
  2021. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_9) || \
  2022. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_10) || \
  2023. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_UPDATE))
  2024. #define IS_HRTIM_OUTPUTIDLEMODE(OUTPUTIDLEMODE)\
  2025. (((OUTPUTIDLEMODE) == HRTIM_OUTPUTIDLEMODE_NONE) || \
  2026. ((OUTPUTIDLEMODE) == HRTIM_OUTPUTIDLEMODE_IDLE))
  2027. #define IS_HRTIM_OUTPUTIDLELEVEL(OUTPUTIDLELEVEL)\
  2028. (((OUTPUTIDLELEVEL) == HRTIM_OUTPUTIDLELEVEL_INACTIVE) || \
  2029. ((OUTPUTIDLELEVEL) == HRTIM_OUTPUTIDLELEVEL_ACTIVE))
  2030. #define IS_HRTIM_OUTPUTFAULTLEVEL(OUTPUTFAULTLEVEL)\
  2031. (((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_NONE) || \
  2032. ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_ACTIVE) || \
  2033. ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_INACTIVE) || \
  2034. ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_HIGHZ))
  2035. #define IS_HRTIM_OUTPUTCHOPPERMODE(OUTPUTCHOPPERMODE)\
  2036. (((OUTPUTCHOPPERMODE) == HRTIM_OUTPUTCHOPPERMODE_DISABLED) || \
  2037. ((OUTPUTCHOPPERMODE) == HRTIM_OUTPUTCHOPPERMODE_ENABLED))
  2038. #define IS_HRTIM_OUTPUTBURSTMODEENTRY(OUTPUTBURSTMODEENTRY)\
  2039. (((OUTPUTBURSTMODEENTRY) == HRTIM_OUTPUTBURSTMODEENTRY_REGULAR) || \
  2040. ((OUTPUTBURSTMODEENTRY) == HRTIM_OUTPUTBURSTMODEENTRY_DELAYED))
  2041. #define IS_HRTIM_TIMER_CAPTURETRIGGER(TIMER, CAPTURETRIGGER) \
  2042. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_NONE) || \
  2043. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_UPDATE) || \
  2044. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_1) || \
  2045. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_2) || \
  2046. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_3) || \
  2047. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_4) || \
  2048. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_5) || \
  2049. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_6) || \
  2050. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_7) || \
  2051. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_8) || \
  2052. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_9) || \
  2053. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_10) \
  2054. || \
  2055. (((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && \
  2056. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2057. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2058. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2059. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2060. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2061. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2062. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2063. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2064. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2065. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2066. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2067. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2068. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2069. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2070. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2071. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2072. || \
  2073. (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && \
  2074. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2075. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2076. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2077. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2078. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2079. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2080. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2081. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2082. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2083. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2084. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2085. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2086. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2087. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2088. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2089. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2090. || \
  2091. (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && \
  2092. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2093. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2094. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2095. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2096. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2097. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2098. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2099. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2100. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2101. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2102. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2103. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2104. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2105. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2106. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2107. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2108. || \
  2109. (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && \
  2110. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2111. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2112. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2113. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2114. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2115. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2116. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2117. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2118. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2119. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2120. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2121. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2122. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2123. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2124. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2125. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2126. || \
  2127. (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && \
  2128. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2129. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2130. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2131. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2132. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2133. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2134. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2135. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2136. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2137. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2138. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2139. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2140. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2141. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2142. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2143. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2))))
  2144. #define IS_HRTIM_TIMEVENTFILTER(TIMEVENTFILTER)\
  2145. (((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_NONE) || \
  2146. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP1) || \
  2147. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP2) || \
  2148. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP3) || \
  2149. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGCMP4) || \
  2150. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR1) || \
  2151. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR2) || \
  2152. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR3) || \
  2153. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR4) || \
  2154. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR5) || \
  2155. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR6) || \
  2156. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR7) || \
  2157. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_BLANKINGFLTR8) || \
  2158. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_WINDOWINGCMP2) || \
  2159. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_WINDOWINGCMP3) || \
  2160. ((TIMEVENTFILTER) == HRTIM_TIMEVENTFILTER_WINDOWINGTIM))
  2161. #define IS_HRTIM_TIMEVENTLATCH(TIMEVENTLATCH)\
  2162. (((TIMEVENTLATCH) == HRTIM_TIMEVENTLATCH_DISABLED) || \
  2163. ((TIMEVENTLATCH) == HRTIM_TIMEVENTLATCH_ENABLED))
  2164. #define IS_HRTIM_TIMDEADTIME_PRESCALERRATIO(PRESCALERRATIO)\
  2165. (((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL8) || \
  2166. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL4) || \
  2167. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL2) || \
  2168. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV1) || \
  2169. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV2) || \
  2170. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV4) || \
  2171. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV8) || \
  2172. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV16))
  2173. #define IS_HRTIM_TIMDEADTIME_RISINGSIGN(RISINGSIGN)\
  2174. (((RISINGSIGN) == HRTIM_TIMDEADTIME_RISINGSIGN_POSITIVE) || \
  2175. ((RISINGSIGN) == HRTIM_TIMDEADTIME_RISINGSIGN_NEGATIVE))
  2176. #define IS_HRTIM_TIMDEADTIME_RISINGLOCK(RISINGLOCK)\
  2177. (((RISINGLOCK) == HRTIM_TIMDEADTIME_RISINGLOCK_WRITE) || \
  2178. ((RISINGLOCK) == HRTIM_TIMDEADTIME_RISINGLOCK_READONLY))
  2179. #define IS_HRTIM_TIMDEADTIME_RISINGSIGNLOCK(RISINGSIGNLOCK)\
  2180. (((RISINGSIGNLOCK) == HRTIM_TIMDEADTIME_RISINGSIGNLOCK_WRITE) || \
  2181. ((RISINGSIGNLOCK) == HRTIM_TIMDEADTIME_RISINGSIGNLOCK_READONLY))
  2182. #define IS_HRTIM_TIMDEADTIME_FALLINGSIGN(FALLINGSIGN)\
  2183. (((FALLINGSIGN) == HRTIM_TIMDEADTIME_FALLINGSIGN_POSITIVE) || \
  2184. ((FALLINGSIGN) == HRTIM_TIMDEADTIME_FALLINGSIGN_NEGATIVE))
  2185. #define IS_HRTIM_TIMDEADTIME_FALLINGLOCK(FALLINGLOCK)\
  2186. (((FALLINGLOCK) == HRTIM_TIMDEADTIME_FALLINGLOCK_WRITE) || \
  2187. ((FALLINGLOCK) == HRTIM_TIMDEADTIME_FALLINGLOCK_READONLY))
  2188. #define IS_HRTIM_TIMDEADTIME_FALLINGSIGNLOCK(FALLINGSIGNLOCK)\
  2189. (((FALLINGSIGNLOCK) == HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_WRITE) || \
  2190. ((FALLINGSIGNLOCK) == HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_READONLY))
  2191. #define IS_HRTIM_CHOPPER_PRESCALERRATIO(PRESCALERRATIO)\
  2192. (((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV16) || \
  2193. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV32) || \
  2194. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV48) || \
  2195. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV64) || \
  2196. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV80) || \
  2197. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV96) || \
  2198. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV112) || \
  2199. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV128) || \
  2200. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV144) || \
  2201. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV160) || \
  2202. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV176) || \
  2203. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV192) || \
  2204. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV208) || \
  2205. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV224) || \
  2206. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV240) || \
  2207. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV256))
  2208. #define IS_HRTIM_CHOPPER_DUTYCYCLE(DUTYCYCLE)\
  2209. (((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_0) || \
  2210. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_125) || \
  2211. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_250) || \
  2212. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_375) || \
  2213. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_500) || \
  2214. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_625) || \
  2215. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_750) || \
  2216. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_875))
  2217. #define IS_HRTIM_CHOPPER_PULSEWIDTH(PULSEWIDTH)\
  2218. (((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_16) || \
  2219. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_32) || \
  2220. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_48) || \
  2221. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_64) || \
  2222. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_80) || \
  2223. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_96) || \
  2224. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_112) || \
  2225. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_128) || \
  2226. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_144) || \
  2227. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_160) || \
  2228. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_176) || \
  2229. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_192) || \
  2230. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_208) || \
  2231. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_224) || \
  2232. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_240) || \
  2233. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_256))
  2234. #define IS_HRTIM_SYNCINPUTSOURCE(SYNCINPUTSOURCE)\
  2235. (((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_NONE) || \
  2236. ((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_INTERNALEVENT) || \
  2237. ((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_EXTERNALEVENT))
  2238. #define IS_HRTIM_SYNCOUTPUTSOURCE(SYNCOUTPUTSOURCE)\
  2239. (((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_MASTER_START) || \
  2240. ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1) || \
  2241. ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_TIMA_START) || \
  2242. ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_TIMA_CMP1))
  2243. #define IS_HRTIM_SYNCOUTPUTPOLARITY(SYNCOUTPUTPOLARITY)\
  2244. (((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_NONE) || \
  2245. ((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_POSITIVE) || \
  2246. ((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_NEGATIVE))
  2247. #define IS_HRTIM_EVENTSRC(EVENTSRC)\
  2248. (((EVENTSRC) == HRTIM_EVENTSRC_1) || \
  2249. ((EVENTSRC) == HRTIM_EVENTSRC_2) || \
  2250. ((EVENTSRC) == HRTIM_EVENTSRC_3) || \
  2251. ((EVENTSRC) == HRTIM_EVENTSRC_4))
  2252. #define IS_HRTIM_EVENTPOLARITY(EVENTSENSITIVITY, EVENTPOLARITY)\
  2253. ((((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_LEVEL) && \
  2254. (((EVENTPOLARITY) == HRTIM_EVENTPOLARITY_HIGH) || \
  2255. ((EVENTPOLARITY) == HRTIM_EVENTPOLARITY_LOW))) \
  2256. || \
  2257. (((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_RISINGEDGE) || \
  2258. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_FALLINGEDGE)|| \
  2259. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_BOTHEDGES)))
  2260. #define IS_HRTIM_EVENTSENSITIVITY(EVENTSENSITIVITY)\
  2261. (((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_LEVEL) || \
  2262. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_RISINGEDGE) || \
  2263. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_FALLINGEDGE) || \
  2264. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_BOTHEDGES))
  2265. #define IS_HRTIM_EVENTFASTMODE(EVENT, FASTMODE)\
  2266. (((((EVENT) == HRTIM_EVENT_1) || \
  2267. ((EVENT) == HRTIM_EVENT_2) || \
  2268. ((EVENT) == HRTIM_EVENT_3) || \
  2269. ((EVENT) == HRTIM_EVENT_4) || \
  2270. ((EVENT) == HRTIM_EVENT_5)) && \
  2271. (((FASTMODE) == HRTIM_EVENTFASTMODE_ENABLE) || \
  2272. ((FASTMODE) == HRTIM_EVENTFASTMODE_DISABLE))) \
  2273. || \
  2274. (((EVENT) == HRTIM_EVENT_6) || \
  2275. ((EVENT) == HRTIM_EVENT_7) || \
  2276. ((EVENT) == HRTIM_EVENT_8) || \
  2277. ((EVENT) == HRTIM_EVENT_9) || \
  2278. ((EVENT) == HRTIM_EVENT_10)))
  2279. #define IS_HRTIM_EVENTFILTER(EVENT, FILTER)\
  2280. ((((EVENT) == HRTIM_EVENT_1) || \
  2281. ((EVENT) == HRTIM_EVENT_2) || \
  2282. ((EVENT) == HRTIM_EVENT_3) || \
  2283. ((EVENT) == HRTIM_EVENT_4) || \
  2284. ((EVENT) == HRTIM_EVENT_5)) \
  2285. || \
  2286. ((((EVENT) == HRTIM_EVENT_6) || \
  2287. ((EVENT) == HRTIM_EVENT_7) || \
  2288. ((EVENT) == HRTIM_EVENT_8) || \
  2289. ((EVENT) == HRTIM_EVENT_9) || \
  2290. ((EVENT) == HRTIM_EVENT_10)) && \
  2291. (((FILTER) == HRTIM_EVENTFILTER_NONE) || \
  2292. ((FILTER) == HRTIM_EVENTFILTER_1) || \
  2293. ((FILTER) == HRTIM_EVENTFILTER_2) || \
  2294. ((FILTER) == HRTIM_EVENTFILTER_3) || \
  2295. ((FILTER) == HRTIM_EVENTFILTER_4) || \
  2296. ((FILTER) == HRTIM_EVENTFILTER_5) || \
  2297. ((FILTER) == HRTIM_EVENTFILTER_6) || \
  2298. ((FILTER) == HRTIM_EVENTFILTER_7) || \
  2299. ((FILTER) == HRTIM_EVENTFILTER_8) || \
  2300. ((FILTER) == HRTIM_EVENTFILTER_9) || \
  2301. ((FILTER) == HRTIM_EVENTFILTER_10) || \
  2302. ((FILTER) == HRTIM_EVENTFILTER_11) || \
  2303. ((FILTER) == HRTIM_EVENTFILTER_12) || \
  2304. ((FILTER) == HRTIM_EVENTFILTER_13) || \
  2305. ((FILTER) == HRTIM_EVENTFILTER_14) || \
  2306. ((FILTER) == HRTIM_EVENTFILTER_15))))
  2307. #define IS_HRTIM_EVENTPRESCALER(EVENTPRESCALER)\
  2308. (((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV1) || \
  2309. ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV2) || \
  2310. ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV4) || \
  2311. ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV8))
  2312. #define IS_HRTIM_FAULTSOURCE(FAULTSOURCE)\
  2313. (((FAULTSOURCE) == HRTIM_FAULTSOURCE_DIGITALINPUT) || \
  2314. ((FAULTSOURCE) == HRTIM_FAULTSOURCE_INTERNAL))
  2315. #define IS_HRTIM_FAULTPOLARITY(HRTIM_FAULTPOLARITY)\
  2316. (((HRTIM_FAULTPOLARITY) == HRTIM_FAULTPOLARITY_LOW) || \
  2317. ((HRTIM_FAULTPOLARITY) == HRTIM_FAULTPOLARITY_HIGH))
  2318. #define IS_HRTIM_FAULTFILTER(FAULTFILTER)\
  2319. (((FAULTFILTER) == HRTIM_FAULTFILTER_NONE) || \
  2320. ((FAULTFILTER) == HRTIM_FAULTFILTER_1) || \
  2321. ((FAULTFILTER) == HRTIM_FAULTFILTER_2) || \
  2322. ((FAULTFILTER) == HRTIM_FAULTFILTER_3) || \
  2323. ((FAULTFILTER) == HRTIM_FAULTFILTER_4) || \
  2324. ((FAULTFILTER) == HRTIM_FAULTFILTER_5) || \
  2325. ((FAULTFILTER) == HRTIM_FAULTFILTER_6) || \
  2326. ((FAULTFILTER) == HRTIM_FAULTFILTER_7) || \
  2327. ((FAULTFILTER) == HRTIM_FAULTFILTER_8) || \
  2328. ((FAULTFILTER) == HRTIM_FAULTFILTER_9) || \
  2329. ((FAULTFILTER) == HRTIM_FAULTFILTER_10) || \
  2330. ((FAULTFILTER) == HRTIM_FAULTFILTER_11) || \
  2331. ((FAULTFILTER) == HRTIM_FAULTFILTER_12) || \
  2332. ((FAULTFILTER) == HRTIM_FAULTFILTER_13) || \
  2333. ((FAULTFILTER) == HRTIM_FAULTFILTER_14) || \
  2334. ((FAULTFILTER) == HRTIM_FAULTFILTER_15))
  2335. #define IS_HRTIM_FAULTLOCK(FAULTLOCK)\
  2336. (((FAULTLOCK) == HRTIM_FAULTLOCK_READWRITE) || \
  2337. ((FAULTLOCK) == HRTIM_FAULTLOCK_READONLY))
  2338. #define IS_HRTIM_FAULTPRESCALER(FAULTPRESCALER)\
  2339. (((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV1) || \
  2340. ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV2) || \
  2341. ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV4) || \
  2342. ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV8))
  2343. #define IS_HRTIM_BURSTMODE(BURSTMODE)\
  2344. (((BURSTMODE) == HRTIM_BURSTMODE_SINGLESHOT) || \
  2345. ((BURSTMODE) == HRTIM_BURSTMODE_CONTINOUS))
  2346. #define IS_HRTIM_BURSTMODECLOCKSOURCE(BURSTMODECLOCKSOURCE)\
  2347. (((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_MASTER) || \
  2348. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_A) || \
  2349. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_B) || \
  2350. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_C) || \
  2351. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_D) || \
  2352. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_E) || \
  2353. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM16_OC) || \
  2354. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM17_OC) || \
  2355. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM7_TRGO) || \
  2356. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_FHRTIM))
  2357. #define IS_HRTIM_HRTIM_BURSTMODEPRESCALER(BURSTMODEPRESCALER)\
  2358. (((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV1) || \
  2359. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV2) || \
  2360. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV4) || \
  2361. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV8) || \
  2362. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV16) || \
  2363. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV32) || \
  2364. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV64) || \
  2365. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV128) || \
  2366. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV256) || \
  2367. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV512) || \
  2368. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV1024) || \
  2369. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV2048) || \
  2370. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV4096) || \
  2371. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV8192) || \
  2372. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV16384) || \
  2373. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV32768))
  2374. #define IS_HRTIM_BURSTMODEPRELOAD(BURSTMODEPRELOAD)\
  2375. (((BURSTMODEPRELOAD) == HRIM_BURSTMODEPRELOAD_DISABLED) || \
  2376. ((BURSTMODEPRELOAD) == HRIM_BURSTMODEPRELOAD_ENABLED))
  2377. #define IS_HRTIM_BURSTMODETRIGGER(BURSTMODETRIGGER)\
  2378. (((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_NONE) || \
  2379. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_RESET) || \
  2380. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_REPETITION) || \
  2381. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP1) || \
  2382. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP2) || \
  2383. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP3) || \
  2384. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP4) || \
  2385. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_RESET) || \
  2386. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_REPETITION) || \
  2387. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_CMP1) || \
  2388. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_CMP2) || \
  2389. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_RESET) || \
  2390. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_REPETITION) || \
  2391. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_CMP1) || \
  2392. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_CMP2) || \
  2393. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_RESET) || \
  2394. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_REPETITION) || \
  2395. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_CMP1) || \
  2396. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_CMP2) || \
  2397. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_RESET) || \
  2398. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_REPETITION) || \
  2399. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_CMP1) || \
  2400. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_CMP2) || \
  2401. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_RESET) || \
  2402. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_REPETITION) || \
  2403. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_CMP1) || \
  2404. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_CMP2) || \
  2405. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_EVENT7) || \
  2406. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_EVENT8) || \
  2407. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_EVENT_7) || \
  2408. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_EVENT_8) || \
  2409. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_EVENT_ONCHIP))
  2410. #define IS_HRTIM_ADCTRIGGERUPDATE(ADCTRIGGERUPDATE)\
  2411. (((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_MASTER) || \
  2412. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_A) || \
  2413. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_B) || \
  2414. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_C) || \
  2415. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_D) || \
  2416. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_E))
  2417. #define IS_HRTIM_TIMER_BURSTDMA(TIMER, BURSTDMA) \
  2418. ((((TIMER) == HRTIM_TIMERINDEX_MASTER) && (((BURSTDMA) & 0xFFFFFC000U) == 0x00000000U)) \
  2419. || \
  2420. (((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
  2421. || \
  2422. (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
  2423. || \
  2424. (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
  2425. || \
  2426. (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)) \
  2427. || \
  2428. (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && (((BURSTDMA) & 0xFFE00000U) == 0x00000000U)))
  2429. #define IS_HRTIM_BURSTMODECTL(BURSTMODECTL)\
  2430. (((BURSTMODECTL) == HRTIM_BURSTMODECTL_DISABLED) || \
  2431. ((BURSTMODECTL) == HRTIM_BURSTMODECTL_ENABLED))
  2432. #define IS_HRTIM_FAULTMODECTL(FAULTMODECTL)\
  2433. (((FAULTMODECTL) == HRTIM_FAULTMODECTL_DISABLED) || \
  2434. ((FAULTMODECTL) == HRTIM_FAULTMODECTL_ENABLED))
  2435. #define IS_HRTIM_TIMERUPDATE(TIMERUPDATE) (((TIMERUPDATE) & 0xFFFFFFC0U) == 0x00000000U)
  2436. #define IS_HRTIM_TIMERRESET(TIMERRESET) (((TIMERRESET) & 0xFFFFC0FFU) == 0x00000000U)
  2437. #define IS_HRTIM_OUTPUTLEVEL(OUTPUTLEVEL)\
  2438. (((OUTPUTLEVEL) == HRTIM_OUTPUTLEVEL_ACTIVE) || \
  2439. ((OUTPUTLEVEL) == HRTIM_OUTPUTLEVEL_INACTIVE))
  2440. #define IS_HRTIM_IT(IT) (((IT) & 0xFFFCFFC0U) == 0x00000000U)
  2441. #define IS_HRTIM_MASTER_IT(MASTER_IT) (((MASTER_IT) & 0xFFFFFF80U) == 0x00000000U)
  2442. #define IS_HRTIM_TIM_IT(IS_HRTIM_TIM_IT) (((IS_HRTIM_TIM_IT) & 0xFFFF8020U) == 0x00000000U)
  2443. #define IS_HRTIM_MASTER_DMA(MASTER_DMA) (((MASTER_DMA) & 0xFF80FFFFU) == 0x00000000U)
  2444. #define IS_HRTIM_TIM_DMA(TIM_DMA) (((TIM_DMA) & 0x8020FFFFU) == 0x00000000U)
  2445. /**
  2446. * @}
  2447. */
  2448. /* Exported macros -----------------------------------------------------------*/
  2449. /** @defgroup HRTIM_Exported_Macros HRTIM Exported Macros
  2450. * @{
  2451. */
  2452. /** @brief Reset HRTIM handle state
  2453. * @param __HANDLE__: HRTIM handle.
  2454. * @retval None
  2455. */
  2456. #define __HAL_HRTIM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_HRTIM_STATE_RESET)
  2457. /** @brief Enables or disables the timer counter(s)
  2458. * @param __HANDLE__: specifies the HRTIM Handle.
  2459. * @param __TIMERS__: timersto enable/disable
  2460. * This parameter can be any combinations of the following values:
  2461. * @arg HRTIM_TIMERID_MASTER: Master timer identifier
  2462. * @arg HRTIM_TIMERID_TIMER_A: Timer A identifier
  2463. * @arg HRTIM_TIMERID_TIMER_B: Timer B identifier
  2464. * @arg HRTIM_TIMERID_TIMER_C: Timer C identifier
  2465. * @arg HRTIM_TIMERID_TIMER_D: Timer D identifier
  2466. * @arg HRTIM_TIMERID_TIMER_E: Timer E identifier
  2467. * @retval None
  2468. */
  2469. #define __HAL_HRTIM_ENABLE(__HANDLE__, __TIMERS__) ((__HANDLE__)->Instance->sMasterRegs.MCR |= (__TIMERS__))
  2470. /* The counter of a timing unit is disabled only if all the timer outputs */
  2471. /* are disabled and no capture is configured */
  2472. #define HRTIM_TAOEN_MASK (HRTIM_OENR_TA2OEN | HRTIM_OENR_TA1OEN)
  2473. #define HRTIM_TBOEN_MASK (HRTIM_OENR_TB2OEN | HRTIM_OENR_TB1OEN)
  2474. #define HRTIM_TCOEN_MASK (HRTIM_OENR_TC2OEN | HRTIM_OENR_TC1OEN)
  2475. #define HRTIM_TDOEN_MASK (HRTIM_OENR_TD2OEN | HRTIM_OENR_TD1OEN)
  2476. #define HRTIM_TEOEN_MASK (HRTIM_OENR_TE2OEN | HRTIM_OENR_TE1OEN)
  2477. #define __HAL_HRTIM_DISABLE(__HANDLE__, __TIMERS__)\
  2478. do {\
  2479. if (((__TIMERS__) & HRTIM_TIMERID_MASTER) == HRTIM_TIMERID_MASTER)\
  2480. {\
  2481. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_MASTER);\
  2482. }\
  2483. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_A) == HRTIM_TIMERID_TIMER_A)\
  2484. {\
  2485. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TAOEN_MASK) == RESET)\
  2486. {\
  2487. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_A);\
  2488. }\
  2489. }\
  2490. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_B) == HRTIM_TIMERID_TIMER_B)\
  2491. {\
  2492. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TBOEN_MASK) == RESET)\
  2493. {\
  2494. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_B);\
  2495. }\
  2496. }\
  2497. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_C) == HRTIM_TIMERID_TIMER_C)\
  2498. {\
  2499. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TCOEN_MASK) == RESET)\
  2500. {\
  2501. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_C);\
  2502. }\
  2503. }\
  2504. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_D) == HRTIM_TIMERID_TIMER_D)\
  2505. {\
  2506. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TDOEN_MASK) == RESET)\
  2507. {\
  2508. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_D);\
  2509. }\
  2510. }\
  2511. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_E) == HRTIM_TIMERID_TIMER_E)\
  2512. {\
  2513. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TEOEN_MASK) == RESET)\
  2514. {\
  2515. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_E);\
  2516. }\
  2517. }\
  2518. } while(0)
  2519. /** @brief Enables or disables the specified HRTIM common interrupts.
  2520. * @param __HANDLE__: specifies the HRTIM Handle.
  2521. * @param __INTERRUPT__: specifies the interrupt source to enable or disable.
  2522. * This parameter can be one of the following values:
  2523. * @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
  2524. * @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
  2525. * @arg HRTIM_IT_FLT3: Fault 3 interrupt enable
  2526. * @arg HRTIM_IT_FLT4: Fault 4 interrupt enable
  2527. * @arg HRTIM_IT_FLT5: Fault 5 interrupt enable
  2528. * @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
  2529. * @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
  2530. * @retval None
  2531. */
  2532. #define __HAL_HRTIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.IER |= (__INTERRUPT__))
  2533. #define __HAL_HRTIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.IER &= ~(__INTERRUPT__))
  2534. /** @brief Enables or disables the specified HRTIM Master timer interrupts.
  2535. * @param __HANDLE__: specifies the HRTIM Handle.
  2536. * @param __INTERRUPT__: specifies the interrupt source to enable or disable.
  2537. * This parameter can be one of the following values:
  2538. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  2539. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  2540. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  2541. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  2542. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  2543. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  2544. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  2545. * @retval None
  2546. */
  2547. #define __HAL_HRTIM_MASTER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MDIER |= (__INTERRUPT__))
  2548. #define __HAL_HRTIM_MASTER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MDIER &= ~(__INTERRUPT__))
  2549. /** @brief Enables or disables the specified HRTIM Timerx interrupts.
  2550. * @param __HANDLE__: specifies the HRTIM Handle.
  2551. * @param __TIMER__: specified the timing unit (Timer A to E)
  2552. * @param __INTERRUPT__: specifies the interrupt source to enable or disable.
  2553. * This parameter can be one of the following values:
  2554. * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
  2555. * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
  2556. * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
  2557. * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
  2558. * @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
  2559. * @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
  2560. * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
  2561. * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
  2562. * @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
  2563. * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
  2564. * @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
  2565. * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
  2566. * @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
  2567. * @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
  2568. * @retval None
  2569. */
  2570. #define __HAL_HRTIM_TIMER_ENABLE_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER |= (__INTERRUPT__))
  2571. #define __HAL_HRTIM_TIMER_DISABLE_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER &= ~(__INTERRUPT__))
  2572. /** @brief Checks if the specified HRTIM common interrupt source is enabled or disabled.
  2573. * @param __HANDLE__: specifies the HRTIM Handle.
  2574. * @param __INTERRUPT__: specifies the interrupt source to check.
  2575. * This parameter can be one of the following values:
  2576. * @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
  2577. * @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
  2578. * @arg HRTIM_IT_FLT3: Fault 3 enable
  2579. * @arg HRTIM_IT_FLT4: Fault 4 enable
  2580. * @arg HRTIM_IT_FLT5: Fault 5 enable
  2581. * @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
  2582. * @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
  2583. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  2584. */
  2585. #define __HAL_HRTIM_GET_ITSTATUS(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->sCommonRegs.IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  2586. /** @brief Checks if the specified HRTIM Master interrupt source is enabled or disabled.
  2587. * @param __HANDLE__: specifies the HRTIM Handle.
  2588. * @param __INTERRUPT__: specifies the interrupt source to check.
  2589. * This parameter can be one of the following values:
  2590. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  2591. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  2592. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  2593. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  2594. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  2595. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  2596. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  2597. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  2598. */
  2599. #define __HAL_HRTIM_MASTER_GET_ITSTATUS(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->sMasterRegs.MDIER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  2600. /** @brief Checks if the specified HRTIM Timerx interrupt source is enabled or disabled.
  2601. * @param __HANDLE__: specifies the HRTIM Handle.
  2602. * @param __TIMER__: specified the timing unit (Timer A to E)
  2603. * @param __INTERRUPT__: specifies the interrupt source to check.
  2604. * This parameter can be one of the following values:
  2605. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  2606. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  2607. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  2608. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  2609. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  2610. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  2611. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  2612. * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
  2613. * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
  2614. * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
  2615. * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
  2616. * @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
  2617. * @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
  2618. * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
  2619. * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
  2620. * @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
  2621. * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
  2622. * @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
  2623. * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
  2624. * @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
  2625. * @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
  2626. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  2627. */
  2628. #define __HAL_HRTIM_TIMER_GET_ITSTATUS(__HANDLE__, __TIMER__, __INTERRUPT__) ((((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  2629. /** @brief Clears the specified HRTIM common pending flag.
  2630. * @param __HANDLE__: specifies the HRTIM Handle.
  2631. * @param __INTERRUPT__: specifies the interrupt pending bit to clear.
  2632. * This parameter can be one of the following values:
  2633. * @arg HRTIM_IT_FLT1: Fault 1 interrupt clear flag
  2634. * @arg HRTIM_IT_FLT2: Fault 2 interrupt clear flag
  2635. * @arg HRTIM_IT_FLT3: Fault 3 clear flag
  2636. * @arg HRTIM_IT_FLT4: Fault 4 clear flag
  2637. * @arg HRTIM_IT_FLT5: Fault 5 clear flag
  2638. * @arg HRTIM_IT_SYSFLT: System Fault interrupt clear flag
  2639. * @arg HRTIM_IT_BMPER: Burst mode period interrupt clear flag
  2640. * @retval None
  2641. */
  2642. #define __HAL_HRTIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.ICR = (__INTERRUPT__))
  2643. /** @brief Clears the specified HRTIM Master pending flag.
  2644. * @param __HANDLE__: specifies the HRTIM Handle.
  2645. * @param __INTERRUPT__: specifies the interrupt pending bit to clear.
  2646. * This parameter can be one of the following values:
  2647. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt clear flag
  2648. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt clear flag
  2649. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt clear flag
  2650. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt clear flag
  2651. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt clear flag
  2652. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt clear flag
  2653. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt clear flag
  2654. * @retval None
  2655. */
  2656. #define __HAL_HRTIM_MASTER_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MICR = (__INTERRUPT__))
  2657. /** @brief Clears the specified HRTIM Timerx pending flag.
  2658. * @param __HANDLE__: specifies the HRTIM Handle.
  2659. * @param __TIMER__: specified the timing unit (Timer A to E)
  2660. * @param __INTERRUPT__: specifies the interrupt pending bit to clear.
  2661. * This parameter can be one of the following values:
  2662. * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt clear flag
  2663. * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt clear flag
  2664. * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt clear flag
  2665. * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt clear flag
  2666. * @arg HRTIM_TIM_IT_REP: Timer repetition interrupt clear flag
  2667. * @arg HRTIM_TIM_IT_UPD: Timer update interrupt clear flag
  2668. * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt clear flag
  2669. * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt clear flag
  2670. * @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt clear flag
  2671. * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt clear flag
  2672. * @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt clear flag
  2673. * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt clear flag
  2674. * @arg HRTIM_TIM_IT_RST: Timer reset interrupt clear flag
  2675. * @arg HRTIM_TIM_IT_DLYPRT: Timer output 1 delay protection interrupt clear flag
  2676. * @retval None
  2677. */
  2678. #define __HAL_HRTIM_TIMER_CLEAR_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxICR = (__INTERRUPT__))
  2679. /* DMA HANDLING */
  2680. /** @brief Enables or disables the specified HRTIM common interrupts.
  2681. * @param __HANDLE__: specifies the HRTIM Handle.
  2682. * @param __INTERRUPT__: specifies the interrupt source to enable or disable.
  2683. * This parameter can be one of the following values:
  2684. * @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
  2685. * @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
  2686. * @arg HRTIM_IT_FLT3: Fault 3 interrupt enable
  2687. * @arg HRTIM_IT_FLT4: Fault 4 interrupt enable
  2688. * @arg HRTIM_IT_FLT5: Fault 5 interrupt enable
  2689. * @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
  2690. * @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
  2691. * @retval None
  2692. */
  2693. #define __HAL_HRTIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.IER |= (__INTERRUPT__))
  2694. #define __HAL_HRTIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.IER &= ~(__INTERRUPT__))
  2695. /** @brief Enables or disables the specified HRTIM Master timer DMA requets.
  2696. * @param __HANDLE__: specifies the HRTIM Handle.
  2697. * @param __DMA__: specifies the DMA request to enable or disable.
  2698. * This parameter can be one of the following values:
  2699. * @arg HRTIM_MASTER_DMA_MCMP1: Master compare 1 DMA resquest enable
  2700. * @arg HRTIM_MASTER_DMA_MCMP2: Master compare 2 DMA resquest enable
  2701. * @arg HRTIM_MASTER_DMA_MCMP3: Master compare 3 DMA resquest enable
  2702. * @arg HRTIM_MASTER_DMA_MCMP4: Master compare 4 DMA resquest enable
  2703. * @arg HRTIM_MASTER_DMA_MREP: Master Repetition DMA resquest enable
  2704. * @arg HRTIM_MASTER_DMA_SYNC: Synchronization input DMA resquest enable
  2705. * @arg HRTIM_MASTER_DMA_MUPD: Master update DMA resquest enable
  2706. * @retval None
  2707. */
  2708. #define __HAL_HRTIM_MASTER_ENABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->sMasterRegs.MDIER |= (__DMA__))
  2709. #define __HAL_HRTIM_MASTER_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->sMasterRegs.MDIER &= ~(__DMA__))
  2710. /** @brief Enables or disables the specified HRTIM Timerx DMA requests.
  2711. * @param __HANDLE__: specifies the HRTIM Handle.
  2712. * @param __TIMER__: specified the timing unit (Timer A to E)
  2713. * @param __DMA__: specifies the DMA request to enable or disable.
  2714. * This parameter can be one of the following values:
  2715. * @arg HRTIM_TIM_DMA_CMP1: Timer compare 1 DMA resquest enable
  2716. * @arg HRTIM_TIM_DMA_CMP2: Timer compare 2 DMA resquest enable
  2717. * @arg HRTIM_TIM_DMA_CMP3: Timer compare 3 DMA resquest enable
  2718. * @arg HRTIM_TIM_DMA_CMP4: Timer compare 4 DMA resquest enable
  2719. * @arg HRTIM_TIM_DMA_REP: Timer repetition DMA resquest enable
  2720. * @arg HRTIM_TIM_DMA_UPD: Timer update DMA resquest enable
  2721. * @arg HRTIM_TIM_DMA_CPT1: Timer capture 1 DMA resquest enable
  2722. * @arg HRTIM_TIM_DMA_CPT2: Timer capture 2 DMA resquest enable
  2723. * @arg HRTIM_TIM_DMA_SET1: Timer output 1 set DMA resquest enable
  2724. * @arg HRTIM_TIM_DMA_RST1: Timer output 1 reset DMA resquest enable
  2725. * @arg HRTIM_TIM_DMA_SET2: Timer output 2 set DMA resquest enable
  2726. * @arg HRTIM_TIM_DMA_RST2: Timer output 2 reset DMA resquest enable
  2727. * @arg HRTIM_TIM_DMA_RST: Timer reset DMA resquest enable
  2728. * @arg HRTIM_TIM_DMA_DLYPRT: Timer delay protection DMA resquest enable
  2729. * @retval None
  2730. */
  2731. #define __HAL_HRTIM_TIMER_ENABLE_DMA(__HANDLE__, __TIMER__, __DMA__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER |= (__DMA__))
  2732. #define __HAL_HRTIM_TIMER_DISABLE_DMA(__HANDLE__, __TIMER__, __DMA__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER &= ~(__DMA__))
  2733. #define __HAL_HRTIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->sCommonRegs.ISR & (__FLAG__)) == (__FLAG__))
  2734. #define __HAL_HRTIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->sCommonRegs.ICR = (__FLAG__))
  2735. #define __HAL_HRTIM_MASTER_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->sMasterRegs.MISR & (__FLAG__)) == (__FLAG__))
  2736. #define __HAL_HRTIM_MASTER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->sMasterRegs.MICR = (__FLAG__))
  2737. #define __HAL_HRTIM_TIMER_GET_FLAG(__HANDLE__, __TIMER__, __FLAG__) (((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxISR & (__FLAG__)) == (__FLAG__))
  2738. #define __HAL_HRTIM_TIMER_CLEAR_FLAG(__HANDLE__, __TIMER__, __FLAG__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxICR = (__FLAG__))
  2739. /** @brief Sets the HRTIM timer Counter Register value on runtime
  2740. * @param __HANDLE__: HRTIM Handle.
  2741. * @param __TIMER__: HRTIM timer
  2742. * This parameter can be one of the following values:
  2743. * @arg 0x5 for master timer
  2744. * @arg 0x0 to 0x4 for timers A to E
  2745. * @param __COUNTER__: specifies the Counter Register new value.
  2746. * @retval None
  2747. */
  2748. #define __HAL_HRTIM_SETCOUNTER(__HANDLE__, __TIMER__, __COUNTER__) \
  2749. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCNTR = (__COUNTER__)) :\
  2750. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CNTxR = (__COUNTER__)))
  2751. /** @brief Gets the HRTIM timer Counter Register value on runtime
  2752. * @param __HANDLE__: HRTIM Handle.
  2753. * @param __TIMER__: HRTIM timer
  2754. * This parameter can be one of the following values:
  2755. * @arg 0x5 for master timer
  2756. * @arg 0x0 to 0x4 for timers A to E
  2757. * @retval HRTIM timer Counter Register value
  2758. */
  2759. #define __HAL_HRTIM_GETCOUNTER(__HANDLE__, __TIMER__) \
  2760. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCNTR) :\
  2761. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CNTxR))
  2762. /** @brief Sets the HRTIM timer Period value on runtime
  2763. * @param __HANDLE__: HRTIM Handle.
  2764. * @param __TIMER__: HRTIM timer
  2765. * This parameter can be one of the following values:
  2766. * @arg 0x5 for master timer
  2767. * @arg 0x0 to 0x4 for timers A to E
  2768. * @param __PERIOD__: specifies the Period Register new value.
  2769. * @retval None
  2770. */
  2771. #define __HAL_HRTIM_SETPERIOD(__HANDLE__, __TIMER__, __PERIOD__) \
  2772. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MPER = (__PERIOD__)) :\
  2773. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].PERxR = (__PERIOD__)))
  2774. /** @brief Gets the HRTIM timer Period Register value on runtime
  2775. * @param __HANDLE__: HRTIM Handle.
  2776. * @param __TIMER__: HRTIM timer
  2777. * This parameter can be one of the following values:
  2778. * @arg 0x5 for master timer
  2779. * @arg 0x0 to 0x4 for timers A to E
  2780. * @retval timer Period Register
  2781. */
  2782. #define __HAL_HRTIM_GETPERIOD(__HANDLE__, __TIMER__) \
  2783. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MPER) :\
  2784. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].PERxR))
  2785. /** @brief Sets the HRTIM timer clock prescaler value on runtime
  2786. * @param __HANDLE__: HRTIM Handle.
  2787. * @param __TIMER__: HRTIM timer
  2788. * This parameter can be one of the following values:
  2789. * @arg 0x5 for master timer
  2790. * @arg 0x0 to 0x4 for timers A to E
  2791. * @param __PRESCALER__: specifies the clock prescaler new value.
  2792. * This parameter can be one of the following values:
  2793. * @arg HRTIM_PRESCALERRATIO_MUL32: fHRCK: 4.608 GHz - Resolution: 217 ps - Min PWM frequency: 70.3 kHz (fHRTIM=144MHz)
  2794. * @arg HRTIM_PRESCALERRATIO_MUL16: fHRCK: 2.304 GHz - Resolution: 434 ps - Min PWM frequency: 35.1 KHz (fHRTIM=144MHz)
  2795. * @arg HRTIM_PRESCALERRATIO_MUL8: fHRCK: 1.152 GHz - Resolution: 868 ps - Min PWM frequency: 17.6 kHz (fHRTIM=144MHz)
  2796. * @arg HRTIM_PRESCALERRATIO_MUL4: fHRCK: 576 MHz - Resolution: 1.73 ns - Min PWM frequency: 8.8 kHz (fHRTIM=144MHz)
  2797. * @arg HRTIM_PRESCALERRATIO_MUL2: fHRCK: 288 MHz - Resolution: 3.47 ns - Min PWM frequency: 4.4 kHz (fHRTIM=144MHz)
  2798. * @arg HRTIM_PRESCALERRATIO_DIV1: fHRCK: 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz)
  2799. * @arg HRTIM_PRESCALERRATIO_DIV2: fHRCK: 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz)
  2800. * @arg HRTIM_PRESCALERRATIO_DIV4: fHRCK: 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz)
  2801. * @retval None
  2802. */
  2803. #define __HAL_HRTIM_SETCLOCKPRESCALER(__HANDLE__, __TIMER__, __PRESCALER__) \
  2804. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCR |= (__PRESCALER__)) :\
  2805. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxCR |= (__PRESCALER__)))
  2806. /** @brief Gets the HRTIM timer clock prescaler value on runtime
  2807. * @param __HANDLE__: HRTIM Handle.
  2808. * @param __TIMER__: HRTIM timer
  2809. * This parameter can be one of the following values:
  2810. * @arg 0x5 for master timer
  2811. * @arg 0x0 to 0x4 for timers A to E
  2812. * @retval timer clock prescaler value
  2813. */
  2814. #define __HAL_HRTIM_GETCLOCKPRESCALER(__HANDLE__, __TIMER__) \
  2815. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCR & HRTIM_MCR_CK_PSC) :\
  2816. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxCR & HRTIM_TIMCR_CK_PSC))
  2817. /** @brief Sets the HRTIM timer Compare Register value on runtime
  2818. * @param __HANDLE__: HRTIM Handle.
  2819. * @param __TIMER__: HRTIM timer
  2820. * This parameter can be one of the following values:
  2821. * @arg 0x0 to 0x4 for timers A to E
  2822. * @param __COMPAREUNIT__: timer compare unit
  2823. * This parameter can be one of the following values:
  2824. * @arg HRTIM_COMPAREUNIT_1: Compare unit 1
  2825. * @arg HRTIM_COMPAREUNIT_2: Compare unit 2
  2826. * @arg HRTIM_COMPAREUNIT_3: Compare unit 3
  2827. * @arg HRTIM_COMPAREUNIT_4: Compare unit 4
  2828. * @param __COMPARE__: specifies the Compare new value.
  2829. * @retval None
  2830. */
  2831. #define __HAL_HRTIM_SETCOMPARE(__HANDLE__, __TIMER__, __COMPAREUNIT__, __COMPARE__) \
  2832. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? \
  2833. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP1R = (__COMPARE__)) :\
  2834. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP2R = (__COMPARE__)) :\
  2835. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP3R = (__COMPARE__)) :\
  2836. ((__HANDLE__)->Instance->sMasterRegs.MCMP4R = (__COMPARE__))) \
  2837. : \
  2838. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP1xR = (__COMPARE__)) :\
  2839. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP2xR = (__COMPARE__)) :\
  2840. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP3xR = (__COMPARE__)) :\
  2841. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP4xR = (__COMPARE__))))
  2842. /** @brief Gets the HRTIM timer Compare Register value on runtime
  2843. * @param __HANDLE__: HRTIM Handle.
  2844. * @param __TIMER__: HRTIM timer
  2845. * This parameter can be one of the following values:
  2846. * @arg 0x0 to 0x4 for timers A to E
  2847. * @param __COMPAREUNIT__: timer compare unit
  2848. * This parameter can be one of the following values:
  2849. * @arg HRTIM_COMPAREUNIT_1: Compare unit 1
  2850. * @arg HRTIM_COMPAREUNIT_2: Compare unit 2
  2851. * @arg HRTIM_COMPAREUNIT_3: Compare unit 3
  2852. * @arg HRTIM_COMPAREUNIT_4: Compare unit 4
  2853. * @retval Compare value
  2854. */
  2855. #define __HAL_HRTIM_GETCOMPARE(__HANDLE__, __TIMER__, __COMPAREUNIT__) \
  2856. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? \
  2857. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP1R) :\
  2858. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP2R) :\
  2859. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP3R) :\
  2860. ((__HANDLE__)->Instance->sMasterRegs.MCMP4R)) \
  2861. : \
  2862. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP1xR) :\
  2863. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP2xR) :\
  2864. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP3xR) :\
  2865. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP4xR)))
  2866. /**
  2867. * @}
  2868. */
  2869. /* Exported functions --------------------------------------------------------*/
  2870. /** @addtogroup HRTIM_Exported_Functions HRTIM Exported Functions
  2871. * @{
  2872. */
  2873. /** @addtogroup HRTIM_Exported_Functions_Group1 Initialization and de-initialization functions
  2874. * @{
  2875. */
  2876. /* Initialization and Configuration functions ********************************/
  2877. HAL_StatusTypeDef HAL_HRTIM_Init(HRTIM_HandleTypeDef *hhrtim);
  2878. HAL_StatusTypeDef HAL_HRTIM_DeInit (HRTIM_HandleTypeDef *hhrtim);
  2879. void HAL_HRTIM_MspInit(HRTIM_HandleTypeDef *hhrtim);
  2880. void HAL_HRTIM_MspDeInit(HRTIM_HandleTypeDef *hhrtim);
  2881. HAL_StatusTypeDef HAL_HRTIM_TimeBaseConfig(HRTIM_HandleTypeDef *hhrtim,
  2882. uint32_t TimerIdx,
  2883. HRTIM_TimeBaseCfgTypeDef * pTimeBaseCfg);
  2884. /**
  2885. * @}
  2886. */
  2887. /** @addtogroup HRTIM_Exported_Functions_Group2 Simple time base mode functions
  2888. * @{
  2889. */
  2890. /* Simple time base related functions *****************************************/
  2891. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart(HRTIM_HandleTypeDef *hhrtim,
  2892. uint32_t TimerIdx);
  2893. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop(HRTIM_HandleTypeDef *hhrtim,
  2894. uint32_t TimerIdx);
  2895. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_IT(HRTIM_HandleTypeDef *hhrtim,
  2896. uint32_t TimerIdx);
  2897. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_IT(HRTIM_HandleTypeDef *hhrtim,
  2898. uint32_t TimerIdx);
  2899. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  2900. uint32_t TimerIdx,
  2901. uint32_t SrcAddr,
  2902. uint32_t DestAddr,
  2903. uint32_t Length);
  2904. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  2905. uint32_t TimerIdx);
  2906. /**
  2907. * @}
  2908. */
  2909. /** @addtogroup HRTIM_Exported_Functions_Group3 Simple output compare mode functions
  2910. * @{
  2911. */
  2912. /* Simple output compare related functions ************************************/
  2913. HAL_StatusTypeDef HAL_HRTIM_SimpleOCChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  2914. uint32_t TimerIdx,
  2915. uint32_t OCChannel,
  2916. HRTIM_SimpleOCChannelCfgTypeDef* pSimpleOCChannelCfg);
  2917. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart(HRTIM_HandleTypeDef *hhrtim,
  2918. uint32_t TimerIdx,
  2919. uint32_t OCChannel);
  2920. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop(HRTIM_HandleTypeDef *hhrtim,
  2921. uint32_t TimerIdx,
  2922. uint32_t OCChannel);
  2923. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_IT(HRTIM_HandleTypeDef *hhrtim,
  2924. uint32_t TimerIdx,
  2925. uint32_t OCChannel);
  2926. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_IT(HRTIM_HandleTypeDef *hhrtim,
  2927. uint32_t TimerIdx,
  2928. uint32_t OCChannel);
  2929. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  2930. uint32_t TimerIdx,
  2931. uint32_t OCChannel,
  2932. uint32_t SrcAddr,
  2933. uint32_t DestAddr,
  2934. uint32_t Length);
  2935. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  2936. uint32_t TimerIdx,
  2937. uint32_t OCChannel);
  2938. /**
  2939. * @}
  2940. */
  2941. /** @addtogroup HRTIM_Exported_Functions_Group4 Simple PWM output mode functions
  2942. * @{
  2943. */
  2944. /* Simple PWM output related functions ****************************************/
  2945. HAL_StatusTypeDef HAL_HRTIM_SimplePWMChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  2946. uint32_t TimerIdx,
  2947. uint32_t PWMChannel,
  2948. HRTIM_SimplePWMChannelCfgTypeDef* pSimplePWMChannelCfg);
  2949. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart(HRTIM_HandleTypeDef *hhrtim,
  2950. uint32_t TimerIdx,
  2951. uint32_t PWMChannel);
  2952. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop(HRTIM_HandleTypeDef *hhrtim,
  2953. uint32_t TimerIdx,
  2954. uint32_t PWMChannel);
  2955. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_IT(HRTIM_HandleTypeDef *hhrtim,
  2956. uint32_t TimerIdx,
  2957. uint32_t PWMChannel);
  2958. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_IT(HRTIM_HandleTypeDef *hhrtim,
  2959. uint32_t TimerIdx,
  2960. uint32_t PWMChannel);
  2961. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  2962. uint32_t TimerIdx,
  2963. uint32_t PWMChannel,
  2964. uint32_t SrcAddr,
  2965. uint32_t DestAddr,
  2966. uint32_t Length);
  2967. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  2968. uint32_t TimerIdx,
  2969. uint32_t PWMChannel);
  2970. /**
  2971. * @}
  2972. */
  2973. /** @addtogroup HRTIM_Exported_Functions_Group5 Simple input capture functions
  2974. * @{
  2975. */
  2976. /* Simple capture related functions *******************************************/
  2977. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  2978. uint32_t TimerIdx,
  2979. uint32_t CaptureChannel,
  2980. HRTIM_SimpleCaptureChannelCfgTypeDef* pSimpleCaptureChannelCfg);
  2981. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart(HRTIM_HandleTypeDef *hhrtim,
  2982. uint32_t TimerIdx,
  2983. uint32_t CaptureChannel);
  2984. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop(HRTIM_HandleTypeDef *hhrtim,
  2985. uint32_t TimerIdx,
  2986. uint32_t CaptureChannel);
  2987. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_IT(HRTIM_HandleTypeDef *hhrtim,
  2988. uint32_t TimerIdx,
  2989. uint32_t CaptureChannel);
  2990. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_IT(HRTIM_HandleTypeDef *hhrtim,
  2991. uint32_t TimerIdx,
  2992. uint32_t CaptureChannel);
  2993. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  2994. uint32_t TimerIdx,
  2995. uint32_t CaptureChannel,
  2996. uint32_t SrcAddr,
  2997. uint32_t DestAddr,
  2998. uint32_t Length);
  2999. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  3000. uint32_t TimerIdx,
  3001. uint32_t CaptureChannel);
  3002. /**
  3003. * @}
  3004. */
  3005. /** @addtogroup HRTIM_Exported_Functions_Group6 Simple one pulse functions
  3006. * @{
  3007. */
  3008. /* Simple one pulse related functions *****************************************/
  3009. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  3010. uint32_t TimerIdx,
  3011. uint32_t OnePulseChannel,
  3012. HRTIM_SimpleOnePulseChannelCfgTypeDef* pSimpleOnePulseChannelCfg);
  3013. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart(HRTIM_HandleTypeDef *hhrtim,
  3014. uint32_t TimerIdx,
  3015. uint32_t OnePulseChannel);
  3016. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop(HRTIM_HandleTypeDef *hhrtim,
  3017. uint32_t TimerIdx,
  3018. uint32_t OnePulseChannel);
  3019. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart_IT(HRTIM_HandleTypeDef *hhrtim,
  3020. uint32_t TimerIdx,
  3021. uint32_t OnePulseChannel);
  3022. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop_IT(HRTIM_HandleTypeDef *hhrtim,
  3023. uint32_t TimerIdx,
  3024. uint32_t OnePulseChannel);
  3025. /**
  3026. * @}
  3027. */
  3028. /** @addtogroup HRTIM_Exported_Functions_Group7 Configuration functions
  3029. * @{
  3030. */
  3031. HAL_StatusTypeDef HAL_HRTIM_BurstModeConfig(HRTIM_HandleTypeDef *hhrtim,
  3032. HRTIM_BurstModeCfgTypeDef* pBurstModeCfg);
  3033. HAL_StatusTypeDef HAL_HRTIM_EventConfig(HRTIM_HandleTypeDef *hhrtim,
  3034. uint32_t Event,
  3035. HRTIM_EventCfgTypeDef* pEventCfg);
  3036. HAL_StatusTypeDef HAL_HRTIM_EventPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
  3037. uint32_t Prescaler);
  3038. HAL_StatusTypeDef HAL_HRTIM_FaultConfig(HRTIM_HandleTypeDef *hhrtim,
  3039. uint32_t Fault,
  3040. HRTIM_FaultCfgTypeDef* pFaultCfg);
  3041. HAL_StatusTypeDef HAL_HRTIM_FaultPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
  3042. uint32_t Prescaler);
  3043. void HAL_HRTIM_FaultModeCtl(HRTIM_HandleTypeDef * hhrtim,
  3044. uint32_t Faults,
  3045. uint32_t Enable);
  3046. HAL_StatusTypeDef HAL_HRTIM_ADCTriggerConfig(HRTIM_HandleTypeDef *hhrtim,
  3047. uint32_t ADCTrigger,
  3048. HRTIM_ADCTriggerCfgTypeDef* pADCTriggerCfg);
  3049. /**
  3050. * @}
  3051. */
  3052. /** @addtogroup HRTIM_Exported_Functions_Group8 Timer waveform configuration and functions
  3053. * @{
  3054. */
  3055. /* Waveform related functions *************************************************/
  3056. HAL_StatusTypeDef HAL_HRTIM_WaveformTimerConfig(HRTIM_HandleTypeDef *hhrtim,
  3057. uint32_t TimerIdx,
  3058. HRTIM_TimerCfgTypeDef * pTimerCfg);
  3059. HAL_StatusTypeDef HAL_HRTIM_WaveformCompareConfig(HRTIM_HandleTypeDef *hhrtim,
  3060. uint32_t TimerIdx,
  3061. uint32_t CompareUnit,
  3062. HRTIM_CompareCfgTypeDef* pCompareCfg);
  3063. HAL_StatusTypeDef HAL_HRTIM_WaveformCaptureConfig(HRTIM_HandleTypeDef *hhrtim,
  3064. uint32_t TimerIdx,
  3065. uint32_t CaptureUnit,
  3066. HRTIM_CaptureCfgTypeDef* pCaptureCfg);
  3067. HAL_StatusTypeDef HAL_HRTIM_WaveformOutputConfig(HRTIM_HandleTypeDef *hhrtim,
  3068. uint32_t TimerIdx,
  3069. uint32_t Output,
  3070. HRTIM_OutputCfgTypeDef * pOutputCfg);
  3071. HAL_StatusTypeDef HAL_HRTIM_WaveformSetOutputLevel(HRTIM_HandleTypeDef *hhrtim,
  3072. uint32_t TimerIdx,
  3073. uint32_t Output,
  3074. uint32_t OutputLevel);
  3075. HAL_StatusTypeDef HAL_HRTIM_TimerEventFilteringConfig(HRTIM_HandleTypeDef *hhrtim,
  3076. uint32_t TimerIdx,
  3077. uint32_t Event,
  3078. HRTIM_TimerEventFilteringCfgTypeDef * pTimerEventFilteringCfg);
  3079. HAL_StatusTypeDef HAL_HRTIM_DeadTimeConfig(HRTIM_HandleTypeDef *hhrtim,
  3080. uint32_t TimerIdx,
  3081. HRTIM_DeadTimeCfgTypeDef* pDeadTimeCfg);
  3082. HAL_StatusTypeDef HAL_HRTIM_ChopperModeConfig(HRTIM_HandleTypeDef *hhrtim,
  3083. uint32_t TimerIdx,
  3084. HRTIM_ChopperModeCfgTypeDef* pChopperModeCfg);
  3085. HAL_StatusTypeDef HAL_HRTIM_BurstDMAConfig(HRTIM_HandleTypeDef *hhrtim,
  3086. uint32_t TimerIdx,
  3087. uint32_t RegistersToUpdate);
  3088. HAL_StatusTypeDef HAL_HRTIM_WaveformCounterStart(HRTIM_HandleTypeDef *hhrtim,
  3089. uint32_t Timers);
  3090. HAL_StatusTypeDef HAL_HRTIM_WaveformCounterStop(HRTIM_HandleTypeDef *hhrtim,
  3091. uint32_t Timers);
  3092. HAL_StatusTypeDef HAL_HRTIM_WaveformCounterStart_IT(HRTIM_HandleTypeDef *hhrtim,
  3093. uint32_t Timers);
  3094. HAL_StatusTypeDef HAL_HRTIM_WaveformCounterStop_IT(HRTIM_HandleTypeDef *hhrtim,
  3095. uint32_t Timers);
  3096. HAL_StatusTypeDef HAL_HRTIM_WaveformCounterStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  3097. uint32_t Timers);
  3098. HAL_StatusTypeDef HAL_HRTIM_WaveformCounterStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  3099. uint32_t Timers);
  3100. HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStart(HRTIM_HandleTypeDef *hhrtim,
  3101. uint32_t OutputsToStart);
  3102. HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStop(HRTIM_HandleTypeDef *hhrtim,
  3103. uint32_t OutputsToStop);
  3104. HAL_StatusTypeDef HAL_HRTIM_BurstModeCtl(HRTIM_HandleTypeDef *hhrtim,
  3105. uint32_t Enable);
  3106. HAL_StatusTypeDef HAL_HRTIM_BurstModeSoftwareTrigger(HRTIM_HandleTypeDef *hhrtim);
  3107. HAL_StatusTypeDef HAL_HRTIM_SoftwareCapture(HRTIM_HandleTypeDef *hhrtim,
  3108. uint32_t TimerIdx,
  3109. uint32_t CaptureUnit);
  3110. HAL_StatusTypeDef HAL_HRTIM_SoftwareUpdate(HRTIM_HandleTypeDef *hhrtim,
  3111. uint32_t Timers);
  3112. HAL_StatusTypeDef HAL_HRTIM_SoftwareReset(HRTIM_HandleTypeDef *hhrtim,
  3113. uint32_t Timers);
  3114. HAL_StatusTypeDef HAL_HRTIM_BurstDMATransfer(HRTIM_HandleTypeDef *hhrtim,
  3115. uint32_t TimerIdx,
  3116. uint32_t BurstBufferAddress,
  3117. uint32_t BurstBufferLength);
  3118. HAL_StatusTypeDef HAL_HRTIM_UpdateEnable(HRTIM_HandleTypeDef *hhrtim,
  3119. uint32_t Timers);
  3120. HAL_StatusTypeDef HAL_HRTIM_UpdateDisable(HRTIM_HandleTypeDef *hhrtim,
  3121. uint32_t Timers);
  3122. /**
  3123. * @}
  3124. */
  3125. /** @addtogroup HRTIM_Exported_Functions_Group9 Peripheral state functions
  3126. * @{
  3127. */
  3128. /* HRTIM peripheral state functions */
  3129. HAL_HRTIM_StateTypeDef HAL_HRTIM_GetState(HRTIM_HandleTypeDef* hhrtim);
  3130. uint32_t HAL_HRTIM_GetCapturedValue(HRTIM_HandleTypeDef *hhrtim,
  3131. uint32_t TimerIdx,
  3132. uint32_t CaptureUnit);
  3133. uint32_t HAL_HRTIM_WaveformGetOutputLevel(HRTIM_HandleTypeDef *hhrtim,
  3134. uint32_t TimerIdx,
  3135. uint32_t Output);
  3136. uint32_t HAL_HRTIM_WaveformGetOutputState(HRTIM_HandleTypeDef * hhrtim,
  3137. uint32_t TimerIdx,
  3138. uint32_t Output);
  3139. uint32_t HAL_HRTIM_GetDelayedProtectionStatus(HRTIM_HandleTypeDef *hhrtim,
  3140. uint32_t TimerIdx,
  3141. uint32_t Output);
  3142. uint32_t HAL_HRTIM_GetBurstStatus(HRTIM_HandleTypeDef *hhrtim);
  3143. uint32_t HAL_HRTIM_GetCurrentPushPullStatus(HRTIM_HandleTypeDef *hhrtim,
  3144. uint32_t TimerIdx);
  3145. uint32_t HAL_HRTIM_GetIdlePushPullStatus(HRTIM_HandleTypeDef *hhrtim,
  3146. uint32_t TimerIdx);
  3147. /**
  3148. * @}
  3149. */
  3150. /** @addtogroup HRTIM_Exported_Functions_Group10 Interrupts handling
  3151. * @{
  3152. */
  3153. /* IRQ handler */
  3154. void HAL_HRTIM_IRQHandler(HRTIM_HandleTypeDef *hhrtim,
  3155. uint32_t TimerIdx);
  3156. /* HRTIM events related callback functions */
  3157. void HAL_HRTIM_Fault1Callback(HRTIM_HandleTypeDef *hhrtim);
  3158. void HAL_HRTIM_Fault2Callback(HRTIM_HandleTypeDef *hhrtim);
  3159. void HAL_HRTIM_Fault3Callback(HRTIM_HandleTypeDef *hhrtim);
  3160. void HAL_HRTIM_Fault4Callback(HRTIM_HandleTypeDef *hhrtim);
  3161. void HAL_HRTIM_Fault5Callback(HRTIM_HandleTypeDef *hhrtim);
  3162. void HAL_HRTIM_SystemFaultCallback(HRTIM_HandleTypeDef *hhrtim);
  3163. void HAL_HRTIM_BurstModePeriodCallback(HRTIM_HandleTypeDef *hhrtim);
  3164. void HAL_HRTIM_SynchronizationEventCallback(HRTIM_HandleTypeDef *hhrtim);
  3165. /* Timer events related callback functions */
  3166. void HAL_HRTIM_RegistersUpdateCallback(HRTIM_HandleTypeDef *hhrtim,
  3167. uint32_t TimerIdx);
  3168. void HAL_HRTIM_RepetitionEventCallback(HRTIM_HandleTypeDef *hhrtim,
  3169. uint32_t TimerIdx);
  3170. void HAL_HRTIM_Compare1EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3171. uint32_t TimerIdx);
  3172. void HAL_HRTIM_Compare2EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3173. uint32_t TimerIdx);
  3174. void HAL_HRTIM_Compare3EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3175. uint32_t TimerIdx);
  3176. void HAL_HRTIM_Compare4EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3177. uint32_t TimerIdx);
  3178. void HAL_HRTIM_Capture1EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3179. uint32_t TimerIdx);
  3180. void HAL_HRTIM_Capture2EventCallback(HRTIM_HandleTypeDef *hhrtim,
  3181. uint32_t TimerIdx);
  3182. void HAL_HRTIM_DelayedProtectionCallback(HRTIM_HandleTypeDef *hhrtim,
  3183. uint32_t TimerIdx);
  3184. void HAL_HRTIM_CounterResetCallback(HRTIM_HandleTypeDef *hhrtim,
  3185. uint32_t TimerIdx);
  3186. void HAL_HRTIM_Output1SetCallback(HRTIM_HandleTypeDef *hhrtim,
  3187. uint32_t TimerIdx);
  3188. void HAL_HRTIM_Output1ResetCallback(HRTIM_HandleTypeDef *hhrtim,
  3189. uint32_t TimerIdx);
  3190. void HAL_HRTIM_Output2SetCallback(HRTIM_HandleTypeDef *hhrtim,
  3191. uint32_t TimerIdx);
  3192. void HAL_HRTIM_Output2ResetCallback(HRTIM_HandleTypeDef *hhrtim,
  3193. uint32_t TimerIdx);
  3194. void HAL_HRTIM_BurstDMATransferCallback(HRTIM_HandleTypeDef *hhrtim,
  3195. uint32_t TimerIdx);
  3196. void HAL_HRTIM_ErrorCallback(HRTIM_HandleTypeDef *hhrtim);
  3197. /**
  3198. * @}
  3199. */
  3200. /**
  3201. * @}
  3202. */
  3203. /**
  3204. * @}
  3205. */
  3206. /**
  3207. * @}
  3208. */
  3209. #ifdef __cplusplus
  3210. }
  3211. #endif
  3212. #endif /* __STM32H7xx_HAL_HRTIM_H */
  3213. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/