tae32f53xx_ll_hrpwm.h 179 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550
  1. /**
  2. ******************************************************************************
  3. * @file tae32f53xx_ll_hrpwm.h
  4. * @author MCD Application Team
  5. * @brief Header file of HRPWM LL module
  6. *
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * <h2><center>&copy; Copyright (c) 2020 Tai-Action.
  11. * All rights reserved.</center></h2>
  12. *
  13. * This software is licensed by Tai-Action under BSD 3-Clause license,
  14. * the "License"; You may not use this file except in compliance with the
  15. * License. You may obtain a copy of the License at:
  16. * opensource.org/licenses/BSD-3-Clause
  17. *
  18. ******************************************************************************
  19. */
  20. /* Define to prevent recursive inclusion -------------------------------------*/
  21. #ifndef _TAE32F53XX_LL_HRPWM_H_
  22. #define _TAE32F53XX_LL_HRPWM_H_
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif /* __cplusplus */
  26. /* Includes ------------------------------------------------------------------*/
  27. #include "tae32f53xx_ll_def.h"
  28. /** @addtogroup TAE32F53xx_LL_Driver
  29. * @{
  30. */
  31. /** @addtogroup HRPWM_LL
  32. * @{
  33. */
  34. /* Exported constants --------------------------------------------------------*/
  35. /** @defgroup HRPWM_LL_Exported_Constants HRPWM LL Exported Constants
  36. * @brief HRPWM LL Exported Constants
  37. * @{
  38. */
  39. /** @defgroup HRPWM_Max_Timer HRPWM Max Timer
  40. * @{
  41. */
  42. #define MAX_HRPWM_TIMER 6U
  43. /**
  44. * @}
  45. */
  46. /** @defgroup HRPWM_Timer_Index HRPWM Index
  47. * @brief Constants defining the hrpwm indexes
  48. * @{
  49. */
  50. #define HRPWM_INDEX_SLAVE_0 0x0U /*!< Index used to access slave pwm 0 registers */
  51. #define HRPWM_INDEX_SLAVE_1 0x1U /*!< Index used to access slave pwm 1 registers */
  52. #define HRPWM_INDEX_SLAVE_2 0x2U /*!< Index used to access slave pwm 2 registers */
  53. #define HRPWM_INDEX_SLAVE_3 0x3U /*!< Index used to access slave pwm 3 registers */
  54. #define HRPWM_INDEX_SLAVE_4 0x4U /*!< Index used to access slave pwm 4 registers */
  55. #define HRPWM_INDEX_SLAVE_5 0x5U /*!< Index used to access slave pwm 5 registers */
  56. #define HRPWM_INDEX_MASTER 0x6U /*!< Index used to access master registers */
  57. #define HRPWM_INDEX_COMMON 0xFFU /*!< Index used to access HRPWM common registers */
  58. /**
  59. * @}
  60. */
  61. /** @defgroup HRPWM_Compare_Unit HRPWM Compare Unit
  62. * @brief Constants defining compare unit identifiers
  63. * @{
  64. */
  65. #define HRPWM_COMPAREUNIT_A 0x00000001U /*!< Compare unit A identifier */
  66. #define HRPWM_COMPAREUNIT_B 0x00000002U /*!< Compare unit B identifier */
  67. #define HRPWM_COMPAREUNIT_C 0x00000004U /*!< Compare unit C identifier */
  68. #define HRPWM_COMPAREUNIT_D 0x00000008U /*!< Compare unit D identifier */
  69. /**
  70. * @}
  71. */
  72. /** @defgroup HRPWM_Timer_Output_Start HRPWM Timer Output
  73. * @brief Constants defining timer output identifiers -- output enable,not enable cannot output wave
  74. * @{
  75. */
  76. #define HRPWM_OUTPUT_OEN0A 0x00000001U /*!< Timer 0 - Output A identifier */
  77. #define HRPWM_OUTPUT_OEN0B 0x00000002U /*!< Timer 0 - Output B identifier */
  78. #define HRPWM_OUTPUT_OEN1A 0x00000004U /*!< Timer 1 - Output A identifier */
  79. #define HRPWM_OUTPUT_OEN1B 0x00000008U /*!< Timer 1 - Output B identifier */
  80. #define HRPWM_OUTPUT_OEN2A 0x00000010U /*!< Timer 2 - Output A identifier */
  81. #define HRPWM_OUTPUT_OEN2B 0x00000020U /*!< Timer 2 - Output B identifier */
  82. #define HRPWM_OUTPUT_OEN3A 0x00000040U /*!< Timer 3 - Output A identifier */
  83. #define HRPWM_OUTPUT_OEN3B 0x00000080U /*!< Timer 3 - Output B identifier */
  84. #define HRPWM_OUTPUT_OEN4A 0x00000100U /*!< Timer 4 - Output A identifier */
  85. #define HRPWM_OUTPUT_OEN4B 0x00000200U /*!< Timer 4 - Output B identifier */
  86. #define HRPWM_OUTPUT_OEN5A 0x00000400U /*!< Timer 5 - Output A identifier */
  87. #define HRPWM_OUTPUT_OEN5B 0x00000800U /*!< Timer 5 - Output B identifier */
  88. /**
  89. * @}
  90. */
  91. /** @defgroup HRPWM_Timer_Output_Stop HRPWM Timer Output Disable
  92. * @brief Constants defining timer disable output identifiers
  93. * @{
  94. */
  95. #define HRPWM_OUTPUT_ODIS0A 0x00000001U /*!< Timer 0 - Disable Output A identifier */
  96. #define HRPWM_OUTPUT_ODIS0B 0x00000002U /*!< Timer 0 - Disable Output B identifier */
  97. #define HRPWM_OUTPUT_ODIS1A 0x00000004U /*!< Timer 1 - Disable Output A identifier */
  98. #define HRPWM_OUTPUT_ODIS1B 0x00000008U /*!< Timer 1 - Disable Output B identifier */
  99. #define HRPWM_OUTPUT_ODIS2A 0x00000010U /*!< Timer 2 - Disable Output A identifier */
  100. #define HRPWM_OUTPUT_ODIS2B 0x00000020U /*!< Timer 2 - Disable Output B identifier */
  101. #define HRPWM_OUTPUT_ODIS3A 0x00000040U /*!< Timer 3 - Disable Output A identifier */
  102. #define HRPWM_OUTPUT_ODIS3B 0x00000080U /*!< Timer 3 - Disable Output B identifier */
  103. #define HRPWM_OUTPUT_ODIS4A 0x00000100U /*!< Timer 4 - Disable Output A identifier */
  104. #define HRPWM_OUTPUT_ODIS4B 0x00000200U /*!< Timer 4 - Disable Output B identifier */
  105. #define HRPWM_OUTPUT_ODIS5A 0x00000400U /*!< Timer 5 - Disable Output A identifier */
  106. #define HRPWM_OUTPUT_ODIS5B 0x00000800U /*!< Timer 5 - Disable Output B identifier */
  107. /**
  108. * @}
  109. */
  110. /** @defgroup HRPWM_Synchronization_Options HRPWM Synchronization Options
  111. * @brief Constants defining the options for synchronizing multiple HRPWM
  112. * instances, as a master unit (generating a synchronization signal)
  113. * or as a slave (waiting for a trigger to be synchronized)
  114. * @{
  115. */
  116. #define HRPWM_SYNCOPTION_NONE 0x0 /*!< HRPWM instance doesn't handle external sync signals (SYNCIN, SYNCOUT) */
  117. #define HRPWM_SYNCOPTION_MASTER 0x1U/*!< HRPWM instance acts as a MASTER, i.e. generates external sync output (SYNCOUT) */
  118. #define HRPWM_SYNCOPTION_SLAVE 0x2U/*!< HRPWM instance acts as a SLAVE, i.e. it is sync by external sources (SYNCIN) */
  119. /**
  120. * @}
  121. */
  122. /** @defgroup HRPWM_Timer_Update_Trigger HRPWM Timer Update Trigger
  123. * @brief Constants defining whether the registers update is done synchronously with any other timer or master update
  124. * @{
  125. */
  126. #define HRPWM_UPDATETRIGGER_NONE 0x00000000U /*!< Register update is disabled */
  127. #define HRPWM_UPDATETRIGGER_MASTER (HRPWM_CR0_MUPD) /*!< Register update is triggered by the master timer update */
  128. #define HRPWM_UPDATETRIGGER_TIMER_0 (HRPWM_CR0_UPD0) /*!< Register update is triggered by the timer 0 update */
  129. #define HRPWM_UPDATETRIGGER_TIMER_1 (HRPWM_CR0_UPD1) /*!< Register update is triggered by the timer 1 update */
  130. #define HRPWM_UPDATETRIGGER_TIMER_2 (HRPWM_CR0_UPD2) /*!< Register update is triggered by the timer 2 update */
  131. #define HRPWM_UPDATETRIGGER_TIMER_3 (HRPWM_CR0_UPD3) /*!< Register update is triggered by the timer 3 update */
  132. #define HRPWM_UPDATETRIGGER_TIMER_4 (HRPWM_CR0_UPD4) /*!< Register update is triggered by the timer 4 update */
  133. #define HRPWM_UPDATETRIGGER_TIMER_5 (HRPWM_CR0_UPD5) /*!< Register update is triggered by the timer 5 update */
  134. #define HRPWM_UPDATETRIGGER_REP (HRPWM_CR0_UPDREP) /*!< Register update is triggered by the Repetition update */
  135. #define HRPWM_UPDATETRIGGER_RST (HRPWM_CR0_UPDRST) /*!< Register update is triggered by the reset update */
  136. /**
  137. * @}
  138. */
  139. /** @defgroup HRPWM_Timer_Set_Trigger HRPWM Output Set A\B Source
  140. * @brief Constants defining the events that can be selected to configure the set crossbar of a timer output
  141. * @{
  142. */
  143. #define HRPWM_OUTPUT_SET_NONE (0x00000000U) /*!< HRPWM output set none */
  144. #define HRPWM_OUTPUT_SET_SST (1UL << 18) /*!< Timer reset event coming solely from software forces the output
  145. to its active state */
  146. #define HRPWM_OUTPUT_SET_RESYNC (1UL << 17) /*!< SYNC input forces the output to its active state */
  147. #define HRPWM_OUTPUT_SET_EXTEVNT5 (1UL << 16) /*!< External event 5 forces the output to its active state */
  148. #define HRPWM_OUTPUT_SET_EXTEVNT4 (1UL << 15) /*!< External event 4 forces the output to its active state */
  149. #define HRPWM_OUTPUT_SET_EXTEVNT3 (1UL << 14) /*!< External event 3 forces the output to its active state */
  150. #define HRPWM_OUTPUT_SET_EXTEVNT2 (1UL << 13) /*!< External event 2 forces the output to its active state */
  151. #define HRPWM_OUTPUT_SET_EXTEVNT1 (1UL << 12) /*!< External event 1 forces the output to its active state */
  152. #define HRPWM_OUTPUT_SET_EXTEVNT0 (1UL << 11) /*!< External event 0 forces the output to its active state */
  153. #define HRPWM_OUTPUT_SET_MSTPRD (1UL << 10) /*!< The master timer period event forces the output to its active state */
  154. #define HRPWM_OUTPUT_SET_MSTCMPD (1UL << 9) /*!< Master Timer compare D event forces the output to its active state */
  155. #define HRPWM_OUTPUT_SET_MSTCMPC (1UL << 8) /*!< Master Timer compare C event forces the output to its active state */
  156. #define HRPWM_OUTPUT_SET_MSTCMPB (1UL << 7) /*!< Master Timer compare B event forces the output to its active state */
  157. #define HRPWM_OUTPUT_SET_MSTCMPA (1UL << 6) /*!< Master Timer compare A event forces the output to its active state */
  158. #define HRPWM_OUTPUT_SET_PRD (1UL << 5) /*!< Timer period event forces the output to its active state */
  159. #define HRPWM_OUTPUT_SET_CMPD (1UL << 4) /*!< Timer compare D event forces the output to its active state */
  160. #define HRPWM_OUTPUT_SET_CMPC (1UL << 3) /*!< Timer compare C event forces the output to its active state */
  161. #define HRPWM_OUTPUT_SET_CMPB (1UL << 2) /*!< Timer compare B event forces the output to its active state */
  162. #define HRPWM_OUTPUT_SET_CMPA (1UL << 1) /*!< Timer compare A event forces the output to its active state */
  163. #define HRPWM_OUTPUT_SET_UPDATE (1UL << 0) /*!< Timer register update event forces the output to its active state */
  164. /**
  165. * @}
  166. */
  167. /** @defgroup HRPWM_Timer_Clear_Trigger HRPWM Output Clear A\B Source
  168. * @brief Constants defining the events that can be selected to configure the clear crossbar of a timer output
  169. * @{
  170. */
  171. #define HRPWM_OUTPUT_CLEAR_NONE (0x00000000U) /*!< HRPWM output clear None */
  172. #define HRPWM_OUTPUT_CLEAR_SST (1UL << 18) /*!< Timer reset event coming solely from software forces the output
  173. to its inactive state */
  174. #define HRPWM_OUTPUT_CLEAR_RESYNC (1UL << 17) /*!< SYNC input forces the output to its inactive state */
  175. #define HRPWM_OUTPUT_CLEAR_EXTEVNT5 (1UL << 16) /*!< External event 5 forces the output to its inactive state */
  176. #define HRPWM_OUTPUT_CLEAR_EXTEVNT4 (1UL << 15) /*!< External event 4 forces the output to its inactive state */
  177. #define HRPWM_OUTPUT_CLEAR_EXTEVNT3 (1UL << 14) /*!< External event 3 forces the output to its inactive state */
  178. #define HRPWM_OUTPUT_CLEAR_EXTEVNT2 (1UL << 13) /*!< External event 2 forces the output to its inactive state */
  179. #define HRPWM_OUTPUT_CLEAR_EXTEVNT1 (1UL << 12) /*!< External event 1 forces the output to its inactive state */
  180. #define HRPWM_OUTPUT_CLEAR_EXTEVNT0 (1UL << 11) /*!< External event 0 forces the output to its inactive state */
  181. #define HRPWM_OUTPUT_CLEAR_MSTPRD (1UL << 10) /*!< The master timer period event forces the output to its inactive state */
  182. #define HRPWM_OUTPUT_CLEAR_MSTCMPD (1UL << 9) /*!< Master Timer compare D event forces the output to its inactive state */
  183. #define HRPWM_OUTPUT_CLEAR_MSTCMPC (1UL << 8) /*!< Master Timer compare C event forces the output to its inactive state */
  184. #define HRPWM_OUTPUT_CLEAR_MSTCMPB (1UL << 7) /*!< Master Timer compare B event forces the output to its inactive state */
  185. #define HRPWM_OUTPUT_CLEAR_MSTCMPA (1UL << 6) /*!< Master Timer compare A event forces the output to its inactive state */
  186. #define HRPWM_OUTPUT_CLEAR_PRD (1UL << 5) /*!< Timer period event forces the output to its inactive state */
  187. #define HRPWM_OUTPUT_CLEAR_CMPD (1UL << 4) /*!< Timer compare D event forces the output to its inactive state */
  188. #define HRPWM_OUTPUT_CLEAR_CMPC (1UL << 3) /*!< Timer compare C event forces the output to its inactive state */
  189. #define HRPWM_OUTPUT_CLEAR_CMPB (1UL << 2) /*!< Timer compare B event forces the output to its inactive state */
  190. #define HRPWM_OUTPUT_CLEAR_CMPA (1UL << 1) /*!< Timer compare A event forces the output to its inactive state */
  191. #define HRPWM_OUTPUT_CLEAR_UPDATE (1UL << 0) /*!< Timer register update event forces the output to its inactive state */
  192. /**
  193. * @}
  194. */
  195. /** @defgroup HRPWM_Timer_Reset_Trigger HRPWM Timer Reset Trigger
  196. * @brief Constants defining the events that can be selected to trigger the reset of the timer counter
  197. * @{
  198. */
  199. #define HRPWM_RESET_TRIGGER_NONE 0x00000000U /*!< No counter reset trigger */
  200. #define HRPWM_RESET_TRIGGER_EXTEVT5 (HRPWM_RSTR_EXTEVT5) /*!< The timer counter is reset upon external event 5 */
  201. #define HRPWM_RESET_TRIGGER_EXTEVT4 (HRPWM_RSTR_EXTEVT4) /*!< The timer counter is reset upon external event 4 */
  202. #define HRPWM_RESET_TRIGGER_EXTEVT3 (HRPWM_RSTR_EXTEVT3) /*!< The timer counter is reset upon external event 3 */
  203. #define HRPWM_RESET_TRIGGER_UPD_CMPA5 (HRPWM_RSTR_UPD_CMPA5) /*!< The timer counter is reset upon other timer 5 update and Compare A event */
  204. #define HRPWM_RESET_TRIGGER_CMPD4 (HRPWM_RSTR_CMPD4 ) /*!< The timer counter is reset upon other timer 4 Compare D event */
  205. #define HRPWM_RESET_TRIGGER_CMPB4 (HRPWM_RSTR_CMPB4 ) /*!< The timer counter is reset upon other timer 4 Compare B event */
  206. #define HRPWM_RESET_TRIGGER_UPD_CMPA4 (HRPWM_RSTR_UPD_CMPA4) /*!< The timer counter is reset upon other timer 4 update and Compare A event */
  207. #define HRPWM_RESET_TRIGGER_CMPD3 (HRPWM_RSTR_CMPD3 ) /*!< The timer counter is reset upon other timer 3 Compare D event */
  208. #define HRPWM_RESET_TRIGGER_CMPB3 (HRPWM_RSTR_CMPB3 ) /*!< The timer counter is reset upon other timer 3 Compare B event */
  209. #define HRPWM_RESET_TRIGGER_UPD_CMPA3 (HRPWM_RSTR_UPD_CMPA3) /*!< The timer counter is reset upon other timer 3 update and Compare A event */
  210. #define HRPWM_RESET_TRIGGER_CMPD2 (HRPWM_RSTR_CMPD2 ) /*!< The timer counter is reset upon other timer 2 Compare D event */
  211. #define HRPWM_RESET_TRIGGER_CMPB2 (HRPWM_RSTR_CMPB2 ) /*!< The timer counter is reset upon other timer 2 Compare B event */
  212. #define HRPWM_RESET_TRIGGER_UPD_CMPA2 (HRPWM_RSTR_UPD_CMPA2) /*!< The timer counter is reset upon other timer 2 update and Compare A event */
  213. #define HRPWM_RESET_TRIGGER_CMPD1 (HRPWM_RSTR_CMPD1 ) /*!< The timer counter is reset upon other timer 1 Compare D event */
  214. #define HRPWM_RESET_TRIGGER_CMPB1 (HRPWM_RSTR_CMPB1 ) /*!< The timer counter is reset upon other timer 1 Compare B event */
  215. #define HRPWM_RESET_TRIGGER_UPD_CMPA1 (HRPWM_RSTR_UPD_CMPA1) /*!< The timer counter is reset upon other timer 1 update and Compare A event */
  216. #define HRPWM_RESET_TRIGGER_CMPD0 (HRPWM_RSTR_CMPD0 ) /*!< The timer counter is reset upon other timer 0 Compare D event */
  217. #define HRPWM_RESET_TRIGGER_CMPB0 (HRPWM_RSTR_CMPB0 ) /*!< The timer counter is reset upon other timer 0 Compare B event */
  218. #define HRPWM_RESET_TRIGGER_UPD_CMPA0 (HRPWM_RSTR_UPD_CMPA0) /*!< The timer counter is reset upon other timer 0 update and Compare A event */
  219. #define HRPWM_RESET_TRIGGER_CMPD5 (HRPWM_RSTR_CMPD5 ) /*!< The timer counter is reset upon other timer 5 Compare D event */
  220. #define HRPWM_RESET_TRIGGER_CMPB5 (HRPWM_RSTR_CMPB5 ) /*!< The timer counter is reset upon other timer 5 Compare B event */
  221. #define HRPWM_RESET_TRIGGER_EXTEVT2 (HRPWM_RSTR_EXTEVT2 ) /*!< The timer counter is reset upon external event 2 */
  222. #define HRPWM_RESET_TRIGGER_EXTEVT1 (HRPWM_RSTR_EXTEVT1 ) /*!< The timer counter is reset upon external event 1 */
  223. #define HRPWM_RESET_TRIGGER_EXTEVT0 (HRPWM_RSTR_EXTEVT0 ) /*!< The timer counter is reset upon external event 0 */
  224. #define HRPWM_RESET_TRIGGER_MSTPER (HRPWM_RSTR_MSTPER ) /*!< The timer counter is reset upon master timer period event */
  225. #define HRPWM_RESET_TRIGGER_MSTCMPD (HRPWM_RSTR_MSTCMPD ) /*!< The timer counter is reset upon master timer Compare 1 event */
  226. #define HRPWM_RESET_TRIGGER_MSTCMPC (HRPWM_RSTR_MSTCMPC ) /*!< The timer counter is reset upon master timer Compare 2 event */
  227. #define HRPWM_RESET_TRIGGER_MSTCMPB (HRPWM_RSTR_MSTCMPB ) /*!< The timer counter is reset upon master timer Compare 3 event */
  228. #define HRPWM_RESET_TRIGGER_MSTCMPA (HRPWM_RSTR_MSTCMPA ) /*!< The timer counter is reset upon master timer Compare 4 event */
  229. /**
  230. * @}
  231. */
  232. /** @defgroup HRPWM_Timer_Fault_Enabling HRPWM Timer Fault Enabling
  233. * @brief Constants defining whether a fault channel is enabled for a timer
  234. * @{
  235. */
  236. #define HRPWM_FAULTEN_NONE 0x00000000U /*!< No fault enabled */
  237. #define HRPWM_FAULTEN_FAULT0 (HRPWM_FLTR_FLT0EN) /*!< Fault 0 enabled */
  238. #define HRPWM_FAULTEN_FAULT1 (HRPWM_FLTR_FLT1EN) /*!< Fault 1 enabled */
  239. #define HRPWM_FAULTEN_FAULT2 (HRPWM_FLTR_FLT2EN) /*!< Fault 2 enabled */
  240. #define HRPWM_FAULTEN_FAULT3 (HRPWM_FLTR_FLT3EN) /*!< Fault 3 enabled */
  241. #define HRPWM_FAULTEN_FAULT4 (HRPWM_FLTR_FLT4EN) /*!< Fault 4 enabled */
  242. #define HRPWM_FAULTEN_FAULT5 (HRPWM_FLTR_FLT5EN) /*!< Fault 5 enabled */
  243. /**
  244. * @}
  245. */
  246. /** @defgroup HRPWM_ADC_Trigger_Event HRPWM ADC Trigger Event
  247. * @brief constants defining the events triggering ADC conversion.
  248. * HRPWM_ADCTRIGEVENT0246*: ADC Triggers 0 and 2 and 4 and 6
  249. * HRPWM_ADCTRIGEVENT1357_*: ADC Triggers 1 and 3 and 5 and 7
  250. * @{
  251. */
  252. #define HRPWM_ADCTRIGEVENT0_CMPD5 (HRPWM_ADT0R_CMPD5) /*!< ADC Trigger on Slave Timer 5 compare D */
  253. #define HRPWM_ADCTRIGEVENT0_CMPC5 (HRPWM_ADT0R_CMPC5) /*!< ADC Trigger on Slave Timer 5 compare C */
  254. #define HRPWM_ADCTRIGEVENT0_PER4 (HRPWM_ADT0R_PER4) /*!< ADC Trigger on Slave Timer 4 period */
  255. #define HRPWM_ADCTRIGEVENT0_CMPD4 (HRPWM_ADT0R_CMPD4) /*!< ADC Trigger on Slave Timer 4 compare D */
  256. #define HRPWM_ADCTRIGEVENT0_CMPC4 (HRPWM_ADT0R_CMPC4) /*!< ADC Trigger on Slave Timer 4 compare C */
  257. #define HRPWM_ADCTRIGEVENT0_CMPB4 (HRPWM_ADT0R_CMPB4) /*!< ADC Trigger on Slave Timer 4 compare B */
  258. #define HRPWM_ADCTRIGEVENT0_RST3 (HRPWM_ADT0R_RST3) /*!< ADC Trigger on Slave Timer 3 reset */
  259. #define HRPWM_ADCTRIGEVENT0_CMPD3 (HRPWM_ADT0R_CMPD3) /*!< ADC Trigger on Slave Timer 3 compare D */
  260. #define HRPWM_ADCTRIGEVENT0_CMPC3 (HRPWM_ADT0R_CMPC3) /*!< ADC Trigger on Slave Timer 3 compare C */
  261. #define HRPWM_ADCTRIGEVENT0_CMPB3 (HRPWM_ADT0R_CMPB3) /*!< ADC Trigger on Slave Timer 3 compare B */
  262. #define HRPWM_ADCTRIGEVENT0_PER2 (HRPWM_ADT0R_PER2) /*!< ADC Trigger on Slave Timer 2 period */
  263. #define HRPWM_ADCTRIGEVENT0_CMPD2 (HRPWM_ADT0R_CMPD2) /*!< ADC Trigger on Slave Timer 2 compare D */
  264. #define HRPWM_ADCTRIGEVENT0_CMPC2 (HRPWM_ADT0R_CMPC2) /*!< ADC Trigger on Slave Timer 2 compare C */
  265. #define HRPWM_ADCTRIGEVENT0_CMPB2 (HRPWM_ADT0R_CMPB2) /*!< ADC Trigger on Slave Timer 2 compare B */
  266. #define HRPWM_ADCTRIGEVENT0_RST1 (HRPWM_ADT0R_RST1) /*!< ADC Trigger on Slave Timer 1 reset */
  267. #define HRPWM_ADCTRIGEVENT0_CMPD1 (HRPWM_ADT0R_CMPD1) /*!< ADC Trigger on Slave Timer 1 compare D */
  268. #define HRPWM_ADCTRIGEVENT0_CMPC1 (HRPWM_ADT0R_CMPC1) /*!< ADC Trigger on Slave Timer 1 compare C */
  269. #define HRPWM_ADCTRIGEVENT0_CMPB1 (HRPWM_ADT0R_CMPB1) /*!< ADC Trigger on Slave Timer 1 compare B */
  270. #define HRPWM_ADCTRIGEVENT0_PER0 (HRPWM_ADT0R_PER0) /*!< ADC Trigger on Slave Timer 0 period */
  271. #define HRPWM_ADCTRIGEVENT0_CMPD0 (HRPWM_ADT0R_CMPD0) /*!< ADC Trigger on Slave Timer 0 compare D */
  272. #define HRPWM_ADCTRIGEVENT0_CMPC0 (HRPWM_ADT0R_CMPC0) /*!< ADC Trigger on Slave Timer 0 compare C */
  273. #define HRPWM_ADCTRIGEVENT0_CMPB0 (HRPWM_ADT0R_CMPB0) /*!< ADC Trigger on Slave Timer 0 compare B */
  274. #define HRPWM_ADCTRIGEVENT0_RST5 (HRPWM_ADT0R_RST5) /*!< ADC Trigger on Slave Timer 5 reset */
  275. #define HRPWM_ADCTRIGEVENT0_CMPB5 (HRPWM_ADT0R_CMPB5) /*!< ADC Trigger on Slave Timer 5 compare B */
  276. #define HRPWM_ADCTRIGEVENT0_EEV2 (HRPWM_ADT0R_EEV2) /*!< ADC Trigger on external event 2 */
  277. #define HRPWM_ADCTRIGEVENT0_EEV1 (HRPWM_ADT0R_EEV1) /*!< ADC Trigger on external event 1 */
  278. #define HRPWM_ADCTRIGEVENT0_EEV0 (HRPWM_ADT0R_EEV0) /*!< ADC Trigger on external event 0 */
  279. #define HRPWM_ADCTRIGEVENT0_MPER (HRPWM_ADT0R_MPER) /*!< ADC Trigger on Master Timer period */
  280. #define HRPWM_ADCTRIGEVENT0_MCMPD (HRPWM_ADT0R_MCMPD) /*!< ADC Trigger on Master Timer compare D */
  281. #define HRPWM_ADCTRIGEVENT0_MCMPC (HRPWM_ADT0R_MCMPC) /*!< ADC Trigger on Master Timer compare C */
  282. #define HRPWM_ADCTRIGEVENT0_MCMPB (HRPWM_ADT0R_MCMPB) /*!< ADC Trigger on Master Timer compare B */
  283. #define HRPWM_ADCTRIGEVENT0_MCMPA (HRPWM_ADT0R_MCMPA) /*!< ADC Trigger on Master Timer compare A */
  284. #define HRPWM_ADCTRIGEVENT1_CMPD5 (HRPWM_ADT1R_CMPD5) /*!< ADC Trigger on Slave Timer 5 compare D */
  285. #define HRPWM_ADCTRIGEVENT1_CMPC5 (HRPWM_ADT1R_CMPC5) /*!< ADC Trigger on Slave Timer 5 compare C */
  286. #define HRPWM_ADCTRIGEVENT1_RST4 (HRPWM_ADT1R_RST4) /*!< ADC Trigger on Slave Timer 4 reset */
  287. #define HRPWM_ADCTRIGEVENT1_CMPD4 (HRPWM_ADT1R_CMPD4) /*!< ADC Trigger on Slave Timer 4 compare D */
  288. #define HRPWM_ADCTRIGEVENT1_CMPC4 (HRPWM_ADT1R_CMPC4) /*!< ADC Trigger on Slave Timer 4 compare C */
  289. #define HRPWM_ADCTRIGEVENT1_CMPB4 (HRPWM_ADT1R_CMPB4) /*!< ADC Trigger on Slave Timer 4 compare B */
  290. #define HRPWM_ADCTRIGEVENT1_PER3 (HRPWM_ADT1R_PER3) /*!< ADC Trigger on Slave Timer 3 period */
  291. #define HRPWM_ADCTRIGEVENT1_CMPD3 (HRPWM_ADT1R_CMPD3) /*!< ADC Trigger on Slave Timer 3 compare D */
  292. #define HRPWM_ADCTRIGEVENT1_CMPC3 (HRPWM_ADT1R_CMPC3) /*!< ADC Trigger on Slave Timer 3 compare C */
  293. #define HRPWM_ADCTRIGEVENT1_CMPB3 (HRPWM_ADT1R_CMPB3) /*!< ADC Trigger on Slave Timer 3 compare B */
  294. #define HRPWM_ADCTRIGEVENT1_RST2 (HRPWM_ADT1R_RST2) /*!< ADC Trigger on Slave Timer 2 reset */
  295. #define HRPWM_ADCTRIGEVENT1_CMPD2 (HRPWM_ADT1R_CMPD2) /*!< ADC Trigger on Slave Timer 2 compare D */
  296. #define HRPWM_ADCTRIGEVENT1_CMPC2 (HRPWM_ADT1R_CMPC2) /*!< ADC Trigger on Slave Timer 2 compare C */
  297. #define HRPWM_ADCTRIGEVENT1_CMPB2 (HRPWM_ADT1R_CMPB2) /*!< ADC Trigger on Slave Timer 2 compare B */
  298. #define HRPWM_ADCTRIGEVENT1_PER1 (HRPWM_ADT1R_PER1) /*!< ADC Trigger on Slave Timer 1 period */
  299. #define HRPWM_ADCTRIGEVENT1_CMPD1 (HRPWM_ADT1R_CMPD1) /*!< ADC Trigger on Slave Timer 1 compare D */
  300. #define HRPWM_ADCTRIGEVENT1_CMPC1 (HRPWM_ADT1R_CMPC1) /*!< ADC Trigger on Slave Timer 1 compare C */
  301. #define HRPWM_ADCTRIGEVENT1_CMPB1 (HRPWM_ADT1R_CMPB1) /*!< ADC Trigger on Slave Timer 1 compare B */
  302. #define HRPWM_ADCTRIGEVENT1_RST0 (HRPWM_ADT1R_RST0) /*!< ADC Trigger on Slave Timer 0 reset */
  303. #define HRPWM_ADCTRIGEVENT1_CMPD0 (HRPWM_ADT1R_CMPD0) /*!< ADC Trigger on Slave Timer 0 compare D */
  304. #define HRPWM_ADCTRIGEVENT1_CMPC0 (HRPWM_ADT1R_CMPC0) /*!< ADC Trigger on Slave Timer 0 compare C */
  305. #define HRPWM_ADCTRIGEVENT1_CMPB0 (HRPWM_ADT1R_CMPB0) /*!< ADC Trigger on Slave Timer 0 compare B */
  306. #define HRPWM_ADCTRIGEVENT1_PER5 (HRPWM_ADT1R_PER5) /*!< ADC Trigger on Slave Timer 5 period */
  307. #define HRPWM_ADCTRIGEVENT1_CMPB5 (HRPWM_ADT1R_CMPB5) /*!< ADC Trigger on Slave Timer 5 compare B */
  308. #define HRPWM_ADCTRIGEVENT1_EEV2 (HRPWM_ADT1R_EEV5) /*!< ADC Trigger on external event 2 */
  309. #define HRPWM_ADCTRIGEVENT1_EEV1 (HRPWM_ADT1R_EEV4) /*!< ADC Trigger on external event 1 */
  310. #define HRPWM_ADCTRIGEVENT1_EEV0 (HRPWM_ADT1R_EEV3) /*!< ADC Trigger on external event 0 */
  311. #define HRPWM_ADCTRIGEVENT1_MPER (HRPWM_ADT1R_MPER) /*!< ADC Trigger on Master Timer period */
  312. #define HRPWM_ADCTRIGEVENT1_MCMPD (HRPWM_ADT1R_MCMPD) /*!< ADC Trigger on Master Timer compare D */
  313. #define HRPWM_ADCTRIGEVENT1_MCMPC (HRPWM_ADT1R_MCMPC) /*!< ADC Trigger on Master Timer compare C */
  314. #define HRPWM_ADCTRIGEVENT1_MCMPB (HRPWM_ADT1R_MCMPB) /*!< ADC Trigger on Master Timer compare B */
  315. #define HRPWM_ADCTRIGEVENT1_MCMPA (HRPWM_ADT1R_MCMPA) /*!< ADC Trigger on Master Timer compare A */
  316. /**
  317. * @}
  318. */
  319. /** @defgroup HRPWM_Software_Timer_Update HRPWM Software Timer Update
  320. * @brief Constants used to force timer registers update
  321. * @{
  322. */
  323. #define HRPWM_UPDATE_MASTER (HRPWM_CR1_MSWU)/*!< Force an immediate transfer from the preload to the active register in the master timer */
  324. #define HRPWM_UPDATE_SLAVE_0 (HRPWM_CR1_SWU0)/*!< Force an immediate transfer from the preload to the active register in the slave timer 0 */
  325. #define HRPWM_UPDATE_SLAVE_1 (HRPWM_CR1_SWU1)/*!< Force an immediate transfer from the preload to the active register in the slave timer 1 */
  326. #define HRPWM_UPDATE_SLAVE_2 (HRPWM_CR1_SWU2)/*!< Force an immediate transfer from the preload to the active register in the slave timer 2 */
  327. #define HRPWM_UPDATE_SLAVE_3 (HRPWM_CR1_SWU3)/*!< Force an immediate transfer from the preload to the active register in the slave timer 3 */
  328. #define HRPWM_UPDATE_SLAVE_4 (HRPWM_CR1_SWU4)/*!< Force an immediate transfer from the preload to the active register in the slave timer 4 */
  329. #define HRPWM_UPDATE_SLAVE_5 (HRPWM_CR1_SWU5)/*!< Force an immediate transfer from the preload to the active register in the slave timer 5 */
  330. /**
  331. * @}
  332. */
  333. /** @defgroup HRPWM_Software_Timer_SwapOutput HRPWM Software Timer swap Output
  334. * @brief Constants used to swap the output of the timer registers
  335. * @{
  336. */
  337. #define HRPWM_SWAP_SLAVE_0 (HRPWM_CR1_SWP0) /*!< Swap the output of the slave Timer 0 */
  338. #define HRPWM_SWAP_SLAVE_1 (HRPWM_CR1_SWP1) /*!< Swap the output of the slave Timer 1 */
  339. #define HRPWM_SWAP_SLAVE_2 (HRPWM_CR1_SWP2) /*!< Swap the output of the slave Timer 2 */
  340. #define HRPWM_SWAP_SLAVE_3 (HRPWM_CR1_SWP3) /*!< Swap the output of the slave Timer 3 */
  341. #define HRPWM_SWAP_SLAVE_4 (HRPWM_CR1_SWP4) /*!< Swap the output of the slave Timer 4 */
  342. #define HRPWM_SWAP_SLAVE_5 (HRPWM_CR1_SWP5) /*!< Swap the output of the slave Timer 5 */
  343. /**
  344. * @}
  345. */
  346. /** @defgroup HRPWM_Software_Timer_Reset HRPWM Software Timer Reset
  347. * @brief Constants used to force timer counter reset
  348. * @{
  349. */
  350. #define HRPWM_RESET_MASTER (HRPWM_CR1_MRST) /*!< Reset the master timer counter */
  351. #define HRPWM_RESET_SLAVE_0 (HRPWM_CR1_RST0) /*!< Reset the slave timer 0 counter */
  352. #define HRPWM_RESET_SLAVE_1 (HRPWM_CR1_RST1) /*!< Reset the slave timer 1 counter */
  353. #define HRPWM_RESET_SLAVE_2 (HRPWM_CR1_RST2) /*!< Reset the slave timer 2 counter */
  354. #define HRPWM_RESET_SLAVE_3 (HRPWM_CR1_RST3) /*!< Reset the slave timer 3 counter */
  355. #define HRPWM_RESET_SLAVE_4 (HRPWM_CR1_RST4) /*!< Reset the slave timer 4 counter */
  356. #define HRPWM_RESET_SLAVE_5 (HRPWM_CR1_RST5) /*!< Reset the slave timer 5 counter */
  357. /**
  358. * @}
  359. */
  360. /** @defgroup HRPWM_Software_Timer_Update_Disable HRPWM Software Timer Update Disable
  361. * @brief Constants used to force timer counter Update Disable
  362. * @{
  363. */
  364. #define HRPWM_UPDISABLE_MASTER (HRPWM_CR0_MUDIS) /*!< Update Disable the master timer counter */
  365. #define HRPWM_UPDISABLE_SLAVE_0 (HRPWM_CR0_UDIS0) /*!< Update Disable the slave timer 0 counter */
  366. #define HRPWM_UPDISABLE_SLAVE_1 (HRPWM_CR0_UDIS1) /*!< Update Disable the slave timer 1 counter */
  367. #define HRPWM_UPDISABLE_SLAVE_2 (HRPWM_CR0_UDIS2) /*!< Update Disable the slave timer 2 counter */
  368. #define HRPWM_UPDISABLE_SLAVE_3 (HRPWM_CR0_UDIS3) /*!< Update Disable the slave timer 3 counter */
  369. #define HRPWM_UPDISABLE_SLAVE_4 (HRPWM_CR0_UDIS4) /*!< Update Disable the slave timer 4 counter */
  370. #define HRPWM_UPDISABLE_SLAVE_5 (HRPWM_CR0_UDIS5) /*!< Update Disable the slave timer 5 counter */
  371. /**
  372. * @}
  373. */
  374. /** @defgroup HRPWM_Software_forced_update HRPWM Software forced update
  375. * @brief Constants used to force timer counter Software forced update
  376. * @{
  377. */
  378. #define HRPWM_SOFT_UPDATE_MASTER (HRPWM_CR1_MSWU) /*!< Update Disable the master timer counter */
  379. #define HRPWM_SOFT_UPDATE_SLAVE_0 (HRPWM_CR1_SWU0) /*!< Update Disable the slave timer 0 counter */
  380. #define HRPWM_SOFT_UPDATE_SLAVE_1 (HRPWM_CR1_SWU1) /*!< Update Disable the slave timer 1 counter */
  381. #define HRPWM_SOFT_UPDATE_SLAVE_2 (HRPWM_CR1_SWU2) /*!< Update Disable the slave timer 2 counter */
  382. #define HRPWM_SOFT_UPDATE_SLAVE_3 (HRPWM_CR1_SWU3) /*!< Update Disable the slave timer 3 counter */
  383. #define HRPWM_SOFT_UPDATE_SLAVE_4 (HRPWM_CR1_SWU4) /*!< Update Disable the slave timer 4 counter */
  384. #define HRPWM_SOFT_UPDATE_SLAVE_5 (HRPWM_CR1_SWU5) /*!< Update Disable the slave timer 5 counter */
  385. /**
  386. * @}
  387. */
  388. /** @defgroup HRPWM_Output_State HRPWM Output State
  389. * @brief Constants defining the state of a timer output
  390. * @{
  391. */
  392. #define HRPWM_OUTPUTSTATE_IDLE (0x00000001U) /*!< Main operating mode, where the output can take the active or
  393. inactive level as programmed in the crossbar unit */
  394. #define HRPWM_OUTPUTSTATE_RUN (0x00000002U) /*!< Default operating state (e.g. after an HRPWM reset, when the
  395. outputs are disabled by software or during a burst mode operation */
  396. #define HRPWM_OUTPUTSTATE_FAULT (0x00000003U) /*!< Safety state, entered in case of a shut-down request on
  397. FAULTx inputs */
  398. /**
  399. * @}
  400. */
  401. /** @defgroup HRPWM_Common_Interrupt_Enable HRPWM Common Interrupt Enable
  402. * @{
  403. */
  404. #define HRPWM_IT_SRC (0x0000003FU)
  405. #define HRPWM_IT_NONE (0x00000000U) /*!< No interrupt enabled */
  406. #define HRPWM_IT_FLT0 HRPWM_IER_FLT0IE /*!< Fault 0 interrupt enable */
  407. #define HRPWM_IT_FLT1 HRPWM_IER_FLT1IE /*!< Fault 1 interrupt enable */
  408. #define HRPWM_IT_FLT2 HRPWM_IER_FLT2IE /*!< Fault 2 interrupt enable */
  409. #define HRPWM_IT_FLT3 HRPWM_IER_FLT3IE /*!< Fault 3 interrupt enable */
  410. #define HRPWM_IT_FLT4 HRPWM_IER_FLT4IE /*!< Fault 4 interrupt enable */
  411. #define HRPWM_IT_FLT5 HRPWM_IER_FLT5IE /*!< Fault 5 interrupt enable */
  412. #define HRPWM_IT_SYSFLT HRPWM_IER_SYSFLTIE /*!< System Fault interrupt enable */
  413. /**
  414. * @}
  415. */
  416. /** @defgroup HRPWM_Common_Interrupt_Flag HRPWM Common Interrupt Flag
  417. * @{
  418. */
  419. #define HRPWM_FLAG_FLT0 HRPWM_ISR_FLT0 /*!< Fault 0 interrupt flag */
  420. #define HRPWM_FLAG_FLT1 HRPWM_ISR_FLT1 /*!< Fault 1 interrupt flag */
  421. #define HRPWM_FLAG_FLT2 HRPWM_ISR_FLT2 /*!< Fault 2 interrupt flag */
  422. #define HRPWM_FLAG_FLT3 HRPWM_ISR_FLT3 /*!< Fault 3 interrupt flag */
  423. #define HRPWM_FLAG_FLT4 HRPWM_ISR_FLT4 /*!< Fault 4 interrupt flag */
  424. #define HRPWM_FLAG_FLT5 HRPWM_ISR_FLT5 /*!< Fault 5 interrupt flag */
  425. #define HRPWM_FLAG_SYSFLT HRPWM_ISR_SYSFLT /*!< System Fault interrupt flag */
  426. /**
  427. * @}
  428. */
  429. /** @defgroup HRPWM_Master_Interrupt_Enable HRPWM Master Interrupt Enable
  430. * @{
  431. */
  432. #define HRPWM_MASTER_IT_SRC 0x000000FFU /*!< ALL interrupt enabled */
  433. #define HRPWM_MASTER_IT_NONE 0x00000000U /*!< No interrupt enabled */
  434. #define HRPWM_MASTER_IT_MCMPA HRPWM_MIER_MCMPAIE /*!< Master compare A interrupt enable */
  435. #define HRPWM_MASTER_IT_MCMPB HRPWM_MIER_MCMPBIE /*!< Master compare B interrupt enable */
  436. #define HRPWM_MASTER_IT_MCMPC HRPWM_MIER_MCMPCIE /*!< Master compare C interrupt enable */
  437. #define HRPWM_MASTER_IT_MCMPD HRPWM_MIER_MCMPDIE /*!< Master compare D interrupt enable */
  438. #define HRPWM_MASTER_IT_MPER HRPWM_MIER_MPERIE /*!< Master Period interrupt enable */
  439. #define HRPWM_MASTER_IT_SYNC HRPWM_MIER_SYNCIE /*!< Synchronization input interrupt enable */
  440. #define HRPWM_MASTER_IT_MUPD HRPWM_MIER_MUPDIE /*!< Master update interrupt enable */
  441. #define HRPWM_MASTER_IT_MREP HRPWM_MIER_MREPIE /*!< Master Repetition interrupt enable */
  442. /**
  443. * @}
  444. */
  445. /** @defgroup HRPWM_Master_Interrupt_Flag HRPWM Master Interrupt flag
  446. * @{
  447. */
  448. #define HRPWM_MASTER_FLAG_NONE 0x00000000U /*!< No interrupt flag */
  449. #define HRPWM_MASTER_FLAG_MCMPA HRPWM_MISR_MCMPA /*!< Master compare A interrupt flag */
  450. #define HRPWM_MASTER_FLAG_MCMPB HRPWM_MISR_MCMPB /*!< Master compare B interrupt flag */
  451. #define HRPWM_MASTER_FLAG_MCMPC HRPWM_MISR_MCMPC /*!< Master compare C interrupt flag */
  452. #define HRPWM_MASTER_FLAG_MCMPD HRPWM_MISR_MCMPD /*!< Master compare D interrupt flag */
  453. #define HRPWM_MASTER_FLAG_MPER HRPWM_MISR_MPER /*!< Master Period interrupt flag */
  454. #define HRPWM_MASTER_FLAG_SYNC HRPWM_MISR_SYNC /*!< Synchronization input interrupt flag */
  455. #define HRPWM_MASTER_FLAG_MUPD HRPWM_MISR_MUPD /*!< Master update interrupt flag */
  456. #define HRPWM_MASTER_FLAG_MREP HRPWM_MISR_MREP /*!< Master Repetition interrupt flag */
  457. /**
  458. * @}
  459. */
  460. /** @defgroup HRPWM_Slave_Timer_Unit_Interrupt_Enable HRPWM Timing Unit Interrupt Enable
  461. * @{
  462. */
  463. #define HRPWM_IT_TIMER_SRC 0x00000FFFU /*!< ALL interrupt enabled */
  464. #define HRPWM_IT_TIMER_NONE 0x00000000U /*!< No interrupt enabled */
  465. #define HRPWM_IT_CMPA HRPWM_IER_CMPAIE /*!< Timer compare A interrupt enable */
  466. #define HRPWM_IT_CMPB HRPWM_IER_CMPBIE /*!< Timer compare B interrupt enable */
  467. #define HRPWM_IT_CMPC HRPWM_IER_CMPCIE /*!< Timer compare C interrupt enable */
  468. #define HRPWM_IT_CMPD HRPWM_IER_CMPDIE /*!< Timer compare D interrupt enable */
  469. #define HRPWM_IT_PER HRPWM_IER_PERIE /*!< Timer period interrupt enable */
  470. #define HRPWM_IT_UPD HRPWM_IER_UPDIE /*!< Timer update interrupt enable */
  471. #define HRPWM_IT_SETA HRPWM_IER_SETAIE /*!< Timer output 1 set interrupt enable */
  472. #define HRPWM_IT_CLRA HRPWM_IER_CLRAIE /*!< Timer output 1 reset interrupt enable */
  473. #define HRPWM_IT_SETB HRPWM_IER_SETBIE /*!< Timer output 2 set interrupt enable */
  474. #define HRPWM_IT_CLRB HRPWM_IER_CLRBIE /*!< Timer output 2 reset interrupt enable */
  475. #define HRPWM_IT_RST HRPWM_IER_RSTIE /*!< Timer reset interrupt enable */
  476. #define HRPWM_IT_REP HRPWM_IER_REPIE /*!< Timer repetition interrupt enable */
  477. /**
  478. * @}
  479. */
  480. /** @defgroup HRPWM_Slave_Timer_Unit_Interrupt_Flag HRPWM Timing Unit Interrupt Flag
  481. * @{
  482. */
  483. #define HRPWM_FLAG_CMPA HRPWM_ISR_CMPA /*!< Timer compare A interrupt flag */
  484. #define HRPWM_FLAG_CMPB HRPWM_ISR_CMPB /*!< Timer compare B interrupt flag */
  485. #define HRPWM_FLAG_CMPC HRPWM_ISR_CMPC /*!< Timer compare C interrupt flag */
  486. #define HRPWM_FLAG_CMPD HRPWM_ISR_CMPD /*!< Timer compare D interrupt flag */
  487. #define HRPWM_FLAG_PER HRPWM_ISR_PER /*!< Timer period interrupt flag */
  488. #define HRPWM_FLAG_UPD HRPWM_ISR_UPD /*!< Timer update interrupt flag */
  489. #define HRPWM_FLAG_SETA HRPWM_ISR_SETA /*!< Timer output 1 set interrupt flag */
  490. #define HRPWM_FLAG_CLRA HRPWM_ISR_CLRA /*!< Timer output 1 reset interrupt flag */
  491. #define HRPWM_FLAG_SETB HRPWM_ISR_SETB /*!< Timer output 2 set interrupt flag */
  492. #define HRPWM_FLAG_CLRB HRPWM_ISR_CLRB /*!< Timer output 2 reset interrupt flag */
  493. #define HRPWM_FLAG_RST HRPWM_ISR_RST /*!< Timer reset interrupt flag */
  494. #define HRPWM_FLAG_REP HRPWM_ISR_REP /*!< Timer repetition interrupt flag */
  495. /**
  496. * @}
  497. */
  498. /**
  499. * @}
  500. */
  501. /* Exported types ------------------------------------------------------------*/
  502. /** @defgroup HRPWM_LL_Exported_Types HRPWM LL Exported Types
  503. * @brief HRPWM LL Exported Types
  504. * @{
  505. */
  506. /** @defgroup HRPWM_DLL_CURRENT HRPWM DLL CURRENT
  507. * @brief Constants defining dll current identifiers
  508. * @{
  509. */
  510. typedef enum {
  511. HRPWM_DLLCR_DLLGCP_4 = 0x0, /*!< DLL current selector bit: 4uA */
  512. HRPWM_DLLCR_DLLGCP_6 = HRPWM_DLLCR_DLLGCP_0, /*!< DLL current selector bit: 6uA */
  513. HRPWM_DLLCR_DLLGCP_8 = HRPWM_DLLCR_DLLGCP_1 | HRPWM_DLLCR_DLLGCP_0, /*!< DLL current selector bit: 8uA */
  514. } HRPWM_DllCurrentETypeDef;
  515. /**
  516. * @}
  517. */
  518. /** @defgroup HRPWM_ADC_Trigger HRPWM ADC Trigger
  519. * @brief Constants defining ADC triggers identifiers
  520. * @{
  521. */
  522. typedef enum {
  523. HRPWM_ADCTRIGGER_0 = 0x0U, /*!< ADC trigger 0 identifier */
  524. HRPWM_ADCTRIGGER_1 = 0x1U, /*!< ADC trigger 1 identifier */
  525. HRPWM_ADCTRIGGER_2 = 0x2U, /*!< ADC trigger 2 identifier */
  526. HRPWM_ADCTRIGGER_3 = 0x3U, /*!< ADC trigger 3 identifier */
  527. HRPWM_ADCTRIGGER_4 = 0x4U, /*!< ADC trigger 4 identifier */
  528. HRPWM_ADCTRIGGER_5 = 0x5U, /*!< ADC trigger 5 identifier */
  529. HRPWM_ADCTRIGGER_6 = 0x6U, /*!< ADC trigger 6 identifier */
  530. HRPWM_ADCTRIGGER_7 = 0x7U, /*!< ADC trigger 7 identifier */
  531. } HRPWM_AdcTrigGroupETypeDef;
  532. /**
  533. * @}
  534. */
  535. /** @defgroup HRPWM_External_Event_Channels HRPWM External Event Channels
  536. * @brief Constants defining external event channel identifiers
  537. * @{
  538. */
  539. typedef enum {
  540. HRPWM_EVENT_NONE = 0x6U, /*!< None Event */
  541. HRPWM_EVENT_0 = 0x0U, /*!< External event channel 0 identifier */
  542. HRPWM_EVENT_1 = 0x1U, /*!< External event channel 1 identifier */
  543. HRPWM_EVENT_2 = 0x2U, /*!< External event channel 2 identifier */
  544. HRPWM_EVENT_3 = 0x3U, /*!< External event channel 3 identifier */
  545. HRPWM_EVENT_4 = 0x4U, /*!< External event channel 4 identifier */
  546. HRPWM_EVENT_5 = 0x5U, /*!< External event channel 5 identifier */
  547. } HRPWM_EventSelETypeDef;
  548. /**
  549. * @}
  550. */
  551. /** @defgroup HRPWM_Fault_Channel HRPWM Fault Channel
  552. * @brief Constants defining fault channel identifiers
  553. * @{
  554. */
  555. typedef enum {
  556. HRPWM_FAULT_0 = 0x00U, /*!< Fault channel 0 identifier */
  557. HRPWM_FAULT_1 = 0x01U, /*!< Fault channel 1 identifier */
  558. HRPWM_FAULT_2 = 0x02U, /*!< Fault channel 2 identifier */
  559. HRPWM_FAULT_3 = 0x03U, /*!< Fault channel 3 identifier */
  560. HRPWM_FAULT_4 = 0x04U, /*!< Fault channel 4 identifier */
  561. HRPWM_FAULT_5 = 0x05U, /*!< Fault channel 5 identifier */
  562. HRPWM_SYSFAULT = 0x06U, /*!< Fault channel 5 identifier */
  563. } HRPWM_FaultSelETypeDef;
  564. /**
  565. * @}
  566. */
  567. /** @defgroup HRPWM_Prescaler_Ratio HRPWM Prescaler Ratio
  568. * @brief Constants defining timer high-resolution clock prescaler ratio.
  569. * @{
  570. */
  571. typedef enum {
  572. HRPWM_PRESCALERRATIO_MUL32 = 0x0U, /*!< fHRCK: fHRPWM x 32U = 5.12 GHz - Resolution: 195 ps */
  573. HRPWM_PRESCALERRATIO_MUL16 = 0x1U, /*!< fHRCK: fHRPWM x 16U = 2.56 GHz - Resolution: 390 ps */
  574. HRPWM_PRESCALERRATIO_MUL8 = 0x2U, /*!< fHRCK: fHRPWM x 8U = 1.28 GHz - Resolution: 781 ps */
  575. HRPWM_PRESCALERRATIO_MUL4 = 0x3U, /*!< fHRCK: fHRPWM x 4U = 640 MHz - Resolution: 1.56 ns */
  576. HRPWM_PRESCALERRATIO_MUL2 = 0x4U, /*!< fHRCK: fHRPWM x 2U = 320 MHz - Resolution: 3.125 ns */
  577. HRPWM_PRESCALERRATIO_DIV1 = 0x5U, /*!< fHRCK: fHRPWM = 160 MHz - Resolution: 6.25 ns */
  578. HRPWM_PRESCALERRATIO_DIV2 = 0x6U, /*!< fHRCK: fHRPWM / 2U = 80 MHz - Resolution: 12.5 ns */
  579. HRPWM_PRESCALERRATIO_DIV4 = 0x7U, /*!< fHRCK: fHRPWM / 4U = 40 MHz - Resolution: 25 ns */
  580. } HRPWM_PrescalerRatioETypeDef;
  581. /**
  582. * @}
  583. */
  584. /** @defgroup HRPWM_Counter_Operating_Mode HRPWM Counter Operating Mode
  585. * @brief Constants defining timer counter operating mode.
  586. * @{
  587. */
  588. typedef enum {
  589. HRPWM_MODE_CONTINUOUS = HRPWM_CR0_CONT, /*!< The timer operates in continuous (free-running) mode */
  590. HRPWM_MODE_SINGLESHOT = 0x0, /*!< The timer operates in non retriggerable single-shot mode */
  591. HRPWM_MODE_SINGLESHOT_RETRIGGERABLE = HRPWM_CR0_RETRIG, /*!< The timer operates in retriggerable single-shot mode */
  592. } HRPWM_ModeETypeDef;
  593. /**
  594. * @}
  595. */
  596. /** @defgroup HRPWM_Half_Mode_Enable HRPWM Half Mode Enable
  597. * @brief Constants defining half mode enabling status.
  598. * @{
  599. */
  600. typedef enum {
  601. HRPWM_HALFMODE_DISABLE = 0x0, /*!< Half mode is disabled */
  602. HRPWM_HALFMODE_ENABLE = HRPWM_CR0_HALF, /*!< Half mode is enabled */
  603. } HRPWM_HalfModeETypeDef;
  604. /**
  605. * @}
  606. */
  607. /** @defgroup HRPWM_Interleaved_Mode HRPWM Interleaved Mode
  608. * @brief Constants defining interleaved mode enabling status.
  609. * @{
  610. */
  611. typedef enum {
  612. HRPWM_INTERLEAVED_MODE_DISABLE = 0x0, /*!< HRPWM interleaved Mode is disabled */
  613. HRPWM_INTERLEAVED_MODE_TRIPLE = HRPWM_CR0_INTLVD_0, /*!< HRPWM interleaved Mode is Triple */
  614. HRPWM_INTERLEAVED_MODE_QUAD = HRPWM_CR0_INTLVD_1, /*!< HRPWM interleaved Mode is Quad */
  615. } HRPWM_InterleavedModeETypeDef;
  616. /**
  617. * @}
  618. */
  619. /** @defgroup HRPWM_Timer_Push_Pull_Mode HRPWM Timer Push Pull Mode
  620. * @brief Constants defining whether or not the push-pull mode is enabled for a timer.
  621. * @{
  622. */
  623. typedef enum {
  624. HRPWM_PUSHPULLMODE_DISABLE = 0x0, /*!< Push-Pull mode disabled */
  625. HRPWM_PUSHPULLMODE_ENABLE = HRPWM_CR0_PSHPLL, /*!< Push-Pull mode enabled */
  626. } HRPWM_PushpullModeETypeDef;
  627. typedef enum {
  628. HRPWM_MODE_NONE = 0, /*!< HRPWM mode none */
  629. HRPWM_MODE_HALF = HRPWM_CR0_HALF, /*!< HRPWM mode half */
  630. HRPWM_MODE_PUSHPULL = HRPWM_CR0_PSHPLL, /*!< HRPWM mode push pull */
  631. HRPWM_MODE_INTERLEAVED_TRIPLE = HRPWM_CR0_INTLVD_0, /*!< HRPWM mode interleaved triple */
  632. HRPWM_MODE_INTERLEAVED_QUAD = HRPWM_CR0_INTLVD_1, /*!< HRPWM mode interleaved quad */
  633. HRPWM_MODE_HALF_PUSHPULL = HRPWM_CR0_HALF | HRPWM_CR0_PSHPLL, /*!< HRPWM mode half push pull */
  634. HRPWM_MODE_HALF_INTERLEAVED_TRIPLE = HRPWM_CR0_HALF | HRPWM_CR0_INTLVD_0, /*!< HRPWM mode half interleaved triple */
  635. HRPWM_MODE_HALF_INTERLEAVED_QUAD = HRPWM_CR0_HALF | HRPWM_CR0_INTLVD_1, /*!< HRPWM mode half interleaved quad */
  636. HRPWM_MODE_PUSHPULL_INTERLEAVED_TRIPLE = HRPWM_CR0_PSHPLL | HRPWM_CR0_INTLVD_0, /*!< HRPWM mode push pull interleaved triple*/
  637. HRPWM_MODE_PUSHPULL_INTERLEAVED_QUAD = HRPWM_CR0_PSHPLL | HRPWM_CR0_INTLVD_1, /*!< HRPWM mode push pull interleaved quad */
  638. } HRPWM_OutputModeETypeDef;
  639. /**
  640. * @}
  641. */
  642. /** @defgroup HRPWM_Start_On_Sync_Input_Event HRPWM Start On Sync Input Event
  643. * @brief Constants defining the timer behavior following the synchronization event
  644. * @{
  645. */
  646. typedef enum {
  647. HRPWM_SYNCSTART_DISABLE = 0x0, /*!< Synchronization input event has effect on the timer */
  648. HRPWM_SYNCSTART_ENABLE = HRPWM_CR0_SYNCSTRT, /*!< Synchronization input event starts the timer */
  649. } HRPWM_SyncStartETypeDef;
  650. /**
  651. * @}
  652. */
  653. /** @defgroup HRPWM_Reset_On_Sync_Input_Event HRPWM Reset On Sync Input Event
  654. * @brief Constants defining the timer behavior following the synchronization event
  655. * @{
  656. */
  657. typedef enum {
  658. HRPWM_SYNCRESET_DISABLE = 0x0, /*!< Synchronization input event has effect on the timer */
  659. HRPWM_SYNCRESET_ENABLE = HRPWM_CR0_SYNCRST, /*!< Synchronization input event resets the timer */
  660. } HRPWM_SyncResetETypeDef;
  661. /**
  662. * @}
  663. */
  664. /** @defgroup HRPWM_Timer_Resync_Update_Enable HRPWM Re-Synchronized Update
  665. * @brief Constants defining whether the update source coming outside from the timing unit must be synchronized
  666. * @{
  667. */
  668. typedef enum {
  669. HRPWM_RSYNCUPDATE_DISABLE = 0x0, /*!< The update is taken into account immediately */
  670. HRPWM_RSYNCUPDATE_ENABLE = HRPWM_CR0_RSYNCU, /*!< The update is taken into account on the following Reset/Roll-over event*/
  671. } HRPWM_RsyncUpdateETypeDef;
  672. /**
  673. * @}
  674. */
  675. /** @defgroup HRPWM_Register_Preload_Enable HRPWM Register Preload Enable
  676. * @brief Constants defining whether a write access into a preloadable
  677. * register is done into the active or the preload register.
  678. * @{
  679. */
  680. typedef enum {
  681. HRPWM_PRELOAD_DISABLE = 0x0, /*!< Preload disabled: the write access is directly done into the active register */
  682. HRPWM_PRELOAD_ENABLE = HRPWM_MCR_PREEN,/*!< Preload enabled: the write access is done into the preload register */
  683. } HRPWM_PreloadEnETypeDef;
  684. /**
  685. * @}
  686. */
  687. /** @defgroup HRPWM_Synchronization_Input_Source HRPWM Synchronization Input Source
  688. * @brief Constants defining the synchronization input source
  689. * @{
  690. */
  691. typedef enum {
  692. HRPWM_SYNCINPUTSOURCE_NONE = 0x0, /*!< HRPWM Synchronization Input Source None */
  693. HRPWM_SYNCINPUTSOURCE_TIM0_TRGO_EVENT = HRPWM_MCR_SYNCIN_EN, /*!< The HRPWM is synchronized with TIM0_TRGO */
  694. HRPWM_SYNCINPUTSOURCE_EVENT = HRPWM_MCR_SYNCIN_SRC | HRPWM_MCR_SYNCIN_EN,
  695. /*!< A positive pulse on SYNCIN input triggers the HRPWM */
  696. } HRPWM_SyncInputSrcETypeDef;
  697. /**
  698. * @}
  699. */
  700. /** @defgroup HRPWM_Synchronization_Output_Source HRPWM Synchronization Output Source
  701. * @brief Constants defining the source and event to be sent on the synchronization outputs
  702. * @{
  703. */
  704. #define HRPWM_SYNCOUTPUTSOURCE_SRC ( HRPWM_MCR_SYNCOUT_SRC_1 | HRPWM_MCR_SYNCOUT_SRC_0)
  705. typedef enum {
  706. HRPWM_SYNCOUTPUTSOURCE_MASTER_START = 0x0,
  707. /*!< A pulse is sent on the SYNCOUT output upon master timer start event */
  708. HRPWM_SYNCOUTPUTSOURCE_MASTER_CMPA = HRPWM_MCR_SYNCOUT_SRC_0,
  709. /*!< A pulse is sent on the SYNCOUT output upon master timer compare 1 event */
  710. HRPWM_SYNCOUTPUTSOURCE_SLAVE0_STARTRST = HRPWM_MCR_SYNCOUT_SRC_1,
  711. /*!< A pulse is sent on the SYNCOUT output upon timer A start or reset events */
  712. HRPWM_SYNCOUTPUTSOURCE_SLAVE0_CMPA = HRPWM_MCR_SYNCOUT_SRC_1 | HRPWM_MCR_SYNCOUT_SRC_0,
  713. /*!< A pulse is sent on the SYNCOUT output upon timer A compare 1 event */
  714. } HRPWM_SyncOutputSrcETypeDef;
  715. /**
  716. * @}
  717. */
  718. /** @defgroup HRPWM_Synchronization_Output_Polarity HRPWM Synchronization Output Polarity
  719. * @brief Constants defining the routing and conditioning of the synchronization output event
  720. * @{
  721. */
  722. typedef enum {
  723. HRPWM_SYNCOUTPUTPOLARITY_NEGATIVE = HRPWM_MCR_SYNCOUT_POL,
  724. /*!< SCOUT pin has a low idle level and issues a positive pulse of 16 fHRPWM clock cycles length for the synchronization */
  725. HRPWM_SYNCOUTPUTPOLARITY_POSITIVE = 0x0,
  726. /*!< SCOUT pin has a high idle level and issues a negative pulse of 16 fHRPWM clock cycles length for the synchronization */
  727. } HRPWM_SyncOutputPolETypeDef;
  728. /**
  729. * @}
  730. */
  731. /** @defgroup HRPWM_Synchronization_Output_Enable HRPWM Synchronization Output Polarity
  732. * @brief Constants defining the routing and conditioning of the synchronization output event
  733. * @{
  734. */
  735. typedef enum {
  736. HRPWM_SYNCOUTPUT_ENABLE = HRPWM_MCR_SYNCOUT_EN,
  737. /*!< SCOUT pin has a low idle level and issues a positive pulse of 16 fHRPWM clock cycles length for the synchronization */
  738. HRPWM_SYNCOUTPUT_DISABLE = 0x0,
  739. /*!< SCOUT pin has a high idle level and issues a negative pulse of 16 fHRPWM clock cycles length for the synchronization */
  740. } HRPWM_SyncOutputEnETypeDef;
  741. /**
  742. * @}
  743. */
  744. /** @defgroup HRPWM_Timer_Fault_RollOver_Mode HRPWM Timer RollOver Mode
  745. * @brief Constants defining when the roll-over is generated upon Timerx
  746. * event generated when the counter is equal to 0 or to HRPWM_PERxR value or BOTH
  747. * This setting only applies when the UDM bit is set. It is not significant otherwise.
  748. * @{
  749. */
  750. typedef enum {
  751. HRPWM_FLTROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */
  752. HRPWM_FLTROM_ZERO = HRPWM_CR1_FLTROM_0, /*!< The roll-over event is generated when the count is 0 */
  753. HRPWM_FLTROM_PERIOD = HRPWM_CR1_FLTROM_1, /*!< The roll-over event is generated when the count is Period */
  754. } HRPWM_FltRollOverETypeDef;
  755. /**
  756. * @}
  757. */
  758. /** @defgroup HRPWM_Timer_Event_RollOver_Mode HRPWM Timer RollOver Mode
  759. * @brief HRPWM Timer RollOver Mode
  760. * @{
  761. */
  762. typedef enum {
  763. HRPWM_EEVROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */
  764. HRPWM_EEVROM_ZERO = HRPWM_CR1_EEVROM_0, /*!< The roll-over event is generated when the count is 0 */
  765. HRPWM_EEVROM_PERIOD = HRPWM_CR1_EEVROM_1, /*!< The roll-over event is generated when the count is Period */
  766. } HRPWM_EventRollOverETypeDef;
  767. /**
  768. * @}
  769. */
  770. /** @defgroup HRPWM_Timer_ADTrig_RollOver_Mode HRPWM Timer RollOver Mode
  771. * @brief HRPWM Timer RollOver Mode
  772. * @{
  773. */
  774. typedef enum {
  775. HRPWM_ADROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */
  776. HRPWM_ADROM_ZERO = HRPWM_CR1_ADROM_0, /*!< The roll-over event is generated when the count is 0 */
  777. HRPWM_ADROM_PERIOD = HRPWM_CR1_ADROM_1, /*!< The roll-over event is generated when the count is Period */
  778. } HRPWM_AdcRollOverETypeDef;
  779. /**
  780. * @}
  781. */
  782. /** @defgroup HRPWM_Timer_Output_RollOver_Mode HRPWM Timer RollOver Mode
  783. * @brief HRPWM Timer RollOver Mode
  784. * @{
  785. */
  786. typedef enum {
  787. HRPWM_OUTROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */
  788. HRPWM_OUTROM_ZERO = HRPWM_CR1_OUTROM_0, /*!< The roll-over event is generated when the count is 0 */
  789. HRPWM_OUTROM_PERIOD = HRPWM_CR1_OUTROM_1, /*!< The roll-over event is generated when the count is Period */
  790. } HRPWM_OutputRollOverETypeDef;
  791. /**
  792. * @}
  793. */
  794. /** @defgroup HRPWM_Timer_RollOver_Mode HRPWM Timer RollOver Mode
  795. * @breif HRPWM Timer RollOver Mode
  796. * @{
  797. */
  798. typedef enum {
  799. HRPWM_ROM_BOTH = 0x0, /*!< The roll-over event is generated when the count is Period / 0 */
  800. HRPWM_ROM_ZERO = HRPWM_CR1_ROM_0, /*!< The roll-over event is generated when the count is 0 */
  801. HRPWM_ROM_PERIOD = HRPWM_CR1_ROM_1, /*!< The roll-over event is generated when the count is Period */
  802. } HRPWM_RollOverETypeDef;
  803. /**
  804. * @}
  805. */
  806. /** @defgroup HRPWM_Timer_UpDown_Mode HRPWM Timer UpDown Mode
  807. * @brief Constants defining how the timer counter operates
  808. * @{
  809. */
  810. typedef enum {
  811. HRPWM_COUNT_UP = 0x0, /*!< Timer counter is operating in up-counting mode */
  812. HRPWM_COUNT_UPDOWN = HRPWM_CR1_UDM, /*!< Timer counter is operating in up-down counting mode */
  813. } HRPWM_CounterModeETypeDef;
  814. /**
  815. * @}
  816. */
  817. /** @defgroup HRPWM_Timer_DualChannelDac_Reset HRPWM Dual Channel Dac Reset Trigger
  818. * @brief Constants defining when the HRPWM_dac_reset_trgx trigger is generated
  819. * @{
  820. */
  821. typedef enum {
  822. HRPWM_DAC_DCDR_SETA = 0x0, /*!< the trigger is generated on output A set event */
  823. HRPWM_DAC_DCDR_RESET = HRPWM_CR1_DCDR, /*!< the trigger is generated on counter reset or roll-over event */
  824. } HRPWM_DacResetSelETypeDef;
  825. /**
  826. * @}
  827. */
  828. /** @defgroup HRPWM_Timer_DualChannelDac_Step HRPWM Dual Channel Dac Step Trigger
  829. * @brief Constants defining when the HRPWM_dac_step_trgx trigger is generated
  830. * @{
  831. */
  832. typedef enum {
  833. HRPWM_DAC_DCDS_CLEARA = 0x0, /*!< the trigger is generated on output 1 reset event */
  834. HRPWM_DAC_DCDS_CMPD = HRPWM_CR1_DCDS, /*!< the trigger is generated on compare D event */
  835. } HRPWM_DacStepSelETypeDef;
  836. /**
  837. * @}
  838. */
  839. /** @defgroup HRPWM_Timer_DualChannelDac_Enable HRPWM Dual Channel DAC Trigger Enable
  840. * @brief Constants enabling the dual channel DAC triggering mechanism
  841. * @{
  842. */
  843. typedef enum {
  844. HRPWM_DAC_DCDE_DISABLE = 0x0, /*!< the Dual channel DAC trigger is disabled */
  845. HRPWM_DAC_DCDE_ENABLE = HRPWM_CR1_DCDE, /*!< the Dual channel DAC trigger is enabled */
  846. } HRPWM_DacTrigEnETypeDef;
  847. /**
  848. * @}
  849. */
  850. /** @defgroup HRPWM_Deadtime_Rising_Sign HRPWM Dead-time Rising Sign
  851. * @brief Constants defining whether the dead-time is positive or negative (overlapping signal) on rising edge
  852. * @{
  853. */
  854. typedef enum {
  855. HRPWM_DEADTIME_RSIGN_NEGATIVE = 0x0, /*!< Negative dead-time on rising edge */
  856. HRPWM_DEADTIME_RSIGN_POSITIVE = HRPWM_DTR_SDTR, /*!< Positive dead-time on rising edge */
  857. } HRPWM_DeadTimeRiseSignETypeDef;
  858. /**
  859. * @}
  860. */
  861. /** @defgroup HRPWM_Deadtime_Falling_Sign HRPWM Dead-time Falling Sign
  862. * @brief Constants defining whether the dead-time is positive or negative (overlapping signal) on falling edge
  863. * @{
  864. */
  865. typedef enum {
  866. HRPWM_DEADTIME_FSIGN_NEGATIVE = 0x0, /*!< Negative dead-time on falling edge */
  867. HRPWM_DEADTIME_FSIGN_POSITIVE = HRPWM_DTR_SDTF, /*!< Positive dead-time on falling edge */
  868. } HRPWM_DeadTimeFallSignETypeDef;
  869. /**
  870. * @}
  871. */
  872. /** @defgroup HRPWM_Timer_External_Event_Filter HRPWM Timer External Event Filter
  873. * @brief Constants defining the event filtering applied to external events
  874. * by a timer0 (5bit), the position of eventx need to left x*5bit;
  875. * @{
  876. */
  877. typedef enum {
  878. HRPWM_EEVFLT_NONE = 0x0,
  879. /*!< HRPWM EEFVLT NONE */
  880. HRPWM_EEVFLT_BLANKING_CMPA = HRPWM_EEFR0_EE0FLTR_0,
  881. /*!< Blanking from counter reset/roll-over to Compare A */
  882. HRPWM_EEVFLT_BLANKING_CMPB = HRPWM_EEFR0_EE0FLTR_1,
  883. /*!< Blanking from counter reset/roll-over to Compare B */
  884. HRPWM_EEVFLT_BLANKING_CMPC = HRPWM_EEFR0_EE0FLTR_1 | HRPWM_EEFR0_EE0FLTR_0,
  885. /*!< Blanking from counter reset/roll-over to Compare C */
  886. HRPWM_EEVFLT_BLANKING_CMPD = HRPWM_EEFR0_EE0FLTR_2,
  887. /*!< Blanking from counter reset/roll-over to Compare D */
  888. HRPWM_EEVFLT_BLANKING_UPCMPA_UPCMPB = HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_0,
  889. /*!< Blanking from counter up compare A to compare B only up_down mode valid */
  890. HRPWM_EEVFLT_BLANKING_UPCMPC_UPCMPD = HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_1,
  891. /*!< Blanking from counter up compare C to compare D only up_down mode valid */
  892. HRPWM_EEVFLT_BLANKING_DOWNCMPA_DOWNCMPB = HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_1 | HRPWM_EEFR0_EE0FLTR_0,
  893. /*!< Blanking from counter down compare A to compare B only up_down mode valid */
  894. HRPWM_EEVFLT_BLANKING_DOWNCMPC_DOWNCMPD = HRPWM_EEFR0_EE0FLTR_3,
  895. /*!< Blanking from counter down compare C to compare D only up_down mode valid */
  896. HRPWM_EEVFLT_WINDOWS_BLANKING_CMPA = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_0,
  897. /*!< Windows from counter reset/roll-over to Compare A */
  898. HRPWM_EEVFLT_WINDOWS_BLANKING_CMPB = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_1,
  899. /*!< Windows from counter reset/roll-over to Compare B */
  900. HRPWM_EEVFLT_WINDOWS_BLANKING_CMPC = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_1 | HRPWM_EEFR0_EE0FLTR_0,
  901. /*!< Windows from counter reset/roll-over to Compare C */
  902. HRPWM_EEVFLT_WINDOWS_BLANKING_CMPD = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_2,
  903. /*!< Windows from counter reset/roll-over to Compare D */
  904. HRPWM_EEVFLT_WINDOWS_UPCMPB_UPCMPC = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_0,
  905. /*!< Windows from counter up compare B to compare C only up_down mode valid */
  906. HRPWM_EEVFLT_WINDOWS_DOWNCMPB_DOWNCMPC = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_1,
  907. /*!< Windows from counter down compare B to compare C only up_down mode valid */
  908. HRPWM_EEVFLT_WINDOWS_UPCMPB_DOWNCMPC = HRPWM_EEFR0_EE0FLTR_3 | HRPWM_EEFR0_EE0FLTR_2 | HRPWM_EEFR0_EE0FLTR_1 | HRPWM_EEFR0_EE0FLTR_0,
  909. /*!< Windows from counter up compare B to down compare C only up_down mode valid */
  910. } HRPWM_EventAFilterWindowETypeDef;
  911. /**
  912. * @}
  913. */
  914. /** @defgroup HRPWM_Timer_External_Event_Latch HRPWM Timer External Event Latch
  915. * @brief Constants defining whether or not the external event is
  916. * memorized (latched) and generated as soon as the blanking period
  917. * is completed or the window ends, the position of eventx need to left x*5bit;
  918. * @{
  919. */
  920. typedef enum {
  921. HRPWM_EVENTLATCH_DISABLE = 0x0,
  922. /*!< Event is ignored if it happens during a blank, or passed through during a window */
  923. HRPWM_EVENTLATCH_ENABLE = HRPWM_EEFR0_EE0LTCH,
  924. /*!< Event is latched and delayed till the end of the blanking or windowing period */
  925. } HRPWM_EventALatchETypeDef;
  926. /**
  927. * @}
  928. */
  929. /** @defgroup HRPWM_External_Event_Source_Select HRPWM Timer External Event Counter A source selection
  930. * @brief Constants defining the External Event Counter A source selection
  931. * @{
  932. */
  933. typedef enum {
  934. HRPWM_EEVASEL_SOURCE_EEVENT0 = 0x00U, /*!< External Event A selected event 0 as the source */
  935. HRPWM_EEVASEL_SOURCE_EEVENT1 = 0x10U, /*!< External Event A selected event 1 as the source */
  936. HRPWM_EEVASEL_SOURCE_EEVENT2 = 0x20U, /*!< External Event A selected event 2 as the source */
  937. HRPWM_EEVASEL_SOURCE_EEVENT3 = 0x30U, /*!< External Event A selected event 3 as the source */
  938. HRPWM_EEVASEL_SOURCE_EEVENT4 = 0x40U, /*!< External Event A selected event 4 as the source */
  939. HRPWM_EEVASEL_SOURCE_EEVENT5 = 0x50U, /*!< External Event A selected event 5 as the source */
  940. } HRPWM_EventASourceSelETypeDef;
  941. /**
  942. * @}
  943. */
  944. /** @defgroup HRPWM_Timer_External_Event_Counter HRPWM Timer External Event Counter
  945. * @brief Constants enabling the External Event A Counter
  946. * @{
  947. */
  948. typedef enum {
  949. HRPWM_EEVACOUNTER_DISABLE = 0x0, /*!< External Event Counter disabled */
  950. HRPWM_EEVACOUNTER_ENABLE = HRPWM_EEFR1_EEVACE, /*!< External Event Counter enabled */
  951. } HRPWM_EventACouterEnETypeDef;
  952. /**
  953. * @}
  954. */
  955. /** @defgroup HRPWM_Timer_External_Event_ResetMode HRPWM Timer External Counter Reset Mode
  956. * @brief Constants enabling the External Event Counter A Reset Mode
  957. * @{
  958. */
  959. typedef enum {
  960. HRPWM_EEVARSTM_UNCONDITIONAL = 0x0,
  961. /*!< External Event Counter is reset on each reset / roll-over event */
  962. HRPWM_EEVARSTM_CONDITIONAL = HRPWM_EEFR1_EEVARSTM,
  963. /*!< External Event Counter is reset on each reset / roll-over event only if no event occurs during last counting period */
  964. } HRPWM_EventARstModeETypeDef;
  965. /**
  966. * @}
  967. */
  968. /** @defgroup HRPWM_Chopper_Frequency HRPWM Chopper Frequency
  969. * @brief Constants defining the frequency of the generated high frequency carrier
  970. * @{
  971. */
  972. typedef enum {
  973. HRPWM_CHOPPER_CARFRQ_DIV16 = 0x0,
  974. /*!< fCHPFRQ = fHRPWM / 16 */
  975. HRPWM_CHOPPER_CARFRQ_DIV32 = HRPWM_CHPR_CARFRQ_0,
  976. /*!< fCHPFRQ = fHRPWM / 32 */
  977. HRPWM_CHOPPER_CARFRQ_DIV48 = HRPWM_CHPR_CARFRQ_1,
  978. /*!< fCHPFRQ = fHRPWM / 48 */
  979. HRPWM_CHOPPER_CARFRQ_DIV64 = HRPWM_CHPR_CARFRQ_1 | HRPWM_CHPR_CARFRQ_0,
  980. /*!< fCHPFRQ = fHRPWM / 64 */
  981. HRPWM_CHOPPER_CARFRQ_DIV80 = HRPWM_CHPR_CARFRQ_2,
  982. /*!< fCHPFRQ = fHRPWM / 80 */
  983. HRPWM_CHOPPER_CARFRQ_DIV96 = HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_0,
  984. /*!< fCHPFRQ = fHRPWM / 96 */
  985. HRPWM_CHOPPER_CARFRQ_DIV112 = HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_1,
  986. /*!< fCHPFRQ = fHRPWM / 112 */
  987. HRPWM_CHOPPER_CARFRQ_DIV128 = HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_1 | HRPWM_CHPR_CARFRQ_0,
  988. /*!< fCHPFRQ = fHRPWM / 128 */
  989. HRPWM_CHOPPER_CARFRQ_DIV144 = HRPWM_CHPR_CARFRQ_3,
  990. /*!< fCHPFRQ = fHRPWM / 144 */
  991. HRPWM_CHOPPER_CARFRQ_DIV160 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_0,
  992. /*!< fCHPFRQ = fHRPWM / 160 */
  993. HRPWM_CHOPPER_CARFRQ_DIV176 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_1,
  994. /*!< fCHPFRQ = fHRPWM / 176 */
  995. HRPWM_CHOPPER_CARFRQ_DIV192 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_1 | HRPWM_CHPR_CARFRQ_0,
  996. /*!< fCHPFRQ = fHRPWM / 192 */
  997. HRPWM_CHOPPER_CARFRQ_DIV208 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_2,
  998. /*!< fCHPFRQ = fHRPWM / 208 */
  999. HRPWM_CHOPPER_CARFRQ_DIV224 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_0,
  1000. /*!< fCHPFRQ = fHRPWM / 224 */
  1001. HRPWM_CHOPPER_CARFRQ_DIV240 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_1,
  1002. /*!< fCHPFRQ = fHRPWM / 240 */
  1003. HRPWM_CHOPPER_CARFRQ_DIV256 = HRPWM_CHPR_CARFRQ_3 | HRPWM_CHPR_CARFRQ_2 | HRPWM_CHPR_CARFRQ_1 | HRPWM_CHPR_CARFRQ_0,
  1004. /*!< fCHPFRQ = fHRPWM / 256 */
  1005. } HRPWM_ChopperCarfreqETypeDef;
  1006. /**
  1007. * @}
  1008. */
  1009. /** @defgroup HRPWM_Chopper_Duty_Cycle HRPWM Chopper Duty Cycle
  1010. * @brief Constants defining the duty cycle of the generated high frequency carrier
  1011. * Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8)
  1012. * @{
  1013. */
  1014. typedef enum {
  1015. HRPWM_CHOPPER_DUTYCYCLE_0 = 0x0,
  1016. /*!< Only 1st pulse is present */
  1017. HRPWM_CHOPPER_DUTYCYCLE_1 = HRPWM_CHPR_CARDTY_0,
  1018. /*!< Duty cycle of the carrier signal is 12.5U % */
  1019. HRPWM_CHOPPER_DUTYCYCLE_2 = HRPWM_CHPR_CARDTY_1,
  1020. /*!< Duty cycle of the carrier signal is 25U % */
  1021. HRPWM_CHOPPER_DUTYCYCLE_3 = HRPWM_CHPR_CARDTY_1 | HRPWM_CHPR_CARDTY_0,
  1022. /*!< Duty cycle of the carrier signal is 37.5U % */
  1023. HRPWM_CHOPPER_DUTYCYCLE_4 = HRPWM_CHPR_CARDTY_2,
  1024. /*!< Duty cycle of the carrier signal is 50U % */
  1025. HRPWM_CHOPPER_DUTYCYCLE_5 = HRPWM_CHPR_CARDTY_2 | HRPWM_CHPR_CARDTY_0,
  1026. /*!< Duty cycle of the carrier signal is 62.5U % */
  1027. HRPWM_CHOPPER_DUTYCYCLE_6 = HRPWM_CHPR_CARDTY_2 | HRPWM_CHPR_CARDTY_1,
  1028. /*!< Duty cycle of the carrier signal is 75U % */
  1029. HRPWM_CHOPPER_DUTYCYCLE_7 = HRPWM_CHPR_CARDTY_2 | HRPWM_CHPR_CARDTY_1 | HRPWM_CHPR_CARDTY_0,
  1030. /*!< Duty cycle of the carrier signal is 87.5U % */
  1031. } HRPWM_ChopperDutyETypeDef;
  1032. /**
  1033. * @}
  1034. */
  1035. /** @defgroup HRPWM_Chopper_Start_Pulse_Width HRPWM Chopper Start Pulse Width
  1036. * @brief Constants defining the pulse width of the first pulse of the generated high frequency carrier
  1037. * @{
  1038. */
  1039. typedef enum {
  1040. HRPWM_CHOPPER_PULSEWIDTH_16 = 0x0,
  1041. /*!< tSTPW = tHRPWM x 16 */
  1042. HRPWM_CHOPPER_PULSEWIDTH_32 = HRPWM_CHPR_STRPW_0,
  1043. /*!< tSTPW = tHRPWM x 32 */
  1044. HRPWM_CHOPPER_PULSEWIDTH_48 = HRPWM_CHPR_STRPW_1,
  1045. /*!< tSTPW = tHRPWM x 48 */
  1046. HRPWM_CHOPPER_PULSEWIDTH_64 = HRPWM_CHPR_STRPW_1 | HRPWM_CHPR_STRPW_0,
  1047. /*!< tSTPW = tHRPWM x 64 */
  1048. HRPWM_CHOPPER_PULSEWIDTH_80 = HRPWM_CHPR_STRPW_2,
  1049. /*!< tSTPW = tHRPWM x 80 */
  1050. HRPWM_CHOPPER_PULSEWIDTH_96 = HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_0,
  1051. /*!< tSTPW = tHRPWM x 96 */
  1052. HRPWM_CHOPPER_PULSEWIDTH_112 = HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_1,
  1053. /*!< tSTPW = tHRPWM x 112 */
  1054. HRPWM_CHOPPER_PULSEWIDTH_128 = HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_1 | HRPWM_CHPR_STRPW_0,
  1055. /*!< tSTPW = tHRPWM x 128 */
  1056. HRPWM_CHOPPER_PULSEWIDTH_144 = HRPWM_CHPR_STRPW_3,
  1057. /*!< tSTPW = tHRPWM x 144 */
  1058. HRPWM_CHOPPER_PULSEWIDTH_160 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_0,
  1059. /*!< tSTPW = tHRPWM x 160 */
  1060. HRPWM_CHOPPER_PULSEWIDTH_176 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_1,
  1061. /*!< tSTPW = tHRPWM x 176 */
  1062. HRPWM_CHOPPER_PULSEWIDTH_192 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_1 | HRPWM_CHPR_STRPW_0,
  1063. /*!< tSTPW = tHRPWM x 192 */
  1064. HRPWM_CHOPPER_PULSEWIDTH_208 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_2,
  1065. /*!< tSTPW = tHRPWM x 208 */
  1066. HRPWM_CHOPPER_PULSEWIDTH_224 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_0,
  1067. /*!< tSTPW = tHRPWM x 224 */
  1068. HRPWM_CHOPPER_PULSEWIDTH_240 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_1,
  1069. /*!< tSTPW = tHRPWM x 240 */
  1070. HRPWM_CHOPPER_PULSEWIDTH_256 = HRPWM_CHPR_STRPW_3 | HRPWM_CHPR_STRPW_2 | HRPWM_CHPR_STRPW_1 | HRPWM_CHPR_STRPW_0,
  1071. /*!< tSTPW = tHRPWM x 256 */
  1072. } HRPWM_ChopperPulseWidthETypeDef;
  1073. /**
  1074. * @}
  1075. */
  1076. /** @defgroup HRPWM_Output_ChopperA_Mode_Enable HRPWM Output Chopper Mode Enable
  1077. * @brief Constants defining whether or not chopper mode is enabled for a timer
  1078. output
  1079. * @{
  1080. */
  1081. typedef enum {
  1082. HRPWM_OUTPUTCHOPPERA_DISABLE = 0x0, /*!< Output signal is not altered */
  1083. HRPWM_OUTPUTCHOPPERA_ENABLE = HRPWM_OUTR_CHPA, /*!< Output signal is chopped by a carrier signal */
  1084. } HRPWM_ChopperAEnETypeDef;
  1085. /**
  1086. * @}
  1087. */
  1088. /** @defgroup HRPWM_OutputA_IDLE_Level HRPWM Output IDLE Level
  1089. * @brief Constants defining the output level when output is in IDLE state
  1090. * @{
  1091. */
  1092. typedef enum {
  1093. HRPWM_OUTPUTIDLEA_INACTIVE = 0x0, /*!< Output at inactive level when in IDLE state */
  1094. HRPWM_OUTPUTIDLEA_ACTIVE = HRPWM_OUTR_IDLESA, /*!< Output at active level when in IDLE state */
  1095. } HRPWM_IdelALevelETypeDef;
  1096. /**
  1097. * @}
  1098. */
  1099. /** @defgroup HRPWM_OutputA_FAULT_Level HRPWM Output FAULT Level
  1100. * @brief Constants defining the output level when output is in FAULT state
  1101. * @{
  1102. */
  1103. typedef enum {
  1104. HRPWM_OUTPUTFAULTA_NONE = 0x0, /*!< The output is not affected by the fault input */
  1105. HRPWM_OUTPUTFAULTA_ACTIVE = HRPWM_OUTR_FAULTA_0, /*!< Output at active level when in FAULT state */
  1106. HRPWM_OUTPUTFAULTA_INACTIVE = HRPWM_OUTR_FAULTA_1, /*!< Output at inactive level when in FAULT state */
  1107. HRPWM_OUTPUTFAULTA_HIGHZ = HRPWM_OUTR_FAULTA_1 | HRPWM_OUTR_FAULTA_0,/*!< Output is tri-stated when in FAULT state */
  1108. } HRPWM_FaultALevelETypeDef;
  1109. /**
  1110. * @}
  1111. */
  1112. /** @defgroup HRPWM_OutputA_Active_Polarity HRPWM Output Active_Polarity
  1113. * @brief Constants whether the effective polarity is low level valid or high level valid
  1114. * @{
  1115. */
  1116. typedef enum {
  1117. HRPWM_OUTPUT_POLA_POSITIVE = 0x0, /*!< Positive polarity, high output efficiency */
  1118. HRPWM_OUTPUT_POLA_NEGATIVE = HRPWM_OUTR_POLA, /*!< Negative polarity, low output efficiency */
  1119. } HRPWM_OutputAPolETypeDef;
  1120. /**
  1121. * @}
  1122. */
  1123. /** @defgroup HRPWM_Output_ChopperB_Mode_Enable HRPWM Output Chopper Mode Enable
  1124. * @brief Constants defining whether or not chopper mode is enabled for a timer output
  1125. * @{
  1126. */
  1127. typedef enum {
  1128. HRPWM_OUTPUTCHOPPERB_DISABLE = 0x0, /*!< Output signal is not altered */
  1129. HRPWM_OUTPUTCHOPPERB_ENABLE = HRPWM_OUTR_CHPB, /*!< Output signal is chopped by a carrier signal */
  1130. } HRPWM_ChopperBEnETypeDef;
  1131. /**
  1132. * @}
  1133. */
  1134. /** @defgroup HRPWM_OutputB_IDLE_Level HRPWM Output IDLE Level
  1135. * @brief Constants defining the output level when output is in IDLE state
  1136. * @{
  1137. */
  1138. typedef enum {
  1139. HRPWM_OUTPUTIDLEB_INACTIVE = 0x0, /*!< Output at inactive level when in IDLE state */
  1140. HRPWM_OUTPUTIDLEB_ACTIVE = HRPWM_OUTR_IDLESB, /*!< Output at active level when in IDLE state */
  1141. } HRPWM_IdelBLevelETypeDef;
  1142. /**
  1143. * @}
  1144. */
  1145. /** @defgroup HRPWM_OutputB_FAULT_Level HRPWM Output FAULT Level
  1146. * @brief Constants defining the output level when output is in FAULT state
  1147. * @{
  1148. */
  1149. typedef enum {
  1150. HRPWM_OUTPUTFAULTB_NONE = 0x0, /*!< The output is not affected by the fault input */
  1151. HRPWM_OUTPUTFAULTB_ACTIVE = HRPWM_OUTR_FAULTB_0, /*!< Output at active level when in FAULT state */
  1152. HRPWM_OUTPUTFAULTB_INACTIVE = HRPWM_OUTR_FAULTB_1, /*!< Output at inactive level when in FAULT state */
  1153. HRPWM_OUTPUTFAULTB_HIGHZ = HRPWM_OUTR_FAULTB_1 | HRPWM_OUTR_FAULTB_0,/*!< Output is tri-stated when in FAULT state */
  1154. } HRPWM_FaultBLevelETypeDef;
  1155. /**
  1156. * @}
  1157. */
  1158. /** @defgroup HRPWM_OutputB_Active_Polarity HRPWM Output Active_Polarity
  1159. * @brief Constants whether the effective polarity is low level valid or high level valid
  1160. * @{
  1161. */
  1162. typedef enum {
  1163. HRPWM_OUTPUT_POLB_POSITIVE = 0x0, /*!< Positive polarity, high output efficiency */
  1164. HRPWM_OUTPUT_POLB_NEGATIVE = HRPWM_OUTR_POLB, /*!< Negative polarity, low output efficiency */
  1165. } HRPWM_OutputBPolETypeDef;
  1166. /**
  1167. * @}
  1168. */
  1169. /** @defgroup HRPWM_ADC_Trigger_PostScaler HRPWM ADC Trigger PostScaler
  1170. * @brief constants defining the adc trigger PostScaler 0~0xf;
  1171. * @{
  1172. */
  1173. typedef enum {
  1174. HRPWM_ADCTRIG_PSC_1 = 0x0,
  1175. /*!< The PostScaler number of 1 */
  1176. HRPWM_ADCTRIG_PSC_2 = HRPWM_ADPSR_ADPSC0_0,
  1177. /*!< The PostScaler number of 2 */
  1178. HRPWM_ADCTRIG_PSC_3 = HRPWM_ADPSR_ADPSC0_1,
  1179. /*!< The PostScaler number of 3 */
  1180. HRPWM_ADCTRIG_PSC_4 = HRPWM_ADPSR_ADPSC0_1 | HRPWM_ADPSR_ADPSC0_0,
  1181. /*!< The PostScaler number of 4 */
  1182. HRPWM_ADCTRIG_PSC_5 = HRPWM_ADPSR_ADPSC0_2,
  1183. /*!< The PostScaler number of 5 */
  1184. HRPWM_ADCTRIG_PSC_6 = HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_0,
  1185. /*!< The PostScaler number of 6 */
  1186. HRPWM_ADCTRIG_PSC_7 = HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_1,
  1187. /*!< The PostScaler number of 7 */
  1188. HRPWM_ADCTRIG_PSC_8 = HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_1 | HRPWM_ADPSR_ADPSC0_0,
  1189. /*!< The PostScaler number of 8 */
  1190. HRPWM_ADCTRIG_PSC_9 = HRPWM_ADPSR_ADPSC0_3,
  1191. /*!< The PostScaler number of 9 */
  1192. HRPWM_ADCTRIG_PSC_10 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_0,
  1193. /*!< The PostScaler number of 10 */
  1194. HRPWM_ADCTRIG_PSC_11 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_1,
  1195. /*!< The PostScaler number of 11 */
  1196. HRPWM_ADCTRIG_PSC_12 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_1 | HRPWM_ADPSR_ADPSC0_0,
  1197. /*!< The PostScaler number of 12 */
  1198. HRPWM_ADCTRIG_PSC_13 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_2,
  1199. /*!< The PostScaler number of 13 */
  1200. HRPWM_ADCTRIG_PSC_14 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_0,
  1201. /*!< The PostScaler number of 14 */
  1202. HRPWM_ADCTRIG_PSC_15 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_1,
  1203. /*!< The PostScaler number of 15 */
  1204. HRPWM_ADCTRIG_PSC_16 = HRPWM_ADPSR_ADPSC0_3 | HRPWM_ADPSR_ADPSC0_2 | HRPWM_ADPSR_ADPSC0_1 | HRPWM_ADPSR_ADPSC0_0,
  1205. /*!< The PostScaler number of 16 */
  1206. } HRPWM_AdcTrigPSCETypeDef;
  1207. /**
  1208. * @}
  1209. */
  1210. /** @defgroup HRPWM_ADC_Trigger_Update_Source HRPWM ADC Trigger Update Source
  1211. * @brief constants defining the source triggering the update of the
  1212. HRPWM_ADCxR register (transfer from preload to active register). 3bit
  1213. * @{
  1214. */
  1215. typedef enum {
  1216. HRPWM_ADCTRIGUPDATE_MASTER = 0x0, /*!< Master timer */
  1217. HRPWM_ADCTRIGUPDATE_TIMER_0 = HRPWM_CR0_ADUSRC0_0, /*!< Slave Timer 0 */
  1218. HRPWM_ADCTRIGUPDATE_TIMER_1 = HRPWM_CR0_ADUSRC0_1, /*!< Slave Timer 1 */
  1219. HRPWM_ADCTRIGUPDATE_TIMER_2 = HRPWM_CR0_ADUSRC0_1 | HRPWM_CR0_ADUSRC0_0, /*!< Slave Timer 2 */
  1220. HRPWM_ADCTRIGUPDATE_TIMER_3 = HRPWM_CR0_ADUSRC0_2, /*!< Slave Timer 3 */
  1221. HRPWM_ADCTRIGUPDATE_TIMER_4 = HRPWM_CR0_ADUSRC0_2 | HRPWM_CR0_ADUSRC0_0, /*!< Slave Timer 4 */
  1222. HRPWM_ADCTRIGUPDATE_TIMER_5 = HRPWM_CR0_ADUSRC0_2 | HRPWM_CR0_ADUSRC0_1, /*!< Slave Timer 5 */
  1223. } HRPWM_AdcTrigUpdateSrcETypeDef;
  1224. /**
  1225. * @}
  1226. */
  1227. /** @defgroup HRPWM_ADC_Trigger_Length HRPWM ADC Trigger Length
  1228. * @brief constants defining the events triggering length. (left x * 4bit)
  1229. * @{
  1230. */
  1231. typedef enum {
  1232. HRPWM_ADCTRIG_LENGTH_1 = 0x0,
  1233. /*!< The length of ADC trigger time is 1 clock */
  1234. HRPWM_ADCTRIG_LENGTH_2 = HRPWM_CR2_TLEN0_0,
  1235. /*!< The length of ADC trigger time is 2 clock */
  1236. HRPWM_ADCTRIG_LENGTH_3 = HRPWM_CR2_TLEN0_1,
  1237. /*!< The length of ADC trigger time is 3 clock */
  1238. HRPWM_ADCTRIG_LENGTH_4 = HRPWM_CR2_TLEN0_1 | HRPWM_CR2_TLEN0_0,
  1239. /*!< The length of ADC trigger time is 4 clock */
  1240. HRPWM_ADCTRIG_LENGTH_5 = HRPWM_CR2_TLEN0_2,
  1241. /*!< The length of ADC trigger time is 5 clock */
  1242. HRPWM_ADCTRIG_LENGTH_6 = HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_0,
  1243. /*!< The length of ADC trigger time is 6 clock */
  1244. HRPWM_ADCTRIG_LENGTH_7 = HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_1,
  1245. /*!< The length of ADC trigger time is 7 clock */
  1246. HRPWM_ADCTRIG_LENGTH_8 = HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_1 | HRPWM_CR2_TLEN0_0,
  1247. /*!< The length of ADC trigger time is 8 clock */
  1248. HRPWM_ADCTRIG_LENGTH_9 = HRPWM_CR2_TLEN0_3,
  1249. /*!< The length of ADC trigger time is 9 clock */
  1250. HRPWM_ADCTRIG_LENGTH_10 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_0,
  1251. /*!< The length of ADC trigger time is 10 clock */
  1252. HRPWM_ADCTRIG_LENGTH_11 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_1,
  1253. /*!< The length of ADC trigger time is 11 clock */
  1254. HRPWM_ADCTRIG_LENGTH_12 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_1 | HRPWM_CR2_TLEN0_0,
  1255. /*!< The length of ADC trigger time is 12 clock */
  1256. HRPWM_ADCTRIG_LENGTH_13 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_2,
  1257. /*!< The length of ADC trigger time is 13 clock */
  1258. HRPWM_ADCTRIG_LENGTH_14 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_0,
  1259. /*!< The length of ADC trigger time is 14 clock */
  1260. HRPWM_ADCTRIG_LENGTH_15 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_1,
  1261. /*!< The length of ADC trigger time is 15 clock */
  1262. HRPWM_ADCTRIG_LENGTH_16 = HRPWM_CR2_TLEN0_3 | HRPWM_CR2_TLEN0_2 | HRPWM_CR2_TLEN0_1 | HRPWM_CR2_TLEN0_0,
  1263. /*!< The length of ADC trigger time is 16 clock */
  1264. } HRPWM_AdcTrigLengthETypeDef;
  1265. /**
  1266. * @}
  1267. */
  1268. /** @defgroup HRPWM_External_Event_Prescaler HRPWM External Event Prescaler
  1269. * @brief Constants defining division ratio between the timer clock frequency
  1270. * fHRPWM) and the external event signal sampling clock (fEEVS)
  1271. * used by the digital filters
  1272. * @{
  1273. */
  1274. typedef enum {
  1275. HRPWM_EEVSD_DIV1 = 0x0, /*!< fEEVS=fHRPWM */
  1276. HRPWM_EEVSD_DIV2 = HRPWM_EECR2_EEVSD_0, /*!< fEEVS=fHRPWM / 2U */
  1277. HRPWM_EEVSD_DIV4 = (int32_t)HRPWM_EECR2_EEVSD_1, /*!< fEEVS=fHRPWM / 4U */
  1278. HRPWM_EEVSD_DIV8 = (int32_t)(HRPWM_EECR2_EEVSD_1 | HRPWM_EECR2_EEVSD_0), /*!< fEEVS=fHRPWM / 8U */
  1279. } HRPWM_EventPrescalerETypeDef;
  1280. /**
  1281. * @}
  1282. */
  1283. /** @defgroup HRPWM_External_Event_Filter HRPWM External Event Filter
  1284. * @brief Constants defining the frequency used to sample an external event 6
  1285. * input and the length (N) of the digital filter applied
  1286. * @{
  1287. */
  1288. typedef enum {
  1289. HRPWM_EVENTFILTER_NONE = 0x0,
  1290. /*!< Filter disabled */
  1291. HRPWM_EVENTFILTER_1 = HRPWM_EECR2_EE0F_0,
  1292. /*!< fSAMPLING= fHRPWM, N=2U */
  1293. HRPWM_EVENTFILTER_2 = HRPWM_EECR2_EE0F_1,
  1294. /*!< fSAMPLING= fHRPWM, N=4U */
  1295. HRPWM_EVENTFILTER_3 = HRPWM_EECR2_EE0F_1 | HRPWM_EECR2_EE0F_0,
  1296. /*!< fSAMPLING= fHRPWM, N=8U */
  1297. HRPWM_EVENTFILTER_4 = HRPWM_EECR2_EE0F_2,
  1298. /*!< fSAMPLING= fEEVS/2U, N=6U */
  1299. HRPWM_EVENTFILTER_5 = HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_0,
  1300. /*!< fSAMPLING= fEEVS/2U, N=8U */
  1301. HRPWM_EVENTFILTER_6 = HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_1,
  1302. /*!< fSAMPLING= fEEVS/4U, N=6U */
  1303. HRPWM_EVENTFILTER_7 = HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_1 | HRPWM_EECR2_EE0F_0,
  1304. /*!< fSAMPLING= fEEVS/4U, N=8U */
  1305. HRPWM_EVENTFILTER_8 = HRPWM_EECR2_EE0F_3,
  1306. /*!< fSAMPLING= fEEVS/8U, N=6U */
  1307. HRPWM_EVENTFILTER_9 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_0,
  1308. /*!< fSAMPLING= fEEVS/8U, N=8U */
  1309. HRPWM_EVENTFILTER_10 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_1,
  1310. /*!< fSAMPLING= fEEVS/16U, N=5U */
  1311. HRPWM_EVENTFILTER_11 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_1 | HRPWM_EECR2_EE0F_0,
  1312. /*!< fSAMPLING= fEEVS/16U, N=6U */
  1313. HRPWM_EVENTFILTER_12 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_2,
  1314. /*!< fSAMPLING= fEEVS/16U, N=8U */
  1315. HRPWM_EVENTFILTER_13 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_0,
  1316. /*!< fSAMPLING= fEEVS/32U, N=5U */
  1317. HRPWM_EVENTFILTER_14 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_1,
  1318. /*!< fSAMPLING= fEEVS/32U, N=6U */
  1319. HRPWM_EVENTFILTER_15 = HRPWM_EECR2_EE0F_3 | HRPWM_EECR2_EE0F_2 | HRPWM_EECR2_EE0F_1 | HRPWM_EECR2_EE0F_0,
  1320. /*!< fSAMPLING= fEEVS/32U, N=8U */
  1321. } HRPWM_EventFilterETypeDef;
  1322. /**
  1323. * @}
  1324. */
  1325. /** @defgroup HRPWM_External_Event_Fast_Mode HRPWM External Event Fast Mode
  1326. * @brief Constants defining whether or not an external event is programmed in fast mode
  1327. * @{
  1328. */
  1329. typedef enum {
  1330. HRPWM_EVENTFASTMODE_DISABLE = 0x0,
  1331. /*!< External Event is re-synchronized by the HRPWM logic before acting on outputs */
  1332. HRPWM_EVENTFASTMODE_ENABLE = HRPWM_EECR0_EE0FAST,
  1333. /*!< External Event is acting asynchronously on outputs (low latency mode) */
  1334. } HRPWM_EventFastModeETypeDef;
  1335. /**
  1336. * @}
  1337. */
  1338. /** @defgroup HRPWM_External_Event_Sensitivity HRPWM External Event Sensitivity
  1339. * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive)
  1340. * of an external event
  1341. * @{
  1342. */
  1343. typedef enum {
  1344. HRPWM_EVENTSENS_LEVEL = 0x0,
  1345. /*!< External event is active on level */
  1346. HRPWM_EVENTSENS_RISINGEDGE = HRPWM_EECR0_EE0SNS_0,
  1347. /*!< External event is active on Rising edge */
  1348. HRPWM_EVENTSENS_FALLINGEDGE = HRPWM_EECR0_EE0SNS_1,
  1349. /*!< External event is active on Falling edge */
  1350. HRPWM_EVENTSENS_BOTHEDGES = HRPWM_EECR0_EE0SNS_1 | HRPWM_EECR0_EE0SNS_0,
  1351. /*!< External event is active on Rising and Falling edges */
  1352. } HRPWM_EventSensETypeDef;
  1353. /**
  1354. * @}
  1355. */
  1356. /** @defgroup HRPWM_External_Event_Polarity HRPWM External Event Polarity
  1357. * @brief Constants defining the polarity of an external event
  1358. * @{
  1359. */
  1360. typedef enum {
  1361. HRPWM_EVENTPOL_HIGH = 0x0, /*!< External event is active high */
  1362. HRPWM_EVENTPOL_LOW = HRPWM_EECR0_EE0POL, /*!< External event is active low */
  1363. } HRPWM_EventPolETypeDef;
  1364. /**
  1365. * @}
  1366. */
  1367. /** @defgroup HRPWM_External_Event_Sources HRPWM External Event Sources
  1368. * @brief Constants defining available sources associated to external events
  1369. * @{
  1370. */
  1371. typedef enum {
  1372. HRPWM_EEVSRC_GPIO = 0x0, /*!< External event source 1U for External Event */
  1373. HRPWM_EEVSRC_COMP_OUT = HRPWM_EECR0_EE0SRC_0, /*!< External event source 2U for External Event */
  1374. HRPWM_EEVSRC_TIM_TRGO = HRPWM_EECR0_EE0SRC_1, /*!< External event source 3U for External Event */
  1375. HRPWM_EEVSRC_ADC_AWD = HRPWM_EECR0_EE0SRC_1 | HRPWM_EECR0_EE0SRC_0, /*!< External event source 4U for External Event */
  1376. } HRPWM_EventSrcSelETypeDef;
  1377. /**
  1378. * @}
  1379. */
  1380. /** @defgroup HRPWM_Fault_Enable HRPWM Fault Enable
  1381. * @brief Constants defining the Enable of a fault event
  1382. * @{
  1383. */
  1384. typedef enum {
  1385. HRPWM_FAULT_DISABLE = 0x0, /*!< Fault input is disable */
  1386. HRPWM_FAULT_ENABLE = HRPWM_FLTINR0_FLT0E, /*!< Fault input is enable */
  1387. } HRPWM_FaultEnETypeDef;
  1388. /**
  1389. * @}
  1390. */
  1391. /** @defgroup HRPWM_Fault_Sources HRPWM Fault Sources
  1392. * @brief Constants defining whether a fault is triggered by any external or internal fault source
  1393. * @{
  1394. */
  1395. typedef enum {
  1396. HRPWM_FLTSRC_GPIO = 0x0, /*!< The fault source 1U for External pin 0 */
  1397. HRPWM_FLTSRC_COMP_OUT = HRPWM_FLTINR0_FLT0SRC_0, /*!< The fault source 2U for External Event 0 */
  1398. HRPWM_FLTSRC_EVENT = HRPWM_FLTINR0_FLT0SRC_1, /*!< The fault source 3U for internal Event 0 */
  1399. } HRPWM_FaultSrcSelETypeDef;
  1400. /**
  1401. * @}
  1402. */
  1403. /** @defgroup HRPWM_Fault_Polarity HRPWM Fault Polarity
  1404. * @brief Constants defining the polarity of a fault event
  1405. * @{
  1406. */
  1407. typedef enum {
  1408. HRPWM_FAULTPOL_HIGH = 0x0, /*!< Fault input is active low */
  1409. HRPWM_FAULTPOL_LOW = HRPWM_FLTINR0_FLT0P, /*!< Fault input is active high */
  1410. } HRPWM_FaultPolETypeDef;
  1411. /**
  1412. * @}
  1413. */
  1414. /** @defgroup HRPWM_Fault_Blanking HRPWM Fault Blanking Source
  1415. * @brief Constants defining the blanking source of a fault event
  1416. * @{
  1417. */
  1418. typedef enum {
  1419. HRPWM_FAULTBLKS_RSTALIGNED = 0x0, /*!< Fault blanking source is Reset-aligned window */
  1420. HRPWM_FAULTBLKS_MOVING = HRPWM_FLTINR2_FLT0BLKS, /*!< Fault blanking source is Moving window */
  1421. } HRPWM_FaultBlkWindowETypeDef;
  1422. /**
  1423. * @}
  1424. */
  1425. /** @defgroup HRPWM_Fault_ResetMode HRPWM Fault Reset Mode
  1426. * @brief Constants defining the Counter reset mode of a fault event
  1427. * @{
  1428. */
  1429. typedef enum {
  1430. HRPWM_FAULTRSTM_UNCONDITIONAL = 0x0,
  1431. /*!< Fault counter is reset on each reset / roll-over event */
  1432. HRPWM_FAULTRSTM_CONDITIONAL = HRPWM_FLTINR2_FLT0RSTM,
  1433. /*!< Fault counter is reset on each reset / roll-over event only if no fault occurred during last countingperiod. */
  1434. } HRPWM_FaultRstModeETypeDef;
  1435. /**
  1436. * @}
  1437. */
  1438. /** @defgroup HRPWM_Fault_Blanking_Control HRPWM Fault Blanking Control
  1439. * @brief Constants used to enable or disable the blanking mode of a fault channel
  1440. * @{
  1441. */
  1442. typedef enum {
  1443. HRPWM_FAULTBLKEN_DISABLE = 0x0, /*!< No blanking on Fault */
  1444. HRPWM_FAULTBLKEN_ENABLE = HRPWM_FLTINR2_FLT0BLKE, /*!< Fault blanking mode */
  1445. } HRPWM_FaultBlkEnETypeDef;
  1446. /**
  1447. * @}
  1448. */
  1449. /** @defgroup HRPWM_External_Fault_Prescaler HRPWM External Fault Prescaler
  1450. * @brief Constants defining the division ratio between the timer clock
  1451. * frequency (fHRPWM) and the fault signal sampling clock (fFLTS) used
  1452. * by the digital filters.
  1453. * @{
  1454. */
  1455. typedef enum {
  1456. HRPWM_FLTSD_DIV1 = 0x0, /*!< fFLTS=fHRPWM */
  1457. HRPWM_FLTSD_DIV2 = HRPWM_FLTINR1_FLTSD_0, /*!< fFLTS=fHRPWM / 2U */
  1458. HRPWM_FLTSD_DIV4 = (int32_t)HRPWM_FLTINR1_FLTSD_1, /*!< fFLTS=fHRPWM / 4U */
  1459. HRPWM_FLTSD_DIV8 = (int32_t)(HRPWM_FLTINR1_FLTSD_1 | HRPWM_FLTINR1_FLTSD_0), /*!< fFLTS=fHRPWM / 8U */
  1460. } HRPWM_FaultPrescalerETypeDef;
  1461. /**
  1462. * @}
  1463. */
  1464. /** @defgroup HRPWM_Fault_Filter HRPWM Fault Filter
  1465. * @brief Constants defining the frequency used to sample the fault input and
  1466. * the length (N) of the digital filter applied
  1467. * @{
  1468. */
  1469. typedef enum {
  1470. HRPWM_FAULTFILTER_NONE = 0x0,
  1471. /*!< Filter disabled */
  1472. HRPWM_FAULTFILTER_1 = HRPWM_FLTINR1_FLT0F_0,
  1473. /*!< fSAMPLING= fHRPWM, N=2U */
  1474. HRPWM_FAULTFILTER_2 = HRPWM_FLTINR1_FLT0F_1,
  1475. /*!< fSAMPLING= fHRPWM, N=4U */
  1476. HRPWM_FAULTFILTER_3 = HRPWM_FLTINR1_FLT0F_1 | HRPWM_FLTINR1_FLT0F_0,
  1477. /*!< fSAMPLING= fHRPWM, N=8U */
  1478. HRPWM_FAULTFILTER_4 = HRPWM_FLTINR1_FLT0F_2,
  1479. /*!< fSAMPLING= fFLTS/2U, N=6U */
  1480. HRPWM_FAULTFILTER_5 = HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_0,
  1481. /*!< fSAMPLING= fFLTS/2U, N=8U */
  1482. HRPWM_FAULTFILTER_6 = HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_1,
  1483. /*!< fSAMPLING= fFLTS/4U, N=6U */
  1484. HRPWM_FAULTFILTER_7 = HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_1 | HRPWM_FLTINR1_FLT0F_0,
  1485. /*!< fSAMPLING= fFLTS/4U, N=8U */
  1486. HRPWM_FAULTFILTER_8 = HRPWM_FLTINR1_FLT0F_3,
  1487. /*!< fSAMPLING= fFLTS/8U, N=6U */
  1488. HRPWM_FAULTFILTER_9 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_0,
  1489. /*!< fSAMPLING= fFLTS/8U, N=8U */
  1490. HRPWM_FAULTFILTER_10 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_1,
  1491. /*!< fSAMPLING= fFLTS/16U, N=5U */
  1492. HRPWM_FAULTFILTER_11 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_1 | HRPWM_FLTINR1_FLT0F_0,
  1493. /*!< fSAMPLING= fFLTS/16U, N=6U */
  1494. HRPWM_FAULTFILTER_12 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_2,
  1495. /*!< fSAMPLING= fFLTS/16U, N=8U */
  1496. HRPWM_FAULTFILTER_13 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_0,
  1497. /*!< fSAMPLING= fFLTS/32U, N=5U */
  1498. HRPWM_FAULTFILTER_14 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_1,
  1499. /*!< fSAMPLING= fFLTS/32U, N=6U */
  1500. HRPWM_FAULTFILTER_15 = HRPWM_FLTINR1_FLT0F_3 | HRPWM_FLTINR1_FLT0F_2 | HRPWM_FLTINR1_FLT0F_1 | HRPWM_FLTINR1_FLT0F_0,
  1501. /*!< fSAMPLING= fFLTS/32U, N=8U */
  1502. } HRPWM_FaultFilterETypeDef;
  1503. /**
  1504. * @}
  1505. */
  1506. /** @defgroup HRPWM_Fault_Counter HRPWM Fault counter threshold value
  1507. * @brief Constants defining the FAULT Counter threshold (FLTCNT + 1)
  1508. * @{
  1509. */
  1510. typedef enum {
  1511. HRPWM_FAULTCOUNTER_NONE = 0x0,
  1512. /*!< Counter threshold = 0U */
  1513. HRPWM_FAULTCOUNTER_1 = HRPWM_FLTINR3_FLT0CNT_0,
  1514. /*!< Counter threshold = 1U */
  1515. HRPWM_FAULTCOUNTER_2 = HRPWM_FLTINR3_FLT0CNT_1,
  1516. /*!< Counter threshold = 2U */
  1517. HRPWM_FAULTCOUNTER_3 = HRPWM_FLTINR3_FLT0CNT_1 | HRPWM_FLTINR3_FLT0CNT_0,
  1518. /*!< Counter threshold = 3U */
  1519. HRPWM_FAULTCOUNTER_4 = HRPWM_FLTINR3_FLT0CNT_2,
  1520. /*!< Counter threshold = 4U */
  1521. HRPWM_FAULTCOUNTER_5 = HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_0,
  1522. /*!< Counter threshold = 5U */
  1523. HRPWM_FAULTCOUNTER_6 = HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_1,
  1524. /*!< Counter threshold = 6U */
  1525. HRPWM_FAULTCOUNTER_7 = HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_1 | HRPWM_FLTINR3_FLT0CNT_0,
  1526. /*!< Counter threshold = 7U */
  1527. HRPWM_FAULTCOUNTER_8 = HRPWM_FLTINR3_FLT0CNT_3,
  1528. /*!< Counter threshold = 8U */
  1529. HRPWM_FAULTCOUNTER_9 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_0,
  1530. /*!< Counter threshold = 9U */
  1531. HRPWM_FAULTCOUNTER_10 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_1,
  1532. /*!< Counter threshold = 10U */
  1533. HRPWM_FAULTCOUNTER_11 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_1 | HRPWM_FLTINR3_FLT0CNT_0,
  1534. /*!< Counter threshold = 11U */
  1535. HRPWM_FAULTCOUNTER_12 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_2,
  1536. /*!< Counter threshold = 12U */
  1537. HRPWM_FAULTCOUNTER_13 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_0,
  1538. /*!< Counter threshold = 13U */
  1539. HRPWM_FAULTCOUNTER_14 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_1,
  1540. /*!< Counter threshold = 14U */
  1541. HRPWM_FAULTCOUNTER_15 = HRPWM_FLTINR3_FLT0CNT_3 | HRPWM_FLTINR3_FLT0CNT_2 | HRPWM_FLTINR3_FLT0CNT_1 | HRPWM_FLTINR3_FLT0CNT_0,
  1542. /*!< Counter threshold = 15U */
  1543. } HRPWM_FaultCounterETypeDef;
  1544. /**
  1545. * @}
  1546. */
  1547. /**
  1548. * @brief HRPWM Master Timer Configuration Structure definition - Time base related parameters
  1549. */
  1550. typedef struct __HRPWM_MasterSyncTypeDef {
  1551. uint32_t SyncOptions; /*!< Specifies how the HRPWM instance handles the external synchronization signals.
  1552. The HRPWM instance can be configured to act as a slave (waiting for a trigger
  1553. to be synchronized) or a master (generating a synchronization signal) or both.
  1554. This parameter can be a combination of @ref HRPWM_Synchronization_Options. */
  1555. HRPWM_SyncInputSrcETypeDef SyncInputSource; /*!< Specifies the external synchronization input source (significant only when
  1556. the HRPWM instance is configured as a slave). */
  1557. HRPWM_SyncOutputSrcETypeDef SyncOutputSource; /*!< Specifies the source and event to be sent on the external synchronization outputs
  1558. (significant only when the HRPWM instance is configured as a master). */
  1559. HRPWM_SyncOutputEnETypeDef SyncOutputEnable; /*!< Specifies the source and event to be sent on the external synchronization outputs
  1560. (significant only when the HRPWM is configured as a master).*/
  1561. HRPWM_SyncOutputPolETypeDef SyncOutputPolarity; /*!< Specifies the conditioning of the event to be sent on the external synchronization
  1562. outputs (significant only when the HRPWM instance is configured as a master). */
  1563. } HRPWM_MasterSyncTypeDef;
  1564. /**
  1565. * @brief Timer configuration definition -- Timerx (x=0...5) & Master timer
  1566. */
  1567. typedef struct __HRPWM_TimerBaseCfgTypeDef {
  1568. uint32_t InterruptRequests; /*!< Relevant for all HRPWM timers, including the master.
  1569. Specifies which interrupts requests must enabled for the timer.
  1570. This parameter can be any combination of @ref HRPWM_Master_Interrupt_Enable
  1571. or @ref HRPWM_Timing_Unit_Interrupt_Enable */
  1572. uint32_t Period; /*!< Specifies the timer period.
  1573. The period value must be above 3 periods of the fHRPWM clock.
  1574. Maximum value is = 0xFFFDU */
  1575. uint32_t RepetitionCounter; /*!< Specifies the timer repetition period.
  1576. This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */
  1577. uint32_t ResetTrigger; /*!< Relevant for Timer0 to Timer5. no master timer.
  1578. Specifies source(s) triggering the timer counter reset.
  1579. This parameter can be a combination of @ref HRPWM_Timer_Reset_Trigger */
  1580. HRPWM_PrescalerRatioETypeDef PrescalerRatio;/*!< Specifies the timer clock prescaler ratio. */
  1581. HRPWM_ModeETypeDef Mode; /*!< Specifies the counter operating mode. continues or single */
  1582. HRPWM_SyncStartETypeDef StartOnSync; /*!< Relevant for all HRPWM timers, including the master.Specifies whether or
  1583. not timer is reset by a rising edge on the synchronization input (when enabled). */
  1584. HRPWM_SyncResetETypeDef ResetOnSync; /*!< Relevant for all HRPWM timers, including the master.Specifies whether or
  1585. not timer is reset by a rising edge on the synchronization input (when enabled). */
  1586. HRPWM_RsyncUpdateETypeDef ReSyncUpdate; /*!< Relevant for Timer0 to Timer5.Specifies whether update source is coming
  1587. from the timing unit @ref HRPWM_Timer_Resync_Update_Enable */
  1588. } HRPWM_TimerBaseCfgTypeDef;
  1589. /**
  1590. * @brief Simple output compare mode configuration definition -- Timerx (x=0...5) & Master timer
  1591. */
  1592. typedef struct __HRPWM_TimerCompareCfgTypeDef {
  1593. HRPWM_PreloadEnETypeDef PreloadEnable; /*!< Relevant for all HRPWM timers, including the master.
  1594. Specifies whether or not register preload is enabled. */
  1595. uint32_t UpdateTrigger; /*!< Relevant for Timer0 to Timer5. no Master timer update source ;
  1596. Specifies source(s) triggering the timer registers update.
  1597. This parameter can be a combination of @ref HRPWM_Timer_Update_Trigger */
  1598. uint32_t CompareValueA; /*!< Specifies the compare A value of the timer compare unit.
  1599. The minimum value must be greater than or equal to 3 periods of the fHRPWM clock.
  1600. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRPWM clock */
  1601. uint32_t CompareValueB; /*!< Specifies the compare B value of the timer compare unit.
  1602. The minimum value must be greater than or equal to 3 periods of the fHRPWM clock.
  1603. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRPWM clock */
  1604. uint32_t CompareValueC; /*!< Specifies the compare C value of the timer compare unit.
  1605. The minimum value must be greater than or equal to 3 periods of the fHRPWM clock.
  1606. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRPWM clock */
  1607. uint32_t CompareValueD; /*!< Specifies the compare D value of the timer compare unit.
  1608. The minimum value must be greater than or equal to 3 periods of the fHRPWM clock.
  1609. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRPWM clock */
  1610. } HRPWM_TimerCompareCfgTypeDef;
  1611. /**
  1612. * @brief Timer RollOver definition -- Timerx (x=0...5)
  1613. */
  1614. typedef struct __HRPWM_TimerRollOverCfgTypeDef {
  1615. HRPWM_CounterModeETypeDef UpDownMode; /*!< Relevant for Timer0 to Timer5.
  1616. Specifies whether or not counter is operating in up or up-down counting mode. */
  1617. HRPWM_RollOverETypeDef RollOverMode; /*!< Relevant for Timer0 to Timer5.
  1618. Roll over mode selection Settings are only valid in up-down counting mode. */
  1619. HRPWM_OutputRollOverETypeDef OutputRollOverMode;/*!< Relevant for Timer0 to Timer5.
  1620. Output roll over mode selection Settings, valid only in up-down counting mode. */
  1621. HRPWM_FltRollOverETypeDef FaultRollOverMode; /*!< Relevant for Timer0 to Timer5.
  1622. The fault roll over mode selection setting is only valid in up-down counting mode. */
  1623. HRPWM_EventRollOverETypeDef EeventRollOverMode;/*!< Relevant for Timer0 to Timer5.
  1624. The event roll over mode selection setting is only valid in up-down counting mode. */
  1625. HRPWM_AdcRollOverETypeDef AdcRollOverMode; /*!< Relevant for Timer0 to Timer5.
  1626. The ADDA trigger roll over mode selection setting is only valid in up-down counting mode. */
  1627. } HRPWM_TimerRollOverCfgTypeDef;
  1628. /**
  1629. * @brief Timer Daul Channel Dac definition -- Timerx (x=0...5)
  1630. */
  1631. typedef struct __HRPWM_TimerDaulDacCfgTypeDef {
  1632. HRPWM_DacResetSelETypeDef DualChannelDacReset; /*!< Relevant for Timer0 to Timer5.
  1633. Specifies how the HRPWM_dac_reset_trgx trigger is generated. */
  1634. HRPWM_DacStepSelETypeDef DualChannelDacStep; /*!< Relevant for Timer0 to Timer5.
  1635. Specifies how the HRPWM_dac_step_trgx trigger is generated. */
  1636. HRPWM_DacTrigEnETypeDef DualChannelDacEnable; /*!< Relevant for Timer0 to Timer5.
  1637. Enables or not the dual channel DAC triggering mechanism. */
  1638. } HRPWM_TimerDaulDacCfgTypeDef;
  1639. /**
  1640. * @brief Output configuration definition -- Timerx (x=0...5)
  1641. */
  1642. typedef struct __HRPWM_OutputCfgTypeDef {
  1643. HRPWM_OutputAPolETypeDef OutputAPolarity; /*!< Specifies the output polarity. */
  1644. HRPWM_IdelALevelETypeDef IdleALevel; /*!< Specifies whether the output level is active or inactive when in IDLE state. */
  1645. HRPWM_FaultALevelETypeDef FaultALevel; /*!< Specifies whether the output level is active or inactive when in FAULT state. */
  1646. HRPWM_ChopperAEnETypeDef ChopperAModeEnable; /*!< Indicates whether or not the chopper mode is enabled*/
  1647. HRPWM_OutputBPolETypeDef OutputBPolarity; /*!< Specifies the output polarity.*/
  1648. HRPWM_IdelBLevelETypeDef IdleBLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state. */
  1649. HRPWM_FaultBLevelETypeDef FaultBLevel; /*!< Specifies whether the output level is active or inactive when in FAULT state. */
  1650. HRPWM_ChopperBEnETypeDef ChopperBModeEnable; /*!< Indicates whether or not the chopper mode is enabled */
  1651. uint32_t OutputASetSource; /*!< A channel output action set source event selection
  1652. This parameter can be combination value of @ref HRPWM_Timer_Set_Trigger */
  1653. uint32_t OutputAClearSource; /*!< A channel output action clear source event selection
  1654. This parameter can be combination value of @ref HRPWM_Timer_Clear_Trigger */
  1655. uint32_t OutputBSetSource; /*!< B channel output action set source event selection
  1656. This parameter can be combination value of @ref HRPWM_Timer_Set_Trigger */
  1657. uint32_t OutputBClearSource; /*!< B channel output action clear source event selection
  1658. This parameter can be combination value of @ref HRPWM_Timer_Clear_Trigger */
  1659. } HRPWM_OutputCfgTypeDef;
  1660. /**
  1661. * @brief Dead time feature configuration definition -- Timerx (x=0...5)
  1662. */
  1663. typedef struct __HRPWM_DeadTimeCfgTypeDef {
  1664. LL_FuncStatusETypeDef DeadTimeEn; /*!< Specifies the dead-time output enable */
  1665. uint32_t RisingValue; /*!< Specifies the dead-time following a rising edge.
  1666. This parameter can be a number between 0x0 and 0xFFFU */
  1667. HRPWM_DeadTimeRiseSignETypeDef RisingSign; /*!< Specifies whether the dead-time is positive or negative on rising edge. */
  1668. uint32_t FallingValue; /*!< Specifies the dead-time following a falling edge.
  1669. This parameter can be a number between 0x0 and 0xFFFU */
  1670. HRPWM_DeadTimeFallSignETypeDef FallingSign; /*!< Specifies whether the dead-time is positive or negative on falling edge. */
  1671. } HRPWM_DeadTimeCfgTypeDef;
  1672. /**
  1673. * @brief Chopper mode configuration definition -- Timerx (x=0...5)
  1674. */
  1675. typedef struct __HRPWM_ChopperModeCfgTypeDef {
  1676. HRPWM_ChopperAEnETypeDef ChopperAModeEnable; /*!< Indicates whether or not the chopper mode is enabled */
  1677. HRPWM_ChopperBEnETypeDef ChopperBModeEnable; /*!< Indicates whether or not the chopper mode is enabled */
  1678. HRPWM_ChopperCarfreqETypeDef CarrierFreq; /*!< Specifies the Timer carrier frequency value. */
  1679. HRPWM_ChopperDutyETypeDef DutyCycle; /*!< Specifies the Timer chopper duty cycle value. */
  1680. HRPWM_ChopperPulseWidthETypeDef StartPulse; /*!< Specifies the Timer pulse width value. */
  1681. } HRPWM_ChopperModeCfgTypeDef;
  1682. /**
  1683. * @brief External event filtering in timing units configuration definition -- Timerx (x=0...5)
  1684. */
  1685. typedef struct __HRPWM_TimerEventFilteringCfgTypeDef {
  1686. HRPWM_EventAFilterWindowETypeDef Filter; /*!< Specifies the type of event filtering within the timing unit. */
  1687. HRPWM_EventALatchETypeDef Latch; /*!< Specifies whether or not the signal is latched. */
  1688. } HRPWM_TimerEventFilteringCfgTypeDef;
  1689. /**
  1690. * @brief External Event Counter A configuration definition -- Timerx (x=0...5)
  1691. */
  1692. typedef struct __HRPWM_ExternalEventACfgTypeDef {
  1693. HRPWM_EventACouterEnETypeDef CounterEnable; /*!< Specifies the External Event A Counter enable. */
  1694. HRPWM_EventARstModeETypeDef ResetMode; /*!< Specifies the External Event A Counte Reset Mode. */
  1695. HRPWM_EventASourceSelETypeDef Source; /*!< Specifies the External Event A Counter source selection. */
  1696. uint32_t Counter; /*!< Specifies the External Event A Counter Threshold.
  1697. This parameter can be a number between 0x0 and 0x3F */
  1698. } HRPWM_ExternalEventACfgTypeDef;
  1699. /**
  1700. * @brief External event channel configuration definition -- common timer
  1701. */
  1702. typedef struct __HRPWM_EventCfgTypeDef {
  1703. HRPWM_EventSrcSelETypeDef Source; /*!< Identifies the source of the external event. */
  1704. HRPWM_EventPolETypeDef Polarity; /*!< Specifies the polarity of the external event (in case of level sensitivity). */
  1705. HRPWM_EventSensETypeDef Sensitivity; /*!< Specifies the sensitivity of the external event. */
  1706. HRPWM_EventPrescalerETypeDef SampClockDiv; /*!< External event sampling time frequency division ratio. */
  1707. HRPWM_EventFilterETypeDef Filter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter. */
  1708. HRPWM_EventFastModeETypeDef FastMode; /*!< Indicates whether or not low latency mode is enabled for the external event. */
  1709. } HRPWM_EventCfgTypeDef;
  1710. /**
  1711. * @brief Fault channel configuration definition -- common timer
  1712. */
  1713. typedef struct __HRPWM_FaultCfgTypeDef {
  1714. uint32_t InterruptEn; /*!< Relevant for comon timer.
  1715. Specifies which interrupts requests must enabled for comon timer.
  1716. This parameter can be any combination of @ref HRPWM_Common_Interrupt_Enable */
  1717. HRPWM_FaultSrcSelETypeDef Source; /*!< Identifies the source of the fault. */
  1718. HRPWM_FaultPolETypeDef Polarity; /*!< Specifies the polarity of the fault event. */
  1719. HRPWM_FaultPrescalerETypeDef SampClockDiv; /*!< Fault signal sampling time frequency division ratio. */
  1720. HRPWM_FaultFilterETypeDef Filter; /*!< Defines the frequency used to sample the Fault input and the length of the digital filter. */
  1721. HRPWM_FaultEnETypeDef Enable; /*!< Corresponding fault sampling enablement. */
  1722. } HRPWM_FaultCfgTypeDef;
  1723. /**
  1724. * @brief Fault channel configuration blanking definition -- common timer
  1725. */
  1726. typedef struct __HRPWM_FaultBlankingCfgTypeDef {
  1727. HRPWM_FaultCounterETypeDef Threshold; /*!< Specifies the Fault counter Threshold. */
  1728. HRPWM_FaultBlkEnETypeDef BlankingEnable; /*!< Specifies the Fault blanking enablement. */
  1729. HRPWM_FaultRstModeETypeDef ResetMode; /*!< Specifies the reset mode of a fault event counter. */
  1730. HRPWM_FaultBlkWindowETypeDef BlankingSource;/*!< Specifies the blanking source of a fault event. */
  1731. } HRPWM_FaultBlankingCfgTypeDef;
  1732. /**
  1733. * @brief ADC trigger configuration definition -- common timer
  1734. */
  1735. typedef struct __HRPWM_ADCTriggerCfgTypeDef {
  1736. uint32_t Trigger; /*!< Specifies the event(s) triggering the ADC conversion.
  1737. This parameter can be a combination of @ref HRPWM_ADC_Trigger_Event */
  1738. HRPWM_AdcTrigGroupETypeDef TriggerGroup; /*!< Specifies the ADC trigger group 0~7. */
  1739. HRPWM_AdcTrigUpdateSrcETypeDef UpdateSource;/*!< Specifies the ADC trigger update source. */
  1740. HRPWM_AdcTrigLengthETypeDef TriggerLength; /*!< Specifies the event(s) triggering the ADC\DAC conversion.In practical use,
  1741. the length configuration should be greater than 3 clocks. For example,
  1742. under a 160M clock, the minimum configuration value is 0x3; */
  1743. HRPWM_AdcTrigPSCETypeDef TriggerPostScaler; /*!< Specifies the event(s) triggering the ADC\DAC conversion. */
  1744. } HRPWM_ADCTriggerCfgTypeDef;
  1745. /**
  1746. * @brief HRPWM DLL start configuration definition -- common timer
  1747. */
  1748. typedef struct __HRPWM_DLLCfgTypedef {
  1749. HRPWM_DllCurrentETypeDef CurrentSel;/*!< Configure DLL current selection. */
  1750. uint32_t ClockDelayThres0; /*!< DLL Clock Delay Threshold. CLKPHASE = PULPHASE - DLLTHRES0. range : 0~0x1F */
  1751. uint32_t ClockDelayThres1; /*!< DLL Clock Delay Threshold. CLKPHASE <= DLLTHRES1 :
  1752. Sample hrpwm_clk Pulse CLKPHASE > DLLTHRES1 : Sample hrpwm_dly_clk Pulse. range : 0~0x1F */
  1753. } HRPWM_DLLCfgTypedef;
  1754. /**
  1755. * @}
  1756. */
  1757. /* Exported macro ------------------------------------------------------------*/
  1758. /** @defgroup HRPWM_LL_Exported_Macros HRPWM LL Exported Macros
  1759. * @brief HRPWM LL Exported Macros
  1760. * @{
  1761. */
  1762. /**
  1763. * @brief swap the output of the timer
  1764. * HRPWM_SETA1R and HRPWM_RSTAR are coding for the output B,
  1765. * HRPWM_SETA2R and HRPWM_RSTAR are coding for the output B
  1766. * @note Push pull mode setting is invalid
  1767. * @param __TIMER__ : Timer index
  1768. * This parameter can be a combination of the following values:
  1769. * @arg HRPWM_SWAP_SLAVE_0
  1770. * @arg HRPWM_SWAP_SLAVE_1
  1771. * @arg HRPWM_SWAP_SLAVE_2
  1772. * @arg HRPWM_SWAP_SLAVE_3
  1773. * @arg HRPWM_SWAP_SLAVE_4
  1774. * @arg HRPWM_SWAP_SLAVE_5
  1775. * @retval none
  1776. */
  1777. #define __LL_HRPWM_OUTPUT_SWAP(__TIMER__) \
  1778. MODIFY_REG(HRPWM->Common.CR1, HRPWM_CR1_SWP5 | HRPWM_CR1_SWP5 | HRPWM_CR1_SWP5 | HRPWM_CR1_SWP5 | HRPWM_CR1_SWP5, __TIMER__)
  1779. /**
  1780. * @brief swap the output of the timer
  1781. * HRPWM_SETAR and HRPWM_RSTAR are coding for the output B,
  1782. * HRPWM_SETAR and HRPWM_RSTAR are coding for the output B
  1783. * @note Push pull mode setting is invalid
  1784. * @param __TIMER__ : Timer index
  1785. * This parameter Only one of the values can be selected, not a combination:
  1786. * @arg HRPWM_SWAP_SLAVE_0
  1787. * @arg HRPWM_SWAP_SLAVE_1
  1788. * @arg HRPWM_SWAP_SLAVE_2
  1789. * @arg HRPWM_SWAP_SLAVE_3
  1790. * @arg HRPWM_SWAP_SLAVE_4
  1791. * @arg HRPWM_SWAP_SLAVE_5
  1792. * @retval none
  1793. */
  1794. #define __LL_HRPWM_TIMER_OUTPUT_SWAP(__TIMER__) SET_BIT(HRPWM->Common.CR1, __TIMER__)
  1795. /**
  1796. * @brief Un-swap the output of the timer
  1797. * HRPWM_SETAR and HRPWM_RSTAR are coding for the output A,
  1798. * HRPWM_SETAR and HRPWM_RSTAR are coding for the output A
  1799. * @note Push pull mode setting is invalid
  1800. * @param __TIMER__ : Timer index
  1801. * This parameter Only one of the values can be selected, not a combination:
  1802. * @arg HRPWM_SWAP_SLAVE_0
  1803. * @arg HRPWM_SWAP_SLAVE_1
  1804. * @arg HRPWM_SWAP_SLAVE_2
  1805. * @arg HRPWM_SWAP_SLAVE_3
  1806. * @arg HRPWM_SWAP_SLAVE_4
  1807. * @arg HRPWM_SWAP_SLAVE_5
  1808. * @retval none
  1809. */
  1810. #define __LL_HRPWM_TIMER_OUTPUT_NOSWAP(__TIMER__) CLEAR_BIT(HRPWM->Common.CR1, __TIMER__)
  1811. /** @brief Enables or disables the specified HRPWM common interrupts.
  1812. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  1813. * This parameter can be one of the following values:
  1814. * @arg HRPWM_IT_FLT0: Fault 0 interrupt enable
  1815. * @arg HRPWM_IT_FLT1: Fault 1 interrupt enable
  1816. * @arg HRPWM_IT_FLT2: Fault 2 interrupt enable
  1817. * @arg HRPWM_IT_FLT3: Fault 3 interrupt enable
  1818. * @arg HRPWM_IT_FLT4: Fault 4 interrupt enable
  1819. * @arg HRPWM_IT_FLT5: Fault 5 interrupt enable
  1820. * @arg HRPWM_IT_SYSFLT: System Fault interrupt enable
  1821. * @retval None
  1822. */
  1823. #define __LL_HRPWM_ENABLE_IT(__INTERRUPT__) (HRPWM->Common.IER |= (__INTERRUPT__))
  1824. #define __LL_HRPWM_DISABLE_IT(__INTERRUPT__) (HRPWM->Common.IER &= ~(__INTERRUPT__))
  1825. /** @brief Enables or disables the specified HRPWM Master timer interrupts.
  1826. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  1827. * This parameter can be one of the following values:
  1828. * @arg HRPWM_MASTER_IT_MPER: Master Period interrupt enable
  1829. * @arg HRPWM_MASTER_IT_MCMPA: Master compare A interrupt enable
  1830. * @arg HRPWM_MASTER_IT_MCMPB: Master compare B interrupt enable
  1831. * @arg HRPWM_MASTER_IT_MCMPC: Master compare C interrupt enable
  1832. * @arg HRPWM_MASTER_IT_MCMPD: Master compare D interrupt enable
  1833. * @arg HRPWM_MASTER_IT_MREP: Master Repetition interrupt enable
  1834. * @arg HRPWM_MASTER_IT_SYNC: Synchronization input interrupt enable
  1835. * @arg HRPWM_MASTER_IT_MUPD: Master update interrupt enable
  1836. * @retval None
  1837. */
  1838. #define __LL_HRPWM_MASTER_ENABLE_IT(__INTERRUPT__) (HRPWM->Master.MIER |= (__INTERRUPT__))
  1839. #define __LL_HRPWM_MASTER_DISABLE_IT(__INTERRUPT__) (HRPWM->Master.MIER &= ~(__INTERRUPT__))
  1840. /** @brief Enables or disables the specified HRPWM Timerx interrupts.
  1841. * @param __TIMER__ specified the timing unit (Timer 0 to 5)
  1842. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  1843. * This parameter can be one of the following values:
  1844. * @arg HRPWM_IT_PER: Timer Period interrupt enable
  1845. * @arg HRPWM_IT_CMPA: Timer compare 1 interrupt enable
  1846. * @arg HRPWM_IT_CMP2: Timer compare 2 interrupt enable
  1847. * @arg HRPWM_IT_CMP3: Timer compare 3 interrupt enable
  1848. * @arg HRPWM_IT_CMP4: Timer compare 4 interrupt enable
  1849. * @arg HRPWM_IT_SETA: Timer output 1 set interrupt enable
  1850. * @arg HRPWM_IT_RSTA: Timer output 1 reset interrupt enable
  1851. * @arg HRPWM_IT_SETB: Timer output 2 set interrupt enable
  1852. * @arg HRPWM_IT_RSTB: Timer output 2 reset interrupt enable
  1853. * @arg HRPWM_IT_RST: Timer reset interrupt enable
  1854. * @arg HRPWM_IT_REP: Timer repetition interrupt enable
  1855. * @arg HRPWM_IT_UPD: Timer update interrupt enable
  1856. * @arg HRPWM_IT_DLYPRT: Timer delay protection interrupt enable
  1857. * @retval None
  1858. */
  1859. #define __LL_HRPWM_TIMER_ENABLE_IT(__TIMER__, __INTERRUPT__) (HRPWM->PWM[(__TIMER__)].IER |= (__INTERRUPT__))
  1860. #define __LL_HRPWM_TIMER_DISABLE_IT(__TIMER__, __INTERRUPT__) (HRPWM->PWM[(__TIMER__)].IER &= ~(__INTERRUPT__))
  1861. /** @brief Checks if the specified HRPWM common interrupt source is enabled or disabled.
  1862. * @param __INTERRUPT__ specifies the interrupt source to check.
  1863. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  1864. * This parameter can be one of the following values:
  1865. * @arg HRPWM_IT_FLT0: Fault 0 interrupt enable
  1866. * @arg HRPWM_IT_FLT1: Fault 1 interrupt enable
  1867. * @arg HRPWM_IT_FLT2: Fault 2 interrupt enable
  1868. * @arg HRPWM_IT_FLT3: Fault 3 interrupt enable
  1869. * @arg HRPWM_IT_FLT4: Fault 4 interrupt enable
  1870. * @arg HRPWM_IT_FLT5: Fault 5 interrupt enable
  1871. * @arg HRPWM_IT_SYSFLT: System Fault interrupt enable
  1872. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  1873. */
  1874. #define __LL_HRPWM_GET_IT(__INTERRUPT__) (((HRPWM->Common.IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  1875. /** @brief Checks if the specified HRPWM Master interrupt source is enabled or disabled.
  1876. * @param __INTERRUPT__ specifies the interrupt source to check.
  1877. * This parameter can be one of the following values:
  1878. * @arg HRPWM_MASTER_IT_MPER: Master Period interrupt enable
  1879. * @arg HRPWM_MASTER_IT_MCMPA: Master compare A interrupt enable
  1880. * @arg HRPWM_MASTER_IT_MCMPB: Master compare B interrupt enable
  1881. * @arg HRPWM_MASTER_IT_MCMPC: Master compare C interrupt enable
  1882. * @arg HRPWM_MASTER_IT_MCMPD: Master compare D interrupt enable
  1883. * @arg HRPWM_MASTER_IT_MREP: Master Repetition interrupt enable
  1884. * @arg HRPWM_MASTER_IT_SYNC: Synchronization input interrupt enable
  1885. * @arg HRPWM_MASTER_IT_MUPD: Master update interrupt enable
  1886. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  1887. */
  1888. #define __LL_HRPWM_MASTER_GET_IT(__INTERRUPT__) (((HRPWM->Master.MIER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  1889. /** @brief Checks if the specified HRPWM Timerx interrupt source is enabled or disabled.
  1890. * @param __TIMER__ specified the timing unit (Timer 0 to 5)
  1891. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  1892. * This parameter can be one of the following values:
  1893. * @arg HRPWM_IT_PER: Timer Period interrupt enable
  1894. * @arg HRPWM_IT_CMPA: Timer compare A interrupt enable
  1895. * @arg HRPWM_IT_CMPB: Timer compare B interrupt enable
  1896. * @arg HRPWM_IT_CMPC: Timer compare C interrupt enable
  1897. * @arg HRPWM_IT_CMPD: Timer compare D interrupt enable
  1898. * @arg HRPWM_IT_SETA: Timer output A set interrupt enable
  1899. * @arg HRPWM_IT_RSTA: Timer output A reset interrupt enable
  1900. * @arg HRPWM_IT_SETB: Timer output B set interrupt enable
  1901. * @arg HRPWM_IT_RSTB: Timer output B reset interrupt enable
  1902. * @arg HRPWM_IT_RST: Timer reset interrupt enable
  1903. * @arg HRPWM_IT_REP: Timer repetition interrupt enable
  1904. * @arg HRPWM_IT_UPD: Timer update interrupt enable
  1905. * @arg HRPWM_IT_DLYPRT: Timer delay protection interrupt enable
  1906. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  1907. */
  1908. #define __LL_HRPWM_TIMER_GET_IT(__TIMER__, __INTERRUPT__) \
  1909. (((HRPWM->PWM[(__TIMER__)].IER & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  1910. /** @brief Get the specified HRPWM common pending flag.
  1911. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  1912. * This parameter can be one of the following values:
  1913. * @arg HRPWM_FLAG_FLT0: Fault 0 flag
  1914. * @arg HRPWM_FLAG_FLT1: Fault 1 flag
  1915. * @arg HRPWM_FLAG_FLT2: Fault 2 flag
  1916. * @arg HRPWM_FLAG_FLT3: Fault 3 flag
  1917. * @arg HRPWM_FLAG_FLT4: Fault 4 flag
  1918. * @arg HRPWM_FLAG_FLT5: Fault 5 flag
  1919. * @arg HRPWM_FLAG_SYSFLT: System Fault interrupt flag
  1920. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  1921. */
  1922. #define __LL_HRPWM_GET_ITFLAG(__INTERRUPT__) (((HRPWM->Common.ISR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  1923. /** @brief Get the specified HRPWM Master pending flag.
  1924. * @param __INTERRUPT__ specifies the interrupt pending bit.
  1925. * This parameter can be one of the following values:
  1926. * @arg HRPWM_MASTER_FLAG_MPER: Master Period interrupt flag
  1927. * @arg HRPWM_MASTER_FLAG_MCMPA: Master compare A interrupt flag
  1928. * @arg HRPWM_MASTER_FLAG_MCMPB: Master compare B interrupt flag
  1929. * @arg HRPWM_MASTER_FLAG_MCMPC: Master compare C interrupt flag
  1930. * @arg HRPWM_MASTER_FLAG_MCMPD: Master compare D interrupt flag
  1931. * @arg HRPWM_MASTER_FLAG_MREP: Master Repetition interrupt flag
  1932. * @arg HRPWM_MASTER_FLAG_SYNC: Synchronization input interrupt flag
  1933. * @arg HRPWM_MASTER_FLAG_MUPD: Master update interrupt flag
  1934. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  1935. */
  1936. #define __LL_HRPWM_MASTER_GET_ITFLAG(__INTERRUPT__) \
  1937. (((HRPWM->Master.MISR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  1938. /** @brief Get the specified HRPWM Timerx pending flag.
  1939. * @param __TIMER__ specified the timing unit (Timer 0 to 5)
  1940. * @param __INTERRUPT__ specifies the interrupt pending bit.
  1941. * This parameter can be one of the following values:
  1942. * @arg HRPWM_FLAG_PER: Timer Period interrupt flag
  1943. * @arg HRPWM_FLAG_CMPA: Timer compare A interrupt flag
  1944. * @arg HRPWM_FLAG_CMPB: Timer compare B interrupt flag
  1945. * @arg HRPWM_FLAG_CMPC: Timer compare C interrupt flag
  1946. * @arg HRPWM_FLAG_CMPD: Timer compare D interrupt flag
  1947. * @arg HRPWM_FLAG_SETA: Timer output A set interrupt flag
  1948. * @arg HRPWM_FLAG_RSTA: Timer output A reset interrupt flag
  1949. * @arg HRPWM_FLAG_SETB: Timer output B set interrupt flag
  1950. * @arg HRPWM_FLAG_RSTB: Timer output B reset interrupt flag
  1951. * @arg HRPWM_FLAG_RST: Timer reset interrupt flag
  1952. * @arg HRPWM_FLAG_REP: Timer repetition interrupt flag
  1953. * @arg HRPWM_FLAG_UPD: Timer update interrupt flag
  1954. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  1955. */
  1956. #define __LL_HRPWM_TIMER_GET_ITFLAG(__TIMER__, __INTERRUPT__) \
  1957. (((HRPWM->PWM[(__TIMER__)].ISR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  1958. /** @brief Clears the specified HRPWM common pending flag.
  1959. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  1960. * This parameter can be one of the following values:
  1961. * @arg HRPWM_FLAG_FLT0: Fault 0 clear flag
  1962. * @arg HRPWM_FLAG_FLT1: Fault 1 clear flag
  1963. * @arg HRPWM_FLAG_FLT2: Fault 2 clear flag
  1964. * @arg HRPWM_FLAG_FLT3: Fault 3 clear flag
  1965. * @arg HRPWM_FLAG_FLT4: Fault 4 clear flag
  1966. * @arg HRPWM_FLAG_FLT5: Fault 5 clear flag
  1967. * @arg HRPWM_FLAG_SYSFLT: System Fault interrupt clear flag
  1968. * @retval None
  1969. */
  1970. #define __LL_HRPWM_CLEAR_ITFLAG(__INTERRUPT__) (HRPWM->Common.ISR = (__INTERRUPT__))
  1971. /** @brief Clears the specified HRPWM Master pending flag.
  1972. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  1973. * This parameter can be one of the following values:
  1974. * @arg HRPWM_MASTER_FLAG_MPER: Master Period interrupt clear flag
  1975. * @arg HRPWM_MASTER_FLAG_MCMPA: Master compare A interrupt clear flag
  1976. * @arg HRPWM_MASTER_FLAG_MCMPB: Master compare B interrupt clear flag
  1977. * @arg HRPWM_MASTER_FLAG_MCMPC: Master compare C interrupt clear flag
  1978. * @arg HRPWM_MASTER_FLAG_MCMPD: Master compare D interrupt clear flag
  1979. * @arg HRPWM_MASTER_FLAG_MREP: Master Repetition interrupt clear flag
  1980. * @arg HRPWM_MASTER_FLAG_SYNC: Synchronization input interrupt clear flag
  1981. * @arg HRPWM_MASTER_FLAG_MUPD: Master update interrupt clear flag
  1982. * @retval None
  1983. */
  1984. #define __LL_HRPWM_MASTER_CLEAR_ITFLAG(__INTERRUPT__) (HRPWM->Master.MISR = (__INTERRUPT__))
  1985. /** @brief Clears the specified HRPWM Timerx pending flag.
  1986. * @param __TIMER__ specified the timing unit (Timer A to F)
  1987. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  1988. * This parameter can be one of the following values:
  1989. * @arg HRPWM_FLAG_PER: Timer Period interrupt clear flag
  1990. * @arg HRPWM_FLAG_CMPA: Timer compare A interrupt clear flag
  1991. * @arg HRPWM_FLAG_CMPB: Timer compare B interrupt clear flag
  1992. * @arg HRPWM_FLAG_CMPC: Timer compare C interrupt clear flag
  1993. * @arg HRPWM_FLAG_CMPD: Timer compare D interrupt clear flag
  1994. * @arg HRPWM_FLAG_SETA: Timer output A set interrupt clear flag
  1995. * @arg HRPWM_FLAG_RSTA: Timer output A reset interrupt clear flag
  1996. * @arg HRPWM_FLAG_SETB: Timer output B set interrupt clear flag
  1997. * @arg HRPWM_FLAG_RSTB: Timer output B reset interrupt clear flag
  1998. * @arg HRPWM_FLAG_RST: Timer reset interrupt clear flag
  1999. * @arg HRPWM_FLAG_REP: Timer repetition interrupt clear flag
  2000. * @arg HRPWM_FLAG_UPD: Timer update interrupt clear flag
  2001. * @retval None
  2002. */
  2003. #define __LL_HRPWM_TIMER_CLEAR_ITFLAG(__TIMER__, __INTERRUPT__) (HRPWM->PWM[(__TIMER__)].ISR = (__INTERRUPT__))
  2004. /** @brief Sets the HRPWM timer Period value on runtime
  2005. * @param __TIMER__ HRPWM timer
  2006. * This parameter can be one of the following values:
  2007. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2008. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2009. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2010. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2011. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2012. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2013. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2014. * @param __PERIOD__ specifies the Period Register new value.
  2015. * @retval None
  2016. */
  2017. #define __LL_HRPWM_SETPERIOD(__TIMER__, __PERIOD__) \
  2018. (((__TIMER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MPER = (__PERIOD__)) :\
  2019. (HRPWM->PWM[(__TIMER__)].PERR = (__PERIOD__)))
  2020. /** @brief Gets the HRPWM timer Period Register value on runtime
  2021. * @param __TIMER__ HRPWM timer
  2022. * This parameter can be one of the following values:
  2023. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2024. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2025. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2026. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2027. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2028. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2029. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2030. * @retval timer Period Register
  2031. */
  2032. #define __LL_HRPWM_GETPERIOD(__TIMER__) \
  2033. (((__TIMER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MPER) : (HRPWM->PWM[(__TIMER__)].PERR))
  2034. /** @brief Sets the HRPWM timer clock prescaler value on runtime
  2035. * @param __TIMER__ HRPWM timer
  2036. * This parameter can be one of the following values:
  2037. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2038. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2039. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2040. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2041. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2042. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2043. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2044. * @param __PRESCALER__ specifies the clock prescaler new value.
  2045. * This parameter can be one of the following values:
  2046. * @arg HRPWM_PRESCALERRATIO_MUL32: fHRCK: fHRPWM x 32U = 5.12 GHz - Resolution: 195 ps (fHRPWM=144MHz)
  2047. * @arg HRPWM_PRESCALERRATIO_MUL16: fHRCK: fHRPWM x 16U = 2.56 GHz - Resolution: 390 ps (fHRPWM=144MHz)
  2048. * @arg HRPWM_PRESCALERRATIO_MUL8: fHRCK: fHRPWM x 8U = 1.28 GHz - Resolution: 781 ps (fHRPWM=144MHz)
  2049. * @arg HRPWM_PRESCALERRATIO_MUL4: fHRCK: fHRPWM x 4U = 640 MHz - Resolution: 1.56 ns (fHRPWM=144MHz)
  2050. * @arg HRPWM_PRESCALERRATIO_MUL2: fHRCK: fHRPWM x 2U = 320 MHz - Resolution: 3.125 ns (fHRPWM=144MHz)
  2051. * @arg HRPWM_PRESCALERRATIO_DIV1: fHRCK: fHRPWM = 160 MHz - Resolution: 6.25 ns (fHRPWM=144MHz)
  2052. * @arg HRPWM_PRESCALERRATIO_DIV2: fHRCK: fHRPWM / 2U = 80 MHz - Resolution: 12.5 ns (fHRPWM=144MHz)
  2053. * @arg HRPWM_PRESCALERRATIO_DIV4: fHRCK: fHRPWM / 4U = 40 MHz - Resolution: 25 ns (fHRPWM=144MHz)
  2054. * @retval None
  2055. */
  2056. #define __LL_HRPWM_SETCLOCKPRESCALER(__TIMER__, __PRESCALER__) \
  2057. (((__TIMER__) == HRPWM_INDEX_MASTER) ? (MODIFY_REG(HRPWM->Master.MCR, HRPWM_MCR_CKPSC, (__PRESCALER__))) :\
  2058. (MODIFY_REG(HRPWM->PWM[(__TIMER__)].CR0, HRPWM_CR0_CKPSC, (__PRESCALER__))))
  2059. /** @brief Gets the HRPWM timer clock prescaler value on runtime
  2060. * @param __TIMER__ HRPWM timer
  2061. * This parameter can be one of the following values:
  2062. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2063. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2064. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2065. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2066. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2067. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2068. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2069. * @retval timer clock prescaler value
  2070. */
  2071. #define __LL_HRPWM_GETCLOCKPRESCALER(__TIMER__) \
  2072. (((__TIMER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCR & HRPWM_MCR_CKPSC) : \
  2073. (HRPWM->PWM[(__TIMER__)].CR0 & HRPWM_CR0_CKPSC))
  2074. /** @brief Sets the HRPWM timer Compare Register value on runtime
  2075. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2076. * This parameter can be one of the following values:
  2077. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2078. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2079. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2080. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2081. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2082. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2083. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2084. * @param __COMPAREUNIT__ timer compare unit
  2085. * This parameter can be one of the following values:
  2086. * @arg HRPWM_COMPAREUNIT_A: Compare A
  2087. * @arg HRPWM_COMPAREUNIT_B: Compare B
  2088. * @arg HRPWM_COMPAREUNIT_C: Compare C
  2089. * @arg HRPWM_COMPAREUNIT_D: Compare D
  2090. * @param __COMPARE__ specifies the Compare new value.
  2091. * @retval None
  2092. */
  2093. #define __LL_HRPWM_SETCOMPARE(__TIMER__, __COMPAREUNIT__, __COMPARE__) \
  2094. (((__TIMER__) == HRPWM_INDEX_MASTER) ? \
  2095. (((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_A) ? (HRPWM->Master.MCMPAR = (__COMPARE__)) : \
  2096. ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_B) ? (HRPWM->Master.MCMPBR = (__COMPARE__)) : \
  2097. ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_C) ? (HRPWM->Master.MCMPCR = (__COMPARE__)) : \
  2098. (HRPWM->Master.MCMPDR = (__COMPARE__))) \
  2099. : \
  2100. (((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_A) ? (HRPWM->PWM[(__TIMER__)].CMPAR = (__COMPARE__)) : \
  2101. ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_B) ? (HRPWM->PWM[(__TIMER__)].CMPBR = (__COMPARE__)) : \
  2102. ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_C) ? (HRPWM->PWM[(__TIMER__)].CMPCR = (__COMPARE__)) : \
  2103. (HRPWM->PWM[(__TIMER__)].CMPDR = (__COMPARE__))))
  2104. /** @brief Gets the HRPWM timer Compare Register value on runtime
  2105. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2106. * This parameter can be one of the following values:
  2107. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2108. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2109. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2110. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2111. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2112. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2113. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2114. * @param __COMPAREUNIT__ timer compare unit
  2115. * This parameter can be one of the following values:
  2116. * @arg HRPWM_COMPAREUNIT_A: Compare A
  2117. * @arg HRPWM_COMPAREUNIT_B: Compare B
  2118. * @arg HRPWM_COMPAREUNIT_C: Compare C
  2119. * @arg HRPWM_COMPAREUNIT_D: Compare D
  2120. * @retval Compare value
  2121. */
  2122. #define __LL_HRPWM_GETCOMPARE(__TIMER__, __COMPAREUNIT__) \
  2123. (((__TIMER__) == HRPWM_INDEX_MASTER) ? \
  2124. (((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_A) ? (HRPWM->Master.MCMPAR) : \
  2125. ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_B) ? (HRPWM->Master.MCMPBR) : \
  2126. ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_C) ? (HRPWM->Master.MCMPCR) : \
  2127. (HRPWM->Master.MCMPDR)) \
  2128. : \
  2129. (((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_A) ? (HRPWM->PWM[(__TIMER__)].CMPAR) : \
  2130. ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_B) ? (HRPWM->PWM[(__TIMER__)].CMPBR) : \
  2131. ((__COMPAREUNIT__) == HRPWM_COMPAREUNIT_C) ? (HRPWM->PWM[(__TIMER__)].CMPCR) : \
  2132. (HRPWM->PWM[(__TIMER__)].CMPDR)))
  2133. /** @brief Sets the HRPWM timer Compare A Register value on runtime
  2134. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2135. * This parameter can be one of the following values:
  2136. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2137. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2138. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2139. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2140. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2141. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2142. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2143. * @param __VALUE__ specifies the Compare new value.
  2144. * @retval None
  2145. */
  2146. #define __LL_HRPWM_SETCOMPARE_A(__TINER__, __VALUE__) \
  2147. (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPAR = (__VALUE__)) : \
  2148. (HRPWM->PWM[(__TINER__)].CMPAR = (__VALUE__)))
  2149. /** @brief Sets the HRPWM timer Compare B Register value on runtime
  2150. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2151. * This parameter can be one of the following values:
  2152. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2153. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2154. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2155. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2156. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2157. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2158. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2159. * @param __VALUE__ specifies the Compare new value.
  2160. * @retval None
  2161. */
  2162. #define __LL_HRPWM_SETCOMPARE_B(__TINER__, __VALUE__) \
  2163. (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPBR = (__VALUE__)) : \
  2164. (HRPWM->PWM[(__TINER__)].CMPBR = (__VALUE__)))
  2165. /** @brief Sets the HRPWM timer Compare C Register value on runtime
  2166. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2167. * This parameter can be one of the following values:
  2168. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2169. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2170. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2171. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2172. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2173. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2174. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2175. * @param __VALUE__ specifies the Compare new value.
  2176. * @retval None
  2177. */
  2178. #define __LL_HRPWM_SETCOMPARE_C(__TINER__, __VALUE__) \
  2179. (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPCR = (__VALUE__)) : \
  2180. (HRPWM->PWM[(__TINER__)].CMPCR = (__VALUE__)))
  2181. /** @brief Sets the HRPWM timer Compare A Register value on runtime
  2182. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2183. * This parameter can be one of the following values:
  2184. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2185. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2186. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2187. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2188. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2189. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2190. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2191. * @param __VALUE__ specifies the Compare new value.
  2192. * @retval None
  2193. */
  2194. #define __LL_HRPWM_SETCOMPARE_D(__TINER__, __VALUE__) \
  2195. (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPDR = (__VALUE__)) : \
  2196. (HRPWM->PWM[(__TINER__)].CMPDR = (__VALUE__)))
  2197. /** @brief Gets the HRPWM timer Compare A Register value on runtime
  2198. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2199. * This parameter can be one of the following values:
  2200. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2201. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2202. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2203. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2204. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2205. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2206. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2207. * @retval Compare value
  2208. */
  2209. #define __LL_HRPWM_GETCOMPARE_A(__TINER__) \
  2210. (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPAR) :(HRPWM->PWM[(__TINER__)].CMPAR))
  2211. /** @brief Gets the HRPWM timer Compare B Register value on runtime
  2212. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2213. * This parameter can be one of the following values:
  2214. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2215. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2216. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2217. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2218. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2219. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2220. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2221. * @retval Compare value
  2222. */
  2223. #define __LL_HRPWM_GETCOMPARE_B(__TINER__) \
  2224. (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPBR) : (HRPWM->PWM[(__TINER__)].CMPBR))
  2225. /** @brief Gets the HRPWM timer Compare C Register value on runtime
  2226. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2227. * This parameter can be one of the following values:
  2228. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2229. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2230. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2231. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2232. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2233. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2234. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2235. * @retval Compare value
  2236. */
  2237. #define __LL_HRPWM_GETCOMPARE_C(__TINER__) \
  2238. (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPCR) : (HRPWM->PWM[(__TINER__)].CMPCR))
  2239. /** @brief Gets the HRPWM timer Compare D Register value on runtime
  2240. * @param __TIMER__ HRPWM timer (not is commmon timer)
  2241. * This parameter can be one of the following values:
  2242. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2243. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2244. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2245. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2246. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2247. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2248. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2249. * @retval Compare value
  2250. */
  2251. #define __LL_HRPWM_GETCOMPARE_D(__TINER__) \
  2252. (((__TINER__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCMPDR) : (HRPWM->PWM[(__TINER__)].CMPDR))
  2253. /** @brief Enables or disables the timer counter(s)
  2254. * @param __TIMERS__ timers to enable/disable
  2255. * This parameter can be any combinations of the following values:
  2256. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2257. * @arg HRPWM_INDEX_SLAVE_0: Slave pwm 0 identifier
  2258. * @arg HRPWM_INDEX_SLAVE_1: Slave pwm 1 identifier
  2259. * @arg HRPWM_INDEX_SLAVE_2: Slave pwm 2 identifier
  2260. * @arg HRPWM_INDEX_SLAVE_3: Slave pwm 3 identifier
  2261. * @arg HRPWM_INDEX_SLAVE_4: Slave pwm 4 identifier
  2262. * @arg HRPWM_INDEX_SLAVE_5: Slave pwm 5 identifier
  2263. * @retval None
  2264. */
  2265. #define __LL_HRPWM_TIMER_ENABLE(__TIMERS__) \
  2266. (((__TIMERS__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCR |= HRPWM_MCR_MCEN) : \
  2267. ((__TIMERS__) == HRPWM_INDEX_SLAVE_0) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN0) : \
  2268. ((__TIMERS__) == HRPWM_INDEX_SLAVE_1) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN1) : \
  2269. ((__TIMERS__) == HRPWM_INDEX_SLAVE_2) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN2) : \
  2270. ((__TIMERS__) == HRPWM_INDEX_SLAVE_3) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN3) : \
  2271. ((__TIMERS__) == HRPWM_INDEX_SLAVE_4) ? (HRPWM->Master.MCR |= HRPWM_MCR_CEN4) : \
  2272. ((HRPWM->Master.MCR |= HRPWM_MCR_CEN5)))
  2273. #define __LL_HRPWM_TIMER_DISABLE(__TIMERS__) \
  2274. (((__TIMERS__) == HRPWM_INDEX_MASTER) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_MCEN)) : \
  2275. ((__TIMERS__) == HRPWM_INDEX_SLAVE_0) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN0)) : \
  2276. ((__TIMERS__) == HRPWM_INDEX_SLAVE_1) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN1)) : \
  2277. ((__TIMERS__) == HRPWM_INDEX_SLAVE_2) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN2)) : \
  2278. ((__TIMERS__) == HRPWM_INDEX_SLAVE_3) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN3)) : \
  2279. ((__TIMERS__) == HRPWM_INDEX_SLAVE_4) ? (HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN4)) : \
  2280. ((HRPWM->Master.MCR &= ~(HRPWM_MCR_CEN5))))
  2281. /** @brief Enables ALL the timer counter(s)
  2282. * @param __INSTANCE__ HRPWM HANDLE
  2283. * @retval None
  2284. */
  2285. #define __LL_HRPWM_ALL_TIMER_ENABLE(__INSTANCE__) \
  2286. (SET_BIT((__INSTANCE__)->Master.MCR, \
  2287. HRPWM_MCR_MCEN | HRPWM_MCR_CEN0 | HRPWM_MCR_CEN1 | HRPWM_MCR_CEN2 | HRPWM_MCR_CEN3 | HRPWM_MCR_CEN4 | HRPWM_MCR_CEN5))
  2288. /** @brief Disables the timer counter(s)
  2289. * @param __INSTANCE__ HRPWM HANDLE
  2290. * @retval None
  2291. */
  2292. #define __LL_HRPWM_ALL_TIMER_DISABLE(__INSTANCE__) \
  2293. (CLEAR_BIT((__INSTANCE__)->Master.MCR, \
  2294. HRPWM_MCR_MCEN | HRPWM_MCR_CEN0 | HRPWM_MCR_CEN1 | HRPWM_MCR_CEN2 | HRPWM_MCR_CEN3 | HRPWM_MCR_CEN4 | HRPWM_MCR_CEN5))
  2295. /** @brief Modify the length of the dead zone
  2296. * @param __TIMERS__ timers to enable/disable
  2297. * This parameter can be any combinations of the following values:
  2298. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2299. * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier
  2300. * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier
  2301. * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier
  2302. * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier
  2303. * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier
  2304. * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier
  2305. * @param __VALUES__ timer dead timer value the range of value is 0 ~ 0xfff
  2306. * @retval None
  2307. */
  2308. #define __LL_HRPWM_DEADTIME_RISE_VALUE(__TIMERS__, __VALUES__) \
  2309. MODIFY_REG(HRPWM->PWM[__TIMERS__].DTR, HRPWM_DTR_DTR, (__VALUES__))
  2310. #define __LL_HRPWM_DEADTIME_FALL_VALUE(__TIMERS__, __VALUES__) \
  2311. MODIFY_REG(HRPWM->PWM[__TIMERS__].DTR, HRPWM_DTR_DTF, ((__VALUES__) << 16U))
  2312. /** @brief Modify the length of the dead zone
  2313. * @param __TIMERS__ timers to enable/disable
  2314. * This parameter can be any combinations of the following values:
  2315. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2316. * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier
  2317. * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier
  2318. * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier
  2319. * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier
  2320. * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier
  2321. * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier
  2322. * @param __SIGN__ timer dead timer sign
  2323. * HRPWM_Deadtime_Rising_Sign: HRPWM_DEADTIME_RSIGN_NEGATIVE \ HRPWM_DEADTIME_RSIGN_POSITIVE
  2324. * HRPWM_Deadtime_Falling_Sign: HRPWM_DEADTIME_FSIGN_NEGATIVE \ HRPWM_DEADTIME_FSIGN_POSITIVE
  2325. * @retval None
  2326. */
  2327. #define __LL_HRPWM_DEADTIME_RISE_SIGN(__TIMERS__, __SIGN__) MODIFY_REG(HRPWM->PWM[__TIMERS__].DTR, HRPWM_DTR_SDTR, (__SIGN__))
  2328. #define __LL_HRPWM_DEADTIME_FALL_SIGN(__TIMERS__, __SIGN__) MODIFY_REG(HRPWM->PWM[__TIMERS__].DTR, HRPWM_DTR_SDTF, (__SIGN__))
  2329. /** @brief Start output wave
  2330. * @param __OUTPUT__ timers start output wave @ HRPWM_Timer_Output_Start
  2331. * This parameter can be any combinations of the following values:
  2332. * @arg HRPWM_OUTPUT_OEN0A
  2333. * @arg HRPWM_OUTPUT_OEN0B
  2334. * @arg HRPWM_OUTPUT_OEN1A
  2335. * @arg HRPWM_OUTPUT_OEN1B
  2336. * @arg HRPWM_OUTPUT_OEN2A
  2337. * @arg HRPWM_OUTPUT_OEN2B
  2338. * @arg HRPWM_OUTPUT_OEN3A
  2339. * @arg HRPWM_OUTPUT_OEN3B
  2340. * @arg HRPWM_OUTPUT_OEN4A
  2341. * @arg HRPWM_OUTPUT_OEN4B
  2342. * @arg HRPWM_OUTPUT_OEN5A
  2343. * @arg HRPWM_OUTPUT_OEN5B
  2344. * @retval None
  2345. */
  2346. #define __LL_HRPWM_OUTPUT_START(__OUTPUT__) SET_BIT(HRPWM->Common.OENR, (__OUTPUT__))
  2347. /** @brief Stop output wave
  2348. * @param __OUTPUT__ timers start output wave @ HRPWM_Timer_Output_Stop
  2349. * This parameter can be any combinations of the following values:
  2350. * @arg HRPWM_OUTPUT_ODIS0A
  2351. * @arg HRPWM_OUTPUT_ODIS0B
  2352. * @arg HRPWM_OUTPUT_ODIS1A
  2353. * @arg HRPWM_OUTPUT_ODIS1B
  2354. * @arg HRPWM_OUTPUT_ODIS2A
  2355. * @arg HRPWM_OUTPUT_ODIS2B
  2356. * @arg HRPWM_OUTPUT_ODIS3A
  2357. * @arg HRPWM_OUTPUT_ODIS3B
  2358. * @arg HRPWM_OUTPUT_ODIS4A
  2359. * @arg HRPWM_OUTPUT_ODIS4B
  2360. * @arg HRPWM_OUTPUT_ODIS5A
  2361. * @arg HRPWM_OUTPUT_ODIS5B
  2362. * @retval None
  2363. */
  2364. #define __LL_HRPWM_OUTPUT_STOP(__OUTPUT__) SET_BIT(HRPWM->Common.ODISR, (__OUTPUT__))
  2365. /** @brief Multiple mode combination configuration
  2366. * @param __TIMERS__ timers to enable/disable
  2367. * This parameter can be any combinations of the following values:
  2368. * @arg HRPWM_INDEX_MASTER: Master timer identifier
  2369. * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier
  2370. * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier
  2371. * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier
  2372. * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier
  2373. * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier
  2374. * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier
  2375. * @param __MODE__ set output mode(half \ interleaved \ pushpull)
  2376. * This parameter can be any combinations of the following values:
  2377. * @arg HRPWM_HALFMODE_DISABLE
  2378. * @arg HRPWM_HALFMODE_ENABLE
  2379. * @arg HRPWM_INTERLEAVED_MODE_DISABLE
  2380. * @arg HRPWM_INTERLEAVED_MODE_TRIPLE
  2381. * @arg HRPWM_INTERLEAVED_MODE_QUAD
  2382. * @arg HRPWM_PUSHPULLMODE_DISABLE
  2383. * @arg HRPWM_PUSHPULLMODE_ENABLE
  2384. * @retval None
  2385. */
  2386. #define __LL_HRPWM_OUTPUTMODE_SET(__TIMERS__, __MODE__) \
  2387. (((__TIMERS__) == HRPWM_INDEX_MASTER) ? \
  2388. (MODIFY_REG(HRPWM->Master.MCR , HRPWM_MCR_HALF | HRPWM_MCR_INTLVD, __MODE__)) : \
  2389. (MODIFY_REG(HRPWM->PWM[__TIMERS__].CR0 , HRPWM_CR0_HALF | HRPWM_CR0_INTLVD | HRPWM_CR0_PSHPLL, __MODE__)))
  2390. /** @brief Select which faults are effectively configured in each slave timer
  2391. * @param __TIMERS__ timers to enable/disable
  2392. * This parameter can be any combinations of the following values:
  2393. * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier
  2394. * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier
  2395. * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier
  2396. * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier
  2397. * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier
  2398. * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier
  2399. * @param __FAULT__ timers start output wave @ HRPWM_Timer_Fault_Enabling
  2400. * This parameter can be any combinations of the following values:
  2401. * @arg HRPWM_FAULTEN_NONE
  2402. * @arg HRPWM_FAULTEN_FAULT0
  2403. * @arg HRPWM_FAULTEN_FAULT1
  2404. * @arg HRPWM_FAULTEN_FAULT2
  2405. * @arg HRPWM_FAULTEN_FAULT3
  2406. * @arg HRPWM_FAULTEN_FAULT4
  2407. * @arg HRPWM_FAULTEN_FAULT5
  2408. * @retval None
  2409. */
  2410. #define __LL_HRPWM_SLAVE_FAULT_VALID_SEL(__TIMERS__, __FAULT__) MODIFY_REG(HRPWM->PWM[__TIMERS__].FLTR, 0x3F, __FAULT__)
  2411. /** @brief The software forces the corresponding output high or low
  2412. * @param __TIMERS__ timers to
  2413. * After configuring this bit, you must reconfigure the output event in order to reoutput
  2414. * This parameter can be one of the following values:
  2415. * @arg HRPWM_INDEX_SLAVE_0: Timer 0 identifier
  2416. * @arg HRPWM_INDEX_SLAVE_1: Timer 1 identifier
  2417. * @arg HRPWM_INDEX_SLAVE_2: Timer 2 identifier
  2418. * @arg HRPWM_INDEX_SLAVE_3: Timer 3 identifier
  2419. * @arg HRPWM_INDEX_SLAVE_4: Timer 4 identifier
  2420. * @arg HRPWM_INDEX_SLAVE_5: Timer 5 identifier
  2421. * @retval None
  2422. */
  2423. #define __LL_HRPWM_OUTPUT_A_SET(__TIMERS__) \
  2424. do { \
  2425. CLEAR_REG(HRPWM->PWM[__TIMERS__].CLRAR); \
  2426. WRITE_REG(HRPWM->PWM[__TIMERS__].SETAR, HRPWM_SETAR_SST); \
  2427. } while(0)
  2428. #define __LL_HRPWM_OUTPUT_A_CLEAR(__TIMERS__) \
  2429. do { \
  2430. CLEAR_REG(HRPWM->PWM[__TIMERS__].SETAR); \
  2431. WRITE_REG(HRPWM->PWM[__TIMERS__].CLRAR, HRPWM_CLRAR_SST); \
  2432. } while(0)
  2433. #define __LL_HRPWM_OUTPUT_B_SET(__TIMERS__) \
  2434. do { \
  2435. CLEAR_REG(HRPWM->PWM[__TIMERS__].CLRBR); \
  2436. WRITE_REG(HRPWM->PWM[__TIMERS__].SETBR, HRPWM_SETBR_SST); \
  2437. } while(0)
  2438. #define __LL_HRPWM_OUTPUT_B_CLEAR(__TIMERS__) \
  2439. do { \
  2440. CLEAR_REG(HRPWM->PWM[__TIMERS__].SETBR); \
  2441. WRITE_REG(HRPWM->PWM[__TIMERS__].CLRBR, HRPWM_CLRBR_SST); \
  2442. } while(0)
  2443. /**
  2444. * @}
  2445. */
  2446. /* Exported functions --------------------------------------------------------*/
  2447. /** @addtogroup HRPWM_LL_Exported_Functions
  2448. * @{
  2449. */
  2450. /** @addtogroup HRPWM_LL_Exported_Functions_Group1
  2451. * @{
  2452. */
  2453. LL_StatusETypeDef LL_HRPWM_Init(HRPWM_TypeDef *Instance, HRPWM_MasterSyncTypeDef *pMasterSync);
  2454. LL_StatusETypeDef LL_HRPWM_DeInit(HRPWM_TypeDef *Instance);
  2455. void LL_HRPWM_MspInit(HRPWM_TypeDef *Instance);
  2456. void LL_HRPWM_MspDeInit(HRPWM_TypeDef *Instance);
  2457. /**
  2458. * @}
  2459. */
  2460. /** @addtogroup HRPWM_LL_Exported_Functions_Group2
  2461. * @{
  2462. */
  2463. LL_StatusETypeDef LL_HRPWM_DLLStartConfig(HRPWM_TypeDef *Instance, HRPWM_DLLCfgTypedef *DLLConfig);
  2464. LL_StatusETypeDef LL_HRPWM_DLLStart(HRPWM_TypeDef *Instance);
  2465. LL_StatusETypeDef LL_HRPWM_TimerBaseConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_TimerBaseCfgTypeDef *pTimeBaseCfg);
  2466. LL_StatusETypeDef LL_HRPWM_TimerCompareConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx,
  2467. HRPWM_TimerCompareCfgTypeDef *pTimerCompCfg);
  2468. /**
  2469. * @}
  2470. */
  2471. /** @addtogroup HRPWM_LL_Exported_Functions_Group3
  2472. * @{
  2473. */
  2474. LL_StatusETypeDef LL_HRPWM_StopCounter(uint32_t TimerIdx);
  2475. LL_StatusETypeDef LL_HRPWM_StartCounter(uint32_t TimerIdx);
  2476. /**
  2477. * @}
  2478. */
  2479. /** @addtogroup HRPWM_LL_Exported_Functions_Group4
  2480. * @{
  2481. */
  2482. LL_StatusETypeDef LL_HRPWM_TimerUintRollOverContrl(HRPWM_TypeDef *Instance, uint32_t TimerIdx,
  2483. HRPWM_TimerRollOverCfgTypeDef *pTimerRollOverCfg);
  2484. LL_StatusETypeDef LL_HRPWM_TimerDualChannelDacConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx,
  2485. HRPWM_TimerDaulDacCfgTypeDef *pTimerDacCfg);
  2486. LL_StatusETypeDef LL_HRPWM_TimerRollOverMode(HRPWM_TypeDef *Instance, uint32_t TimerIdx, uint32_t pRollOverMode);
  2487. /**
  2488. * @}
  2489. */
  2490. /** @addtogroup HRPWM_LL_Exported_Functions_Group5
  2491. * @{
  2492. */
  2493. LL_StatusETypeDef LL_HRPWM_FaultConfig(HRPWM_TypeDef *Instance, uint32_t Fault, HRPWM_FaultCfgTypeDef *pFaultCfg,
  2494. HRPWM_FaultBlankingCfgTypeDef *pFaultBlkCfg);
  2495. LL_StatusETypeDef LL_HRPWM_FaultBlankingConfig(HRPWM_TypeDef *Instance, uint32_t Fault,
  2496. HRPWM_FaultBlankingCfgTypeDef *pFaultBlkCfg);
  2497. LL_StatusETypeDef LL_HRPWM_FaultCounterConfig(HRPWM_TypeDef *Instance, uint32_t Fault,
  2498. HRPWM_FaultBlankingCfgTypeDef *pFaultBlkCfg);
  2499. LL_StatusETypeDef LL_HRPWM_FaultCounterReset(uint32_t Fault);
  2500. LL_StatusETypeDef LL_HRPWM_ADDATriggerConfig(HRPWM_TypeDef *Instance, HRPWM_ADCTriggerCfgTypeDef *pADCTriggerCfg);
  2501. LL_StatusETypeDef LL_HRPWM_OutputConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx, HRPWM_OutputCfgTypeDef *pOutputCfg);
  2502. LL_StatusETypeDef LL_HRPWM_DeadTimeConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx,
  2503. HRPWM_DeadTimeCfgTypeDef *pDeaTimedCfg);
  2504. LL_StatusETypeDef LL_HRPWM_ChopperConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx,
  2505. HRPWM_ChopperModeCfgTypeDef *pChopperCfg);
  2506. LL_StatusETypeDef LL_HRPWM_EventConfig(HRPWM_TypeDef *Instance, uint32_t Event, HRPWM_EventCfgTypeDef *pEventCfg);
  2507. LL_StatusETypeDef LL_HRPWM_TimerEventAConfig(HRPWM_TypeDef *Instance, uint32_t TimerIdx,
  2508. HRPWM_ExternalEventACfgTypeDef *pEventCfg, HRPWM_TimerEventFilteringCfgTypeDef *pEventFilter);
  2509. LL_StatusETypeDef LL_HRPWM_TimerEventAFilter(HRPWM_TypeDef *Instance, uint32_t TimerIdx, uint32_t Event,
  2510. HRPWM_TimerEventFilteringCfgTypeDef *pEventFilter);
  2511. /**
  2512. * @}
  2513. */
  2514. /** @addtogroup HRPWM_LL_Exported_Functions_Group6
  2515. * @{
  2516. */
  2517. LL_StatusETypeDef LL_HRPWM_ForceRegistersUpdate(uint32_t TimerIdx);
  2518. LL_StatusETypeDef LL_HRPWM_DisRegisterUpdate(uint32_t TimerIdx);
  2519. LL_StatusETypeDef LL_HRPWM_EnRegUpdate(uint32_t TimerIdx);
  2520. LL_StatusETypeDef LL_HRPWM_StartOutput(uint32_t TimerIdx);
  2521. LL_StatusETypeDef LL_HRPWM_StopOutput(uint32_t TimerIdx);
  2522. LL_StatusETypeDef LL_HRPWM_SwapOutput(uint32_t TimerIdx, uint32_t swap);
  2523. LL_StatusETypeDef LL_HRPWM_ResetCounter(uint32_t TimerIdx);
  2524. /**
  2525. * @}
  2526. */
  2527. /** @addtogroup HRPWM_LL_Exported_Functions_Interrupt
  2528. * @{
  2529. */
  2530. void LL_HRPWM_IRQHandler(uint32_t TimerIdx);
  2531. void LL_HRPWM_FLT_IRQHandler(void);
  2532. void LL_HRPWM_SLAVE_IRQHandler(uint32_t TimerIdx);
  2533. void LL_HRPWM_MSTR_IRQHandler(void);
  2534. void LL_HRPWM_Fault0Callback(void);
  2535. void LL_HRPWM_Fault1Callback(void);
  2536. void LL_HRPWM_Fault2Callback(void);
  2537. void LL_HRPWM_Fault3Callback(void);
  2538. void LL_HRPWM_Fault4Callback(void);
  2539. void LL_HRPWM_Fault5Callback(void);
  2540. void LL_HRPWM_SystemFaultCallback(void);
  2541. void LL_HRPWM_SynchronizationEventCallback(void);
  2542. void LL_HRPWM_RegistersUpdateCallback(uint32_t TimerIdx);
  2543. void LL_HRPWM_RepetitionEventCallback(uint32_t TimerIdx);
  2544. void LL_HRPWM_CompareAEventCallback(uint32_t TimerIdx);
  2545. void LL_HRPWM_CompareBEventCallback(uint32_t TimerIdx);
  2546. void LL_HRPWM_CompareCEventCallback(uint32_t TimerIdx);
  2547. void LL_HRPWM_CompareDEventCallback(uint32_t TimerIdx);
  2548. void LL_HRPWM_PeriodEventCallback(uint32_t TimerIdx);
  2549. void LL_HRPWM_CounterResetCallback(uint32_t TimerIdx);
  2550. void LL_HRPWM_OutputASetCallback(uint32_t TimerIdx);
  2551. void LL_HRPWM_OutputBSetCallback(uint32_t TimerIdx);
  2552. void LL_HRPWM_OutputAResetCallback(uint32_t TimerIdx);
  2553. void LL_HRPWM_OutputBResetCallback(uint32_t TimerIdx);
  2554. /**
  2555. * @}
  2556. */
  2557. /**
  2558. * @}
  2559. */
  2560. /* Private types -------------------------------------------------------------*/
  2561. /* Private variables ---------------------------------------------------------*/
  2562. /* Private constants ---------------------------------------------------------*/
  2563. /* Private macros ------------------------------------------------------------*/
  2564. /** @defgroup HRPWM_LL_Private_Macros HRPWM LL Private Macros
  2565. * @brief HRPWM LL Private Macros
  2566. * @{
  2567. */
  2568. /**
  2569. * @brief Judge is HRPWM index all or not
  2570. * @param __INDEX__ index to judge
  2571. * @retval 0 isn't HRPWM index all
  2572. * @retval 1 is HRPWM index all
  2573. */
  2574. #define IS_HRPWM_INDEX_ALL(__INDEX__) \
  2575. (((__INDEX__) == HRPWM_INDEX_SLAVE_0) || \
  2576. ((__INDEX__) == HRPWM_INDEX_SLAVE_1) || \
  2577. ((__INDEX__) == HRPWM_INDEX_SLAVE_2) || \
  2578. ((__INDEX__) == HRPWM_INDEX_SLAVE_3) || \
  2579. ((__INDEX__) == HRPWM_INDEX_SLAVE_4) || \
  2580. ((__INDEX__) == HRPWM_INDEX_SLAVE_5) || \
  2581. ((__INDEX__) == HRPWM_INDEX_MASTER) || \
  2582. ((__INDEX__) == HRPWM_INDEX_COMMON))
  2583. /**
  2584. * @brief Judge is HRPWM index or not
  2585. * @param __INDEX__ index to judge
  2586. * @retval 0 isn't HRPWM index
  2587. * @retval 1 is HRPWM index
  2588. */
  2589. #define IS_HRPWM_INDEX(__INDEX__) \
  2590. (((__INDEX__) == HRPWM_INDEX_SLAVE_0) || \
  2591. ((__INDEX__) == HRPWM_INDEX_SLAVE_1) || \
  2592. ((__INDEX__) == HRPWM_INDEX_SLAVE_2) || \
  2593. ((__INDEX__) == HRPWM_INDEX_SLAVE_3) || \
  2594. ((__INDEX__) == HRPWM_INDEX_SLAVE_4) || \
  2595. ((__INDEX__) == HRPWM_INDEX_SLAVE_5) || \
  2596. ((__INDEX__) == HRPWM_INDEX_MASTER))
  2597. /**
  2598. * @brief Judge is HRPWM fault interrupt or not
  2599. * @param __INTERRUPT__ interrupt to judge
  2600. * @retval 0 isn't HRPWM fault interrupt
  2601. * @retval 1 is HRPWM fault interrupt
  2602. */
  2603. #define IS_HRPWM_FAULT_IT(__INTERRUPT__) \
  2604. (((__INTERRUPT__) == HRPWM_IT_NONE) || \
  2605. (((__INTERRUPT__) & HRPWM_IT_SRC) != HRPWM_IT_NONE))
  2606. /**
  2607. * @brief Judge is HRPWM master interrupt or not
  2608. * @param __INTERRUPT__ interrupt to judge
  2609. * @retval 0 isn't HRPWM master interrupt
  2610. * @retval 1 is HRPWM master interrupt
  2611. */
  2612. #define IS_HRPWM_MASTER_IT(__INTERRUPT__) \
  2613. (((__INTERRUPT__) == HRPWM_MASTER_IT_NONE) || \
  2614. (((__INTERRUPT__) & HRPWM_MASTER_IT_SRC) != HRPWM_MASTER_IT_NONE))
  2615. /**
  2616. * @brief Judge is HRPWM timer interrupt or not
  2617. * @param __INTERRUPT__ interrupt to judge
  2618. * @retval 0 isn't HRPWM timer interrupt
  2619. * @retval 1 is HRPWM timer interrupt
  2620. */
  2621. #define IS_HRPWM_TIMER_IT(__INTERRUPT__) \
  2622. (((__INTERRUPT__) == HRPWM_IT_TIMER_NONE) || \
  2623. (((__INTERRUPT__) & HRPWM_IT_TIMER_SRC) != HRPWM_IT_TIMER_NONE))
  2624. /**
  2625. * @brief Judge is HRPWM sync output source or not
  2626. * @param __OUTPUT__ output source to judge
  2627. * @retval 0 isn't HRPWM sync output source
  2628. * @retval 1 is HRPWM sync output source
  2629. */
  2630. #define IS_HRPWM_SYNCOUTPUTSOURCE(__OUTPUT__) \
  2631. (((__OUTPUT__) == HRPWM_SYNCOUTPUTSOURCE_MASTER_START) || \
  2632. ((__OUTPUT__) == HRPWM_SYNCOUTPUTSOURCE_MASTER_CMPA) || \
  2633. ((__OUTPUT__) == HRPWM_SYNCOUTPUTSOURCE_SLAVE0_STARTRST) || \
  2634. ((__OUTPUT__) == HRPWM_SYNCOUTPUTSOURCE_SLAVE0_CMPA))
  2635. /**
  2636. * @brief Judge is HRPWM sync output polarity or not
  2637. * @param __POLARITY__ output polarity to judge
  2638. * @retval 0 isn't HRPWM sync polarity source
  2639. * @retval 1 is HRPWM sync polarity source
  2640. */
  2641. #define IS_HRPWM_SYNCOUTPUTPOLARITY(__POLARITY__) \
  2642. (((__POLARITY__) == HRPWM_SYNCOUTPUTPOLARITY_POSITIVE) || \
  2643. ((__POLARITY__) == HRPWM_SYNCOUTPUTPOLARITY_NEGATIVE))
  2644. /**
  2645. * @brief Judge is HRPWM sync input source or not
  2646. * @param __SOURCE__ input source to judge
  2647. * @retval 0 isn't HRPWM sync input source
  2648. * @retval 1 is HRPWM sync input source
  2649. */
  2650. #define IS_HRPWM_SYNINPUTSOURCE(__SOURCE__) \
  2651. (((__SOURCE__) == HRPWM_SYNCINPUTSOURCE_NONE) || \
  2652. ((__SOURCE__) == HRPWM_SYNCINPUTSOURCE_TIM0_TRGO_EVENT) || \
  2653. ((__SOURCE__) == HRPWM_SYNCINPUTSOURCE_EVENT))
  2654. /**
  2655. * @brief Judge is HRPWM DLLGCP or not
  2656. * @param __CURRENT__ current to judge
  2657. * @retval 0 isn't HRPWM DLLGCP
  2658. * @retval 1 is HRPWM DLLGCP
  2659. */
  2660. #define IS_HRPWM_DLLGCP(__CURRENT__) \
  2661. (((__CURRENT__) == HRPWM_DLLCR_DLLGCP_4) || \
  2662. ((__CURRENT__) == HRPWM_DLLCR_DLLGCP_6) || \
  2663. ((__CURRENT__) == HRPWM_DLLCR_DLLGCP_8))
  2664. /**
  2665. * @brief Judge is HRPWM prescale ratio or not
  2666. * @param __CLKPSC__ ratio to judge
  2667. * @retval 0 isn't HRPWM prescale ratio
  2668. * @retval 1 is HRPWM prescale ratio
  2669. */
  2670. #define IS_HRPWM_PRESCALERRATIO(__CLKPSC__) \
  2671. (((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL32) || \
  2672. ((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL16) || \
  2673. ((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL8) || \
  2674. ((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL4) || \
  2675. ((__CLKPSC__) == HRPWM_PRESCALERRATIO_MUL2) || \
  2676. ((__CLKPSC__) == HRPWM_PRESCALERRATIO_DIV1) || \
  2677. ((__CLKPSC__) == HRPWM_PRESCALERRATIO_DIV2) || \
  2678. ((__CLKPSC__) == HRPWM_PRESCALERRATIO_DIV4))
  2679. /**
  2680. * @brief Judge is HRPWM preload or not
  2681. * @param __PREEN__ preload to judge
  2682. * @retval 0 isn't HRPWM preload
  2683. * @retval 1 is HRPWM preload
  2684. */
  2685. #define IS_HRPWM_PRELOAD(__PREEN__) \
  2686. (((__PREEN__) == HRPWM_PRELOAD_DISABLE) || \
  2687. ((__PREEN__) == HRPWM_PRELOAD_ENABLE))
  2688. /**
  2689. * @brief Judge is HRPWM half mode or not
  2690. * @param __MODE__ mode to judge
  2691. * @retval 0 isn't HRPWM half mode
  2692. * @retval 1 is HRPWM half mode
  2693. */
  2694. #define IS_HRPWM_HALFMODE(__MODE__) \
  2695. (((__MODE__) == HRPWM_HALFMODE_DISABLE) || \
  2696. ((__MODE__) == HRPWM_HALFMODE_ENABLE))
  2697. /**
  2698. * @brief Judge is HRPWM push pull mode or not
  2699. * @param __SYNC__ mode to judge
  2700. * @retval 0 isn't HRPWM push pull mode
  2701. * @retval 1 is HRPWM push pull mode
  2702. */
  2703. #define IS_HRPWM_PUSHPULLMODE(__SYNC__) \
  2704. (((__SYNC__) == HRPWM_PUSHPULLMODE_DISABLE) || \
  2705. ((__SYNC__) == HRPWM_PUSHPULLMODE_ENABLE))
  2706. /**
  2707. * @brief Judge is HRPWM sync start or not
  2708. * @param __SYNC__ sync start to judge
  2709. * @retval 0 isn't HRPWM sync start
  2710. * @retval 1 is HRPWM sync start
  2711. */
  2712. #define IS_HRPWM_SYNCSTART(__SYNC__) \
  2713. (((__SYNC__) == HRPWM_SYNCSTART_DISABLE) || \
  2714. ((__SYNC__) == HRPWM_SYNCSTART_ENABLE))
  2715. /**
  2716. * @brief Judge is HRPWM sync reset or not
  2717. * @param __SYNC__ sync reset to judge
  2718. * @retval 0 isn't HRPWM sync reset
  2719. * @retval 1 is HRPWM sync reset
  2720. */
  2721. #define IS_HRPWM_SYNCRESET(__SYNC__) \
  2722. (((__SYNC__) == HRPWM_SYNCRESET_DISABLE) || \
  2723. ((__SYNC__) == HRPWM_SYNCRESET_ENABLE))
  2724. /**
  2725. * @brief Judge is HRPWM Interleaved Mode or not
  2726. * @param __MODE__ mode to judge
  2727. * @retval 0 isn't HRPWM Interleaved Mode
  2728. * @retval 1 is HRPWM Interleaved Mode
  2729. */
  2730. #define IS_HRPWM_INTERLEAVEDMODE(__MODE__) \
  2731. (((__MODE__) == HRPWM_INTERLEAVED_MODE_DISABLE) || \
  2732. ((__MODE__) == HRPWM_INTERLEAVED_MODE_TRIPLE) || \
  2733. ((__MODE__) == HRPWM_INTERLEAVED_MODE_QUAD))
  2734. /**
  2735. * @brief Judge is HRPWM fault enable or not
  2736. * @param __FAULT__ fault to judge
  2737. * @retval 0 isn't HRPWM fault enable
  2738. * @retval 1 is HRPWM fault enable
  2739. */
  2740. #define IS_HRPWM_FAULTENABLE(__FAULT__) \
  2741. (((__FAULT__) == HRPWM_FAULTEN_NONE) || \
  2742. (((__FAULT__) & 0x3f) != HRPWM_FAULTEN_NONE))
  2743. /**
  2744. * @brief Judge is HRPWM resync update or not
  2745. * @param __RESYNC__ resync to judge
  2746. * @retval 0 isn't HRPWM resync update
  2747. * @retval 1 is HRPWM resync update
  2748. */
  2749. #define IS_HRPWM_RESYNCUPDATE(__RESYNC__) \
  2750. (((__RESYNC__) == HRPWM_RSYNCUPDATE_DISABLE) || \
  2751. ((__RESYNC__) == HRPWM_RSYNCUPDATE_ENABLE))
  2752. /**
  2753. * @brief Judge is HRPWM update trigger or not
  2754. * @param __UPDATE__ update trigger to judge
  2755. * @retval 0 isn't HRPWM update trigger
  2756. * @retval 1 is HRPWM update trigger
  2757. */
  2758. #define IS_HRPWM_UPDATETRIGGER(__UPDATE__) \
  2759. (((__UPDATE__) == HRPWM_UPDATETRIGGER_NONE) || \
  2760. ((__UPDATE__) == HRPWM_UPDATETRIGGER_MASTER) || \
  2761. ((__UPDATE__) == HRPWM_UPDATETRIGGER_REP) || \
  2762. ((__UPDATE__) == HRPWM_UPDATETRIGGER_RST) || \
  2763. ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_0) || \
  2764. ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_1) || \
  2765. ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_2) || \
  2766. ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_3) || \
  2767. ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_4) || \
  2768. ((__UPDATE__) == HRPWM_UPDATETRIGGER_TIMER_5))
  2769. /**
  2770. * @brief Judge is HRPWM mode or not
  2771. * @param __MODE__ mode to judge
  2772. * @retval 0 isn't HRPWM mode
  2773. * @retval 1 is HRPWM mode
  2774. */
  2775. #define IS_HRPWM_MODE(__MODE__) \
  2776. (((__MODE__) == HRPWM_MODE_CONTINUOUS) || \
  2777. ((__MODE__) == HRPWM_MODE_SINGLESHOT) || \
  2778. ((__MODE__) == HRPWM_MODE_SINGLESHOT_RETRIGGERABLE))
  2779. /**
  2780. * @brief Judge is HRPWM dual DAC reset or not
  2781. * @param __MODE__ mode to judge
  2782. * @retval 0 isn't HRPWM dual DAC reset
  2783. * @retval 1 is HRPWM dual DAC reset
  2784. */
  2785. #define IS_HRPWM_DUALDAC_RESET(__MODE__) \
  2786. (((__MODE__) == HRPWM_DAC_DCDR_RESET) || \
  2787. ((__MODE__) == HRPWM_DAC_DCDR_SETA))
  2788. /**
  2789. * @brief Judge is HRPWM dual DAC step or not
  2790. * @param __MODE__ mode to judge
  2791. * @retval 0 isn't HRPWM dual DAC step
  2792. * @retval 1 is HRPWM dual DAC step
  2793. */
  2794. #define IS_HRPWM_DUALDAC_STEP(__MODE__) \
  2795. (((__MODE__) == HRPWM_DAC_DCDS_CMPD) || \
  2796. ((__MODE__) == HRPWM_DAC_DCDS_CLEARA))
  2797. /**
  2798. * @brief Judge is HRPWM dual DAC enable or not
  2799. * @param __MODE__ mode to judge
  2800. * @retval 0 isn't HRPWM dual DAC enable
  2801. * @retval 1 is HRPWM dual DAC enable
  2802. */
  2803. #define IS_HRPWM_DUALDAC_ENABLE(__MODE__) \
  2804. (((__MODE__) == HRPWM_DAC_DCDE_DISABLE) || \
  2805. ((__MODE__) == HRPWM_DAC_DCDE_ENABLE))
  2806. /**
  2807. * @brief Judge is HRPWM fault or not
  2808. * @param __FAULT__ fault to judge
  2809. * @retval 0 isn't HRPWM fault
  2810. * @retval 1 is HRPWM fault
  2811. */
  2812. #define IS_HRPWM_FAULT(__FAULT__) \
  2813. (((__FAULT__) == HRPWM_FAULT_0) || \
  2814. ((__FAULT__) == HRPWM_FAULT_1) || \
  2815. ((__FAULT__) == HRPWM_FAULT_2) || \
  2816. ((__FAULT__) == HRPWM_FAULT_3) || \
  2817. ((__FAULT__) == HRPWM_FAULT_4) || \
  2818. ((__FAULT__) == HRPWM_FAULT_5))
  2819. /**
  2820. * @brief Judge is HRPWM fault source or not
  2821. * @param __SOURCE__ source to judge
  2822. * @retval 0 isn't HRPWM fault source
  2823. * @retval 1 is HRPWM fault source
  2824. */
  2825. #define IS_HRPWM_FAULTSOURCE(__SOURCE__) \
  2826. (((__SOURCE__) == HRPWM_FLTSRC_GPIO) || \
  2827. ((__SOURCE__) == HRPWM_FLTSRC_COMP_OUT) || \
  2828. ((__SOURCE__) == HRPWM_FLTSRC_EVENT))
  2829. /**
  2830. * @brief Judge is HRPWM fault polarity or not
  2831. * @param __POLARITY__ polarity to judge
  2832. * @retval 0 isn't HRPWM fault polarity
  2833. * @retval 1 is HRPWM fault polarity
  2834. */
  2835. #define IS_HRPWM_FAULTPOLARITY(__POLARITY__) \
  2836. (((__POLARITY__) == HRPWM_FAULTPOL_LOW) || \
  2837. ((__POLARITY__) == HRPWM_FAULTPOL_HIGH))
  2838. /**
  2839. * @brief Judge is HRPWM fault filter or not
  2840. * @param __FILTER__ filter to judge
  2841. * @retval 0 isn't HRPWM fault filter
  2842. * @retval 1 is HRPWM fault filter
  2843. */
  2844. #define IS_HRPWM_FAULTFILTER(__FILTER__) \
  2845. (((__FILTER__) == HRPWM_FAULTFILTER_NONE) || \
  2846. (((__FILTER__) & HRPWM_FLTINR1_FLT0F) != HRPWM_FAULTFILTER_NONE))
  2847. /**
  2848. * @brief Judge is HRPWM fault sample clock div or not
  2849. * @param __CLKDIV__ clock div to judge
  2850. * @retval 0 isn't HRPWM fault sample clock div
  2851. * @retval 1 is HRPWM fault sample clock div
  2852. */
  2853. #define IS_HRPWM_FAULTSAMPCLK(__CLKDIV__) \
  2854. (((__CLKDIV__) == HRPWM_FLTSD_DIV1) || \
  2855. ((__CLKDIV__) == HRPWM_FLTSD_DIV2) || \
  2856. ((__CLKDIV__) == HRPWM_FLTSD_DIV4) || \
  2857. ((__CLKDIV__) == HRPWM_FLTSD_DIV8))
  2858. /**
  2859. * @brief Judge is HRPWM fault blanking enable or not
  2860. * @param __BLKEN__ blanking enable to judge
  2861. * @retval 0 isn't HRPWM fault blanking enable
  2862. * @retval 1 is HRPWM fault blanking enable
  2863. */
  2864. #define IS_HRPWM_FAULTBLKEN(__BLKEN__) \
  2865. (((__BLKEN__) == HRPWM_FAULTBLKEN_DISABLE) || \
  2866. ((__BLKEN__) == HRPWM_FAULTBLKEN_ENABLE))
  2867. /**
  2868. * @brief Judge is HRPWM fault blanking source or not
  2869. * @param __BLKSRC__ blanking source to judge
  2870. * @retval 0 isn't HRPWM fault blanking source
  2871. * @retval 1 is HRPWM fault blanking source
  2872. */
  2873. #define IS_HRPWM_FAULTBLKSRC(__BLKSRC__) \
  2874. (((__BLKSRC__) == HRPWM_FAULTBLKS_RSTALIGNED) || \
  2875. ((__BLKSRC__) == HRPWM_FAULTBLKS_MOVING))
  2876. /**
  2877. * @brief Judge is HRPWM fault reset mode or not
  2878. * @param __MODE__ mode to judge
  2879. * @retval 0 isn't HRPWM fault reset mode
  2880. * @retval 1 is HRPWM fault reset mode
  2881. */
  2882. #define IS_HRPWM_FAULTRSTMODE(__MODE__) \
  2883. (((__MODE__) == HRPWM_FAULTRSTM_UNCONDITIONAL) || \
  2884. ((__MODE__) == HRPWM_FAULTRSTM_CONDITIONAL))
  2885. /**
  2886. * @brief Judge is HRPWM ADC trigger or not
  2887. * @param __ADCTRIGGER__ trigger to judge
  2888. * @retval 0 isn't HRPWM ADC trigger
  2889. * @retval 1 is HRPWM ADC trigger
  2890. */
  2891. #define IS_HRPWM_ADCTRIGGER(__ADCTRIGGER__) \
  2892. (((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_0) || \
  2893. ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_1) || \
  2894. ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_2) || \
  2895. ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_3) || \
  2896. ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_4) || \
  2897. ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_5) || \
  2898. ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_6) || \
  2899. ((__ADCTRIGGER__) == HRPWM_ADCTRIGGER_7))
  2900. /**
  2901. * @brief Judge is HRPWM ADC trigger post scaler or not
  2902. * @param __PSC__ post scaler to judge
  2903. * @retval 0 isn't HRPWM ADC trigger post scaler
  2904. * @retval 1 is HRPWM ADC trigger post scaler
  2905. */
  2906. #define IS_HRPWM_ADCTRIGGER_POSTSCALER(__PSC__) \
  2907. (((__PSC__) == HRPWM_ADCTRIG_PSC_1) || \
  2908. (((__PSC__) & HRPWM_ADPSR_ADPSC0) != HRPWM_ADCTRIG_PSC_1))
  2909. /**
  2910. * @brief Judge is HRPWM ADC trigger length or not
  2911. * @param __LENGTH__ length to judge
  2912. * @retval 0 isn't HRPWM ADC trigger length
  2913. * @retval 1 is HRPWM ADC trigger length
  2914. */
  2915. #define IS_HRPWM_ADCTRIGGER_LENGTH(__LENGTH__) \
  2916. (((__LENGTH__) == HRPWM_ADCTRIG_LENGTH_1) || \
  2917. (((__LENGTH__) & HRPWM_CR2_TLEN0) != HRPWM_ADCTRIG_LENGTH_1))
  2918. /**
  2919. * @brief Judge is HRPWM ADC trigger update source or not
  2920. * @param __UPDSRC__ update source to judge
  2921. * @retval 0 isn't HRPWM ADC trigger update source
  2922. * @retval 1 is HRPWM ADC trigger update source
  2923. */
  2924. #define IS_HRPWM_ADCTRIGGER_UPDATESRC(__UPDSRC__) \
  2925. (((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_MASTER) || \
  2926. ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_0) || \
  2927. ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_1) || \
  2928. ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_2) || \
  2929. ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_3) || \
  2930. ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_4) || \
  2931. ((__UPDSRC__) == HRPWM_ADCTRIGUPDATE_TIMER_5))
  2932. /**
  2933. * @brief Judge is HRPWM output A active polarity or not
  2934. * @param __POLARITY__ polarity to judge
  2935. * @retval 0 isn't HRPWM output A active polarity
  2936. * @retval 1 is HRPWM output A active polarity
  2937. */
  2938. #define IS_HRPWM_OUTPUTA_POLARITY(__POLARITY__) \
  2939. (((__POLARITY__) == HRPWM_OUTPUT_POLA_POSITIVE) || \
  2940. ((__POLARITY__) == HRPWM_OUTPUT_POLA_NEGATIVE))
  2941. /**
  2942. * @brief Judge is HRPWM output A idel level or not
  2943. * @param __IDEL__ idel level to judge
  2944. * @retval 0 isn't HRPWM output A idel level
  2945. * @retval 1 is HRPWM output A idel level
  2946. */
  2947. #define IS_HRPWM_OUTPUTA_IDLELEVEL(__IDEL__) \
  2948. (((__IDEL__) == HRPWM_OUTPUTIDLEA_INACTIVE) || \
  2949. ((__IDEL__) == HRPWM_OUTPUTIDLEA_ACTIVE))
  2950. /**
  2951. * @brief Judge is HRPWM output A fault level or not
  2952. * @param __LEVEL__ fault level to judge
  2953. * @retval 0 isn't HRPWM output A fault level
  2954. * @retval 1 is HRPWM output A fault level
  2955. */
  2956. #define IS_HRPWM_OUTPUTA_FLTLEVEL(__LEVEL__) \
  2957. (((__LEVEL__) == HRPWM_OUTPUTFAULTA_NONE) || \
  2958. ((__LEVEL__) == HRPWM_OUTPUTFAULTA_ACTIVE) || \
  2959. ((__LEVEL__) == HRPWM_OUTPUTFAULTA_INACTIVE) || \
  2960. ((__LEVEL__) == HRPWM_OUTPUTFAULTA_HIGHZ))
  2961. /**
  2962. * @brief Judge is HRPWM output A Chopper Mode enable or not
  2963. * @param __CHOPPER__ Chopper Mode enable to judge
  2964. * @retval 0 isn't HRPWM output A Chopper Mode enable
  2965. * @retval 1 is HRPWM output A Chopper Mode enable
  2966. */
  2967. #define IS_HRPWM_OUTPUTA_CHOPPEREN(__CHOPPER__) \
  2968. (((__CHOPPER__) == HRPWM_OUTPUTCHOPPERA_ENABLE) || \
  2969. ((__CHOPPER__) == HRPWM_OUTPUTCHOPPERA_DISABLE))
  2970. /**
  2971. * @brief Judge is HRPWM output B active polarity or not
  2972. * @param __POLARITY__ polarity to judge
  2973. * @retval 0 isn't HRPWM output B active polarity
  2974. * @retval 1 is HRPWM output B active polarity
  2975. */
  2976. #define IS_HRPWM_OUTPUTB_POLARITY(__POLARITY__) \
  2977. (((__POLARITY__) == HRPWM_OUTPUT_POLB_POSITIVE) || \
  2978. ((__POLARITY__) == HRPWM_OUTPUT_POLB_NEGATIVE))
  2979. /**
  2980. * @brief Judge is HRPWM output B idel level or not
  2981. * @param __IDEL__ idel level to judge
  2982. * @retval 0 isn't HRPWM output B idel level
  2983. * @retval 1 is HRPWM output B idel level
  2984. */
  2985. #define IS_HRPWM_OUTPUTB_IDLELEVEL(__IDEL__) \
  2986. (((__IDEL__) == HRPWM_OUTPUTIDLEB_INACTIVE) || \
  2987. ((__IDEL__) == HRPWM_OUTPUTIDLEB_ACTIVE))
  2988. /**
  2989. * @brief Judge is HRPWM output B fault level or not
  2990. * @param __LEVEL__ fault level to judge
  2991. * @retval 0 isn't HRPWM output B fault level
  2992. * @retval 1 is HRPWM output B fault level
  2993. */
  2994. #define IS_HRPWM_OUTPUTB_FLTLEVEL(__LEVEL__) \
  2995. (((__LEVEL__) == HRPWM_OUTPUTFAULTB_NONE) || \
  2996. ((__LEVEL__) == HRPWM_OUTPUTFAULTB_ACTIVE) || \
  2997. ((__LEVEL__) == HRPWM_OUTPUTFAULTB_INACTIVE) || \
  2998. ((__LEVEL__) == HRPWM_OUTPUTFAULTB_HIGHZ))
  2999. /**
  3000. * @brief Judge is HRPWM output B Chopper Mode enable or not
  3001. * @param __CHOPPER__ Chopper Mode enable to judge
  3002. * @retval 0 isn't HRPWM output B Chopper Mode enable
  3003. * @retval 1 is HRPWM output B Chopper Mode enable
  3004. */
  3005. #define IS_HRPWM_OUTPUTB_CHOPPEREN(__CHOPPER__) \
  3006. (((__CHOPPER__) == HRPWM_OUTPUTCHOPPERB_ENABLE) || \
  3007. ((__CHOPPER__) == HRPWM_OUTPUTCHOPPERB_DISABLE))
  3008. /**
  3009. * @brief Judge is HRPWM output event or not
  3010. * @param __INTERRUPT__ interrupt to judge
  3011. * @retval 0 isn't HRPWM output event
  3012. * @retval 1 is HRPWM output event
  3013. */
  3014. #define IS_HRPWM_OUTPUT_SET_EVENT(__INTERRUPT__) \
  3015. (((__INTERRUPT__) == HRPWM_OUTPUT_SET_NONE) || \
  3016. (((__INTERRUPT__) & 0x7FFFFU) != HRPWM_OUTPUT_SET_NONE))
  3017. /**
  3018. * @brief Judge is HRPWM output event or not
  3019. * @param __INTERRUPT__ interrupt to judge
  3020. * @retval 0 isn't HRPWM output event
  3021. * @retval 1 is HRPWM output event
  3022. */
  3023. #define IS_HRPWM_OUTPUT_CLEAR_EVENT(__INTERRUPT__) \
  3024. (((__INTERRUPT__) == HRPWM_OUTPUT_CLEAR_NONE) || \
  3025. (((__INTERRUPT__) & 0x7FFFFU) != HRPWM_OUTPUT_CLEAR_NONE))
  3026. /**
  3027. * @brief Judge is HRPWM dead time rising sign or not
  3028. * @param __SIGN__ sign to judge
  3029. * @retval 0 isn't HRPWM dead time rising sign
  3030. * @retval 1 is HRPWM dead time rising sign
  3031. */
  3032. #define IS_HRPWM_DEADTIME_SDTR(__SIGN__) \
  3033. (((__SIGN__) == HRPWM_DEADTIME_RSIGN_NEGATIVE) || \
  3034. ((__SIGN__) == HRPWM_DEADTIME_RSIGN_POSITIVE))
  3035. /**
  3036. * @brief Judge is HRPWM dead time falling sign or not
  3037. * @param __SIGN__ sign to judge
  3038. * @retval 0 isn't HRPWM dead time falling sign
  3039. * @retval 1 is HRPWM dead time falling sign
  3040. */
  3041. #define IS_HRPWM_DEADTIME_SDTF(__SIGN__) \
  3042. (((__SIGN__) == HRPWM_DEADTIME_FSIGN_NEGATIVE) || \
  3043. ((__SIGN__) == HRPWM_DEADTIME_FSIGN_POSITIVE))
  3044. /**
  3045. * @brief Judge is HRPWM chopper duty cycle or not
  3046. * @param __CARDTY__ chopper duty cycle to judge
  3047. * @retval 0 isn't HRPWM chopper duty cycle
  3048. * @retval 1 is HRPWM chopper duty cycle
  3049. */
  3050. #define IS_HRPWM_CHOPPER_CARDTY(__CARDTY__) \
  3051. (((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_0) || \
  3052. ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_1) || \
  3053. ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_2) || \
  3054. ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_3) || \
  3055. ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_4) || \
  3056. ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_5) || \
  3057. ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_6) || \
  3058. ((__CARDTY__) == HRPWM_CHOPPER_DUTYCYCLE_7))
  3059. /**
  3060. * @brief Judge is HRPWM chopper start pulse width or not
  3061. * @param __STRPW__ start pulse width to judge
  3062. * @retval 0 isn't HRPWM chopper start pulse width
  3063. * @retval 1 is HRPWM chopper start pulse width
  3064. */
  3065. #define IS_HRPWM_CHOPPER_STRPW(__STRPW__) \
  3066. (((__STRPW__) == HRPWM_CHOPPER_PULSEWIDTH_16) || \
  3067. (((__STRPW__) & HRPWM_CHPR_STRPW) != HRPWM_CHOPPER_PULSEWIDTH_16))
  3068. /**
  3069. * @brief Judge is HRPWM chopper frequency or not
  3070. * @param __CARFRQ__ chopper frequency to judge
  3071. * @retval 0 isn't HRPWM chopper frequency
  3072. * @retval 1 is HRPWM chopper frequency
  3073. */
  3074. #define IS_HRPWM_CHOPPER_CARFRQ(__CARFRQ__) \
  3075. (((__CARFRQ__) == HRPWM_CHOPPER_CARFRQ_DIV16) || \
  3076. (((__CARFRQ__) & HRPWM_CHPR_CARFRQ) != HRPWM_CHOPPER_CARFRQ_DIV16))
  3077. /**
  3078. * @brief Judge is HRPWM event or not
  3079. * @param __EVENT__ event to judge
  3080. * @retval 0 isn't HRPWM event
  3081. * @retval 1 is HRPWM event
  3082. */
  3083. #define IS_HRPWM_EVENT(__EVENT__) \
  3084. (((__EVENT__) == HRPWM_EVENT_NONE) || \
  3085. ((__EVENT__) == HRPWM_EVENT_0) || \
  3086. ((__EVENT__) == HRPWM_EVENT_1) || \
  3087. ((__EVENT__) == HRPWM_EVENT_2) || \
  3088. ((__EVENT__) == HRPWM_EVENT_3) || \
  3089. ((__EVENT__) == HRPWM_EVENT_4) || \
  3090. ((__EVENT__) == HRPWM_EVENT_5))
  3091. /**
  3092. * @brief Judge is HRPWM event source or not
  3093. * @param __SOURCE__ source to judge
  3094. * @retval 0 isn't HRPWM event source
  3095. * @retval 1 is HRPWM event source
  3096. */
  3097. #define IS_HRPWM_EVENTSOURCE(__SOURCE__) \
  3098. (((__SOURCE__) == HRPWM_EEVSRC_GPIO) || \
  3099. ((__SOURCE__) == HRPWM_EEVSRC_COMP_OUT) || \
  3100. ((__SOURCE__) == HRPWM_EEVSRC_TIM_TRGO) || \
  3101. ((__SOURCE__) == HRPWM_EEVSRC_ADC_AWD))
  3102. /**
  3103. * @brief Judge is HRPWM event polarity or not
  3104. * @param __POLARITY__ polarity to judge
  3105. * @retval 0 isn't HRPWM event polarity
  3106. * @retval 1 is HRPWM event polarity
  3107. */
  3108. #define IS_HRPWM_EVENTPOLARITY(__POLARITY__) \
  3109. (((__POLARITY__) == HRPWM_EVENTPOL_HIGH) || \
  3110. ((__POLARITY__) == HRPWM_EVENTPOL_LOW))
  3111. /**
  3112. * @brief Judge is HRPWM event filter or not
  3113. * @param __FILTER__ filter to judge
  3114. * @retval 0 isn't HRPWM event filter
  3115. * @retval 1 is HRPWM event filter
  3116. */
  3117. #define IS_HRPWM_EVENTFILTER(__FILTER__) \
  3118. (((__FILTER__) == HRPWM_EVENTFILTER_NONE) || \
  3119. (((__FILTER__) & HRPWM_EECR2_EE0F) != HRPWM_EVENTFILTER_NONE))
  3120. /**
  3121. * @brief Judge is HRPWM event prescaler div or not
  3122. * @param __CLKDIV__ prescaler div to judge
  3123. * @retval 0 isn't HRPWM event prescaler div
  3124. * @retval 1 is HRPWM event prescaler div
  3125. */
  3126. #define IS_HRPWM_EVENTSAMPCLK(__CLKDIV__) \
  3127. (((__CLKDIV__) == HRPWM_EEVSD_DIV1) || \
  3128. ((__CLKDIV__) == HRPWM_EEVSD_DIV2) || \
  3129. ((__CLKDIV__) == HRPWM_EEVSD_DIV4) || \
  3130. ((__CLKDIV__) == HRPWM_EEVSD_DIV8))
  3131. /**
  3132. * @brief Judge is HRPWM event fast mode or not
  3133. * @param __MODE__ mode to judge
  3134. * @retval 0 isn't HRPWM event fast mode
  3135. * @retval 1 is HRPWM event fast mode
  3136. */
  3137. #define IS_HRPWM_EVENTFASTMODE(__MODE__) \
  3138. (((__MODE__) == HRPWM_EVENTFASTMODE_DISABLE) || \
  3139. ((__MODE__) == HRPWM_EVENTFASTMODE_ENABLE))
  3140. /**
  3141. * @brief Judge is HRPWM event Sensitivity or not
  3142. * @param __SNS__ Sensitivity to judge
  3143. * @retval 0 isn't HRPWM event Sensitivity
  3144. * @retval 1 is HRPWM event Sensitivity
  3145. */
  3146. #define IS_HRPWM_EVENTSNS(__SNS__) \
  3147. (((__SNS__) == HRPWM_EVENTSENS_LEVEL) || \
  3148. ((__SNS__) == HRPWM_EVENTSENS_RISINGEDGE) || \
  3149. ((__SNS__) == HRPWM_EVENTSENS_FALLINGEDGE) || \
  3150. ((__SNS__) == HRPWM_EVENTSENS_BOTHEDGES))
  3151. /**
  3152. * @brief Judge is HRPWM event A filter or not
  3153. * @param __FILTER__ filter to judge
  3154. * @retval 0 isn't HRPWM event filter A
  3155. * @retval 1 is HRPWM event filter A
  3156. */
  3157. #define IS_HRPWM_EVENTA_FILTER(__FILTER__) \
  3158. (((__FILTER__) == HRPWM_EEVFLT_NONE) || \
  3159. (((__FILTER__) & HRPWM_EEFR0_EE0FLTR) != HRPWM_EEVFLT_NONE))
  3160. /**
  3161. * @brief Judge is HRPWM event A latch or not
  3162. * @param __LATCH__ latch to judge
  3163. * @retval 0 isn't HRPWM event A latch
  3164. * @retval 1 is HRPWM event A latch
  3165. */
  3166. #define IS_HRPWM_EVENTA_LATCH(__LATCH__) \
  3167. (((__LATCH__) == HRPWM_EVENTLATCH_DISABLE) || \
  3168. ((__LATCH__) == HRPWM_EVENTLATCH_ENABLE))
  3169. /**
  3170. * @brief Judge is HRPWM event A source or not
  3171. * @param __SOURCE__ source to judge
  3172. * @retval 0 isn't HRPWM event A source
  3173. * @retval 1 is HRPWM event A source
  3174. */
  3175. #define IS_HRPWM_EVENTA_SOURCE(__SOURCE__) \
  3176. (((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT0) || \
  3177. ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT1) || \
  3178. ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT2) || \
  3179. ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT3) || \
  3180. ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT4) || \
  3181. ((__SOURCE__) == HRPWM_EEVASEL_SOURCE_EEVENT5))
  3182. /**
  3183. * @brief Judge is HRPWM event A reset mode or not
  3184. * @param __MODE__ mode to judge
  3185. * @retval 0 isn't HRPWM event A reset mode
  3186. * @retval 1 is HRPWM event A reset mode
  3187. */
  3188. #define IS_HRPWM_EVENTA_RSTMODE(__MODE__) \
  3189. (((__MODE__) == HRPWM_EEVARSTM_CONDITIONAL) || \
  3190. ((__MODE__) == HRPWM_EEVARSTM_UNCONDITIONAL))
  3191. /**
  3192. * @brief Judge is HRPWM event A counter enable or not
  3193. * @param __COUNTEREN__ counter enable to judge
  3194. * @retval 0 isn't HRPWM event A counter enable
  3195. * @retval 1 is HRPWM event A counter enable
  3196. */
  3197. #define IS_HRPWM_EVENTA_COUNTEREN(__COUNTEREN__) \
  3198. (((__COUNTEREN__) == HRPWM_EEVACOUNTER_DISABLE) || \
  3199. ((__COUNTEREN__) == HRPWM_EEVACOUNTER_ENABLE))
  3200. /**
  3201. * @brief Judge is HRPWM reset event or not
  3202. * @param __RESET__ reset event to judge
  3203. * @retval 0 isn't HRPWM reset event
  3204. * @retval 1 is HRPWM reset event
  3205. */
  3206. #define IS_HRPWM_RST_EVENT(__RESET__) \
  3207. (((__RESET__) == HRPWM_RESET_TRIGGER_NONE) || \
  3208. (((__RESET__) & (0x1FFFFFFF)) != 0x0U))
  3209. /**
  3210. * @brief Judge is HRPWM roll over mode or not
  3211. * @param __ROLLOVER__ mode to judge
  3212. * @retval 0 isn't HRPWM roll over mode
  3213. * @retval 1 is HRPWM roll over mode
  3214. */
  3215. #define IS_HRPWM_ROLLOVERMODE(__ROLLOVER__) \
  3216. (((__ROLLOVER__) == HRPWM_ROM_BOTH) || \
  3217. ((__ROLLOVER__) == HRPWM_ROM_ZERO) || \
  3218. ((__ROLLOVER__) == HRPWM_ROM_PERIOD))
  3219. /**
  3220. * @brief Judge is HRPWM roll over mode or not
  3221. * @param __ROLLOVER__ mode to judge
  3222. * @retval 0 isn't HRPWM roll over mode
  3223. * @retval 1 is HRPWM roll over mode
  3224. */
  3225. #define IS_HRPWM_OUTPUTROLLOVERMODE(__ROLLOVER__) \
  3226. (((__ROLLOVER__) == HRPWM_OUTROM_BOTH) || \
  3227. ((__ROLLOVER__) == HRPWM_OUTROM_ZERO) || \
  3228. ((__ROLLOVER__) == HRPWM_OUTROM_PERIOD))
  3229. /**
  3230. * @brief Judge is HRPWM roll over mode or not
  3231. * @param __ROLLOVER__ mode to judge
  3232. * @retval 0 isn't HRPWM roll over mode
  3233. * @retval 1 is HRPWM roll over mode
  3234. */
  3235. #define IS_HRPWM_ADCROLLOVERMODE(__ROLLOVER__) \
  3236. (((__ROLLOVER__) == HRPWM_ADROM_BOTH) || \
  3237. ((__ROLLOVER__) == HRPWM_ADROM_ZERO) || \
  3238. ((__ROLLOVER__) == HRPWM_ADROM_PERIOD))
  3239. /**
  3240. * @brief Judge is HRPWM roll over mode or not
  3241. * @param __ROLLOVER__ mode to judge
  3242. * @retval 0 isn't HRPWM roll over mode
  3243. * @retval 1 is HRPWM roll over mode
  3244. */
  3245. #define IS_HRPWM_FLTROLLOVERMODE(__ROLLOVER__) \
  3246. (((__ROLLOVER__) == HRPWM_FLTROM_BOTH) || \
  3247. ((__ROLLOVER__) == HRPWM_FLTROM_ZERO) || \
  3248. ((__ROLLOVER__) == HRPWM_FLTROM_PERIOD))
  3249. /**
  3250. * @brief Judge is HRPWM roll over mode or not
  3251. * @param __ROLLOVER__ mode to judge
  3252. * @retval 0 isn't HRPWM roll over mode
  3253. * @retval 1 is HRPWM roll over mode
  3254. */
  3255. #define IS_HRPWM_EVTROLLOVERMODE(__ROLLOVER__) \
  3256. (((__ROLLOVER__) == HRPWM_EEVROM_BOTH) || \
  3257. ((__ROLLOVER__) == HRPWM_EEVROM_ZERO) || \
  3258. ((__ROLLOVER__) == HRPWM_EEVROM_PERIOD))
  3259. /**
  3260. * @}
  3261. */
  3262. /* Private functions ---------------------------------------------------------*/
  3263. /**
  3264. * @}
  3265. */
  3266. /**
  3267. * @}
  3268. */
  3269. #ifdef __cplusplus
  3270. }
  3271. #endif /* __cplusplus */
  3272. #endif /* _TAE32F53XX_LL_HRPWM_H_ */
  3273. /************************* (C) COPYRIGHT Tai-Action *****END OF FILE***********/