stm32g4xx_hal_hrtim.h 320 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153
  1. /**
  2. ******************************************************************************
  3. * @file stm32g4xx_hal_hrtim.h
  4. * @author MCD Application Team
  5. * @brief Header file of HRTIM HAL module.
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * Copyright (c) 2019 STMicroelectronics.
  10. * All rights reserved.
  11. *
  12. * This software is licensed under terms that can be found in the LICENSE file
  13. * in the root directory of this software component.
  14. * If no LICENSE file comes with this software, it is provided AS-IS.
  15. *
  16. ******************************************************************************
  17. */
  18. /* Define to prevent recursive inclusion -------------------------------------*/
  19. #ifndef STM32G4xx_HAL_HRTIM_H
  20. #define STM32G4xx_HAL_HRTIM_H
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. /* Includes ------------------------------------------------------------------*/
  25. #include "stm32g4xx_hal_def.h"
  26. #if defined(HRTIM1)
  27. /** @addtogroup STM32G4xx_HAL_Driver
  28. * @{
  29. */
  30. /** @addtogroup HRTIM HRTIM
  31. * @{
  32. */
  33. /* Exported types ------------------------------------------------------------*/
  34. /** @addtogroup HRTIM_Exported_Constants HRTIM Exported Constants
  35. * @{
  36. */
  37. /** @defgroup HRTIM_Max_Timer HRTIM Max Timer
  38. * @{
  39. */
  40. #define MAX_HRTIM_TIMER 7U
  41. /**
  42. * @}
  43. */
  44. /**
  45. * @}
  46. */
  47. /** @defgroup HRTIM_Exported_Types HRTIM Exported Types
  48. * @{
  49. */
  50. /**
  51. * @brief HRTIM Configuration Structure definition - Time base related parameters
  52. */
  53. typedef struct
  54. {
  55. uint32_t HRTIMInterruptRequests; /*!< Specifies which interrupts requests must enabled for the HRTIM instance.
  56. This parameter can be any combination of @ref HRTIM_Common_Interrupt_Enable */
  57. uint32_t SyncOptions; /*!< Specifies how the HRTIM instance handles the external synchronization signals.
  58. The HRTIM instance can be configured to act as a slave (waiting for a trigger
  59. to be synchronized) or a master (generating a synchronization signal) or both.
  60. This parameter can be a combination of @ref HRTIM_Synchronization_Options.*/
  61. uint32_t SyncInputSource; /*!< Specifies the external synchronization input source (significant only when
  62. the HRTIM instance is configured as a slave).
  63. This parameter can be a value of @ref HRTIM_Synchronization_Input_Source. */
  64. uint32_t SyncOutputSource; /*!< Specifies the source and event to be sent on the external synchronization outputs
  65. (significant only when the HRTIM instance is configured as a master).
  66. This parameter can be a value of @ref HRTIM_Synchronization_Output_Source */
  67. uint32_t SyncOutputPolarity; /*!< Specifies the conditioning of the event to be sent on the external synchronization
  68. outputs (significant only when the HRTIM instance is configured as a master).
  69. This parameter can be a value of @ref HRTIM_Synchronization_Output_Polarity */
  70. } HRTIM_InitTypeDef;
  71. /**
  72. * @brief HAL State structures definition
  73. */
  74. typedef enum
  75. {
  76. HAL_HRTIM_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized */
  77. HAL_HRTIM_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */
  78. HAL_HRTIM_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */
  79. HAL_HRTIM_STATE_TIMEOUT = 0x06U, /*!< Timeout state */
  80. HAL_HRTIM_STATE_ERROR = 0x07U, /*!< Error state */
  81. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  82. HAL_HRTIM_STATE_INVALID_CALLBACK = 0x08U /*!< Invalid Callback error */
  83. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  84. } HAL_HRTIM_StateTypeDef;
  85. /**
  86. * @brief HRTIM Timer Structure definition
  87. */
  88. typedef struct
  89. {
  90. uint32_t CaptureTrigger1; /*!< Event(s) triggering capture unit 1.
  91. When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
  92. When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
  93. uint32_t CaptureTrigger2; /*!< Event(s) triggering capture unit 2.
  94. When the timer operates in Simple mode, this parameter can be a value of @ref HRTIM_External_Event_Channels.
  95. When the timer operates in Waveform mode, this parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger. */
  96. uint32_t InterruptRequests; /*!< Interrupts requests enabled for the timer. */
  97. uint32_t DMARequests; /*!< DMA requests enabled for the timer. */
  98. uint32_t DMASrcAddress; /*!< Address of the source address of the DMA transfer. */
  99. uint32_t DMADstAddress; /*!< Address of the destination address of the DMA transfer. */
  100. uint32_t DMASize; /*!< Size of the DMA transfer */
  101. } HRTIM_TimerParamTypeDef;
  102. /**
  103. * @brief HRTIM Handle Structure definition
  104. */
  105. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  106. typedef struct __HRTIM_HandleTypeDef
  107. #else
  108. typedef struct
  109. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  110. {
  111. HRTIM_TypeDef *Instance; /*!< Register base address */
  112. HRTIM_InitTypeDef Init; /*!< HRTIM required parameters */
  113. HRTIM_TimerParamTypeDef TimerParam[MAX_HRTIM_TIMER]; /*!< HRTIM timers - including the master - parameters */
  114. HAL_LockTypeDef Lock; /*!< Locking object */
  115. __IO HAL_HRTIM_StateTypeDef State; /*!< HRTIM communication state */
  116. DMA_HandleTypeDef *hdmaMaster; /*!< Master timer DMA handle parameters */
  117. DMA_HandleTypeDef *hdmaTimerA; /*!< Timer A DMA handle parameters */
  118. DMA_HandleTypeDef *hdmaTimerB; /*!< Timer B DMA handle parameters */
  119. DMA_HandleTypeDef *hdmaTimerC; /*!< Timer C DMA handle parameters */
  120. DMA_HandleTypeDef *hdmaTimerD; /*!< Timer D DMA handle parameters */
  121. DMA_HandleTypeDef *hdmaTimerE; /*!< Timer E DMA handle parameters */
  122. DMA_HandleTypeDef *hdmaTimerF; /*!< Timer F DMA handle parameters */
  123. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  124. void (* Fault1Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 1 interrupt callback function pointer */
  125. void (* Fault2Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 2 interrupt callback function pointer */
  126. void (* Fault3Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 3 interrupt callback function pointer */
  127. void (* Fault4Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 4 interrupt callback function pointer */
  128. void (* Fault5Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 5 interrupt callback function pointer */
  129. void (* Fault6Callback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Fault 6 interrupt callback function pointer */
  130. void (* SystemFaultCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< System fault interrupt callback function pointer */
  131. void (* DLLCalibrationReadyCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< DLL Ready interrupt callback function pointer */
  132. void (* BurstModePeriodCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Burst mode period interrupt callback function pointer */
  133. void (* SynchronizationEventCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< Sync Input interrupt callback function pointer */
  134. void (* ErrorCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< DMA error callback function pointer */
  135. void (* RegistersUpdateCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Update interrupt callback function pointer */
  136. void (* RepetitionEventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Repetition interrupt callback function pointer */
  137. void (* Compare1EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Compare 1 match interrupt callback function pointer */
  138. void (* Compare2EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Compare 2 match interrupt callback function pointer */
  139. void (* Compare3EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Compare 3 match interrupt callback function pointer */
  140. void (* Compare4EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Compare 4 match interrupt callback function pointer */
  141. void (* Capture1EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Capture 1 interrupts callback function pointer */
  142. void (* Capture2EventCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Capture 2 interrupts callback function pointer */
  143. void (* DelayedProtectionCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Delayed protection interrupt callback function pointer */
  144. void (* CounterResetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x counter reset/roll-over interrupt callback function pointer */
  145. void (* Output1SetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x output 1 set interrupt callback function pointer */
  146. void (* Output1ResetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x output 1 reset interrupt callback function pointer */
  147. void (* Output2SetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x output 2 set interrupt callback function pointer */
  148. void (* Output2ResetCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x output 2 reset interrupt callback function pointer */
  149. void (* BurstDMATransferCallback)(struct __HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx); /*!< Timer x Burst DMA completed interrupt callback function pointer */
  150. void (* MspInitCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< HRTIM MspInit callback function pointer */
  151. void (* MspDeInitCallback)(struct __HRTIM_HandleTypeDef *hhrtim); /*!< HRTIM MspInit callback function pointer */
  152. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  153. } HRTIM_HandleTypeDef;
  154. /**
  155. * @brief Simple output compare mode configuration definition
  156. */
  157. typedef struct
  158. {
  159. uint32_t Period; /*!< Specifies the timer period.
  160. The period value must be above 3 periods of the fHRTIM clock.
  161. Maximum value is = 0xFFDFU */
  162. uint32_t RepetitionCounter; /*!< Specifies the timer repetition period.
  163. This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */
  164. uint32_t PrescalerRatio; /*!< Specifies the timer clock prescaler ratio.
  165. This parameter can be any value of @ref HRTIM_Prescaler_Ratio */
  166. uint32_t Mode; /*!< Specifies the counter operating mode.
  167. This parameter can be any value of @ref HRTIM_Counter_Operating_Mode */
  168. } HRTIM_TimeBaseCfgTypeDef;
  169. /**
  170. * @brief Simple output compare mode configuration definition
  171. */
  172. typedef struct
  173. {
  174. uint32_t Mode; /*!< Specifies the output compare mode (toggle, active, inactive).
  175. This parameter can be any value of of @ref HRTIM_Simple_OC_Mode */
  176. uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
  177. The compare value must be above or equal to 3 periods of the fHRTIM clock */
  178. uint32_t Polarity; /*!< Specifies the output polarity.
  179. This parameter can be any value of @ref HRTIM_Output_Polarity */
  180. uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
  181. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  182. } HRTIM_SimpleOCChannelCfgTypeDef;
  183. /**
  184. * @brief Simple PWM output mode configuration definition
  185. */
  186. typedef struct
  187. {
  188. uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
  189. The compare value must be above or equal to 3 periods of the fHRTIM clock */
  190. uint32_t Polarity; /*!< Specifies the output polarity.
  191. This parameter can be any value of @ref HRTIM_Output_Polarity */
  192. uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
  193. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  194. } HRTIM_SimplePWMChannelCfgTypeDef;
  195. /**
  196. * @brief Simple capture mode configuration definition
  197. */
  198. typedef struct
  199. {
  200. uint32_t Event; /*!< Specifies the external event triggering the capture.
  201. This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
  202. uint32_t EventPolarity; /*!< Specifies the polarity of the external event (in case of level sensitivity).
  203. This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  204. uint32_t EventSensitivity; /*!< Specifies the sensitivity of the external event.
  205. This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
  206. uint32_t EventFilter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
  207. This parameter can be a value of @ref HRTIM_External_Event_Filter */
  208. } HRTIM_SimpleCaptureChannelCfgTypeDef;
  209. /**
  210. * @brief Simple One Pulse mode configuration definition
  211. */
  212. typedef struct
  213. {
  214. uint32_t Pulse; /*!< Specifies the compare value to be loaded into the Compare Register.
  215. The compare value must be above or equal to 3 periods of the fHRTIM clock */
  216. uint32_t OutputPolarity; /*!< Specifies the output polarity.
  217. This parameter can be any value of @ref HRTIM_Output_Polarity */
  218. uint32_t OutputIdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
  219. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  220. uint32_t Event; /*!< Specifies the external event triggering the pulse generation.
  221. This parameter can be any 'EEVx' value of @ref HRTIM_External_Event_Channels */
  222. uint32_t EventPolarity; /*!< Specifies the polarity of the external event (in case of level sensitivity).
  223. This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  224. uint32_t EventSensitivity; /*!< Specifies the sensitivity of the external event.
  225. This parameter can be a value of @ref HRTIM_External_Event_Sensitivity. */
  226. uint32_t EventFilter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
  227. This parameter can be a value of @ref HRTIM_External_Event_Filter */
  228. } HRTIM_SimpleOnePulseChannelCfgTypeDef;
  229. /**
  230. * @brief Timer configuration definition
  231. */
  232. typedef struct
  233. {
  234. uint32_t InterruptRequests; /*!< Relevant for all HRTIM timers, including the master.
  235. Specifies which interrupts requests must enabled for the timer.
  236. This parameter can be any combination of @ref HRTIM_Master_Interrupt_Enable
  237. or @ref HRTIM_Timing_Unit_Interrupt_Enable */
  238. uint32_t DMARequests; /*!< Relevant for all HRTIM timers, including the master.
  239. Specifies which DMA requests must be enabled for the timer.
  240. This parameter can be any combination of @ref HRTIM_Master_DMA_Request_Enable
  241. or @ref HRTIM_Timing_Unit_DMA_Request_Enable */
  242. uint32_t DMASrcAddress; /*!< Relevant for all HRTIM timers, including the master.
  243. Specifies the address of the source address of the DMA transfer */
  244. uint32_t DMADstAddress; /*!< Relevant for all HRTIM timers, including the master.
  245. Specifies the address of the destination address of the DMA transfer */
  246. uint32_t DMASize; /*!< Relevant for all HRTIM timers, including the master.
  247. Specifies the size of the DMA transfer */
  248. uint32_t HalfModeEnable; /*!< Relevant for all HRTIM timers, including the master.
  249. Specifies whether or not half mode is enabled
  250. This parameter can be any value of @ref HRTIM_Half_Mode_Enable */
  251. uint32_t InterleavedMode; /*!< Relevant for all HRTIM timers, including the master.
  252. Specifies whether or not half mode is enabled
  253. This parameter can be any value of @ref HRTIM_Interleaved_Mode */
  254. uint32_t StartOnSync; /*!< Relevant for all HRTIM timers, including the master.
  255. Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled).
  256. This parameter can be any value of @ref HRTIM_Start_On_Sync_Input_Event */
  257. uint32_t ResetOnSync; /*!< Relevant for all HRTIM timers, including the master.
  258. Specifies whether or not timer is reset by a rising edge on the synchronization input (when enabled).
  259. This parameter can be any value of @ref HRTIM_Reset_On_Sync_Input_Event */
  260. uint32_t DACSynchro; /*!< Relevant for all HRTIM timers, including the master.
  261. Indicates whether or not the a DAC synchronization event is generated.
  262. This parameter can be any value of @ref HRTIM_DAC_Synchronization */
  263. uint32_t PreloadEnable; /*!< Relevant for all HRTIM timers, including the master.
  264. Specifies whether or not register preload is enabled.
  265. This parameter can be any value of @ref HRTIM_Register_Preload_Enable */
  266. uint32_t UpdateGating; /*!< Relevant for all HRTIM timers, including the master.
  267. Specifies how the update occurs with respect to a burst DMA transaction or
  268. update enable inputs (Slave timers only).
  269. This parameter can be any value of @ref HRTIM_Update_Gating */
  270. uint32_t BurstMode; /*!< Relevant for all HRTIM timers, including the master.
  271. Specifies how the timer behaves during a burst mode operation.
  272. This parameter can be any value of @ref HRTIM_Timer_Burst_Mode */
  273. uint32_t RepetitionUpdate; /*!< Relevant for all HRTIM timers, including the master.
  274. Specifies whether or not registers update is triggered by the repetition event.
  275. This parameter can be any value of @ref HRTIM_Timer_Repetition_Update */
  276. uint32_t PushPull; /*!< Relevant for Timer A to Timer F.
  277. Specifies whether or not the push-pull mode is enabled.
  278. This parameter can be any value of @ref HRTIM_Timer_Push_Pull_Mode */
  279. uint32_t FaultEnable; /*!< Relevant for Timer A to Timer F.
  280. Specifies which fault channels are enabled for the timer.
  281. This parameter can be a combination of @ref HRTIM_Timer_Fault_Enabling */
  282. uint32_t FaultLock; /*!< Relevant for Timer A to Timer F.
  283. Specifies whether or not fault enabling status is write protected.
  284. This parameter can be a value of @ref HRTIM_Timer_Fault_Lock */
  285. uint32_t DeadTimeInsertion; /*!< Relevant for Timer A to Timer F.
  286. Specifies whether or not dead-time insertion is enabled for the timer.
  287. This parameter can be a value of @ref HRTIM_Timer_Deadtime_Insertion */
  288. uint32_t DelayedProtectionMode; /*!< Relevant for Timer A to Timer F.
  289. Specifies the delayed protection mode.
  290. This parameter can be a value of @ref HRTIM_Timer_Delayed_Protection_Mode */
  291. uint32_t BalancedIdleAutomaticResume; /*!< Indicates whether or not outputs are automatically re-enabled after a balanced idle event.
  292. This parameters can be any value of @ref HRTIM_Output_Balanced_Idle_Auto_Resume */
  293. uint32_t UpdateTrigger; /*!< Relevant for Timer A to Timer F.
  294. Specifies source(s) triggering the timer registers update.
  295. This parameter can be a combination of @ref HRTIM_Timer_Update_Trigger */
  296. uint32_t ResetTrigger; /*!< Relevant for Timer A to Timer F.
  297. Specifies source(s) triggering the timer counter reset.
  298. This parameter can be a combination of @ref HRTIM_Timer_Reset_Trigger */
  299. uint32_t ResetUpdate; /*!< Relevant for Timer A to Timer F.
  300. Specifies whether or not registers update is triggered when the timer counter is reset.
  301. This parameter can be a value of @ref HRTIM_Timer_Reset_Update */
  302. uint32_t ReSyncUpdate; /*!< Relevant for Timer A to Timer F.
  303. Specifies whether update source is coming from the timing unit @ref HRTIM_Timer_ReSyncUpdate */
  304. } HRTIM_TimerCfgTypeDef;
  305. /**
  306. * @brief Timer control definition
  307. */
  308. typedef struct
  309. {
  310. uint32_t UpDownMode; /*!< Relevant for Timer A to Timer F.
  311. Specifies whether or not counter is operating in up or up-down counting mode.
  312. This parameter can be a value of @ref HRTIM_Timer_UpDown_Mode */
  313. uint32_t TrigHalf; /*!< Relevant for Timer A to Timer F.
  314. Specifies whether or not compare 2 is operating in Trigger half mode.
  315. This parameter can be a value of @ref HRTIM_Timer_TrigHalf_Mode */
  316. uint32_t GreaterCMP3; /*!< Relevant for Timer A to Timer F.
  317. Specifies whether or not compare 3 is operating in compare match or greater mode.
  318. This parameter can be a value of @ref HRTIM_Timer_GreaterCMP3_Mode */
  319. uint32_t GreaterCMP1; /*!< Relevant for Timer A to Timer F.
  320. Specifies whether or not compare 1 is operating in compare match or greater mode.
  321. This parameter can be a value of @ref HRTIM_Timer_GreaterCMP1_Mode */
  322. uint32_t DualChannelDacReset; /*!< Relevant for Timer A to Timer F.
  323. Specifies how the hrtim_dac_reset_trgx trigger is generated.
  324. This parameter can be a value of @ref HRTIM_Timer_DualChannelDac_Reset */
  325. uint32_t DualChannelDacStep; /*!< Relevant for Timer A to Timer F.
  326. Specifies how the hrtim_dac_step_trgx trigger is generated.
  327. This parameter can be a value of @ref HRTIM_Timer_DualChannelDac_Step */
  328. uint32_t DualChannelDacEnable; /*!< Relevant for Timer A to Timer F.
  329. Enables or not the dual channel DAC triggering mechanism.
  330. This parameter can be a value of @ref HRTIM_Timer_DualChannelDac_Enable */
  331. } HRTIM_TimerCtlTypeDef;
  332. /**
  333. * @brief Compare unit configuration definition
  334. */
  335. typedef struct
  336. {
  337. uint32_t CompareValue; /*!< Specifies the compare value of the timer compare unit.
  338. The minimum value must be greater than or equal to 3 periods of the fHRTIM clock.
  339. The maximum value must be less than or equal to 0xFFFFU - 1 periods of the fHRTIM clock */
  340. uint32_t AutoDelayedMode; /*!< Specifies the auto delayed mode for compare unit 2 or 4.
  341. This parameter can be a value of @ref HRTIM_Compare_Unit_Auto_Delayed_Mode */
  342. uint32_t AutoDelayedTimeout; /*!< Specifies compare value for timing unit 1 or 3 when auto delayed mode with time out is selected.
  343. CompareValue + AutoDelayedTimeout must be less than 0xFFFFU */
  344. } HRTIM_CompareCfgTypeDef;
  345. /**
  346. * @brief Capture unit content definition
  347. */
  348. typedef struct
  349. {
  350. uint32_t Value; /*!< Holds the counter value when the capture event occurred.
  351. This parameter can be a number between 0x0 and 0xFFFFU */
  352. uint32_t Dir ; /*!< Holds the counting direction value when the capture event occurred.
  353. This parameter can be a value of @ref HRTIM_Timer_UpDown_Mode */
  354. } HRTIM_CaptureValueTypeDef;
  355. /**
  356. * @brief Capture unit configuration definition
  357. */
  358. typedef struct
  359. {
  360. uint64_t Trigger; /*!< Specifies source(s) triggering the capture.
  361. This parameter can be a combination of @ref HRTIM_Capture_Unit_Trigger */
  362. } HRTIM_CaptureCfgTypeDef;
  363. /**
  364. * @brief Output configuration definition
  365. */
  366. typedef struct
  367. {
  368. uint32_t Polarity; /*!< Specifies the output polarity.
  369. This parameter can be any value of @ref HRTIM_Output_Polarity */
  370. uint32_t SetSource; /*!< Specifies the event(s) transitioning the output from its inactive level to its active level.
  371. This parameter can be a combination of @ref HRTIM_Output_Set_Source */
  372. uint32_t ResetSource; /*!< Specifies the event(s) transitioning the output from its active level to its inactive level.
  373. This parameter can be a combination of @ref HRTIM_Output_Reset_Source */
  374. uint32_t IdleMode; /*!< Specifies whether or not the output is affected by a burst mode operation.
  375. This parameter can be any value of @ref HRTIM_Output_Idle_Mode */
  376. uint32_t IdleLevel; /*!< Specifies whether the output level is active or inactive when in IDLE state.
  377. This parameter can be any value of @ref HRTIM_Output_IDLE_Level */
  378. uint32_t FaultLevel; /*!< Specifies whether the output level is active or inactive when in FAULT state.
  379. This parameter can be any value of @ref HRTIM_Output_FAULT_Level */
  380. uint32_t ChopperModeEnable; /*!< Indicates whether or not the chopper mode is enabled
  381. This parameter can be any value of @ref HRTIM_Output_Chopper_Mode_Enable */
  382. uint32_t BurstModeEntryDelayed; /*!< Indicates whether or not dead-time is inserted when entering the IDLE state during a burst mode operation.
  383. This parameters can be any value of @ref HRTIM_Output_Burst_Mode_Entry_Delayed */
  384. } HRTIM_OutputCfgTypeDef;
  385. /**
  386. * @brief External event filtering in timing units configuration definition
  387. */
  388. typedef struct
  389. {
  390. uint32_t Filter; /*!< Specifies the type of event filtering within the timing unit.
  391. This parameter can be a value of @ref HRTIM_Timer_External_Event_Filter */
  392. uint32_t Latch; /*!< Specifies whether or not the signal is latched.
  393. This parameter can be a value of @ref HRTIM_Timer_External_Event_Latch */
  394. } HRTIM_TimerEventFilteringCfgTypeDef;
  395. /**
  396. * @brief Dead time feature configuration definition
  397. */
  398. typedef struct
  399. {
  400. uint32_t Prescaler; /*!< Specifies the dead-time prescaler.
  401. This parameter can be a value of @ref HRTIM_Deadtime_Prescaler_Ratio */
  402. uint32_t RisingValue; /*!< Specifies the dead-time following a rising edge.
  403. This parameter can be a number between 0x0 and 0x1FFU */
  404. uint32_t RisingSign; /*!< Specifies whether the dead-time is positive or negative on rising edge.
  405. This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign */
  406. uint32_t RisingLock; /*!< Specifies whether or not dead-time rising settings (value and sign) are write protected.
  407. This parameter can be a value of @ref HRTIM_Deadtime_Rising_Lock */
  408. uint32_t RisingSignLock; /*!< Specifies whether or not dead-time rising sign is write protected.
  409. This parameter can be a value of @ref HRTIM_Deadtime_Rising_Sign_Lock */
  410. uint32_t FallingValue; /*!< Specifies the dead-time following a falling edge.
  411. This parameter can be a number between 0x0 and 0x1FFU */
  412. uint32_t FallingSign; /*!< Specifies whether the dead-time is positive or negative on falling edge.
  413. This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign */
  414. uint32_t FallingLock; /*!< Specifies whether or not dead-time falling settings (value and sign) are write protected.
  415. This parameter can be a value of @ref HRTIM_Deadtime_Falling_Lock */
  416. uint32_t FallingSignLock; /*!< Specifies whether or not dead-time falling sign is write protected.
  417. This parameter can be a value of @ref HRTIM_Deadtime_Falling_Sign_Lock */
  418. } HRTIM_DeadTimeCfgTypeDef;
  419. /**
  420. * @brief Chopper mode configuration definition
  421. */
  422. typedef struct
  423. {
  424. uint32_t CarrierFreq; /*!< Specifies the Timer carrier frequency value.
  425. This parameter can be a value of @ref HRTIM_Chopper_Frequency */
  426. uint32_t DutyCycle; /*!< Specifies the Timer chopper duty cycle value.
  427. This parameter can be a value of @ref HRTIM_Chopper_Duty_Cycle */
  428. uint32_t StartPulse; /*!< Specifies the Timer pulse width value.
  429. This parameter can be a value of @ref HRTIM_Chopper_Start_Pulse_Width */
  430. } HRTIM_ChopperModeCfgTypeDef;
  431. /**
  432. * @brief External event channel configuration definition
  433. */
  434. typedef struct
  435. {
  436. uint32_t Source; /*!< Identifies the source of the external event.
  437. This parameter can be a value of @ref HRTIM_External_Event_Sources */
  438. uint32_t Polarity; /*!< Specifies the polarity of the external event (in case of level sensitivity).
  439. This parameter can be a value of @ref HRTIM_External_Event_Polarity */
  440. uint32_t Sensitivity; /*!< Specifies the sensitivity of the external event.
  441. This parameter can be a value of @ref HRTIM_External_Event_Sensitivity */
  442. uint32_t Filter; /*!< Defines the frequency used to sample the External Event and the length of the digital filter.
  443. This parameter can be a value of @ref HRTIM_External_Event_Filter */
  444. uint32_t FastMode; /*!< Indicates whether or not low latency mode is enabled for the external event.
  445. This parameter can be a value of @ref HRTIM_External_Event_Fast_Mode */
  446. } HRTIM_EventCfgTypeDef;
  447. /**
  448. * @brief Fault channel configuration definition
  449. */
  450. typedef struct
  451. {
  452. uint32_t Source; /*!< Identifies the source of the fault.
  453. This parameter can be a value of @ref HRTIM_Fault_Sources */
  454. uint32_t Polarity; /*!< Specifies the polarity of the fault event.
  455. This parameter can be a value of @ref HRTIM_Fault_Polarity */
  456. uint32_t Filter; /*!< Defines the frequency used to sample the Fault input and the length of the digital filter.
  457. This parameter can be a value of @ref HRTIM_Fault_Filter */
  458. uint32_t Lock; /*!< Indicates whether or not fault programming bits are write protected.
  459. This parameter can be a value of @ref HRTIM_Fault_Lock */
  460. } HRTIM_FaultCfgTypeDef;
  461. typedef struct
  462. {
  463. uint32_t Threshold; /*!< Specifies the Fault counter Threshold.
  464. This parameter can be a number between 0x0 and 0xF */
  465. uint32_t ResetMode; /*!< Specifies the reset mode of a fault event counter.
  466. This parameter can be a value of @ref HRTIM_Fault_ResetMode */
  467. uint32_t BlankingSource;/*!< Specifies the blanking source of a fault event.
  468. This parameter can be a value of @ref HRTIM_Fault_Blanking */
  469. } HRTIM_FaultBlankingCfgTypeDef;
  470. /**
  471. * @brief Burst mode configuration definition
  472. */
  473. typedef struct
  474. {
  475. uint32_t Mode; /*!< Specifies the burst mode operating mode.
  476. This parameter can be a value of @ref HRTIM_Burst_Mode_Operating_Mode */
  477. uint32_t ClockSource; /*!< Specifies the burst mode clock source.
  478. This parameter can be a value of @ref HRTIM_Burst_Mode_Clock_Source */
  479. uint32_t Prescaler; /*!< Specifies the burst mode prescaler.
  480. This parameter can be a value of @ref HRTIM_Burst_Mode_Prescaler */
  481. uint32_t PreloadEnable; /*!< Specifies whether or not preload is enabled for burst mode related registers (HRTIM_BMCMPR and HRTIM_BMPER).
  482. This parameter can be a combination of @ref HRTIM_Burst_Mode_Register_Preload_Enable */
  483. uint32_t Trigger; /*!< Specifies the event(s) triggering the burst operation.
  484. This parameter can be a combination of @ref HRTIM_Burst_Mode_Trigger */
  485. uint32_t IdleDuration; /*!< Specifies number of periods during which the selected timers are in idle state.
  486. This parameter can be a number between 0x0 and 0xFFFF */
  487. uint32_t Period; /*!< Specifies burst mode repetition period.
  488. This parameter can be a number between 0x1 and 0xFFFF */
  489. } HRTIM_BurstModeCfgTypeDef;
  490. /**
  491. * @brief ADC trigger configuration definition
  492. */
  493. typedef struct
  494. {
  495. uint32_t UpdateSource; /*!< Specifies the ADC trigger update source.
  496. This parameter can be a value of @ref HRTIM_ADC_Trigger_Update_Source */
  497. uint32_t Trigger; /*!< Specifies the event(s) triggering the ADC conversion.
  498. This parameter can be a combination of @ref HRTIM_ADC_Trigger_Event */
  499. } HRTIM_ADCTriggerCfgTypeDef;
  500. /**
  501. * @brief External Event Counter A or B configuration definition
  502. */
  503. typedef struct
  504. {
  505. uint32_t ResetMode; /*!< Specifies the External Event Counter A or B Reset Mode.
  506. This parameter can be a value of @ref HRTIM_Timer_External_Event_ResetMode */
  507. uint32_t Source; /*!< Specifies the External Event Counter source selection.
  508. This parameter can be one of @ref HRTIM_External_Event_Channels */
  509. uint32_t Counter; /*!< Specifies the External Event Counter Threshold.
  510. This parameter can be a number between 0x0 and 0x3F */
  511. } HRTIM_ExternalEventCfgTypeDef;
  512. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  513. /**
  514. * @brief HAL HRTIM Callback ID enumeration definition
  515. */
  516. typedef enum
  517. {
  518. HAL_HRTIM_FAULT1CALLBACK_CB_ID = 0x00U, /*!< Fault 1 interrupt callback ID */
  519. HAL_HRTIM_FAULT2CALLBACK_CB_ID = 0x01U, /*!< Fault 2 interrupt callback ID */
  520. HAL_HRTIM_FAULT3CALLBACK_CB_ID = 0x02U, /*!< Fault 3 interrupt callback ID */
  521. HAL_HRTIM_FAULT4CALLBACK_CB_ID = 0x03U, /*!< Fault 4 interrupt callback ID */
  522. HAL_HRTIM_FAULT5CALLBACK_CB_ID = 0x04U, /*!< Fault 5 interrupt callback ID */
  523. HAL_HRTIM_SYSTEMFAULTCALLBACK_CB_ID = 0x05U, /*!< System fault interrupt callback ID */
  524. HAL_HRTIM_DLLCALBRATIONREADYCALLBACK_CB_ID = 0x06U, /*!< DLL Ready interrupt callback ID */
  525. HAL_HRTIM_BURSTMODEPERIODCALLBACK_CB_ID = 0x07U, /*!< Burst mode period interrupt callback ID */
  526. HAL_HRTIM_SYNCHRONIZATIONEVENTCALLBACK_CB_ID = 0x08U, /*!< Sync Input interrupt callback ID */
  527. HAL_HRTIM_ERRORCALLBACK_CB_ID = 0x09U, /*!< DMA error callback ID */
  528. HAL_HRTIM_REGISTERSUPDATECALLBACK_CB_ID = 0x10U, /*!< Timer x Update interrupt callback ID */
  529. HAL_HRTIM_REPETITIONEVENTCALLBACK_CB_ID = 0x11U, /*!< Timer x Repetition interrupt callback ID */
  530. HAL_HRTIM_COMPARE1EVENTCALLBACK_CB_ID = 0x12U, /*!< Timer x Compare 1 match interrupt callback ID */
  531. HAL_HRTIM_COMPARE2EVENTCALLBACK_CB_ID = 0x13U, /*!< Timer x Compare 2 match interrupt callback ID */
  532. HAL_HRTIM_COMPARE3EVENTCALLBACK_CB_ID = 0x14U, /*!< Timer x Compare 3 match interrupt callback ID */
  533. HAL_HRTIM_COMPARE4EVENTCALLBACK_CB_ID = 0x15U, /*!< Timer x Compare 4 match interrupt callback ID */
  534. HAL_HRTIM_CAPTURE1EVENTCALLBACK_CB_ID = 0x16U, /*!< Timer x Capture 1 interrupts callback ID */
  535. HAL_HRTIM_CAPTURE2EVENTCALLBACK_CB_ID = 0x17U, /*!< Timer x Capture 2 interrupts callback ID */
  536. HAL_HRTIM_DELAYEDPROTECTIONCALLBACK_CB_ID = 0x18U, /*!< Timer x Delayed protection interrupt callback ID */
  537. HAL_HRTIM_COUNTERRESETCALLBACK_CB_ID = 0x19U, /*!< Timer x counter reset/roll-over interrupt callback ID */
  538. HAL_HRTIM_OUTPUT1SETCALLBACK_CB_ID = 0x1AU, /*!< Timer x output 1 set interrupt callback ID */
  539. HAL_HRTIM_OUTPUT1RESETCALLBACK_CB_ID = 0x1BU, /*!< Timer x output 1 reset interrupt callback ID */
  540. HAL_HRTIM_OUTPUT2SETCALLBACK_CB_ID = 0x1CU, /*!< Timer x output 2 set interrupt callback ID */
  541. HAL_HRTIM_OUTPUT2RESETCALLBACK_CB_ID = 0x1DU, /*!< Timer x output 2 reset interrupt callback ID */
  542. HAL_HRTIM_BURSTDMATRANSFERCALLBACK_CB_ID = 0x1EU, /*!< Timer x Burst DMA completed interrupt callback ID */
  543. HAL_HRTIM_MSPINIT_CB_ID = 0x20U, /*!< HRTIM MspInit callback ID */
  544. HAL_HRTIM_MSPDEINIT_CB_ID = 0x21U, /*!< HRTIM MspInit callback ID */
  545. HAL_HRTIM_FAULT6CALLBACK_CB_ID = 0x22U, /*!< Fault 6 interrupt callback ID */
  546. } HAL_HRTIM_CallbackIDTypeDef;
  547. /**
  548. * @brief HAL HRTIM Callback function pointer definitions
  549. */
  550. typedef void (* pHRTIM_CallbackTypeDef)(HRTIM_HandleTypeDef *hhrtim); /*!< HRTIM related callback function pointer */
  551. typedef void (* pHRTIM_TIMxCallbackTypeDef)(HRTIM_HandleTypeDef *hhrtim, /*!< HRTIM Timer x related callback function pointer */
  552. uint32_t TimerIdx);
  553. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  554. /**
  555. * @}
  556. */
  557. /* Exported constants --------------------------------------------------------*/
  558. /** @defgroup HRTIM_Exported_Constants HRTIM Exported Constants
  559. * @{
  560. */
  561. /** @defgroup HRTIM_Timer_Index HRTIM Timer Index
  562. * @{
  563. * @brief Constants defining the timer indexes
  564. */
  565. #define HRTIM_TIMERINDEX_TIMER_A 0x0U /*!< Index used to access timer A registers */
  566. #define HRTIM_TIMERINDEX_TIMER_B 0x1U /*!< Index used to access timer B registers */
  567. #define HRTIM_TIMERINDEX_TIMER_C 0x2U /*!< Index used to access timer C registers */
  568. #define HRTIM_TIMERINDEX_TIMER_D 0x3U /*!< Index used to access timer D registers */
  569. #define HRTIM_TIMERINDEX_TIMER_E 0x4U /*!< Index used to access timer E registers */
  570. #define HRTIM_TIMERINDEX_TIMER_F 0x5U /*!< Index used to access timer F registers */
  571. #define HRTIM_TIMERINDEX_MASTER 0x6U /*!< Index used to access master registers */
  572. #define HRTIM_TIMERINDEX_COMMON 0xFFU /*!< Index used to access HRTIM common registers */
  573. /**
  574. * @}
  575. */
  576. /** @defgroup HRTIM_Timer_identifier HRTIM Timer identifier
  577. * @{
  578. * @brief Constants defining timer identifiers
  579. */
  580. #define HRTIM_TIMERID_MASTER (HRTIM_MCR_MCEN) /*!< Master identifier */
  581. #define HRTIM_TIMERID_TIMER_A (HRTIM_MCR_TACEN) /*!< Timer A identifier */
  582. #define HRTIM_TIMERID_TIMER_B (HRTIM_MCR_TBCEN) /*!< Timer B identifier */
  583. #define HRTIM_TIMERID_TIMER_C (HRTIM_MCR_TCCEN) /*!< Timer C identifier */
  584. #define HRTIM_TIMERID_TIMER_D (HRTIM_MCR_TDCEN) /*!< Timer D identifier */
  585. #define HRTIM_TIMERID_TIMER_E (HRTIM_MCR_TECEN) /*!< Timer E identifier */
  586. #define HRTIM_TIMERID_TIMER_F (HRTIM_MCR_TFCEN) /*!< Timer F identifier */
  587. /**
  588. * @}
  589. */
  590. /** @defgroup HRTIM_Compare_Unit HRTIM Compare Unit
  591. * @{
  592. * @brief Constants defining compare unit identifiers
  593. */
  594. #define HRTIM_COMPAREUNIT_1 0x00000001U /*!< Compare unit 1 identifier */
  595. #define HRTIM_COMPAREUNIT_2 0x00000002U /*!< Compare unit 2 identifier */
  596. #define HRTIM_COMPAREUNIT_3 0x00000004U /*!< Compare unit 3 identifier */
  597. #define HRTIM_COMPAREUNIT_4 0x00000008U /*!< Compare unit 4 identifier */
  598. /**
  599. * @}
  600. */
  601. /** @defgroup HRTIM_Capture_Unit HRTIM Capture Unit
  602. * @{
  603. * @brief Constants defining capture unit identifiers
  604. */
  605. #define HRTIM_CAPTUREUNIT_1 0x00000001U /*!< Capture unit 1 identifier */
  606. #define HRTIM_CAPTUREUNIT_2 0x00000002U /*!< Capture unit 2 identifier */
  607. /**
  608. * @}
  609. */
  610. /** @defgroup HRTIM_Timer_Output HRTIM Timer Output
  611. * @{
  612. * @brief Constants defining timer output identifiers
  613. */
  614. #define HRTIM_OUTPUT_TA1 0x00000001U /*!< Timer A - Output 1 identifier */
  615. #define HRTIM_OUTPUT_TA2 0x00000002U /*!< Timer A - Output 2 identifier */
  616. #define HRTIM_OUTPUT_TB1 0x00000004U /*!< Timer B - Output 1 identifier */
  617. #define HRTIM_OUTPUT_TB2 0x00000008U /*!< Timer B - Output 2 identifier */
  618. #define HRTIM_OUTPUT_TC1 0x00000010U /*!< Timer C - Output 1 identifier */
  619. #define HRTIM_OUTPUT_TC2 0x00000020U /*!< Timer C - Output 2 identifier */
  620. #define HRTIM_OUTPUT_TD1 0x00000040U /*!< Timer D - Output 1 identifier */
  621. #define HRTIM_OUTPUT_TD2 0x00000080U /*!< Timer D - Output 2 identifier */
  622. #define HRTIM_OUTPUT_TE1 0x00000100U /*!< Timer E - Output 1 identifier */
  623. #define HRTIM_OUTPUT_TE2 0x00000200U /*!< Timer E - Output 2 identifier */
  624. #define HRTIM_OUTPUT_TF1 0x00000400U /*!< Timer F - Output 1 identifier */
  625. #define HRTIM_OUTPUT_TF2 0x00000800U /*!< Timer F - Output 2 identifier */
  626. /**
  627. * @}
  628. */
  629. /** @defgroup HRTIM_ADC_Trigger HRTIM ADC Trigger
  630. * @{
  631. * @brief Constants defining ADC triggers identifiers
  632. */
  633. #define HRTIM_ADCTRIGGER_1 0x00000001U /*!< ADC trigger 1 identifier */
  634. #define HRTIM_ADCTRIGGER_2 0x00000002U /*!< ADC trigger 2 identifier */
  635. #define HRTIM_ADCTRIGGER_3 0x00000004U /*!< ADC trigger 3 identifier */
  636. #define HRTIM_ADCTRIGGER_4 0x00000008U /*!< ADC trigger 4 identifier */
  637. /**
  638. * @}
  639. */
  640. /** @defgroup HRTIM_ADC_Ext_Trigger HRTIM ADC Extended Trigger
  641. * @{
  642. * @brief Constants defining ADC Extended triggers identifiers
  643. */
  644. #define HRTIM_ADCTRIGGER_5 0x00000010U /*!< ADC trigger 5 identifier */
  645. #define HRTIM_ADCTRIGGER_6 0x00000020U /*!< ADC trigger 6 identifier */
  646. #define HRTIM_ADCTRIGGER_7 0x00000040U /*!< ADC trigger 7 identifier */
  647. #define HRTIM_ADCTRIGGER_8 0x00000080U /*!< ADC trigger 8 identifier */
  648. #define HRTIM_ADCTRIGGER_9 0x00000100U /*!< ADC trigger 9 identifier */
  649. #define HRTIM_ADCTRIGGER_10 0x00000200U /*!< ADC trigger 10 identifier */
  650. #define IS_HRTIM_ADCTRIGGER(ADCTRIGGER)\
  651. (((ADCTRIGGER) == HRTIM_ADCTRIGGER_1) || \
  652. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_2) || \
  653. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_3) || \
  654. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_4) || \
  655. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_5) || \
  656. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_6) || \
  657. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_7) || \
  658. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_8) || \
  659. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_9) || \
  660. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_10))
  661. #define IS_HRTIM_ADCEXTTRIGGER(ADCTRIGGER)\
  662. (((ADCTRIGGER) == HRTIM_ADCTRIGGER_5) || \
  663. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_6) || \
  664. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_7) || \
  665. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_8) || \
  666. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_9) || \
  667. ((ADCTRIGGER) == HRTIM_ADCTRIGGER_10))
  668. /**
  669. * @}
  670. */
  671. /** @defgroup HRTIM_External_Event_Channels HRTIM External Event Channels
  672. * @{
  673. * @brief Constants defining external event channel identifiers
  674. */
  675. #define HRTIM_EVENT_NONE (0x00000000U) /*!< Undefined event channel */
  676. #define HRTIM_EVENT_1 (0x00000001U) /*!< External event channel 1 identifier */
  677. #define HRTIM_EVENT_2 (0x00000002U) /*!< External event channel 2 identifier */
  678. #define HRTIM_EVENT_3 (0x00000003U) /*!< External event channel 3 identifier */
  679. #define HRTIM_EVENT_4 (0x00000004U) /*!< External event channel 4 identifier */
  680. #define HRTIM_EVENT_5 (0x00000005U) /*!< External event channel 5 identifier */
  681. #define HRTIM_EVENT_6 (0x00000006U) /*!< External event channel 6 identifier */
  682. #define HRTIM_EVENT_7 (0x00000007U) /*!< External event channel 7 identifier */
  683. #define HRTIM_EVENT_8 (0x00000008U) /*!< External event channel 8 identifier */
  684. #define HRTIM_EVENT_9 (0x00000009U) /*!< External event channel 9 identifier */
  685. #define HRTIM_EVENT_10 (0x0000000AU) /*!< External event channel 10 identifier */
  686. /**
  687. * @}
  688. */
  689. /** @defgroup HRTIM_Fault_Channel HRTIM Fault Channel
  690. * @{
  691. * @brief Constants defining fault channel identifiers
  692. */
  693. #define HRTIM_FAULT_1 (0x01U) /*!< Fault channel 1 identifier */
  694. #define HRTIM_FAULT_2 (0x02U) /*!< Fault channel 2 identifier */
  695. #define HRTIM_FAULT_3 (0x04U) /*!< Fault channel 3 identifier */
  696. #define HRTIM_FAULT_4 (0x08U) /*!< Fault channel 4 identifier */
  697. #define HRTIM_FAULT_5 (0x10U) /*!< Fault channel 5 identifier */
  698. #define HRTIM_FAULT_6 (0x20U) /*!< Fault channel 6 identifier */
  699. /**
  700. * @}
  701. */
  702. /** @defgroup HRTIM_Prescaler_Ratio HRTIM Prescaler Ratio
  703. * @{
  704. * @brief Constants defining timer high-resolution clock prescaler ratio.
  705. */
  706. #define HRTIM_PRESCALERRATIO_MUL32 (0x00000000U) /*!< fHRCK: fHRTIM x 32U = 4.608 GHz - Resolution: 217 ps - Min PWM frequency: 70.3 kHz (fHRTIM=144MHz) */
  707. #define HRTIM_PRESCALERRATIO_MUL16 (0x00000001U) /*!< fHRCK: fHRTIM x 16U = 2.304 GHz - Resolution: 434 ps - Min PWM frequency: 35.1 KHz (fHRTIM=144MHz) */
  708. #define HRTIM_PRESCALERRATIO_MUL8 (0x00000002U) /*!< fHRCK: fHRTIM x 8U = 1.152 GHz - Resolution: 868 ps - Min PWM frequency: 17.6 kHz (fHRTIM=144MHz) */
  709. #define HRTIM_PRESCALERRATIO_MUL4 (0x00000003U) /*!< fHRCK: fHRTIM x 4U = 576 MHz - Resolution: 1.73 ns - Min PWM frequency: 8.8 kHz (fHRTIM=144MHz) */
  710. #define HRTIM_PRESCALERRATIO_MUL2 (0x00000004U) /*!< fHRCK: fHRTIM x 2U = 288 MHz - Resolution: 3.47 ns - Min PWM frequency: 4.4 kHz (fHRTIM=144MHz) */
  711. #define HRTIM_PRESCALERRATIO_DIV1 (0x00000005U) /*!< fHRCK: fHRTIM = 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz) */
  712. #define HRTIM_PRESCALERRATIO_DIV2 (0x00000006U) /*!< fHRCK: fHRTIM / 2U = 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz) */
  713. #define HRTIM_PRESCALERRATIO_DIV4 (0x00000007U) /*!< fHRCK: fHRTIM / 4U = 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz) */
  714. /**
  715. * @}
  716. */
  717. /** @defgroup HRTIM_Counter_Operating_Mode HRTIM Counter Operating Mode
  718. * @{
  719. * @brief Constants defining timer counter operating mode.
  720. */
  721. #define HRTIM_MODE_CONTINUOUS (0x00000008U) /*!< The timer operates in continuous (free-running) mode */
  722. #define HRTIM_MODE_SINGLESHOT (0x00000000U) /*!< The timer operates in non retriggerable single-shot mode */
  723. #define HRTIM_MODE_SINGLESHOT_RETRIGGERABLE (0x00000010U) /*!< The timer operates in retriggerable single-shot mode */
  724. /**
  725. * @}
  726. */
  727. /** @defgroup HRTIM_Half_Mode_Enable HRTIM Half Mode Enable
  728. * @{
  729. * @brief Constants defining half mode enabling status.
  730. */
  731. #define HRTIM_HALFMODE_DISABLED (0x00000000U) /*!< Half mode is disabled */
  732. #define HRTIM_HALFMODE_ENABLED (0x00000020U) /*!< Half mode is enabled */
  733. /**
  734. * @}
  735. */
  736. /** @defgroup HRTIM_Interleaved_Mode HRTIM Interleaved Mode
  737. * @{
  738. * @brief Constants defining interleaved mode enabling status.
  739. */
  740. #define HRTIM_INTERLEAVED_MODE_DISABLED 0x000U /*!< HRTIM interleaved Mode is disabled */
  741. #define HRTIM_INTERLEAVED_MODE_DUAL 0x002U /*!< HRTIM interleaved Mode is Half */
  742. #define HRTIM_INTERLEAVED_MODE_TRIPLE 0x003U /*!< HRTIM interleaved Mode is Triple */
  743. #define HRTIM_INTERLEAVED_MODE_QUAD 0x004U /*!< HRTIM interleaved Mode is Quad */
  744. /**
  745. * @}
  746. */
  747. /** @defgroup HRTIM_Start_On_Sync_Input_Event HRTIM Start On Sync Input Event
  748. * @{
  749. * @brief Constants defining the timer behavior following the synchronization event
  750. */
  751. #define HRTIM_SYNCSTART_DISABLED (0x00000000U) /*!< Synchronization input event has effect on the timer */
  752. #define HRTIM_SYNCSTART_ENABLED (HRTIM_MCR_SYNCSTRTM) /*!< Synchronization input event starts the timer */
  753. /**
  754. * @}
  755. */
  756. /** @defgroup HRTIM_Reset_On_Sync_Input_Event HRTIM Reset On Sync Input Event
  757. * @{
  758. * @brief Constants defining the timer behavior following the synchronization event
  759. */
  760. #define HRTIM_SYNCRESET_DISABLED (0x00000000U) /*!< Synchronization input event has effect on the timer */
  761. #define HRTIM_SYNCRESET_ENABLED (HRTIM_MCR_SYNCRSTM) /*!< Synchronization input event resets the timer */
  762. /**
  763. * @}
  764. */
  765. /** @defgroup HRTIM_DAC_Synchronization HRTIM DAC Synchronization
  766. * @{
  767. * @brief Constants defining on which output the DAC synchronization event is sent
  768. */
  769. #define HRTIM_DACSYNC_NONE 0x00000000U /*!< No DAC synchronization event generated */
  770. #define HRTIM_DACSYNC_DACTRIGOUT_1 (HRTIM_MCR_DACSYNC_0) /*!< DAC synchronization event generated on DACTrigOut1 output upon timer update */
  771. #define HRTIM_DACSYNC_DACTRIGOUT_2 (HRTIM_MCR_DACSYNC_1) /*!< DAC synchronization event generated on DACTrigOut2 output upon timer update */
  772. #define HRTIM_DACSYNC_DACTRIGOUT_3 (HRTIM_MCR_DACSYNC_1 | HRTIM_MCR_DACSYNC_0) /*!< DAC update generated on DACTrigOut3 output upon timer update */
  773. /**
  774. * @}
  775. */
  776. /** @defgroup HRTIM_Register_Preload_Enable HRTIM Register Preload Enable
  777. * @{
  778. * @brief Constants defining whether a write access into a preloadable
  779. * register is done into the active or the preload register.
  780. */
  781. #define HRTIM_PRELOAD_DISABLED (0x00000000U) /*!< Preload disabled: the write access is directly done into the active register */
  782. #define HRTIM_PRELOAD_ENABLED (HRTIM_MCR_PREEN) /*!< Preload enabled: the write access is done into the preload register */
  783. /**
  784. * @}
  785. */
  786. /** @defgroup HRTIM_Update_Gating HRTIM Update Gating
  787. * @{
  788. * @brief Constants defining how the update occurs relatively to the burst DMA
  789. * transaction and the external update request on update enable inputs 1 to 3.
  790. */
  791. #define HRTIM_UPDATEGATING_INDEPENDENT 0x00000000U /*!< Update done independently from the DMA burst transfer completion */
  792. #define HRTIM_UPDATEGATING_DMABURST (HRTIM_TIMCR_UPDGAT_0) /*!< Update done when the DMA burst transfer is completed */
  793. #define HRTIM_UPDATEGATING_DMABURST_UPDATE (HRTIM_TIMCR_UPDGAT_1) /*!< Update done on timer roll-over following a DMA burst transfer completion*/
  794. #define HRTIM_UPDATEGATING_UPDEN1 (HRTIM_TIMCR_UPDGAT_1 | HRTIM_TIMCR_UPDGAT_0) /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 1U */
  795. #define HRTIM_UPDATEGATING_UPDEN2 (HRTIM_TIMCR_UPDGAT_2) /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 2U */
  796. #define HRTIM_UPDATEGATING_UPDEN3 (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_0) /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 3U */
  797. #define HRTIM_UPDATEGATING_UPDEN1_UPDATE (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_1) /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 1U */
  798. #define HRTIM_UPDATEGATING_UPDEN2_UPDATE (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_1 | HRTIM_TIMCR_UPDGAT_0) /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 2U */
  799. #define HRTIM_UPDATEGATING_UPDEN3_UPDATE (HRTIM_TIMCR_UPDGAT_3) /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 3U */
  800. /**
  801. * @}
  802. */
  803. /** @defgroup HRTIM_Timer_Burst_Mode HRTIM Timer Burst Mode
  804. * @{
  805. * @brief Constants defining how the timer behaves during a burst
  806. mode operation.
  807. */
  808. #define HRTIM_TIMERBURSTMODE_MAINTAINCLOCK 0x00000000U /*!< Timer counter clock is maintained and the timer operates normally */
  809. #define HRTIM_TIMERBURSTMODE_RESETCOUNTER (HRTIM_BMCR_MTBM) /*!< Timer counter clock is stopped and the counter is reset */
  810. /**
  811. * @}
  812. */
  813. /** @defgroup HRTIM_Timer_UpDown_Mode HRTIM Timer UpDown Mode
  814. * @{
  815. * @brief Constants defining how the timer counter operates
  816. */
  817. #define HRTIM_TIMERUPDOWNMODE_UP 0x00000000U /*!< Timer counter is operating in up-counting mode */
  818. #define HRTIM_TIMERUPDOWNMODE_UPDOWN 0x00000001U /*!< Timer counter is operating in up-down counting mode */
  819. /**
  820. * @}
  821. */
  822. /** @defgroup HRTIM_Timer_TrigHalf_Mode HRTIM Timer Triggered-Half Mode
  823. * @{
  824. * @brief Constants defining how the timer counter operates
  825. */
  826. #define HRTIM_TIMERTRIGHALF_DISABLED 0x00000000U /*!< Timer Compare 2 register is behaving in standard mode */
  827. #define HRTIM_TIMERTRIGHALF_ENABLED (HRTIM_TIMCR2_TRGHLF) /*!< Timer Compare 2 register is behaving in triggered-half mode */
  828. /**
  829. * @}
  830. */
  831. /** @defgroup HRTIM_Timer_GreaterCMP3_Mode HRTIM Timer Greater than Compare 3 PWM Mode
  832. * @{
  833. * @brief Constants defining how the timer compare operates
  834. */
  835. #define HRTIM_TIMERGTCMP3_EQUAL 0x00000000U /*!< Timer Compare 3 event is generated when counter is equal */
  836. #define HRTIM_TIMERGTCMP3_GREATER (HRTIM_TIMCR2_GTCMP3) /*!< Timer Compare 3 Reset event is generated when counter is greater */
  837. /**
  838. * @}
  839. */
  840. /** @defgroup HRTIM_Timer_GreaterCMP1_Mode HRTIM Timer Greater than Compare 1 PWM Mode
  841. * @{
  842. * @brief Constants defining how the timer compare operates
  843. */
  844. #define HRTIM_TIMERGTCMP1_EQUAL 0x00000000U /*!< Timer Compare 1 event is generated when counter is equal */
  845. #define HRTIM_TIMERGTCMP1_GREATER (HRTIM_TIMCR2_GTCMP1) /*!< Timer Compare 1 event is generated when counter is greater */
  846. /**
  847. * @}
  848. */
  849. /** @defgroup HRTIM_Timer_DualChannelDac_Reset HRTIM Dual Channel Dac Reset Trigger
  850. * @{
  851. * @brief Constants defining when the hrtim_dac_reset_trgx trigger is generated
  852. */
  853. #define HRTIM_TIMER_DCDR_COUNTER 0x00000000U /*!< the trigger is generated on counter reset or roll-over event */
  854. #define HRTIM_TIMER_DCDR_OUT1SET (HRTIM_TIMCR2_DCDR) /*!< the trigger is generated on output 1 set event */
  855. /**
  856. * @}
  857. */
  858. /** @defgroup HRTIM_Timer_DualChannelDac_Step HRTIM Dual Channel Dac Step Trigger
  859. * @{
  860. * @brief Constants defining when the hrtim_dac_step_trgx trigger is generated
  861. is generated
  862. */
  863. #define HRTIM_TIMER_DCDS_CMP2 0x00000000U /*!< the trigger is generated on compare 2 event */
  864. #define HRTIM_TIMER_DCDS_OUT1RST (HRTIM_TIMCR2_DCDS) /*!< the trigger is generated on output 1 reset event */
  865. /**
  866. * @}
  867. */
  868. /** @defgroup HRTIM_Timer_DualChannelDac_Enable HRTIM Dual Channel DAC Trigger Enable
  869. * @{
  870. * @brief Constants enabling the dual channel DAC triggering mechanism
  871. */
  872. #define HRTIM_TIMER_DCDE_DISABLED 0x00000000U /*!< the Dual channel DAC trigger is disabled */
  873. #define HRTIM_TIMER_DCDE_ENABLED (HRTIM_TIMCR2_DCDE) /*!< the Dual channel DAC trigger is enabled */
  874. /**
  875. * @}
  876. */
  877. /** @defgroup HRTIM_Timer_Repetition_Update HRTIM Timer Repetition Update
  878. * @{
  879. * @brief Constants defining whether registers are updated when the timer
  880. * repetition period is completed (either due to roll-over or
  881. * reset events)
  882. */
  883. #define HRTIM_UPDATEONREPETITION_DISABLED 0x00000000U /*!< Update on repetition disabled */
  884. #define HRTIM_UPDATEONREPETITION_ENABLED (HRTIM_MCR_MREPU) /*!< Update on repetition enabled */
  885. /**
  886. * @}
  887. */
  888. /** @defgroup HRTIM_Timer_Push_Pull_Mode HRTIM Timer Push Pull Mode
  889. * @{
  890. * @brief Constants defining whether or not the push-pull mode is enabled for
  891. * a timer.
  892. */
  893. #define HRTIM_TIMPUSHPULLMODE_DISABLED 0x00000000U /*!< Push-Pull mode disabled */
  894. #define HRTIM_TIMPUSHPULLMODE_ENABLED (HRTIM_TIMCR_PSHPLL) /*!< Push-Pull mode enabled */
  895. /**
  896. * @}
  897. */
  898. /** @defgroup HRTIM_Timer_Fault_Enabling HRTIM Timer Fault Enabling
  899. * @{
  900. * @brief Constants defining whether a fault channel is enabled for a timer
  901. */
  902. #define HRTIM_TIMFAULTENABLE_NONE 0x00000000U /*!< No fault enabled */
  903. #define HRTIM_TIMFAULTENABLE_FAULT1 (HRTIM_FLTR_FLT1EN) /*!< Fault 1 enabled */
  904. #define HRTIM_TIMFAULTENABLE_FAULT2 (HRTIM_FLTR_FLT2EN) /*!< Fault 2 enabled */
  905. #define HRTIM_TIMFAULTENABLE_FAULT3 (HRTIM_FLTR_FLT3EN) /*!< Fault 3 enabled */
  906. #define HRTIM_TIMFAULTENABLE_FAULT4 (HRTIM_FLTR_FLT4EN) /*!< Fault 4 enabled */
  907. #define HRTIM_TIMFAULTENABLE_FAULT5 (HRTIM_FLTR_FLT5EN) /*!< Fault 5 enabled */
  908. #define HRTIM_TIMFAULTENABLE_FAULT6 (HRTIM_FLTR_FLT6EN) /*!< Fault 6 enabled */
  909. /**
  910. * @}
  911. */
  912. /** @defgroup HRTIM_Timer_Fault_Lock HRTIM Timer Fault Lock
  913. * @{
  914. * @brief Constants defining whether or not fault enabling bits are write
  915. * protected for a timer
  916. */
  917. #define HRTIM_TIMFAULTLOCK_READWRITE (0x00000000U) /*!< Timer fault enabling bits are read/write */
  918. #define HRTIM_TIMFAULTLOCK_READONLY (HRTIM_FLTR_FLTLCK) /*!< Timer fault enabling bits are read only */
  919. /**
  920. * @}
  921. */
  922. /** @defgroup HRTIM_Timer_Deadtime_Insertion HRTIM Timer Dead-time Insertion
  923. * @{
  924. * @brief Constants defining whether or not fault the dead time insertion
  925. * feature is enabled for a timer
  926. */
  927. #define HRTIM_TIMDEADTIMEINSERTION_DISABLED (0x00000000U) /*!< Output 1 and output 2 signals are independent */
  928. #define HRTIM_TIMDEADTIMEINSERTION_ENABLED HRTIM_OUTR_DTEN /*!< Dead-time is inserted between output 1 and output 2U */
  929. /**
  930. * @}
  931. */
  932. /** @defgroup HRTIM_Timer_Delayed_Protection_Mode HRTIM Timer Delayed Protection Mode
  933. * @{
  934. * @brief Constants defining all possible delayed protection modes
  935. * for a timer. Also define the source and outputs on which the delayed
  936. * protection schemes are applied
  937. */
  938. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED (0x00000000U) /*!< No action */
  939. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6 (HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 delayed Idle on external Event 6U */
  940. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_EEV6 (HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 2 delayed Idle on external Event 6U */
  941. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV6 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 and output 2 delayed Idle on external Event 6U */
  942. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV6 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Balanced Idle on external Event 6U */
  943. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_DEEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 delayed Idle on external Event 7U */
  944. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_DEEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 2 delayed Idle on external Event 7U */
  945. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Output 1 and output2 delayed Idle on external Event 7U */
  946. #define HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV7 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers A, B, C: Balanced Idle on external Event 7U */
  947. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DISABLED (0x00000000U) /*!< No action */
  948. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT1_EEV8 (HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 delayed Idle on external Event 6U */
  949. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT2_EEV8 (HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 2 delayed Idle on external Event 6U */
  950. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDBOTH_EEV8 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 and output 2 delayed Idle on external Event 6U */
  951. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_BALANCED_EEV8 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Balanced Idle on external Event 6U */
  952. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT1_DEEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 delayed Idle on external Event 7U */
  953. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDOUT2_DEEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 2 delayed Idle on external Event 7U */
  954. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_DELAYEDBOTH_EEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Output 1 and output2 delayed Idle on external Event 7U */
  955. #define HRTIM_TIMER_D_E_DELAYEDPROTECTION_BALANCED_EEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers D, E: Balanced Idle on external Event 7U */
  956. #define HRTIM_TIMER_F_DELAYEDPROTECTION_DISABLED (0x00000000U) /*!< No action */
  957. #define HRTIM_TIMER_F_DELAYEDPROTECTION_DELAYEDOUT1_EEV8 (HRTIM_OUTR_DLYPRTEN) /*!< Timers F: Output 1 delayed Idle on external Event 6U */
  958. #define HRTIM_TIMER_F_DELAYEDPROTECTION_DELAYEDOUT2_EEV8 (HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers F: Output 2 delayed Idle on external Event 6U */
  959. #define HRTIM_TIMER_F_DELAYEDPROTECTION_DELAYEDBOTH_EEV8 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers F: Output 1 and output 2 delayed Idle on external Event 6U */
  960. #define HRTIM_TIMER_F_DELAYEDPROTECTION_BALANCED_EEV8 (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers F: Balanced Idle on external Event 6U */
  961. #define HRTIM_TIMER_F_DELAYEDPROTECTION_DELAYEDOUT1_DEEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRTEN) /*!< Timers F: Output 1 delayed Idle on external Event 7U */
  962. #define HRTIM_TIMER_F_DELAYEDPROTECTION_DELAYEDOUT2_DEEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers F: Output 2 delayed Idle on external Event 7U */
  963. #define HRTIM_TIMER_F_DELAYEDPROTECTION_DELAYEDBOTH_EEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRTEN) /*!< Timers F: Output 1 and output2 delayed Idle on external Event 7U */
  964. #define HRTIM_TIMER_F_DELAYEDPROTECTION_BALANCED_EEV9 (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0 | HRTIM_OUTR_DLYPRTEN) /*!< Timers F: Balanced Idle on external Event 7U */
  965. /**
  966. * @}
  967. */
  968. /** @defgroup HRTIM_Timer_Update_Trigger HRTIM Timer Update Trigger
  969. * @{
  970. * @brief Constants defining whether the registers update is done synchronously
  971. * with any other timer or master update
  972. */
  973. #define HRTIM_TIMUPDATETRIGGER_NONE 0x00000000U /*!< Register update is disabled */
  974. #define HRTIM_TIMUPDATETRIGGER_MASTER (HRTIM_TIMCR_MSTU) /*!< Register update is triggered by the master timer update */
  975. #define HRTIM_TIMUPDATETRIGGER_TIMER_A (HRTIM_TIMCR_TAU) /*!< Register update is triggered by the timer A update */
  976. #define HRTIM_TIMUPDATETRIGGER_TIMER_B (HRTIM_TIMCR_TBU) /*!< Register update is triggered by the timer B update */
  977. #define HRTIM_TIMUPDATETRIGGER_TIMER_C (HRTIM_TIMCR_TCU) /*!< Register update is triggered by the timer C update*/
  978. #define HRTIM_TIMUPDATETRIGGER_TIMER_D (HRTIM_TIMCR_TDU) /*!< Register update is triggered by the timer D update */
  979. #define HRTIM_TIMUPDATETRIGGER_TIMER_E (HRTIM_TIMCR_TEU) /*!< Register update is triggered by the timer E update */
  980. #define HRTIM_TIMUPDATETRIGGER_TIMER_F (HRTIM_TIMCR_TFU) /*!< Register update is triggered by the timer F update */
  981. /**
  982. * @}
  983. */
  984. /** @defgroup HRTIM_Timer_Reset_Trigger HRTIM Timer Reset Trigger
  985. * @{
  986. * @brief Constants defining the events that can be selected to trigger the reset
  987. * of the timer counter
  988. */
  989. #define HRTIM_TIMRESETTRIGGER_NONE 0x00000000U /*!< No counter reset trigger */
  990. #define HRTIM_TIMRESETTRIGGER_UPDATE (HRTIM_RSTR_UPDATE) /*!< The timer counter is reset upon update event */
  991. #define HRTIM_TIMRESETTRIGGER_CMP2 (HRTIM_RSTR_CMP2) /*!< The timer counter is reset upon Timer Compare 2 event */
  992. #define HRTIM_TIMRESETTRIGGER_CMP4 (HRTIM_RSTR_CMP4) /*!< The timer counter is reset upon Timer Compare 4 event */
  993. #define HRTIM_TIMRESETTRIGGER_MASTER_PER (HRTIM_RSTR_MSTPER) /*!< The timer counter is reset upon master timer period event */
  994. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP1 (HRTIM_RSTR_MSTCMP1) /*!< The timer counter is reset upon master timer Compare 1 event */
  995. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP2 (HRTIM_RSTR_MSTCMP2) /*!< The timer counter is reset upon master timer Compare 2 event */
  996. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP3 (HRTIM_RSTR_MSTCMP3) /*!< The timer counter is reset upon master timer Compare 3 event */
  997. #define HRTIM_TIMRESETTRIGGER_MASTER_CMP4 (HRTIM_RSTR_MSTCMP4) /*!< The timer counter is reset upon master timer Compare 4 event */
  998. #define HRTIM_TIMRESETTRIGGER_EEV_1 (HRTIM_RSTR_EXTEVNT1) /*!< The timer counter is reset upon external event 1U */
  999. #define HRTIM_TIMRESETTRIGGER_EEV_2 (HRTIM_RSTR_EXTEVNT2) /*!< The timer counter is reset upon external event 2U */
  1000. #define HRTIM_TIMRESETTRIGGER_EEV_3 (HRTIM_RSTR_EXTEVNT3) /*!< The timer counter is reset upon external event 3U */
  1001. #define HRTIM_TIMRESETTRIGGER_EEV_4 (HRTIM_RSTR_EXTEVNT4) /*!< The timer counter is reset upon external event 4U */
  1002. #define HRTIM_TIMRESETTRIGGER_EEV_5 (HRTIM_RSTR_EXTEVNT5) /*!< The timer counter is reset upon external event 5U */
  1003. #define HRTIM_TIMRESETTRIGGER_EEV_6 (HRTIM_RSTR_EXTEVNT6) /*!< The timer counter is reset upon external event 6U */
  1004. #define HRTIM_TIMRESETTRIGGER_EEV_7 (HRTIM_RSTR_EXTEVNT7) /*!< The timer counter is reset upon external event 7U */
  1005. #define HRTIM_TIMRESETTRIGGER_EEV_8 (HRTIM_RSTR_EXTEVNT8) /*!< The timer counter is reset upon external event 8U */
  1006. #define HRTIM_TIMRESETTRIGGER_EEV_9 (HRTIM_RSTR_EXTEVNT9) /*!< The timer counter is reset upon external event 9U */
  1007. #define HRTIM_TIMRESETTRIGGER_EEV_10 (HRTIM_RSTR_EXTEVNT10) /*!< The timer counter is reset upon external event 10U */
  1008. #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP1 (HRTIM_RSTR_TIMBCMP1) /*!< The timer counter is reset upon other timer Compare 1 event */
  1009. #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP2 (HRTIM_RSTR_TIMBCMP2) /*!< The timer counter is reset upon other timer Compare 2 event */
  1010. #define HRTIM_TIMRESETTRIGGER_OTHER1_CMP4 (HRTIM_RSTR_TIMBCMP4) /*!< The timer counter is reset upon other timer Compare 4 event */
  1011. #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP1 (HRTIM_RSTR_TIMCCMP1) /*!< The timer counter is reset upon other timer Compare 1 event */
  1012. #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP2 (HRTIM_RSTR_TIMCCMP2) /*!< The timer counter is reset upon other timer Compare 2 event */
  1013. #define HRTIM_TIMRESETTRIGGER_OTHER2_CMP4 (HRTIM_RSTR_TIMCCMP4) /*!< The timer counter is reset upon other timer Compare 4 event */
  1014. #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP1 (HRTIM_RSTR_TIMDCMP1) /*!< The timer counter is reset upon other timer Compare 1 event */
  1015. #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP2 (HRTIM_RSTR_TIMDCMP2) /*!< The timer counter is reset upon other timer Compare 2 event */
  1016. #define HRTIM_TIMRESETTRIGGER_OTHER3_CMP4 (HRTIM_RSTR_TIMDCMP4) /*!< The timer counter is reset upon other timer Compare 4 event */
  1017. #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP1 (HRTIM_RSTR_TIMECMP1) /*!< The timer counter is reset upon other timer Compare 1 event */
  1018. #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP2 (HRTIM_RSTR_TIMECMP2) /*!< The timer counter is reset upon other timer Compare 2 event */
  1019. #define HRTIM_TIMRESETTRIGGER_OTHER4_CMP4 (HRTIM_RSTR_TIMECMP4) /*!< The timer counter is reset upon other timer Compare 4 event */
  1020. #define HRTIM_TIMRESETTRIGGER_OTHER5_CMP1 (HRTIM_RSTR_TIMFCMP1) /*!< The timer counter is reset upon other timer Compare 1 event */
  1021. #define HRTIM_TIMRESETTRIGGER_OTHER5_CMP2 (HRTIM_RSTR_TIMFCMP2) /*!< The timer counter is reset upon other timer Compare 2 event */
  1022. /**
  1023. * @}
  1024. */
  1025. /** @defgroup HRTIM_Timer_Reset_Update HRTIM Timer Reset Update
  1026. * @{
  1027. * @brief Constants defining whether the register are updated upon Timerx
  1028. * counter reset or roll-over to 0 after reaching the period value
  1029. * in continuous mode
  1030. */
  1031. #define HRTIM_TIMUPDATEONRESET_DISABLED 0x00000000U /*!< Update by timer x reset / roll-over disabled */
  1032. #define HRTIM_TIMUPDATEONRESET_ENABLED (HRTIM_TIMCR_TRSTU) /*!< Update by timer x reset / roll-over enabled */
  1033. /**
  1034. * @}
  1035. */
  1036. /** @defgroup HRTIM_Timer_RollOver_Mode HRTIM Timer RollOver Mode
  1037. * @{
  1038. * @brief Constants defining when the roll-over is generated upon Timerx
  1039. * event generated when the counter is equal to 0 ('VALLEY' mode) or to HRTIM_PERxR value ('CREST' mode) or BOTH
  1040. * This setting only applies when the UDM bit is set. It is not significant otherwise.
  1041. */
  1042. #define HRTIM_TIM_FEROM_BOTH 0x00000000U /*!< Roll-over event used by */
  1043. #define HRTIM_TIM_FEROM_CREST (HRTIM_TIMCR2_FEROM_1) /*!< the Fault and */
  1044. #define HRTIM_TIM_FEROM_VALLEY (HRTIM_TIMCR2_FEROM_0) /*!< Event counters */
  1045. #define HRTIM_TIM_BMROM_BOTH 0x00000000U /*!< Roll-over event used in the Burst mode controller */
  1046. #define HRTIM_TIM_BMROM_CREST (HRTIM_TIMCR2_BMROM_1) /*!< as clock */
  1047. #define HRTIM_TIM_BMROM_VALLEY (HRTIM_TIMCR2_BMROM_0) /*!< and as burst mode trigger */
  1048. #define HRTIM_TIM_ADROM_BOTH 0x00000000U /*!< Roll-over event which triggers */
  1049. #define HRTIM_TIM_ADROM_CREST (HRTIM_TIMCR2_ADROM_1) /*!< the */
  1050. #define HRTIM_TIM_ADROM_VALLEY (HRTIM_TIMCR2_ADROM_0) /*!< ADC */
  1051. #define HRTIM_TIM_OUTROM_BOTH 0x00000000U /*!< Roll-over event which sets and/or resets the outputs */
  1052. #define HRTIM_TIM_OUTROM_CREST (HRTIM_TIMCR2_OUTROM_1) /*!< as per HRTIM_SETxyR */
  1053. #define HRTIM_TIM_OUTROM_VALLEY (HRTIM_TIMCR2_OUTROM_0) /*!< and HRTIM_RSTxyR settings */
  1054. #define HRTIM_TIM_ROM_BOTH 0x00000000U /*!< Roll-over event with the following destinations: IRQ and DMA requests,*/
  1055. #define HRTIM_TIM_ROM_CREST (HRTIM_TIMCR2_ROM_1) /*!< Update trigger (to transfer content from preload to active registers), */
  1056. #define HRTIM_TIM_ROM_VALLEY (HRTIM_TIMCR2_ROM_0) /*!< repetition counter decrement and External Event filtering */
  1057. #define IS_HRTIM_ROLLOVERMODE(ROLLOVER)\
  1058. ((((ROLLOVER) == HRTIM_TIM_FEROM_BOTH) || ((ROLLOVER) == HRTIM_TIM_FEROM_CREST) || ((ROLLOVER) == HRTIM_TIM_FEROM_VALLEY)) ||\
  1059. (((ROLLOVER) == HRTIM_TIM_ADROM_BOTH) || ((ROLLOVER) == HRTIM_TIM_ADROM_CREST) || ((ROLLOVER) == HRTIM_TIM_ADROM_VALLEY)) ||\
  1060. (((ROLLOVER) == HRTIM_TIM_BMROM_BOTH) || ((ROLLOVER) == HRTIM_TIM_BMROM_CREST) || ((ROLLOVER) == HRTIM_TIM_BMROM_VALLEY)) ||\
  1061. (((ROLLOVER) == HRTIM_TIM_OUTROM_BOTH) || ((ROLLOVER) == HRTIM_TIM_OUTROM_CREST) || ((ROLLOVER) == HRTIM_TIM_OUTROM_VALLEY)) ||\
  1062. (((ROLLOVER) == HRTIM_TIM_ROM_BOTH) || ((ROLLOVER) == HRTIM_TIM_ROM_CREST) || ((ROLLOVER) == HRTIM_TIM_ROM_VALLEY)))
  1063. /**
  1064. * @}
  1065. */
  1066. /** @defgroup HRTIM_Compare_Unit_Auto_Delayed_Mode HRTIM Compare Unit Auto Delayed Mode
  1067. * @{
  1068. * @brief Constants defining whether the compare register is behaving in
  1069. * regular mode (compare match issued as soon as counter equal compare),
  1070. * or in auto-delayed mode
  1071. */
  1072. #define HRTIM_AUTODELAYEDMODE_REGULAR (0x00000000U) /*!< standard compare mode */
  1073. #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT (HRTIM_TIMCR_DELCMP2_0) /*!< Compare event generated only if a capture has occurred */
  1074. #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1 (HRTIM_TIMCR_DELCMP2_1) /*!< Compare event generated if a capture has occurred or after a Compare 1 match (timeout if capture event is missing) */
  1075. #define HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3 (HRTIM_TIMCR_DELCMP2_1 | HRTIM_TIMCR_DELCMP2_0) /*!< Compare event generated if a capture has occurred or after a Compare 3 match (timeout if capture event is missing) */
  1076. /**
  1077. * @}
  1078. */
  1079. /** @defgroup HRTIM_Simple_OC_Mode HRTIM Simple OC Mode
  1080. * @{
  1081. * @brief Constants defining the behavior of the output signal when the timer
  1082. operates in basic output compare mode
  1083. */
  1084. #define HRTIM_BASICOCMODE_TOGGLE (0x00000001U) /*!< Output toggles when the timer counter reaches the compare value */
  1085. #define HRTIM_BASICOCMODE_INACTIVE (0x00000002U) /*!< Output forced to active level when the timer counter reaches the compare value */
  1086. #define HRTIM_BASICOCMODE_ACTIVE (0x00000003U) /*!< Output forced to inactive level when the timer counter reaches the compare value */
  1087. #define IS_HRTIM_BASICOCMODE(BASICOCMODE)\
  1088. (((BASICOCMODE) == HRTIM_BASICOCMODE_TOGGLE) || \
  1089. ((BASICOCMODE) == HRTIM_BASICOCMODE_INACTIVE) || \
  1090. ((BASICOCMODE) == HRTIM_BASICOCMODE_ACTIVE))
  1091. /**
  1092. * @}
  1093. */
  1094. /** @defgroup HRTIM_Output_Polarity HRTIM Output Polarity
  1095. * @{
  1096. * @brief Constants defining the polarity of a timer output
  1097. */
  1098. #define HRTIM_OUTPUTPOLARITY_HIGH (0x00000000U) /*!< Output is active HIGH */
  1099. #define HRTIM_OUTPUTPOLARITY_LOW (HRTIM_OUTR_POL1) /*!< Output is active LOW */
  1100. /**
  1101. * @}
  1102. */
  1103. /** @defgroup HRTIM_Output_Set_Source HRTIM Output Set Source
  1104. * @{
  1105. * @brief Constants defining the events that can be selected to configure the
  1106. * set crossbar of a timer output
  1107. */
  1108. #define HRTIM_OUTPUTSET_NONE 0x00000000U /*!< Reset the output set crossbar */
  1109. #define HRTIM_OUTPUTSET_RESYNC (HRTIM_SET1R_RESYNC) /*!< Timer reset event coming solely from software or SYNC input forces the output to its active state */
  1110. #define HRTIM_OUTPUTSET_TIMPER (HRTIM_SET1R_PER) /*!< Timer period event forces the output to its active state */
  1111. #define HRTIM_OUTPUTSET_TIMCMP1 (HRTIM_SET1R_CMP1) /*!< Timer compare 1 event forces the output to its active state */
  1112. #define HRTIM_OUTPUTSET_TIMCMP2 (HRTIM_SET1R_CMP2) /*!< Timer compare 2 event forces the output to its active state */
  1113. #define HRTIM_OUTPUTSET_TIMCMP3 (HRTIM_SET1R_CMP3) /*!< Timer compare 3 event forces the output to its active state */
  1114. #define HRTIM_OUTPUTSET_TIMCMP4 (HRTIM_SET1R_CMP4) /*!< Timer compare 4 event forces the output to its active state */
  1115. #define HRTIM_OUTPUTSET_MASTERPER (HRTIM_SET1R_MSTPER) /*!< The master timer period event forces the output to its active state */
  1116. #define HRTIM_OUTPUTSET_MASTERCMP1 (HRTIM_SET1R_MSTCMP1) /*!< Master Timer compare 1 event forces the output to its active state */
  1117. #define HRTIM_OUTPUTSET_MASTERCMP2 (HRTIM_SET1R_MSTCMP2) /*!< Master Timer compare 2 event forces the output to its active state */
  1118. #define HRTIM_OUTPUTSET_MASTERCMP3 (HRTIM_SET1R_MSTCMP3) /*!< Master Timer compare 3 event forces the output to its active state */
  1119. #define HRTIM_OUTPUTSET_MASTERCMP4 (HRTIM_SET1R_MSTCMP4) /*!< Master Timer compare 4 event forces the output to its active state */
  1120. /* Timer Events mapping for Timer A */
  1121. #define HRTIM_OUTPUTSET_TIMAEV1_TIMBCMP1 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  1122. #define HRTIM_OUTPUTSET_TIMAEV2_TIMBCMP2 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  1123. #define HRTIM_OUTPUTSET_TIMAEV3_TIMCCMP2 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  1124. #define HRTIM_OUTPUTSET_TIMAEV4_TIMCCMP3 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  1125. #define HRTIM_OUTPUTSET_TIMAEV5_TIMDCMP1 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  1126. #define HRTIM_OUTPUTSET_TIMAEV6_TIMDCMP2 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  1127. #define HRTIM_OUTPUTSET_TIMAEV7_TIMECMP3 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  1128. #define HRTIM_OUTPUTSET_TIMAEV8_TIMECMP4 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  1129. #define HRTIM_OUTPUTSET_TIMAEV9_TIMFCMP4 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  1130. /* Timer Events mapping for Timer B */
  1131. #define HRTIM_OUTPUTSET_TIMBEV1_TIMACMP1 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  1132. #define HRTIM_OUTPUTSET_TIMBEV2_TIMACMP2 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  1133. #define HRTIM_OUTPUTSET_TIMBEV3_TIMCCMP3 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  1134. #define HRTIM_OUTPUTSET_TIMBEV4_TIMCCMP4 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  1135. #define HRTIM_OUTPUTSET_TIMBEV5_TIMDCMP3 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  1136. #define HRTIM_OUTPUTSET_TIMBEV6_TIMDCMP4 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  1137. #define HRTIM_OUTPUTSET_TIMBEV7_TIMECMP1 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  1138. #define HRTIM_OUTPUTSET_TIMBEV8_TIMECMP2 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  1139. #define HRTIM_OUTPUTSET_TIMBEV9_TIMFCMP3 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  1140. /* Timer Events mapping for Timer C */
  1141. #define HRTIM_OUTPUTSET_TIMCEV1_TIMACMP2 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  1142. #define HRTIM_OUTPUTSET_TIMCEV2_TIMACMP3 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  1143. #define HRTIM_OUTPUTSET_TIMCEV3_TIMBCMP2 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  1144. #define HRTIM_OUTPUTSET_TIMCEV4_TIMBCMP3 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  1145. #define HRTIM_OUTPUTSET_TIMCEV5_TIMDCMP2 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  1146. #define HRTIM_OUTPUTSET_TIMCEV6_TIMDCMP4 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  1147. #define HRTIM_OUTPUTSET_TIMCEV7_TIMECMP3 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  1148. #define HRTIM_OUTPUTSET_TIMCEV8_TIMECMP4 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  1149. #define HRTIM_OUTPUTSET_TIMCEV9_TIMFCMP2 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  1150. /* Timer Events mapping for Timer D */
  1151. #define HRTIM_OUTPUTSET_TIMDEV1_TIMACMP1 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  1152. #define HRTIM_OUTPUTSET_TIMDEV2_TIMACMP4 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  1153. #define HRTIM_OUTPUTSET_TIMDEV3_TIMBCMP2 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  1154. #define HRTIM_OUTPUTSET_TIMDEV4_TIMBCMP4 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  1155. #define HRTIM_OUTPUTSET_TIMDEV5_TIMCCMP4 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  1156. #define HRTIM_OUTPUTSET_TIMDEV6_TIMECMP1 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  1157. #define HRTIM_OUTPUTSET_TIMDEV7_TIMECMP4 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  1158. #define HRTIM_OUTPUTSET_TIMDEV8_TIMFCMP1 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  1159. #define HRTIM_OUTPUTSET_TIMDEV9_TIMFCMP3 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  1160. /* Timer Events mapping for Timer E */
  1161. #define HRTIM_OUTPUTSET_TIMEEV1_TIMACMP4 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  1162. #define HRTIM_OUTPUTSET_TIMEEV2_TIMBCMP3 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  1163. #define HRTIM_OUTPUTSET_TIMEEV3_TIMBCMP4 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  1164. #define HRTIM_OUTPUTSET_TIMEEV4_TIMCCMP1 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  1165. #define HRTIM_OUTPUTSET_TIMEEV5_TIMCCMP2 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  1166. #define HRTIM_OUTPUTSET_TIMEEV6_TIMDCMP1 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  1167. #define HRTIM_OUTPUTSET_TIMEEV7_TIMDCMP2 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  1168. #define HRTIM_OUTPUTSET_TIMEEV8_TIMFCMP3 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  1169. #define HRTIM_OUTPUTSET_TIMEEV9_TIMFCMP4 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  1170. /* Timer Events mapping for Timer F */
  1171. #define HRTIM_OUTPUTSET_TIMFEV1_TIMACMP3 (HRTIM_SET1R_TIMEVNT1) /*!< Timer event 1 forces the output to its active state */
  1172. #define HRTIM_OUTPUTSET_TIMFEV2_TIMBCMP1 (HRTIM_SET1R_TIMEVNT2) /*!< Timer event 2 forces the output to its active state */
  1173. #define HRTIM_OUTPUTSET_TIMFEV3_TIMBCMP4 (HRTIM_SET1R_TIMEVNT3) /*!< Timer event 3 forces the output to its active state */
  1174. #define HRTIM_OUTPUTSET_TIMFEV4_TIMCCMP1 (HRTIM_SET1R_TIMEVNT4) /*!< Timer event 4 forces the output to its active state */
  1175. #define HRTIM_OUTPUTSET_TIMFEV5_TIMCCMP4 (HRTIM_SET1R_TIMEVNT5) /*!< Timer event 5 forces the output to its active state */
  1176. #define HRTIM_OUTPUTSET_TIMFEV6_TIMDCMP3 (HRTIM_SET1R_TIMEVNT6) /*!< Timer event 6 forces the output to its active state */
  1177. #define HRTIM_OUTPUTSET_TIMFEV7_TIMDCMP4 (HRTIM_SET1R_TIMEVNT7) /*!< Timer event 7 forces the output to its active state */
  1178. #define HRTIM_OUTPUTSET_TIMFEV8_TIMECMP2 (HRTIM_SET1R_TIMEVNT8) /*!< Timer event 8 forces the output to its active state */
  1179. #define HRTIM_OUTPUTSET_TIMFEV9_TIMECMP3 (HRTIM_SET1R_TIMEVNT9) /*!< Timer event 9 forces the output to its active state */
  1180. #define HRTIM_OUTPUTSET_EEV_1 (HRTIM_SET1R_EXTVNT1) /*!< External event 1 forces the output to its active state */
  1181. #define HRTIM_OUTPUTSET_EEV_2 (HRTIM_SET1R_EXTVNT2) /*!< External event 2 forces the output to its active state */
  1182. #define HRTIM_OUTPUTSET_EEV_3 (HRTIM_SET1R_EXTVNT3) /*!< External event 3 forces the output to its active state */
  1183. #define HRTIM_OUTPUTSET_EEV_4 (HRTIM_SET1R_EXTVNT4) /*!< External event 4 forces the output to its active state */
  1184. #define HRTIM_OUTPUTSET_EEV_5 (HRTIM_SET1R_EXTVNT5) /*!< External event 5 forces the output to its active state */
  1185. #define HRTIM_OUTPUTSET_EEV_6 (HRTIM_SET1R_EXTVNT6) /*!< External event 6 forces the output to its active state */
  1186. #define HRTIM_OUTPUTSET_EEV_7 (HRTIM_SET1R_EXTVNT7) /*!< External event 7 forces the output to its active state */
  1187. #define HRTIM_OUTPUTSET_EEV_8 (HRTIM_SET1R_EXTVNT8) /*!< External event 8 forces the output to its active state */
  1188. #define HRTIM_OUTPUTSET_EEV_9 (HRTIM_SET1R_EXTVNT9) /*!< External event 9 forces the output to its active state */
  1189. #define HRTIM_OUTPUTSET_EEV_10 (HRTIM_SET1R_EXTVNT10) /*!< External event 10 forces the output to its active state */
  1190. #define HRTIM_OUTPUTSET_UPDATE (HRTIM_SET1R_UPDATE) /*!< Timer register update event forces the output to its active state */
  1191. /**
  1192. * @}
  1193. */
  1194. /** @defgroup HRTIM_Output_Reset_Source HRTIM Output Reset Source
  1195. * @{
  1196. * @brief Constants defining the events that can be selected to configure the
  1197. * reset crossbar of a timer output
  1198. */
  1199. #define HRTIM_OUTPUTRESET_NONE 0x00000000U /*!< Reset the output reset crossbar */
  1200. #define HRTIM_OUTPUTRESET_RESYNC (HRTIM_RST1R_RESYNC) /*!< Timer reset event coming solely from software or SYNC input forces the output to its inactive state */
  1201. #define HRTIM_OUTPUTRESET_TIMPER (HRTIM_RST1R_PER) /*!< Timer period event forces the output to its inactive state */
  1202. #define HRTIM_OUTPUTRESET_TIMCMP1 (HRTIM_RST1R_CMP1) /*!< Timer compare 1 event forces the output to its inactive state */
  1203. #define HRTIM_OUTPUTRESET_TIMCMP2 (HRTIM_RST1R_CMP2) /*!< Timer compare 2 event forces the output to its inactive state */
  1204. #define HRTIM_OUTPUTRESET_TIMCMP3 (HRTIM_RST1R_CMP3) /*!< Timer compare 3 event forces the output to its inactive state */
  1205. #define HRTIM_OUTPUTRESET_TIMCMP4 (HRTIM_RST1R_CMP4) /*!< Timer compare 4 event forces the output to its inactive state */
  1206. #define HRTIM_OUTPUTRESET_MASTERPER (HRTIM_RST1R_MSTPER) /*!< The master timer period event forces the output to its inactive state */
  1207. #define HRTIM_OUTPUTRESET_MASTERCMP1 (HRTIM_RST1R_MSTCMP1) /*!< Master Timer compare 1 event forces the output to its inactive state */
  1208. #define HRTIM_OUTPUTRESET_MASTERCMP2 (HRTIM_RST1R_MSTCMP2) /*!< Master Timer compare 2 event forces the output to its inactive state */
  1209. #define HRTIM_OUTPUTRESET_MASTERCMP3 (HRTIM_RST1R_MSTCMP3) /*!< Master Timer compare 3 event forces the output to its inactive state */
  1210. #define HRTIM_OUTPUTRESET_MASTERCMP4 (HRTIM_RST1R_MSTCMP4) /*!< Master Timer compare 4 event forces the output to its inactive state */
  1211. /* Timer Events mapping for Timer A */
  1212. #define HRTIM_OUTPUTRESET_TIMAEV1_TIMBCMP1 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1213. #define HRTIM_OUTPUTRESET_TIMAEV2_TIMBCMP2 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1214. #define HRTIM_OUTPUTRESET_TIMAEV3_TIMCCMP2 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1215. #define HRTIM_OUTPUTRESET_TIMAEV4_TIMCCMP3 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1216. #define HRTIM_OUTPUTRESET_TIMAEV5_TIMDCMP1 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1217. #define HRTIM_OUTPUTRESET_TIMAEV6_TIMDCMP2 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1218. #define HRTIM_OUTPUTRESET_TIMAEV7_TIMECMP3 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1219. #define HRTIM_OUTPUTRESET_TIMAEV8_TIMECMP4 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1220. #define HRTIM_OUTPUTRESET_TIMAEV9_TIMFCMP4 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1221. /* Timer Events mapping for Timer B */
  1222. #define HRTIM_OUTPUTRESET_TIMBEV1_TIMACMP1 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1223. #define HRTIM_OUTPUTRESET_TIMBEV2_TIMACMP2 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1224. #define HRTIM_OUTPUTRESET_TIMBEV3_TIMCCMP3 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1225. #define HRTIM_OUTPUTRESET_TIMBEV4_TIMCCMP4 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1226. #define HRTIM_OUTPUTRESET_TIMBEV5_TIMDCMP3 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1227. #define HRTIM_OUTPUTRESET_TIMBEV6_TIMDCMP4 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1228. #define HRTIM_OUTPUTRESET_TIMBEV7_TIMECMP1 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1229. #define HRTIM_OUTPUTRESET_TIMBEV8_TIMECMP2 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1230. #define HRTIM_OUTPUTRESET_TIMBEV9_TIMFCMP3 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1231. /* Timer Events mapping for Timer C */
  1232. #define HRTIM_OUTPUTRESET_TIMCEV1_TIMACMP2 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1233. #define HRTIM_OUTPUTRESET_TIMCEV2_TIMACMP3 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1234. #define HRTIM_OUTPUTRESET_TIMCEV3_TIMBCMP2 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1235. #define HRTIM_OUTPUTRESET_TIMCEV4_TIMBCMP3 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1236. #define HRTIM_OUTPUTRESET_TIMCEV5_TIMDCMP2 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1237. #define HRTIM_OUTPUTRESET_TIMCEV6_TIMDCMP4 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1238. #define HRTIM_OUTPUTRESET_TIMCEV7_TIMECMP3 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1239. #define HRTIM_OUTPUTRESET_TIMCEV8_TIMECMP4 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1240. #define HRTIM_OUTPUTRESET_TIMCEV9_TIMFCMP2 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1241. /* Timer Events mapping for Timer D */
  1242. #define HRTIM_OUTPUTRESET_TIMDEV1_TIMACMP1 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1243. #define HRTIM_OUTPUTRESET_TIMDEV2_TIMACMP4 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1244. #define HRTIM_OUTPUTRESET_TIMDEV3_TIMBCMP2 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1245. #define HRTIM_OUTPUTRESET_TIMDEV4_TIMBCMP4 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1246. #define HRTIM_OUTPUTRESET_TIMDEV5_TIMCCMP4 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1247. #define HRTIM_OUTPUTRESET_TIMDEV6_TIMECMP1 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1248. #define HRTIM_OUTPUTRESET_TIMDEV7_TIMECMP4 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1249. #define HRTIM_OUTPUTRESET_TIMDEV8_TIMFCMP1 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1250. #define HRTIM_OUTPUTRESET_TIMDEV9_TIMFCMP3 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1251. /* Timer Events mapping for Timer E */
  1252. #define HRTIM_OUTPUTRESET_TIMEEV1_TIMACMP4 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1253. #define HRTIM_OUTPUTRESET_TIMEEV2_TIMBCMP3 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1254. #define HRTIM_OUTPUTRESET_TIMEEV3_TIMBCMP4 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1255. #define HRTIM_OUTPUTRESET_TIMEEV4_TIMCCMP1 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1256. #define HRTIM_OUTPUTRESET_TIMEEV5_TIMCCMP2 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1257. #define HRTIM_OUTPUTRESET_TIMEEV6_TIMDCMP1 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1258. #define HRTIM_OUTPUTRESET_TIMEEV7_TIMDCMP2 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1259. #define HRTIM_OUTPUTRESET_TIMEEV8_TIMFCMP3 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1260. #define HRTIM_OUTPUTRESET_TIMEEV9_TIMFCMP4 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1261. /* Timer Events mapping for Timer F */
  1262. #define HRTIM_OUTPUTRESET_TIMFEV1_TIMACMP3 (HRTIM_RST1R_TIMEVNT1) /*!< Timer event 1 forces the output to its inactive state */
  1263. #define HRTIM_OUTPUTRESET_TIMFEV2_TIMBCMP1 (HRTIM_RST1R_TIMEVNT2) /*!< Timer event 2 forces the output to its inactive state */
  1264. #define HRTIM_OUTPUTRESET_TIMFEV3_TIMBCMP4 (HRTIM_RST1R_TIMEVNT3) /*!< Timer event 3 forces the output to its inactive state */
  1265. #define HRTIM_OUTPUTRESET_TIMFEV4_TIMCCMP1 (HRTIM_RST1R_TIMEVNT4) /*!< Timer event 4 forces the output to its inactive state */
  1266. #define HRTIM_OUTPUTRESET_TIMFEV5_TIMCCMP4 (HRTIM_RST1R_TIMEVNT5) /*!< Timer event 5 forces the output to its inactive state */
  1267. #define HRTIM_OUTPUTRESET_TIMFEV6_TIMDCMP3 (HRTIM_RST1R_TIMEVNT6) /*!< Timer event 6 forces the output to its inactive state */
  1268. #define HRTIM_OUTPUTRESET_TIMFEV7_TIMDCMP4 (HRTIM_RST1R_TIMEVNT7) /*!< Timer event 7 forces the output to its inactive state */
  1269. #define HRTIM_OUTPUTRESET_TIMFEV8_TIMECMP2 (HRTIM_RST1R_TIMEVNT8) /*!< Timer event 8 forces the output to its inactive state */
  1270. #define HRTIM_OUTPUTRESET_TIMFEV9_TIMECMP3 (HRTIM_RST1R_TIMEVNT9) /*!< Timer event 9 forces the output to its inactive state */
  1271. #define HRTIM_OUTPUTRESET_EEV_1 (HRTIM_RST1R_EXTVNT1) /*!< External event 1 forces the output to its inactive state */
  1272. #define HRTIM_OUTPUTRESET_EEV_2 (HRTIM_RST1R_EXTVNT2) /*!< External event 2 forces the output to its inactive state */
  1273. #define HRTIM_OUTPUTRESET_EEV_3 (HRTIM_RST1R_EXTVNT3) /*!< External event 3 forces the output to its inactive state */
  1274. #define HRTIM_OUTPUTRESET_EEV_4 (HRTIM_RST1R_EXTVNT4) /*!< External event 4 forces the output to its inactive state */
  1275. #define HRTIM_OUTPUTRESET_EEV_5 (HRTIM_RST1R_EXTVNT5) /*!< External event 5 forces the output to its inactive state */
  1276. #define HRTIM_OUTPUTRESET_EEV_6 (HRTIM_RST1R_EXTVNT6) /*!< External event 6 forces the output to its inactive state */
  1277. #define HRTIM_OUTPUTRESET_EEV_7 (HRTIM_RST1R_EXTVNT7) /*!< External event 7 forces the output to its inactive state */
  1278. #define HRTIM_OUTPUTRESET_EEV_8 (HRTIM_RST1R_EXTVNT8) /*!< External event 8 forces the output to its inactive state */
  1279. #define HRTIM_OUTPUTRESET_EEV_9 (HRTIM_RST1R_EXTVNT9) /*!< External event 9 forces the output to its inactive state */
  1280. #define HRTIM_OUTPUTRESET_EEV_10 (HRTIM_RST1R_EXTVNT10) /*!< External event 10 forces the output to its inactive state */
  1281. #define HRTIM_OUTPUTRESET_UPDATE (HRTIM_RST1R_UPDATE) /*!< Timer register update event forces the output to its inactive state */
  1282. /**
  1283. * @}
  1284. */
  1285. /** @defgroup HRTIM_Output_Idle_Mode HRTIM Output Idle Mode
  1286. * @{
  1287. * @brief Constants defining whether or not the timer output transition to its
  1288. IDLE state when burst mode is entered
  1289. */
  1290. #define HRTIM_OUTPUTIDLEMODE_NONE 0x00000000U /*!< The output is not affected by the burst mode operation */
  1291. #define HRTIM_OUTPUTIDLEMODE_IDLE (HRTIM_OUTR_IDLM1) /*!< The output is in idle state when requested by the burst mode controller */
  1292. /**
  1293. * @}
  1294. */
  1295. /** @defgroup HRTIM_Output_IDLE_Level HRTIM Output IDLE Level
  1296. * @{
  1297. * @brief Constants defining the output level when output is in IDLE state
  1298. */
  1299. #define HRTIM_OUTPUTIDLELEVEL_INACTIVE 0x00000000U /*!< Output at inactive level when in IDLE state */
  1300. #define HRTIM_OUTPUTIDLELEVEL_ACTIVE (HRTIM_OUTR_IDLES1) /*!< Output at active level when in IDLE state */
  1301. /**
  1302. * @}
  1303. */
  1304. /** @defgroup HRTIM_Output_FAULT_Level HRTIM Output FAULT Level
  1305. * @{
  1306. * @brief Constants defining the output level when output is in FAULT state
  1307. */
  1308. #define HRTIM_OUTPUTFAULTLEVEL_NONE 0x00000000U /*!< The output is not affected by the fault input */
  1309. #define HRTIM_OUTPUTFAULTLEVEL_ACTIVE (HRTIM_OUTR_FAULT1_0) /*!< Output at active level when in FAULT state */
  1310. #define HRTIM_OUTPUTFAULTLEVEL_INACTIVE (HRTIM_OUTR_FAULT1_1) /*!< Output at inactive level when in FAULT state */
  1311. #define HRTIM_OUTPUTFAULTLEVEL_HIGHZ (HRTIM_OUTR_FAULT1_1 | HRTIM_OUTR_FAULT1_0) /*!< Output is tri-stated when in FAULT state */
  1312. /**
  1313. * @}
  1314. */
  1315. /** @defgroup HRTIM_Output_Chopper_Mode_Enable HRTIM Output Chopper Mode Enable
  1316. * @{
  1317. * @brief Constants defining whether or not chopper mode is enabled for a timer
  1318. output
  1319. */
  1320. #define HRTIM_OUTPUTCHOPPERMODE_DISABLED 0x00000000U /*!< Output signal is not altered */
  1321. #define HRTIM_OUTPUTCHOPPERMODE_ENABLED (HRTIM_OUTR_CHP1) /*!< Output signal is chopped by a carrier signal */
  1322. /**
  1323. * @}
  1324. */
  1325. /** @defgroup HRTIM_Output_Burst_Mode_Entry_Delayed HRTIM Output Burst Mode Entry Delayed
  1326. * @{
  1327. * @brief Constants defining the idle mode entry is delayed by forcing a
  1328. dead-time insertion before switching the outputs to their idle state
  1329. */
  1330. #define HRTIM_OUTPUTBURSTMODEENTRY_REGULAR 0x00000000U /*!< The programmed Idle state is applied immediately to the Output */
  1331. #define HRTIM_OUTPUTBURSTMODEENTRY_DELAYED (HRTIM_OUTR_DIDL1) /*!< Dead-time is inserted on output before entering the idle mode */
  1332. /**
  1333. * @}
  1334. */
  1335. /** @defgroup HRTIM_Output_Balanced_Idle_Auto_Resume HRTIM Output Balanced Idle Automatic Resume
  1336. * @{
  1337. * @brief Constants defining if the outputs are automatically
  1338. re-enabled after a balanced idle event.
  1339. */
  1340. #define HRTIM_OUTPUTBIAR_DISABLED 0x00000000U /*!< output is not automatically re-enabled */
  1341. #define HRTIM_OUTPUTBIAR_ENABLED (HRTIM_OUTR_BIAR) /*!< output is automatically re-enabled */
  1342. /**
  1343. * @}
  1344. */
  1345. /** @defgroup HRTIM_Capture_Unit_Trigger HRTIM Capture Unit Trigger
  1346. * @{
  1347. * @brief Constants defining the events that can be selected to trigger the
  1348. * capture of the timing unit counter
  1349. */
  1350. #define HRTIM_CAPTURETRIGGER_NONE 0x00000000U /*!< Capture trigger is disabled */
  1351. #define HRTIM_CAPTURETRIGGER_UPDATE (HRTIM_CPT1CR_UPDCPT) /*!< The update event triggers the Capture */
  1352. #define HRTIM_CAPTURETRIGGER_EEV_1 (HRTIM_CPT1CR_EXEV1CPT) /*!< The External event 1 triggers the Capture */
  1353. #define HRTIM_CAPTURETRIGGER_EEV_2 (HRTIM_CPT1CR_EXEV2CPT) /*!< The External event 2 triggers the Capture */
  1354. #define HRTIM_CAPTURETRIGGER_EEV_3 (HRTIM_CPT1CR_EXEV3CPT) /*!< The External event 3 triggers the Capture */
  1355. #define HRTIM_CAPTURETRIGGER_EEV_4 (HRTIM_CPT1CR_EXEV4CPT) /*!< The External event 4 triggers the Capture */
  1356. #define HRTIM_CAPTURETRIGGER_EEV_5 (HRTIM_CPT1CR_EXEV5CPT) /*!< The External event 5 triggers the Capture */
  1357. #define HRTIM_CAPTURETRIGGER_EEV_6 (HRTIM_CPT1CR_EXEV6CPT) /*!< The External event 6 triggers the Capture */
  1358. #define HRTIM_CAPTURETRIGGER_EEV_7 (HRTIM_CPT1CR_EXEV7CPT) /*!< The External event 7 triggers the Capture */
  1359. #define HRTIM_CAPTURETRIGGER_EEV_8 (HRTIM_CPT1CR_EXEV8CPT) /*!< The External event 8 triggers the Capture */
  1360. #define HRTIM_CAPTURETRIGGER_EEV_9 (HRTIM_CPT1CR_EXEV9CPT) /*!< The External event 9 triggers the Capture */
  1361. #define HRTIM_CAPTURETRIGGER_EEV_10 (HRTIM_CPT1CR_EXEV10CPT) /*!< The External event 10 triggers the Capture */
  1362. #define HRTIM_CAPTURETRIGGER_TA1_SET (HRTIM_CPT1CR_TA1SET) /*!< Capture is triggered by TA1 output inactive to active transition */
  1363. #define HRTIM_CAPTURETRIGGER_TA1_RESET (HRTIM_CPT1CR_TA1RST) /*!< Capture is triggered by TA1 output active to inactive transition */
  1364. #define HRTIM_CAPTURETRIGGER_TIMERA_CMP1 (HRTIM_CPT1CR_TIMACMP1) /*!< Timer A Compare 1 triggers Capture */
  1365. #define HRTIM_CAPTURETRIGGER_TIMERA_CMP2 (HRTIM_CPT1CR_TIMACMP2) /*!< Timer A Compare 2 triggers Capture */
  1366. #define HRTIM_CAPTURETRIGGER_TB1_SET (HRTIM_CPT1CR_TB1SET) /*!< Capture is triggered by TB1 output inactive to active transition */
  1367. #define HRTIM_CAPTURETRIGGER_TB1_RESET (HRTIM_CPT1CR_TB1RST) /*!< Capture is triggered by TB1 output active to inactive transition */
  1368. #define HRTIM_CAPTURETRIGGER_TIMERB_CMP1 (HRTIM_CPT1CR_TIMBCMP1) /*!< Timer B Compare 1 triggers Capture */
  1369. #define HRTIM_CAPTURETRIGGER_TIMERB_CMP2 (HRTIM_CPT1CR_TIMBCMP2) /*!< Timer B Compare 2 triggers Capture */
  1370. #define HRTIM_CAPTURETRIGGER_TC1_SET (HRTIM_CPT1CR_TC1SET) /*!< Capture is triggered by TC1 output inactive to active transition */
  1371. #define HRTIM_CAPTURETRIGGER_TC1_RESET (HRTIM_CPT1CR_TC1RST) /*!< Capture is triggered by TC1 output active to inactive transition */
  1372. #define HRTIM_CAPTURETRIGGER_TIMERC_CMP1 (HRTIM_CPT1CR_TIMCCMP1) /*!< Timer C Compare 1 triggers Capture */
  1373. #define HRTIM_CAPTURETRIGGER_TIMERC_CMP2 (HRTIM_CPT1CR_TIMCCMP2) /*!< Timer C Compare 2 triggers Capture */
  1374. #define HRTIM_CAPTURETRIGGER_TD1_SET (HRTIM_CPT1CR_TD1SET) /*!< Capture is triggered by TD1 output inactive to active transition */
  1375. #define HRTIM_CAPTURETRIGGER_TD1_RESET (HRTIM_CPT1CR_TD1RST) /*!< Capture is triggered by TD1 output active to inactive transition */
  1376. #define HRTIM_CAPTURETRIGGER_TIMERD_CMP1 (HRTIM_CPT1CR_TIMDCMP1) /*!< Timer D Compare 1 triggers Capture */
  1377. #define HRTIM_CAPTURETRIGGER_TIMERD_CMP2 (HRTIM_CPT1CR_TIMDCMP2) /*!< Timer D Compare 2 triggers Capture */
  1378. #define HRTIM_CAPTURETRIGGER_TE1_SET (HRTIM_CPT1CR_TE1SET) /*!< Capture is triggered by TE1 output inactive to active transition */
  1379. #define HRTIM_CAPTURETRIGGER_TE1_RESET (HRTIM_CPT1CR_TE1RST) /*!< Capture is triggered by TE1 output active to inactive transition */
  1380. #define HRTIM_CAPTURETRIGGER_TIMERE_CMP1 (HRTIM_CPT1CR_TIMECMP1) /*!< Timer E Compare 1 triggers Capture */
  1381. #define HRTIM_CAPTURETRIGGER_TIMERE_CMP2 (HRTIM_CPT1CR_TIMECMP2) /*!< Timer E Compare 2 triggers Capture */
  1382. /**
  1383. * @}
  1384. */
  1385. /** @defgroup HRTIM_Capture_Unit_TimerF_Trigger HRTIM Capture Unit TimerF Trigger
  1386. * @{
  1387. * @brief Constants defining the events that can be selected to trigger the
  1388. * capture of the timing unit counter
  1389. */
  1390. #define HRTIM_CAPTURETRIGGER_TF1_SET ((uint64_t)(HRTIM_CPT1CR_TF1SET ) << 32) /*!< Capture is triggered by TF1 output inactive to active transition */
  1391. #define HRTIM_CAPTURETRIGGER_TF1_RESET ((uint64_t)(HRTIM_CPT1CR_TF1RST ) << 32) /*!< Capture is triggered by TF1 output active to inactive transition */
  1392. #define HRTIM_CAPTURETRIGGER_TIMERF_CMP1 ((uint64_t)(HRTIM_CPT1CR_TIMFCMP1) << 32) /*!< Timer F Compare 1 triggers Capture */
  1393. #define HRTIM_CAPTURETRIGGER_TIMERF_CMP2 ((uint64_t)(HRTIM_CPT1CR_TIMFCMP2) << 32) /*!< Timer F Compare 2 triggers Capture */
  1394. /**
  1395. * @}
  1396. */
  1397. /** @defgroup HRTIM_Timer_External_Event_Filter HRTIM Timer External Event Filter
  1398. * @{
  1399. * @brief Constants defining the event filtering applied to external events
  1400. * by a timer
  1401. */
  1402. #define HRTIM_TIMEEVFLT_NONE (0x00000000U)
  1403. #define HRTIM_TIMEEVFLT_BLANKINGCMP1 (HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from counter reset/roll-over to Compare 1U */
  1404. #define HRTIM_TIMEEVFLT_BLANKINGCMP2 (HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from counter reset/roll-over to Compare 2U */
  1405. #define HRTIM_TIMEEVFLT_BLANKINGCMP3 (HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from counter reset/roll-over to Compare 3U */
  1406. #define HRTIM_TIMEEVFLT_BLANKINGCMP4 (HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from counter reset/roll-over to Compare 4U */
  1407. /* Blanking Filter for TIMER A */
  1408. #define HRTIM_TIMEEVFLT_BLANKING_TIMAEEF1_TIMBCMP1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR1 source */
  1409. #define HRTIM_TIMEEVFLT_BLANKING_TIMAEEF2_TIMBCMP4 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR2 source */
  1410. #define HRTIM_TIMEEVFLT_BLANKING_TIMAEEF3_TIMBOUT2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR3 source */
  1411. #define HRTIM_TIMEEVFLT_BLANKING_TIMAEEF4_TIMCCMP1 (HRTIM_EEFR1_EE1FLTR_3) /*!< Blanking from another timing unit: TIMFLTR4 source */
  1412. #define HRTIM_TIMEEVFLT_BLANKING_TIMAEEF5_TIMCCMP4 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR5 source */
  1413. #define HRTIM_TIMEEVFLT_BLANKING_TIMAEEF6_TIMFCMP1 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR6 source */
  1414. #define HRTIM_TIMEEVFLT_BLANKING_TIMAEEF7_TIMDCMP1 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR7 source */
  1415. #define HRTIM_TIMEEVFLT_BLANKING_TIMAEEF8_TIMECMP2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from another timing unit: TIMFLTR8 source */
  1416. /* Blanking Filter for TIMER B */
  1417. #define HRTIM_TIMEEVFLT_BLANKING_TIMBEEF1_TIMACMP1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR1 source */
  1418. #define HRTIM_TIMEEVFLT_BLANKING_TIMBEEF2_TIMACMP4 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR2 source */
  1419. #define HRTIM_TIMEEVFLT_BLANKING_TIMBEEF3_TIMAOUT2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR3 source */
  1420. #define HRTIM_TIMEEVFLT_BLANKING_TIMBEEF4_TIMCCMP1 (HRTIM_EEFR1_EE1FLTR_3) /*!< Blanking from another timing unit: TIMFLTR4 source */
  1421. #define HRTIM_TIMEEVFLT_BLANKING_TIMBEEF5_TIMCCMP2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR5 source */
  1422. #define HRTIM_TIMEEVFLT_BLANKING_TIMBEEF6_TIMFCMP2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR6 source */
  1423. #define HRTIM_TIMEEVFLT_BLANKING_TIMBEEF7_TIMDCMP2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR7 source */
  1424. #define HRTIM_TIMEEVFLT_BLANKING_TIMBEEF8_TIMECMP1 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from another timing unit: TIMFLTR8 source */
  1425. /* Blanking Filter for TIMER C */
  1426. #define HRTIM_TIMEEVFLT_BLANKING_TIMCEEF1_TIMACMP2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR1 source */
  1427. #define HRTIM_TIMEEVFLT_BLANKING_TIMCEEF2_TIMBCMP1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR2 source */
  1428. #define HRTIM_TIMEEVFLT_BLANKING_TIMCEEF3_TIMBCMP4 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR3 source */
  1429. #define HRTIM_TIMEEVFLT_BLANKING_TIMCEEF4_TIMFCMP1 (HRTIM_EEFR1_EE1FLTR_3) /*!< Blanking from another timing unit: TIMFLTR4 source */
  1430. #define HRTIM_TIMEEVFLT_BLANKING_TIMCEEF5_TIMDCMP1 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR5 source */
  1431. #define HRTIM_TIMEEVFLT_BLANKING_TIMCEEF6_TIMDCMP4 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR6 source */
  1432. #define HRTIM_TIMEEVFLT_BLANKING_TIMCEEF7_TIMDOUT2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR7 source */
  1433. #define HRTIM_TIMEEVFLT_BLANKING_TIMCEEF8_TIMECMP4 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from another timing unit: TIMFLTR8 source */
  1434. /* Blanking Filter for TIMER D */
  1435. #define HRTIM_TIMEEVFLT_BLANKING_TIMDEEF1_TIMACMP1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR1 source */
  1436. #define HRTIM_TIMEEVFLT_BLANKING_TIMDEEF2_TIMBCMP2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR2 source */
  1437. #define HRTIM_TIMEEVFLT_BLANKING_TIMDEEF3_TIMCCMP1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR3 source */
  1438. #define HRTIM_TIMEEVFLT_BLANKING_TIMDEEF4_TIMCCMP2 (HRTIM_EEFR1_EE1FLTR_3) /*!< Blanking from another timing unit: TIMFLTR4 source */
  1439. #define HRTIM_TIMEEVFLT_BLANKING_TIMDEEF5_TIMCOUT2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR5 source */
  1440. #define HRTIM_TIMEEVFLT_BLANKING_TIMDEEF6_TIMECMP1 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR6 source */
  1441. #define HRTIM_TIMEEVFLT_BLANKING_TIMDEEF7_TIMECMP4 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR7 source */
  1442. #define HRTIM_TIMEEVFLT_BLANKING_TIMDEEF8_TIMFCMP4 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from another timing unit: TIMFLTR8 source */
  1443. /* Blanking Filter for TIMER E */
  1444. #define HRTIM_TIMEEVFLT_BLANKING_TIMEEEF1_TIMACMP2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR1 source */
  1445. #define HRTIM_TIMEEVFLT_BLANKING_TIMEEEF2_TIMBCMP1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR2 source */
  1446. #define HRTIM_TIMEEVFLT_BLANKING_TIMEEEF3_TIMCCMP1 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR3 source */
  1447. #define HRTIM_TIMEEVFLT_BLANKING_TIMEEEF4_TIMFCMP4 (HRTIM_EEFR1_EE1FLTR_3) /*!< Blanking from another timing unit: TIMFLTR4 source */
  1448. #define HRTIM_TIMEEVFLT_BLANKING_TIMEEEF5_TIMFOUT2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR5 source */
  1449. #define HRTIM_TIMEEVFLT_BLANKING_TIMEEEF6_TIMDCMP1 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR6 source */
  1450. #define HRTIM_TIMEEVFLT_BLANKING_TIMEEEF7_TIMDCMP4 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR7 source */
  1451. #define HRTIM_TIMEEVFLT_BLANKING_TIMEEEF8_TIMDOUT2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from another timing unit: TIMFLTR8 source */
  1452. /* Blanking Filter for TIMER F */
  1453. #define HRTIM_TIMEEVFLT_BLANKING_TIMFEEF1_TIMACMP4 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR1 source */
  1454. #define HRTIM_TIMEEVFLT_BLANKING_TIMFEEF2_TIMBCMP2 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR2 source */
  1455. #define HRTIM_TIMEEVFLT_BLANKING_TIMFEEF3_TIMCCMP4 (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR3 source */
  1456. #define HRTIM_TIMEEVFLT_BLANKING_TIMFEEF4_TIMDCMP2 (HRTIM_EEFR1_EE1FLTR_3) /*!< Blanking from another timing unit: TIMFLTR4 source */
  1457. #define HRTIM_TIMEEVFLT_BLANKING_TIMFEEF5_TIMDCMP4 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR5 source */
  1458. #define HRTIM_TIMEEVFLT_BLANKING_TIMFEEF6_TIMECMP1 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1) /*!< Blanking from another timing unit: TIMFLTR6 source */
  1459. #define HRTIM_TIMEEVFLT_BLANKING_TIMFEEF7_TIMECMP4 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Blanking from another timing unit: TIMFLTR7 source */
  1460. #define HRTIM_TIMEEVFLT_BLANKING_TIMFEEF8_TIMEOUT2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2) /*!< Blanking from another timing unit: TIMFLTR8 source */
  1461. #define HRTIM_TIMEEVFLT_WINDOWINGCMP2 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0) /*!< Windowing from counter reset/roll-over to Compare 2U */
  1462. #define HRTIM_TIMEEVFLT_WINDOWINGCMP3 (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1) /*!< Windowing from counter reset/roll-over to Compare 3U */
  1463. #define HRTIM_TIMEEVFLT_WINDOWINGTIM (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1\
  1464. | HRTIM_EEFR1_EE1FLTR_0) /*!< Windowing from another timing unit: TIMWIN source */
  1465. /**
  1466. * @}
  1467. */
  1468. /** @defgroup HRTIM_Timer_External_Event_Latch HRTIM Timer External Event Latch
  1469. * @{
  1470. * @brief Constants defining whether or not the external event is
  1471. * memorized (latched) and generated as soon as the blanking period
  1472. * is completed or the window ends
  1473. */
  1474. #define HRTIM_TIMEVENTLATCH_DISABLED (0x00000000U) /*!< Event is ignored if it happens during a blank, or passed through during a window */
  1475. #define HRTIM_TIMEVENTLATCH_ENABLED HRTIM_EEFR1_EE1LTCH /*!< Event is latched and delayed till the end of the blanking or windowing period */
  1476. /**
  1477. * @}
  1478. */
  1479. /** @defgroup HRTIM_Timer_External_Event HRTIM Timer External Event Counter A or B
  1480. * @{
  1481. * @brief Constants defining the External Event Counter A or B
  1482. */
  1483. #define HRTIM_EVENTCOUNTER_A (HRTIM_EEFR3_EEVACE) /*!< External Event Counter A */
  1484. #define HRTIM_EVENTCOUNTER_B (HRTIM_EEFR3_EEVBCE) /*!< External Event Counter B */
  1485. /**
  1486. * @}
  1487. */
  1488. /** @defgroup HRTIM_Timer_External_Event_ResetMode HRTIM Timer External Counter Reset Mode
  1489. * @{
  1490. * @brief Constants enabling the External Event Counter A or B Reset Mode
  1491. */
  1492. #define HRTIM_EVENTCOUNTER_RSTMODE_UNCONDITIONAL (0x00000000U) /*!< External Event Counter is reset on each reset / roll-over event */
  1493. #define HRTIM_EVENTCOUNTER_RSTMODE_CONDITIONAL (0x00000001U) /*!< External Event Counter is reset on each reset / roll-over event only
  1494. if no event occurs during last counting period */
  1495. /**
  1496. * @}
  1497. */
  1498. /** @defgroup HRTIM_Timer_ReSyncUpdate HRTIM Timer Re-Synchronized update
  1499. * @{
  1500. * @brief Constants defining the update coming condition
  1501. */
  1502. #define HRTIM_TIMERESYNC_UPDATE_UNCONDITIONAL (0x00000000U) /*!< update taken into account immediately */
  1503. #define HRTIM_TIMERESYNC_UPDATE_CONDITIONAL (0x00000001U) /*!< update taken into account on the following Reset/Roll-over event */
  1504. /**
  1505. * @}
  1506. */
  1507. /** @defgroup HRTIM_Deadtime_Prescaler_Ratio HRTIM Dead-time Prescaler Ratio
  1508. * @{
  1509. * @brief Constants defining division ratio between the timer clock frequency
  1510. * (fHRTIM) and the dead-time generator clock (fDTG)
  1511. */
  1512. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL8 (0x00000000U) /*!< fDTG = fHRTIM * 8U */
  1513. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL4 (HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM * 4U */
  1514. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL2 (HRTIM_DTR_DTPRSC_1) /*!< fDTG = fHRTIM * 2U */
  1515. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV1 (HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM */
  1516. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV2 (HRTIM_DTR_DTPRSC_2) /*!< fDTG = fHRTIM / 2U */
  1517. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV4 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM / 4U */
  1518. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV8 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1) /*!< fDTG = fHRTIM / 8U */
  1519. #define HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV16 (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0) /*!< fDTG = fHRTIM / 16U */
  1520. /**
  1521. * @}
  1522. */
  1523. /** @defgroup HRTIM_Deadtime_Rising_Sign HRTIM Dead-time Rising Sign
  1524. * @{
  1525. * @brief Constants defining whether the dead-time is positive or negative
  1526. * (overlapping signal) on rising edge
  1527. */
  1528. #define HRTIM_TIMDEADTIME_RISINGSIGN_POSITIVE (0x00000000U) /*!< Positive dead-time on rising edge */
  1529. #define HRTIM_TIMDEADTIME_RISINGSIGN_NEGATIVE (HRTIM_DTR_SDTR) /*!< Negative dead-time on rising edge */
  1530. /**
  1531. * @}
  1532. */
  1533. /** @defgroup HRTIM_Deadtime_Rising_Lock HRTIM Dead-time Rising Lock
  1534. * @{
  1535. * @brief Constants defining whether or not the dead-time (rising sign and
  1536. * value) is write protected
  1537. */
  1538. #define HRTIM_TIMDEADTIME_RISINGLOCK_WRITE (0x00000000U) /*!< Dead-time rising value and sign is writeable */
  1539. #define HRTIM_TIMDEADTIME_RISINGLOCK_READONLY (HRTIM_DTR_DTRLK) /*!< Dead-time rising value and sign is read-only */
  1540. /**
  1541. * @}
  1542. */
  1543. /** @defgroup HRTIM_Deadtime_Rising_Sign_Lock HRTIM Dead-time Rising Sign Lock
  1544. * @{
  1545. * @brief Constants defining whether or not the dead-time rising sign is write
  1546. * protected
  1547. */
  1548. #define HRTIM_TIMDEADTIME_RISINGSIGNLOCK_WRITE (0x00000000U) /*!< Dead-time rising sign is writeable */
  1549. #define HRTIM_TIMDEADTIME_RISINGSIGNLOCK_READONLY (HRTIM_DTR_DTRSLK) /*!< Dead-time rising sign is read-only */
  1550. /**
  1551. * @}
  1552. */
  1553. /** @defgroup HRTIM_Deadtime_Falling_Sign HRTIM Dead-time Falling Sign
  1554. * @{
  1555. * @brief Constants defining whether the dead-time is positive or negative
  1556. * (overlapping signal) on falling edge
  1557. */
  1558. #define HRTIM_TIMDEADTIME_FALLINGSIGN_POSITIVE (0x00000000U) /*!< Positive dead-time on falling edge */
  1559. #define HRTIM_TIMDEADTIME_FALLINGSIGN_NEGATIVE (HRTIM_DTR_SDTF) /*!< Negative dead-time on falling edge */
  1560. /**
  1561. * @}
  1562. */
  1563. /** @defgroup HRTIM_Deadtime_Falling_Lock HRTIM Dead-time Falling Lock
  1564. * @{
  1565. * @brief Constants defining whether or not the dead-time (falling sign and
  1566. * value) is write protected
  1567. */
  1568. #define HRTIM_TIMDEADTIME_FALLINGLOCK_WRITE (0x00000000U) /*!< Dead-time falling value and sign is writeable */
  1569. #define HRTIM_TIMDEADTIME_FALLINGLOCK_READONLY (HRTIM_DTR_DTFLK) /*!< Dead-time falling value and sign is read-only */
  1570. /**
  1571. * @}
  1572. */
  1573. /** @defgroup HRTIM_Deadtime_Falling_Sign_Lock HRTIM Dead-time Falling Sign Lock
  1574. * @{
  1575. * @brief Constants defining whether or not the dead-time falling sign is write
  1576. * protected
  1577. */
  1578. #define HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_WRITE (0x00000000U) /*!< Dead-time falling sign is writeable */
  1579. #define HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_READONLY (HRTIM_DTR_DTFSLK) /*!< Dead-time falling sign is read-only */
  1580. /**
  1581. * @}
  1582. */
  1583. /** @defgroup HRTIM_Chopper_Frequency HRTIM Chopper Frequency
  1584. * @{
  1585. * @brief Constants defining the frequency of the generated high frequency carrier
  1586. */
  1587. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV16 (0x000000U) /*!< fCHPFRQ = fHRTIM / 16 */
  1588. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV32 (HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 32 */
  1589. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV48 (HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 48 */
  1590. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV64 (HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 64 */
  1591. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV80 (HRTIM_CHPR_CARFRQ_2) /*!< fCHPFRQ = fHRTIM / 80 */
  1592. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV96 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 96 */
  1593. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV112 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 112 */
  1594. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV128 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 128 */
  1595. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV144 (HRTIM_CHPR_CARFRQ_3) /*!< fCHPFRQ = fHRTIM / 144 */
  1596. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV160 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 160 */
  1597. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV176 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 176 */
  1598. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV192 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 192 */
  1599. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV208 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2) /*!< fCHPFRQ = fHRTIM / 208 */
  1600. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV224 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 224 */
  1601. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV240 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1) /*!< fCHPFRQ = fHRTIM / 240 */
  1602. #define HRTIM_CHOPPER_PRESCALERRATIO_DIV256 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0) /*!< fCHPFRQ = fHRTIM / 256 */
  1603. /**
  1604. * @}
  1605. */
  1606. /** @defgroup HRTIM_Chopper_Duty_Cycle HRTIM Chopper Duty Cycle
  1607. * @{
  1608. * @brief Constants defining the duty cycle of the generated high frequency carrier
  1609. * Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8)
  1610. */
  1611. #define HRTIM_CHOPPER_DUTYCYCLE_0 (0x000000U) /*!< Only 1st pulse is present */
  1612. #define HRTIM_CHOPPER_DUTYCYCLE_125 (HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 12.5U % */
  1613. #define HRTIM_CHOPPER_DUTYCYCLE_250 (HRTIM_CHPR_CARDTY_1) /*!< Duty cycle of the carrier signal is 25U % */
  1614. #define HRTIM_CHOPPER_DUTYCYCLE_375 (HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 37.5U % */
  1615. #define HRTIM_CHOPPER_DUTYCYCLE_500 (HRTIM_CHPR_CARDTY_2) /*!< Duty cycle of the carrier signal is 50U % */
  1616. #define HRTIM_CHOPPER_DUTYCYCLE_625 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 62.5U % */
  1617. #define HRTIM_CHOPPER_DUTYCYCLE_750 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1) /*!< Duty cycle of the carrier signal is 75U % */
  1618. #define HRTIM_CHOPPER_DUTYCYCLE_875 (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 87.5U % */
  1619. /**
  1620. * @}
  1621. */
  1622. /** @defgroup HRTIM_Chopper_Start_Pulse_Width HRTIM Chopper Start Pulse Width
  1623. * @{
  1624. * @brief Constants defining the pulse width of the first pulse of the generated
  1625. * high frequency carrier
  1626. */
  1627. #define HRTIM_CHOPPER_PULSEWIDTH_16 (0x000000U) /*!< tSTPW = tHRTIM x 16 */
  1628. #define HRTIM_CHOPPER_PULSEWIDTH_32 (HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 32 */
  1629. #define HRTIM_CHOPPER_PULSEWIDTH_48 (HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 48 */
  1630. #define HRTIM_CHOPPER_PULSEWIDTH_64 (HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 64 */
  1631. #define HRTIM_CHOPPER_PULSEWIDTH_80 (HRTIM_CHPR_STRPW_2) /*!< tSTPW = tHRTIM x 80 */
  1632. #define HRTIM_CHOPPER_PULSEWIDTH_96 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 96 */
  1633. #define HRTIM_CHOPPER_PULSEWIDTH_112 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 112 */
  1634. #define HRTIM_CHOPPER_PULSEWIDTH_128 (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 128 */
  1635. #define HRTIM_CHOPPER_PULSEWIDTH_144 (HRTIM_CHPR_STRPW_3) /*!< tSTPW = tHRTIM x 144 */
  1636. #define HRTIM_CHOPPER_PULSEWIDTH_160 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 160 */
  1637. #define HRTIM_CHOPPER_PULSEWIDTH_176 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 176 */
  1638. #define HRTIM_CHOPPER_PULSEWIDTH_192 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 192 */
  1639. #define HRTIM_CHOPPER_PULSEWIDTH_208 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2) /*!< tSTPW = tHRTIM x 208 */
  1640. #define HRTIM_CHOPPER_PULSEWIDTH_224 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 224 */
  1641. #define HRTIM_CHOPPER_PULSEWIDTH_240 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1) /*!< tSTPW = tHRTIM x 240 */
  1642. #define HRTIM_CHOPPER_PULSEWIDTH_256 (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0) /*!< tSTPW = tHRTIM x 256 */
  1643. /**
  1644. * @}
  1645. */
  1646. /** @defgroup HRTIM_Synchronization_Options HRTIM Synchronization Options
  1647. * @{
  1648. * @brief Constants defining the options for synchronizing multiple HRTIM
  1649. * instances, as a master unit (generating a synchronization signal)
  1650. * or as a slave (waiting for a trigger to be synchronized)
  1651. */
  1652. #define HRTIM_SYNCOPTION_NONE 0x00000000U /*!< HRTIM instance doesn't handle external synchronization signals (SYNCIN, SYNCOUT) */
  1653. #define HRTIM_SYNCOPTION_MASTER 0x00000001U /*!< HRTIM instance acts as a MASTER, i.e. generates external synchronization output (SYNCOUT)*/
  1654. #define HRTIM_SYNCOPTION_SLAVE 0x00000002U /*!< HRTIM instance acts as a SLAVE, i.e. it is synchronized by external sources (SYNCIN) */
  1655. /**
  1656. * @}
  1657. */
  1658. /** @defgroup HRTIM_Synchronization_Input_Source HRTIM Synchronization Input Source
  1659. * @{
  1660. * @brief Constants defining defining the synchronization input source
  1661. */
  1662. #define HRTIM_SYNCINPUTSOURCE_NONE 0x00000000U /*!< disabled. HRTIM is not synchronized and runs in standalone mode */
  1663. #define HRTIM_SYNCINPUTSOURCE_INTERNALEVENT HRTIM_MCR_SYNC_IN_1 /*!< The HRTIM is synchronized with the on-chip timer */
  1664. #define HRTIM_SYNCINPUTSOURCE_EXTERNALEVENT (HRTIM_MCR_SYNC_IN_1 | HRTIM_MCR_SYNC_IN_0) /*!< A positive pulse on SYNCIN input triggers the HRTIM */
  1665. /**
  1666. * @}
  1667. */
  1668. /** @defgroup HRTIM_Synchronization_Output_Source HRTIM Synchronization Output Source
  1669. * @{
  1670. * @brief Constants defining the source and event to be sent on the
  1671. * synchronization outputs
  1672. */
  1673. #define HRTIM_SYNCOUTPUTSOURCE_MASTER_START 0x00000000U /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon master timer start event */
  1674. #define HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1 (HRTIM_MCR_SYNC_SRC_0) /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon master timer compare 1 event */
  1675. #define HRTIM_SYNCOUTPUTSOURCE_TIMA_START (HRTIM_MCR_SYNC_SRC_1) /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon timer A start or reset events */
  1676. #define HRTIM_SYNCOUTPUTSOURCE_TIMA_CMP1 (HRTIM_MCR_SYNC_SRC_1 | HRTIM_MCR_SYNC_SRC_0) /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon timer A compare 1 event */
  1677. /**
  1678. * @}
  1679. */
  1680. /** @defgroup HRTIM_Synchronization_Output_Polarity HRTIM Synchronization Output Polarity
  1681. * @{
  1682. * @brief Constants defining the routing and conditioning of the synchronization output event
  1683. */
  1684. #define HRTIM_SYNCOUTPUTPOLARITY_NONE 0x00000000U /*!< Synchronization output event is disabled */
  1685. #define HRTIM_SYNCOUTPUTPOLARITY_POSITIVE (HRTIM_MCR_SYNC_OUT_1) /*!< SCOUT pin has a low idle level and issues a positive pulse of 16 fHRTIM clock cycles length for the synchronization */
  1686. #define HRTIM_SYNCOUTPUTPOLARITY_NEGATIVE (HRTIM_MCR_SYNC_OUT_1 | HRTIM_MCR_SYNC_OUT_0) /*!< SCOUT pin has a high idle level and issues a negative pulse of 16 fHRTIM clock cycles length for the synchronization */
  1687. /**
  1688. * @}
  1689. */
  1690. /** @defgroup HRTIM_External_Event_Sources HRTIM External Event Sources
  1691. * @{
  1692. * @brief Constants defining available sources associated to external events
  1693. */
  1694. #define HRTIM_EEV1SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 1 */
  1695. #define HRTIM_EEV2SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 2 */
  1696. #define HRTIM_EEV3SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 3 */
  1697. #define HRTIM_EEV4SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 4 */
  1698. #define HRTIM_EEV5SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 5 */
  1699. #define HRTIM_EEV6SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 6 */
  1700. #define HRTIM_EEV7SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 7 */
  1701. #define HRTIM_EEV8SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 8 */
  1702. #define HRTIM_EEV9SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 9 */
  1703. #define HRTIM_EEV10SRC_GPIO 0x00000000U /*!< External event source 1U for External Event 10 */
  1704. #define HRTIM_EEV1SRC_COMP2_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 1 */
  1705. #define HRTIM_EEV2SRC_COMP4_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 2 */
  1706. #define HRTIM_EEV3SRC_COMP6_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 3 */
  1707. #define HRTIM_EEV4SRC_COMP1_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 4 */
  1708. #define HRTIM_EEV5SRC_COMP3_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 5 */
  1709. #define HRTIM_EEV6SRC_COMP2_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 6 */
  1710. #define HRTIM_EEV7SRC_COMP4_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 7 */
  1711. #define HRTIM_EEV8SRC_COMP6_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 8 */
  1712. #define HRTIM_EEV9SRC_COMP5_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 9 */
  1713. #define HRTIM_EEV10SRC_COMP7_OUT (HRTIM_EECR1_EE1SRC_0) /*!< External event source 2U for External Event 10 */
  1714. #define HRTIM_EEV1SRC_TIM1_TRGO (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 1 */
  1715. #define HRTIM_EEV2SRC_TIM2_TRGO (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 2 */
  1716. #define HRTIM_EEV3SRC_TIM3_TRGO (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 3 */
  1717. #define HRTIM_EEV4SRC_COMP5_OUT (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 4 */
  1718. #define HRTIM_EEV5SRC_COMP7_OUT (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 5 */
  1719. #define HRTIM_EEV6SRC_COMP1_OUT (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 6 */
  1720. #define HRTIM_EEV7SRC_TIM7_TRGO (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 7 */
  1721. #define HRTIM_EEV8SRC_COMP3_OUT (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 8 */
  1722. #define HRTIM_EEV9SRC_TIM15_TRGO (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 9 */
  1723. #define HRTIM_EEV10SRC_TIM6_TRGO (HRTIM_EECR1_EE1SRC_1) /*!< External event source 3U for External Event 10 */
  1724. #define HRTIM_EEV1SRC_ADC1_AWD1 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 1 */
  1725. #define HRTIM_EEV2SRC_ADC1_AWD2 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 2 */
  1726. #define HRTIM_EEV3SRC_ADC1_AWD3 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 3 */
  1727. #define HRTIM_EEV4SRC_ADC2_AWD1 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 4 */
  1728. #define HRTIM_EEV5SRC_ADC2_AWD2 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 5 */
  1729. #define HRTIM_EEV6SRC_ADC2_AWD3 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 6 */
  1730. #define HRTIM_EEV7SRC_ADC3_AWD1 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 7 */
  1731. #define HRTIM_EEV8SRC_ADC4_AWD1 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 8 */
  1732. #define HRTIM_EEV9SRC_COMP4_OUT (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 9 */
  1733. #define HRTIM_EEV10SRC_ADC5_AWD1 (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0) /*!< External event source 4U for External Event 10 */
  1734. /**
  1735. * @}
  1736. */
  1737. /** @defgroup HRTIM_External_Event_Polarity HRTIM External Event Polarity
  1738. * @{
  1739. * @brief Constants defining the polarity of an external event
  1740. */
  1741. #define HRTIM_EVENTPOLARITY_HIGH (0x00000000U) /*!< External event is active high */
  1742. #define HRTIM_EVENTPOLARITY_LOW (HRTIM_EECR1_EE1POL) /*!< External event is active low */
  1743. /**
  1744. * @}
  1745. */
  1746. /** @defgroup HRTIM_External_Event_Sensitivity HRTIM External Event Sensitivity
  1747. * @{
  1748. * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive)
  1749. * of an external event
  1750. */
  1751. #define HRTIM_EVENTSENSITIVITY_LEVEL (0x00000000U) /*!< External event is active on level */
  1752. #define HRTIM_EVENTSENSITIVITY_RISINGEDGE (HRTIM_EECR1_EE1SNS_0) /*!< External event is active on Rising edge */
  1753. #define HRTIM_EVENTSENSITIVITY_FALLINGEDGE (HRTIM_EECR1_EE1SNS_1) /*!< External event is active on Falling edge */
  1754. #define HRTIM_EVENTSENSITIVITY_BOTHEDGES (HRTIM_EECR1_EE1SNS_1 | HRTIM_EECR1_EE1SNS_0) /*!< External event is active on Rising and Falling edges */
  1755. /**
  1756. * @}
  1757. */
  1758. /** @defgroup HRTIM_External_Event_Fast_Mode HRTIM External Event Fast Mode
  1759. * @{
  1760. * @brief Constants defining whether or not an external event is programmed in
  1761. fast mode
  1762. */
  1763. #define HRTIM_EVENTFASTMODE_DISABLE (0x00000000U) /*!< External Event is re-synchronized by the HRTIM logic before acting on outputs */
  1764. #define HRTIM_EVENTFASTMODE_ENABLE (HRTIM_EECR1_EE1FAST) /*!< External Event is acting asynchronously on outputs (low latency mode) */
  1765. /**
  1766. * @}
  1767. */
  1768. /** @defgroup HRTIM_External_Event_Filter HRTIM External Event Filter
  1769. * @{
  1770. * @brief Constants defining the frequency used to sample an external event 6
  1771. * input and the length (N) of the digital filter applied
  1772. */
  1773. #define HRTIM_EVENTFILTER_NONE (0x00000000U) /*!< Filter disabled */
  1774. #define HRTIM_EVENTFILTER_1 (HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fHRTIM, N=2U */
  1775. #define HRTIM_EVENTFILTER_2 (HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fHRTIM, N=4U */
  1776. #define HRTIM_EVENTFILTER_3 (HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fHRTIM, N=8U */
  1777. #define HRTIM_EVENTFILTER_4 (HRTIM_EECR3_EE6F_2) /*!< fSAMPLING= fEEVS/2U, N=6U */
  1778. #define HRTIM_EVENTFILTER_5 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/2U, N=8U */
  1779. #define HRTIM_EVENTFILTER_6 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fEEVS/4U, N=6U */
  1780. #define HRTIM_EVENTFILTER_7 (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/4U, N=8U */
  1781. #define HRTIM_EVENTFILTER_8 (HRTIM_EECR3_EE6F_3) /*!< fSAMPLING= fEEVS/8U, N=6U */
  1782. #define HRTIM_EVENTFILTER_9 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/8U, N=8U */
  1783. #define HRTIM_EVENTFILTER_10 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fEEVS/16U, N=5U */
  1784. #define HRTIM_EVENTFILTER_11 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/16U, N=6U */
  1785. #define HRTIM_EVENTFILTER_12 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2) /*!< fSAMPLING= fEEVS/16U, N=8U */
  1786. #define HRTIM_EVENTFILTER_13 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/32U, N=5U */
  1787. #define HRTIM_EVENTFILTER_14 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1) /*!< fSAMPLING= fEEVS/32U, N=6U */
  1788. #define HRTIM_EVENTFILTER_15 (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0) /*!< fSAMPLING= fEEVS/32U, N=8U */
  1789. /**
  1790. * @}
  1791. */
  1792. /** @defgroup HRTIM_External_Event_Prescaler HRTIM External Event Prescaler
  1793. * @{
  1794. * @brief Constants defining division ratio between the timer clock frequency
  1795. * fHRTIM) and the external event signal sampling clock (fEEVS)
  1796. * used by the digital filters
  1797. */
  1798. #define HRTIM_EVENTPRESCALER_DIV1 (0x00000000U) /*!< fEEVS=fHRTIM */
  1799. #define HRTIM_EVENTPRESCALER_DIV2 (HRTIM_EECR3_EEVSD_0) /*!< fEEVS=fHRTIM / 2U */
  1800. #define HRTIM_EVENTPRESCALER_DIV4 (HRTIM_EECR3_EEVSD_1) /*!< fEEVS=fHRTIM / 4U */
  1801. #define HRTIM_EVENTPRESCALER_DIV8 (HRTIM_EECR3_EEVSD_1 | HRTIM_EECR3_EEVSD_0) /*!< fEEVS=fHRTIM / 8U */
  1802. /**
  1803. * @}
  1804. */
  1805. /** @defgroup HRTIM_Fault_Sources HRTIM Fault Sources
  1806. * @{
  1807. * @brief Constants defining whether a fault is triggered by any external
  1808. * or internal fault source
  1809. */
  1810. #define HRTIM_FAULTSOURCE_DIGITALINPUT (0x00000000U) /*!< Fault input is FLT input pin */
  1811. #define HRTIM_FAULTSOURCE_INTERNAL (0x00000001U) /*!< Fault input is FLT_Int signal (e.g. internal comparator) */
  1812. #define HRTIM_FAULTSOURCE_EEVINPUT (0x00000002U) /*!< Fault input is EEV pin */
  1813. /**
  1814. * @}
  1815. */
  1816. /** @defgroup HRTIM_Fault_Polarity HRTIM Fault Polarity
  1817. * @{
  1818. * @brief Constants defining the polarity of a fault event
  1819. */
  1820. #define HRTIM_FAULTPOLARITY_LOW (0x00000000U) /*!< Fault input is active low */
  1821. #define HRTIM_FAULTPOLARITY_HIGH (HRTIM_FLTINR1_FLT1P) /*!< Fault input is active high */
  1822. /**
  1823. * @}
  1824. */
  1825. /** @defgroup HRTIM_Fault_Blanking HRTIM Fault Blanking Source
  1826. * @{
  1827. * @brief Constants defining the blanking source of a fault event
  1828. */
  1829. #define HRTIM_FAULTBLANKINGMODE_RSTALIGNED (0x00000000U) /*!< Fault blanking source is Reset-aligned window */
  1830. #define HRTIM_FAULTBLANKINGMODE_MOVING (0x00000001U) /*!< Fault blanking source is Moving window */
  1831. /**
  1832. * @}
  1833. */
  1834. /** @defgroup HRTIM_Fault_ResetMode HRTIM Fault Reset Mode
  1835. * @{
  1836. * @brief Constants defining the Counter reset mode of a fault event
  1837. */
  1838. #define HRTIM_FAULTCOUNTERRST_UNCONDITIONAL (0x00000000U) /*!< Fault counter is reset on each reset / roll-over event */
  1839. #define HRTIM_FAULTCOUNTERRST_CONDITIONAL (0x00000001U) /*!< Fault counter is reset on each reset / roll-over event only if no fault occurred during last countingperiod.*/
  1840. /**
  1841. * @}
  1842. */
  1843. /** @defgroup HRTIM_Fault_Blanking_Control HRTIM Fault Blanking Control
  1844. * @{
  1845. * @brief Constants used to enable or disable the blanking mode of a fault channel
  1846. */
  1847. #define HRTIM_FAULTBLANKINGCTL_DISABLED 0x00000000U /*!< No blanking on Fault */
  1848. #define HRTIM_FAULTBLANKINGCTL_ENABLED 0x00000001U /*!< Fault blanking mode */
  1849. /**
  1850. * @}
  1851. */
  1852. /** @defgroup HRTIM_Fault_Filter HRTIM Fault Filter
  1853. * @{
  1854. * @ brief Constants defining the frequency used to sample the fault input and
  1855. * the length (N) of the digital filter applied
  1856. */
  1857. #define HRTIM_FAULTFILTER_NONE (0x00000000U) /*!< Filter disabled */
  1858. #define HRTIM_FAULTFILTER_1 (HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fHRTIM, N=2U */
  1859. #define HRTIM_FAULTFILTER_2 (HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fHRTIM, N=4U */
  1860. #define HRTIM_FAULTFILTER_3 (HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fHRTIM, N=8U */
  1861. #define HRTIM_FAULTFILTER_4 (HRTIM_FLTINR1_FLT1F_2) /*!< fSAMPLING= fFLTS/2U, N=6U */
  1862. #define HRTIM_FAULTFILTER_5 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/2U, N=8U */
  1863. #define HRTIM_FAULTFILTER_6 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/4U, N=6U */
  1864. #define HRTIM_FAULTFILTER_7 (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/4U, N=8U */
  1865. #define HRTIM_FAULTFILTER_8 (HRTIM_FLTINR1_FLT1F_3) /*!< fSAMPLING= fFLTS/8U, N=6U */
  1866. #define HRTIM_FAULTFILTER_9 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/8U, N=8U */
  1867. #define HRTIM_FAULTFILTER_10 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/16U, N=5U */
  1868. #define HRTIM_FAULTFILTER_11 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/16U, N=6U */
  1869. #define HRTIM_FAULTFILTER_12 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2) /*!< fSAMPLING= fFLTS/16U, N=8U */
  1870. #define HRTIM_FAULTFILTER_13 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/32U, N=5U */
  1871. #define HRTIM_FAULTFILTER_14 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1) /*!< fSAMPLING= fFLTS/32U, N=6U */
  1872. #define HRTIM_FAULTFILTER_15 (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0) /*!< fSAMPLING= fFLTS/32U, N=8U */
  1873. /**
  1874. * @}
  1875. */
  1876. /** @defgroup HRTIM_Fault_Counter HRTIM Fault counter threshold value
  1877. * @{
  1878. * @ brief Constants defining the FAULT Counter threshold
  1879. */
  1880. #define HRTIM_FAULTCOUNTER_NONE ((uint32_t)0U ) /*!< Counter threshold = 0U */
  1881. #define HRTIM_FAULTCOUNTER_1 ((uint32_t)1U ) /*!< Counter threshold = 1U */
  1882. #define HRTIM_FAULTCOUNTER_2 ((uint32_t)2U ) /*!< Counter threshold = 2U */
  1883. #define HRTIM_FAULTCOUNTER_3 ((uint32_t)3U ) /*!< Counter threshold = 3U */
  1884. #define HRTIM_FAULTCOUNTER_4 ((uint32_t)4U ) /*!< Counter threshold = 4U */
  1885. #define HRTIM_FAULTCOUNTER_5 ((uint32_t)5U ) /*!< Counter threshold = 5U */
  1886. #define HRTIM_FAULTCOUNTER_6 ((uint32_t)6U ) /*!< Counter threshold = 6U */
  1887. #define HRTIM_FAULTCOUNTER_7 ((uint32_t)7U ) /*!< Counter threshold = 7U */
  1888. #define HRTIM_FAULTCOUNTER_8 ((uint32_t)8U ) /*!< Counter threshold = 8U */
  1889. #define HRTIM_FAULTCOUNTER_9 ((uint32_t)9U ) /*!< Counter threshold = 9U */
  1890. #define HRTIM_FAULTCOUNTER_10 ((uint32_t)10U) /*!< Counter threshold = 10U */
  1891. #define HRTIM_FAULTCOUNTER_11 ((uint32_t)11U) /*!< Counter threshold = 11U */
  1892. #define HRTIM_FAULTCOUNTER_12 ((uint32_t)12U) /*!< Counter threshold = 12U */
  1893. #define HRTIM_FAULTCOUNTER_13 ((uint32_t)13U) /*!< Counter threshold = 13U */
  1894. #define HRTIM_FAULTCOUNTER_14 ((uint32_t)14U) /*!< Counter threshold = 14U */
  1895. #define HRTIM_FAULTCOUNTER_15 ((uint32_t)15U) /*!< Counter threshold = 15U */
  1896. /**
  1897. * @}
  1898. */
  1899. /** @defgroup HRTIM_Fault_Lock HRTIM Fault Lock
  1900. * @{
  1901. * @brief Constants defining whether or not the fault programming bits are
  1902. write protected
  1903. */
  1904. #define HRTIM_FAULTLOCK_READWRITE (0x00000000U) /*!< Fault settings bits are read/write */
  1905. #define HRTIM_FAULTLOCK_READONLY (HRTIM_FLTINR1_FLT1LCK) /*!< Fault settings bits are read only */
  1906. /**
  1907. * @}
  1908. */
  1909. /** @defgroup HRTIM_External_Fault_Prescaler HRTIM External Fault Prescaler
  1910. * @{
  1911. * @brief Constants defining the division ratio between the timer clock
  1912. * frequency (fHRTIM) and the fault signal sampling clock (fFLTS) used
  1913. * by the digital filters.
  1914. */
  1915. #define HRTIM_FAULTPRESCALER_DIV1 (0x00000000U) /*!< fFLTS=fHRTIM */
  1916. #define HRTIM_FAULTPRESCALER_DIV2 (HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS=fHRTIM / 2U */
  1917. #define HRTIM_FAULTPRESCALER_DIV4 (HRTIM_FLTINR2_FLTSD_1) /*!< fFLTS=fHRTIM / 4U */
  1918. #define HRTIM_FAULTPRESCALER_DIV8 (HRTIM_FLTINR2_FLTSD_1 | HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS=fHRTIM / 8U */
  1919. /**
  1920. * @}
  1921. */
  1922. /** @defgroup HRTIM_Burst_Mode_Operating_Mode HRTIM Burst Mode Operating Mode
  1923. * @{
  1924. * @brief Constants defining if the burst mode is entered once or if it is
  1925. * continuously operating
  1926. */
  1927. #define HRTIM_BURSTMODE_SINGLESHOT (0x00000000U) /*!< Burst mode operates in single shot mode */
  1928. #define HRTIM_BURSTMODE_CONTINOUS (HRTIM_BMCR_BMOM) /*!< Burst mode operates in continuous mode */
  1929. /**
  1930. * @}
  1931. */
  1932. /** @defgroup HRTIM_Burst_Mode_Clock_Source HRTIM Burst Mode Clock Source
  1933. * @{
  1934. * @brief Constants defining the clock source for the burst mode counter
  1935. */
  1936. #define HRTIM_BURSTMODECLOCKSOURCE_MASTER (0x00000000U) /*!< Master timer counter reset/roll-over is used as clock source for the burst mode counter */
  1937. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_A (HRTIM_BMCR_BMCLK_0) /*!< Timer A counter reset/roll-over is used as clock source for the burst mode counter */
  1938. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_B (HRTIM_BMCR_BMCLK_1) /*!< Timer B counter reset/roll-over is used as clock source for the burst mode counter */
  1939. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_C (HRTIM_BMCR_BMCLK_1 | HRTIM_BMCR_BMCLK_0) /*!< Timer C counter reset/roll-over is used as clock source for the burst mode counter */
  1940. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_D (HRTIM_BMCR_BMCLK_2) /*!< Timer D counter reset/roll-over is used as clock source for the burst mode counter */
  1941. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_E (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_0) /*!< Timer E counter reset/roll-over is used as clock source for the burst mode counter */
  1942. #define HRTIM_BURSTMODECLOCKSOURCE_TIMER_F (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_0) /*!< Timer F counter reset/roll-over is used as clock source for the burst mode counter */
  1943. #define HRTIM_BURSTMODECLOCKSOURCE_TIM16_OC (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_1) /*!< On-chip Event 1 (BMClk[1]), acting as a burst mode counter clock */
  1944. #define HRTIM_BURSTMODECLOCKSOURCE_TIM17_OC (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_1 | HRTIM_BMCR_BMCLK_0) /*!< On-chip Event 2 (BMClk[2]), acting as a burst mode counter clock */
  1945. #define HRTIM_BURSTMODECLOCKSOURCE_TIM7_TRGO (HRTIM_BMCR_BMCLK_3) /*!< On-chip Event 3 (BMClk[3]), acting as a burst mode counter clock */
  1946. #define HRTIM_BURSTMODECLOCKSOURCE_FHRTIM (HRTIM_BMCR_BMCLK_3 | HRTIM_BMCR_BMCLK_1) /*!< Prescaled fHRTIM clock is used as clock source for the burst mode counter */
  1947. /**
  1948. * @}
  1949. */
  1950. /** @defgroup HRTIM_Burst_Mode_Prescaler HRTIM Burst Mode Prescaler
  1951. * @{
  1952. * @brief Constants defining the prescaling ratio of the fHRTIM clock
  1953. * for the burst mode controller
  1954. */
  1955. #define HRTIM_BURSTMODEPRESCALER_DIV1 (0x00000000U) /*!< fBRST = fHRTIM */
  1956. #define HRTIM_BURSTMODEPRESCALER_DIV2 (HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/2U */
  1957. #define HRTIM_BURSTMODEPRESCALER_DIV4 (HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/4U */
  1958. #define HRTIM_BURSTMODEPRESCALER_DIV8 (HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/8U */
  1959. #define HRTIM_BURSTMODEPRESCALER_DIV16 (HRTIM_BMCR_BMPRSC_2) /*!< fBRST = fHRTIM/16U */
  1960. #define HRTIM_BURSTMODEPRESCALER_DIV32 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32U */
  1961. #define HRTIM_BURSTMODEPRESCALER_DIV64 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/64U */
  1962. #define HRTIM_BURSTMODEPRESCALER_DIV128 (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/128U */
  1963. #define HRTIM_BURSTMODEPRESCALER_DIV256 (HRTIM_BMCR_BMPRSC_3) /*!< fBRST = fHRTIM/256U */
  1964. #define HRTIM_BURSTMODEPRESCALER_DIV512 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/512U */
  1965. #define HRTIM_BURSTMODEPRESCALER_DIV1024 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/1024U */
  1966. #define HRTIM_BURSTMODEPRESCALER_DIV2048 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/2048U*/
  1967. #define HRTIM_BURSTMODEPRESCALER_DIV4096 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2) /*!< fBRST = fHRTIM/4096U */
  1968. #define HRTIM_BURSTMODEPRESCALER_DIV8192 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/8192U */
  1969. #define HRTIM_BURSTMODEPRESCALER_DIV16384 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1) /*!< fBRST = fHRTIM/16384U */
  1970. #define HRTIM_BURSTMODEPRESCALER_DIV32768 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32768U */
  1971. /**
  1972. * @}
  1973. */
  1974. /** @defgroup HRTIM_Burst_Mode_Register_Preload_Enable HRTIM Burst Mode Register Preload Enable
  1975. * @{
  1976. * @brief Constants defining whether or not burst mode registers preload
  1977. mechanism is enabled, i.e. a write access into a preloadable register
  1978. (HRTIM_BMCMPR, HRTIM_BMPER) is done into the active or the preload register
  1979. */
  1980. #define HRIM_BURSTMODEPRELOAD_DISABLED (0x00000000U) /*!< Preload disabled: the write access is directly done into active registers */
  1981. #define HRIM_BURSTMODEPRELOAD_ENABLED (HRTIM_BMCR_BMPREN) /*!< Preload enabled: the write access is done into preload registers */
  1982. /**
  1983. * @}
  1984. */
  1985. /** @defgroup HRTIM_Burst_Mode_Trigger HRTIM Burst Mode Trigger
  1986. * @{
  1987. * @brief Constants defining the events that can be used to trig the burst
  1988. * mode operation
  1989. */
  1990. #define HRTIM_BURSTMODETRIGGER_NONE 0x00000000U /*!< No trigger */
  1991. #define HRTIM_BURSTMODETRIGGER_MASTER_RESET (HRTIM_BMTRGR_MSTRST) /*!< Master reset */
  1992. #define HRTIM_BURSTMODETRIGGER_MASTER_REPETITION (HRTIM_BMTRGR_MSTREP) /*!< Master repetition */
  1993. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP1 (HRTIM_BMTRGR_MSTCMP1) /*!< Master compare 1U */
  1994. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP2 (HRTIM_BMTRGR_MSTCMP2) /*!< Master compare 2U */
  1995. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP3 (HRTIM_BMTRGR_MSTCMP3) /*!< Master compare 3U */
  1996. #define HRTIM_BURSTMODETRIGGER_MASTER_CMP4 (HRTIM_BMTRGR_MSTCMP4) /*!< Master compare 4U */
  1997. #define HRTIM_BURSTMODETRIGGER_TIMERA_RESET (HRTIM_BMTRGR_TARST) /*!< Timer A reset */
  1998. #define HRTIM_BURSTMODETRIGGER_TIMERA_REPETITION (HRTIM_BMTRGR_TAREP) /*!< Timer A repetition */
  1999. #define HRTIM_BURSTMODETRIGGER_TIMERA_CMP1 (HRTIM_BMTRGR_TACMP1) /*!< Timer A compare 1 */
  2000. #define HRTIM_BURSTMODETRIGGER_TIMERA_CMP2 (HRTIM_BMTRGR_TACMP2) /*!< Timer A compare 2 */
  2001. #define HRTIM_BURSTMODETRIGGER_TIMERB_RESET (HRTIM_BMTRGR_TBRST) /*!< Timer B reset */
  2002. #define HRTIM_BURSTMODETRIGGER_TIMERB_REPETITION (HRTIM_BMTRGR_TBREP) /*!< Timer B repetition */
  2003. #define HRTIM_BURSTMODETRIGGER_TIMERB_CMP1 (HRTIM_BMTRGR_TBCMP1) /*!< Timer B compare 1 */
  2004. #define HRTIM_BURSTMODETRIGGER_TIMERB_CMP2 (HRTIM_BMTRGR_TBCMP2) /*!< Timer B compare 2 */
  2005. #define HRTIM_BURSTMODETRIGGER_TIMERC_RESET (HRTIM_BMTRGR_TCRST) /*!< Timer C reset */
  2006. #define HRTIM_BURSTMODETRIGGER_TIMERC_REPETITION (HRTIM_BMTRGR_TCREP) /*!< Timer C repetition */
  2007. #define HRTIM_BURSTMODETRIGGER_TIMERC_CMP1 (HRTIM_BMTRGR_TCCMP1) /*!< Timer C compare 1 */
  2008. #define HRTIM_BURSTMODETRIGGER_TIMERF_RESET (HRTIM_BMTRGR_TFRST) /*!< Timer F reset */
  2009. #define HRTIM_BURSTMODETRIGGER_TIMERD_RESET (HRTIM_BMTRGR_TDRST) /*!< Timer D reset */
  2010. #define HRTIM_BURSTMODETRIGGER_TIMERD_REPETITION (HRTIM_BMTRGR_TDREP) /*!< Timer D repetition */
  2011. #define HRTIM_BURSTMODETRIGGER_TIMERF_REPETITION (HRTIM_BMTRGR_TFREP) /*!< Timer F repetition */
  2012. #define HRTIM_BURSTMODETRIGGER_TIMERD_CMP2 (HRTIM_BMTRGR_TDCMP2) /*!< Timer D compare 2 */
  2013. #define HRTIM_BURSTMODETRIGGER_TIMERF_CMP1 (HRTIM_BMTRGR_TFCMP1) /*!< Timer F compare 1 */
  2014. #define HRTIM_BURSTMODETRIGGER_TIMERE_REPETITION (HRTIM_BMTRGR_TEREP) /*!< Timer E repetition */
  2015. #define HRTIM_BURSTMODETRIGGER_TIMERE_CMP1 (HRTIM_BMTRGR_TECMP1) /*!< Timer E compare 1 */
  2016. #define HRTIM_BURSTMODETRIGGER_TIMERE_CMP2 (HRTIM_BMTRGR_TECMP2) /*!< Timer E compare 2 */
  2017. #define HRTIM_BURSTMODETRIGGER_TIMERA_EVENT7 (HRTIM_BMTRGR_TAEEV7) /*!< Timer A period following External Event 7 */
  2018. #define HRTIM_BURSTMODETRIGGER_TIMERD_EVENT8 (HRTIM_BMTRGR_TDEEV8) /*!< Timer D period following External Event 8 */
  2019. #define HRTIM_BURSTMODETRIGGER_EVENT_7 (HRTIM_BMTRGR_EEV7) /*!< External Event 7 (timer A filters applied) */
  2020. #define HRTIM_BURSTMODETRIGGER_EVENT_8 (HRTIM_BMTRGR_EEV8) /*!< External Event 8 (timer D filters applied)*/
  2021. #define HRTIM_BURSTMODETRIGGER_EVENT_ONCHIP (HRTIM_BMTRGR_OCHPEV) /*!< On-chip Event */
  2022. /**
  2023. * @}
  2024. */
  2025. /** @defgroup HRTIM_ADC_Trigger_Update_Source HRTIM ADC Trigger Update Source
  2026. * @{
  2027. * @brief constants defining the source triggering the update of the
  2028. HRTIM_ADCxR register (transfer from preload to active register).
  2029. */
  2030. #define HRTIM_ADCTRIGGERUPDATE_MASTER 0x00000000U /*!< Master timer */
  2031. #define HRTIM_ADCTRIGGERUPDATE_TIMER_A (HRTIM_CR1_ADC1USRC_0) /*!< Timer A */
  2032. #define HRTIM_ADCTRIGGERUPDATE_TIMER_B (HRTIM_CR1_ADC1USRC_1) /*!< Timer B */
  2033. #define HRTIM_ADCTRIGGERUPDATE_TIMER_C (HRTIM_CR1_ADC1USRC_1 | HRTIM_CR1_ADC1USRC_0) /*!< Timer C */
  2034. #define HRTIM_ADCTRIGGERUPDATE_TIMER_D (HRTIM_CR1_ADC1USRC_2) /*!< Timer D */
  2035. #define HRTIM_ADCTRIGGERUPDATE_TIMER_E (HRTIM_CR1_ADC1USRC_2 | HRTIM_CR1_ADC1USRC_0) /*!< Timer E */
  2036. #define HRTIM_ADCTRIGGERUPDATE_TIMER_F (HRTIM_CR1_ADC1USRC_2 | HRTIM_CR1_ADC1USRC_1) /*!< Timer F */
  2037. /**
  2038. * @}
  2039. */
  2040. /** @defgroup HRTIM_ADC_Trigger_Event HRTIM ADC Trigger Event
  2041. * @{
  2042. * @brief constants defining the events triggering ADC conversion.
  2043. * HRTIM_ADCTRIGGEREVENT13_*: ADC Triggers 1 and 3
  2044. * HRTIM_ADCTRIGGEREVENT24_*: ADC Triggers 2 and 4
  2045. * HRTIM_ADCTRIGGEREVENT579_*: ADC Triggers 5 and 7 and 9
  2046. * HRTIM_ADCTRIGGEREVENT6810_*: ADC Triggers 6 and 8 and 10
  2047. */
  2048. #define HRTIM_ADCTRIGGEREVENT13_NONE 0x00000000U /*!< No ADC trigger event */
  2049. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP1 (HRTIM_ADC1R_AD1MC1) /*!< ADC Trigger on master compare 1U */
  2050. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP2 (HRTIM_ADC1R_AD1MC2) /*!< ADC Trigger on master compare 2U */
  2051. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP3 (HRTIM_ADC1R_AD1MC3) /*!< ADC Trigger on master compare 3U */
  2052. #define HRTIM_ADCTRIGGEREVENT13_MASTER_CMP4 (HRTIM_ADC1R_AD1MC4) /*!< ADC Trigger on master compare 4U */
  2053. #define HRTIM_ADCTRIGGEREVENT13_MASTER_PERIOD (HRTIM_ADC1R_AD1MPER) /*!< ADC Trigger on master period */
  2054. #define HRTIM_ADCTRIGGEREVENT13_EVENT_1 (HRTIM_ADC1R_AD1EEV1) /*!< ADC Trigger on external event 1U */
  2055. #define HRTIM_ADCTRIGGEREVENT13_EVENT_2 (HRTIM_ADC1R_AD1EEV2) /*!< ADC Trigger on external event 2U */
  2056. #define HRTIM_ADCTRIGGEREVENT13_EVENT_3 (HRTIM_ADC1R_AD1EEV3) /*!< ADC Trigger on external event 3U */
  2057. #define HRTIM_ADCTRIGGEREVENT13_EVENT_4 (HRTIM_ADC1R_AD1EEV4) /*!< ADC Trigger on external event 4U */
  2058. #define HRTIM_ADCTRIGGEREVENT13_EVENT_5 (HRTIM_ADC1R_AD1EEV5) /*!< ADC Trigger on external event 5U */
  2059. #define HRTIM_ADCTRIGGEREVENT13_TIMERF_CMP2 (HRTIM_ADC1R_AD1TFC2) /*!< ADC Trigger on Timer F compare 2U */
  2060. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP3 (HRTIM_ADC1R_AD1TAC3) /*!< ADC Trigger on Timer A compare 3U */
  2061. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_CMP4 (HRTIM_ADC1R_AD1TAC4) /*!< ADC Trigger on Timer A compare 4U */
  2062. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_PERIOD (HRTIM_ADC1R_AD1TAPER) /*!< ADC Trigger on Timer A period */
  2063. #define HRTIM_ADCTRIGGEREVENT13_TIMERA_RESET (HRTIM_ADC1R_AD1TARST) /*!< ADC Trigger on Timer A reset */
  2064. #define HRTIM_ADCTRIGGEREVENT13_TIMERF_CMP3 (HRTIM_ADC1R_AD1TFC3) /*!< ADC Trigger on Timer F compare 3U */
  2065. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP3 (HRTIM_ADC1R_AD1TBC3) /*!< ADC Trigger on Timer B compare 3U */
  2066. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_CMP4 (HRTIM_ADC1R_AD1TBC4) /*!< ADC Trigger on Timer B compare 4U */
  2067. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_PERIOD (HRTIM_ADC1R_AD1TBPER) /*!< ADC Trigger on Timer B period */
  2068. #define HRTIM_ADCTRIGGEREVENT13_TIMERB_RESET (HRTIM_ADC1R_AD1TBRST) /*!< ADC Trigger on Timer B reset */
  2069. #define HRTIM_ADCTRIGGEREVENT13_TIMERF_CMP4 (HRTIM_ADC1R_AD1TFC4) /*!< ADC Trigger on Timer F compare 4U */
  2070. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP3 (HRTIM_ADC1R_AD1TCC3) /*!< ADC Trigger on Timer C compare 3U */
  2071. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_CMP4 (HRTIM_ADC1R_AD1TCC4) /*!< ADC Trigger on Timer C compare 4U */
  2072. #define HRTIM_ADCTRIGGEREVENT13_TIMERC_PERIOD (HRTIM_ADC1R_AD1TCPER) /*!< ADC Trigger on Timer C period */
  2073. #define HRTIM_ADCTRIGGEREVENT13_TIMERF_PERIOD (HRTIM_ADC1R_AD1TFPER) /*!< ADC Trigger on Timer F period */
  2074. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP3 (HRTIM_ADC1R_AD1TDC3) /*!< ADC Trigger on Timer D compare 3U */
  2075. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_CMP4 (HRTIM_ADC1R_AD1TDC4) /*!< ADC Trigger on Timer D compare 4U */
  2076. #define HRTIM_ADCTRIGGEREVENT13_TIMERD_PERIOD (HRTIM_ADC1R_AD1TDPER) /*!< ADC Trigger on Timer D period */
  2077. #define HRTIM_ADCTRIGGEREVENT13_TIMERF_RESET (HRTIM_ADC1R_AD1TFRST) /*!< ADC Trigger on Timer F reset */
  2078. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP3 (HRTIM_ADC1R_AD1TEC3) /*!< ADC Trigger on Timer E compare 3U */
  2079. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_CMP4 (HRTIM_ADC1R_AD1TEC4) /*!< ADC Trigger on Timer E compare 4U */
  2080. #define HRTIM_ADCTRIGGEREVENT13_TIMERE_PERIOD (HRTIM_ADC1R_AD1TEPER) /*!< ADC Trigger on Timer E period */
  2081. #define HRTIM_ADCTRIGGEREVENT24_NONE 0x00000000U /*!< No ADC trigger event */
  2082. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP1 (HRTIM_ADC2R_AD2MC1) /*!< ADC Trigger on master compare 1U */
  2083. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP2 (HRTIM_ADC2R_AD2MC2) /*!< ADC Trigger on master compare 2U */
  2084. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP3 (HRTIM_ADC2R_AD2MC3) /*!< ADC Trigger on master compare 3U */
  2085. #define HRTIM_ADCTRIGGEREVENT24_MASTER_CMP4 (HRTIM_ADC2R_AD2MC4) /*!< ADC Trigger on master compare 4U */
  2086. #define HRTIM_ADCTRIGGEREVENT24_MASTER_PERIOD (HRTIM_ADC2R_AD2MPER) /*!< ADC Trigger on master period */
  2087. #define HRTIM_ADCTRIGGEREVENT24_EVENT_6 (HRTIM_ADC2R_AD2EEV6) /*!< ADC Trigger on external event 6U */
  2088. #define HRTIM_ADCTRIGGEREVENT24_EVENT_7 (HRTIM_ADC2R_AD2EEV7) /*!< ADC Trigger on external event 7U */
  2089. #define HRTIM_ADCTRIGGEREVENT24_EVENT_8 (HRTIM_ADC2R_AD2EEV8) /*!< ADC Trigger on external event 8U */
  2090. #define HRTIM_ADCTRIGGEREVENT24_EVENT_9 (HRTIM_ADC2R_AD2EEV9) /*!< ADC Trigger on external event 9U */
  2091. #define HRTIM_ADCTRIGGEREVENT24_EVENT_10 (HRTIM_ADC2R_AD2EEV10) /*!< ADC Trigger on external event 10U */
  2092. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP2 (HRTIM_ADC2R_AD2TAC2) /*!< ADC Trigger on Timer A compare 2U */
  2093. #define HRTIM_ADCTRIGGEREVENT24_TIMERF_CMP2 (HRTIM_ADC2R_AD2TFC2) /*!< ADC Trigger on Timer F compare 2U */
  2094. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP4 (HRTIM_ADC2R_AD2TAC4) /*!< ADC Trigger on Timer A compare 4U */
  2095. #define HRTIM_ADCTRIGGEREVENT24_TIMERA_PERIOD (HRTIM_ADC2R_AD2TAPER) /*!< ADC Trigger on Timer A period */
  2096. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP2 (HRTIM_ADC2R_AD2TBC2) /*!< ADC Trigger on Timer B compare 2U */
  2097. #define HRTIM_ADCTRIGGEREVENT24_TIMERF_CMP3 (HRTIM_ADC2R_AD2TFC3) /*!< ADC Trigger on Timer F compare 3U */
  2098. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP4 (HRTIM_ADC2R_AD2TBC4) /*!< ADC Trigger on Timer B compare 4U */
  2099. #define HRTIM_ADCTRIGGEREVENT24_TIMERB_PERIOD (HRTIM_ADC2R_AD2TBPER) /*!< ADC Trigger on Timer B period */
  2100. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP2 (HRTIM_ADC2R_AD2TCC2) /*!< ADC Trigger on Timer C compare 2U */
  2101. #define HRTIM_ADCTRIGGEREVENT24_TIMERF_CMP4 (HRTIM_ADC2R_AD2TFC4) /*!< ADC Trigger on Timer F compare 4U */
  2102. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP4 (HRTIM_ADC2R_AD2TCC4) /*!< ADC Trigger on Timer C compare 4U */
  2103. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_PERIOD (HRTIM_ADC2R_AD2TCPER) /*!< ADC Trigger on Timer C period */
  2104. #define HRTIM_ADCTRIGGEREVENT24_TIMERC_RESET (HRTIM_ADC2R_AD2TCRST) /*!< ADC Trigger on Timer C reset */
  2105. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP2 (HRTIM_ADC2R_AD2TDC2) /*!< ADC Trigger on Timer D compare 2U */
  2106. #define HRTIM_ADCTRIGGEREVENT24_TIMERF_PERIOD (HRTIM_ADC2R_AD2TFPER) /*!< ADC Trigger on Timer F period */
  2107. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP4 (HRTIM_ADC2R_AD2TDC4) /*!< ADC Trigger on Timer D compare 4U */
  2108. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_PERIOD (HRTIM_ADC2R_AD2TDPER) /*!< ADC Trigger on Timer D period */
  2109. #define HRTIM_ADCTRIGGEREVENT24_TIMERD_RESET (HRTIM_ADC2R_AD2TDRST) /*!< ADC Trigger on Timer D reset */
  2110. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP2 (HRTIM_ADC2R_AD2TEC2) /*!< ADC Trigger on Timer E compare 2U */
  2111. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP3 (HRTIM_ADC2R_AD2TEC3) /*!< ADC Trigger on Timer E compare 3U */
  2112. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_CMP4 (HRTIM_ADC2R_AD2TEC4) /*!< ADC Trigger on Timer E compare 4U */
  2113. #define HRTIM_ADCTRIGGEREVENT24_TIMERE_RESET (HRTIM_ADC2R_AD2TERST) /*!< ADC Trigger on Timer E reset */
  2114. #define HRTIM_ADCTRIGGEREVENT6810_MASTER_CMP1 ((uint32_t)0x00U) /*!< ADC Trigger on master compare 1U */
  2115. #define HRTIM_ADCTRIGGEREVENT6810_MASTER_CMP2 ((uint32_t)0x01U) /*!< ADC Trigger on master compare 2U */
  2116. #define HRTIM_ADCTRIGGEREVENT6810_MASTER_CMP3 ((uint32_t)0x02U) /*!< ADC Trigger on master compare 3U */
  2117. #define HRTIM_ADCTRIGGEREVENT6810_MASTER_CMP4 ((uint32_t)0x03U) /*!< ADC Trigger on master compare 4U */
  2118. #define HRTIM_ADCTRIGGEREVENT6810_MASTER_PERIOD ((uint32_t)0x04U) /*!< ADC Trigger on master period */
  2119. #define HRTIM_ADCTRIGGEREVENT6810_EVENT_6 ((uint32_t)0x05U) /*!< ADC Trigger on external event 6U */
  2120. #define HRTIM_ADCTRIGGEREVENT6810_EVENT_7 ((uint32_t)0x06U) /*!< ADC Trigger on external event 7U */
  2121. #define HRTIM_ADCTRIGGEREVENT6810_EVENT_8 ((uint32_t)0x07U) /*!< ADC Trigger on external event 8U */
  2122. #define HRTIM_ADCTRIGGEREVENT6810_EVENT_9 ((uint32_t)0x08U) /*!< ADC Trigger on external event 9U */
  2123. #define HRTIM_ADCTRIGGEREVENT6810_EVENT_10 ((uint32_t)0x09U) /*!< ADC Trigger on external event 10U */
  2124. #define HRTIM_ADCTRIGGEREVENT6810_TIMERA_CMP2 ((uint32_t)0x0AU) /*!< ADC Trigger on Timer A compare 2U */
  2125. #define HRTIM_ADCTRIGGEREVENT6810_TIMERA_CMP4 ((uint32_t)0x0BU) /*!< ADC Trigger on Timer A compare 4U */
  2126. #define HRTIM_ADCTRIGGEREVENT6810_TIMERA_PERIOD ((uint32_t)0x0CU) /*!< ADC Trigger on Timer A period */
  2127. #define HRTIM_ADCTRIGGEREVENT6810_TIMERB_CMP2 ((uint32_t)0x0DU) /*!< ADC Trigger on Timer B compare 2U */
  2128. #define HRTIM_ADCTRIGGEREVENT6810_TIMERB_CMP4 ((uint32_t)0x0EU) /*!< ADC Trigger on Timer B compare 4U */
  2129. #define HRTIM_ADCTRIGGEREVENT6810_TIMERB_PERIOD ((uint32_t)0x0FU) /*!< ADC Trigger on Timer B period */
  2130. #define HRTIM_ADCTRIGGEREVENT6810_TIMERC_CMP2 ((uint32_t)0x10U) /*!< ADC Trigger on Timer C compare 2U */
  2131. #define HRTIM_ADCTRIGGEREVENT6810_TIMERC_CMP4 ((uint32_t)0x11U) /*!< ADC Trigger on Timer C compare 4U */
  2132. #define HRTIM_ADCTRIGGEREVENT6810_TIMERC_PERIOD ((uint32_t)0x12U) /*!< ADC Trigger on Timer C period */
  2133. #define HRTIM_ADCTRIGGEREVENT6810_TIMERC_RESET ((uint32_t)0x13U) /*!< ADC Trigger on Timer C reset */
  2134. #define HRTIM_ADCTRIGGEREVENT6810_TIMERD_CMP2 ((uint32_t)0x14U) /*!< ADC Trigger on Timer D compare 2U */
  2135. #define HRTIM_ADCTRIGGEREVENT6810_TIMERD_CMP4 ((uint32_t)0x15U) /*!< ADC Trigger on Timer D compare 4U */
  2136. #define HRTIM_ADCTRIGGEREVENT6810_TIMERD_PERIOD ((uint32_t)0x16U) /*!< ADC Trigger on Timer D period */
  2137. #define HRTIM_ADCTRIGGEREVENT6810_TIMERD_RESET ((uint32_t)0x17U) /*!< ADC Trigger on Timer D reset */
  2138. #define HRTIM_ADCTRIGGEREVENT6810_TIMERE_CMP2 ((uint32_t)0x18U) /*!< ADC Trigger on Timer E compare 2U */
  2139. #define HRTIM_ADCTRIGGEREVENT6810_TIMERE_CMP3 ((uint32_t)0x19U) /*!< ADC Trigger on Timer E compare 3U */
  2140. #define HRTIM_ADCTRIGGEREVENT6810_TIMERE_CMP4 ((uint32_t)0x1AU) /*!< ADC Trigger on Timer E compare 4U */
  2141. #define HRTIM_ADCTRIGGEREVENT6810_TIMERE_RESET ((uint32_t)0x1BU) /*!< ADC Trigger on Timer E reset */
  2142. #define HRTIM_ADCTRIGGEREVENT6810_TIMERF_CMP2 ((uint32_t)0x1CU) /*!< ADC Trigger on Timer F compare 2U */
  2143. #define HRTIM_ADCTRIGGEREVENT6810_TIMERF_CMP3 ((uint32_t)0x1DU) /*!< ADC Trigger on Timer F compare 3U */
  2144. #define HRTIM_ADCTRIGGEREVENT6810_TIMERF_CMP4 ((uint32_t)0x1EU) /*!< ADC Trigger on Timer F compare 4U */
  2145. #define HRTIM_ADCTRIGGEREVENT6810_TIMERF_PERIOD ((uint32_t)0x1FU) /*!< ADC Trigger on Timer F period */
  2146. #define HRTIM_ADCTRIGGEREVENT579_MASTER_CMP1 ((uint32_t)0x00U) /*!< ADC Trigger on master compare 1U */
  2147. #define HRTIM_ADCTRIGGEREVENT579_MASTER_CMP2 ((uint32_t)0x01U) /*!< ADC Trigger on master compare 2U */
  2148. #define HRTIM_ADCTRIGGEREVENT579_MASTER_CMP3 ((uint32_t)0x02U) /*!< ADC Trigger on master compare 3U */
  2149. #define HRTIM_ADCTRIGGEREVENT579_MASTER_CMP4 ((uint32_t)0x03U) /*!< ADC Trigger on master compare 4U */
  2150. #define HRTIM_ADCTRIGGEREVENT579_MASTER_PERIOD ((uint32_t)0x04U) /*!< ADC Trigger on master period */
  2151. #define HRTIM_ADCTRIGGEREVENT579_EVENT_1 ((uint32_t)0x05U) /*!< ADC Trigger on external event 1U */
  2152. #define HRTIM_ADCTRIGGEREVENT579_EVENT_2 ((uint32_t)0x06U) /*!< ADC Trigger on external event 2U */
  2153. #define HRTIM_ADCTRIGGEREVENT579_EVENT_3 ((uint32_t)0x07U) /*!< ADC Trigger on external event 3U */
  2154. #define HRTIM_ADCTRIGGEREVENT579_EVENT_4 ((uint32_t)0x08U) /*!< ADC Trigger on external event 4U */
  2155. #define HRTIM_ADCTRIGGEREVENT579_EVENT_5 ((uint32_t)0x09U) /*!< ADC Trigger on external event 5U */
  2156. #define HRTIM_ADCTRIGGEREVENT579_TIMERA_CMP3 ((uint32_t)0x0AU) /*!< ADC Trigger on Timer A compare 3U */
  2157. #define HRTIM_ADCTRIGGEREVENT579_TIMERA_CMP4 ((uint32_t)0x0BU) /*!< ADC Trigger on Timer A compare 4U */
  2158. #define HRTIM_ADCTRIGGEREVENT579_TIMERA_PERIOD ((uint32_t)0x0CU) /*!< ADC Trigger on Timer A period */
  2159. #define HRTIM_ADCTRIGGEREVENT579_TIMERA_RESET ((uint32_t)0x0DU) /*!< ADC Trigger on Timer A reset */
  2160. #define HRTIM_ADCTRIGGEREVENT579_TIMERB_CMP3 ((uint32_t)0x0EU) /*!< ADC Trigger on Timer B compare 3U */
  2161. #define HRTIM_ADCTRIGGEREVENT579_TIMERB_CMP4 ((uint32_t)0x0FU) /*!< ADC Trigger on Timer B compare 4U */
  2162. #define HRTIM_ADCTRIGGEREVENT579_TIMERB_PERIOD ((uint32_t)0x10U) /*!< ADC Trigger on Timer B period */
  2163. #define HRTIM_ADCTRIGGEREVENT579_TIMERB_RESET ((uint32_t)0x11U) /*!< ADC Trigger on Timer B reset */
  2164. #define HRTIM_ADCTRIGGEREVENT579_TIMERC_CMP3 ((uint32_t)0x12U) /*!< ADC Trigger on Timer C compare 3U */
  2165. #define HRTIM_ADCTRIGGEREVENT579_TIMERC_CMP4 ((uint32_t)0x13U) /*!< ADC Trigger on Timer C compare 4U */
  2166. #define HRTIM_ADCTRIGGEREVENT579_TIMERC_PERIOD ((uint32_t)0x14U) /*!< ADC Trigger on Timer C period */
  2167. #define HRTIM_ADCTRIGGEREVENT579_TIMERD_CMP3 ((uint32_t)0x15U) /*!< ADC Trigger on Timer D compare 3U */
  2168. #define HRTIM_ADCTRIGGEREVENT579_TIMERD_CMP4 ((uint32_t)0x16U) /*!< ADC Trigger on Timer D compare 4U */
  2169. #define HRTIM_ADCTRIGGEREVENT579_TIMERD_PERIOD ((uint32_t)0x17U) /*!< ADC Trigger on Timer D period */
  2170. #define HRTIM_ADCTRIGGEREVENT579_TIMERE_CMP3 ((uint32_t)0x18U) /*!< ADC Trigger on Timer E compare 3U */
  2171. #define HRTIM_ADCTRIGGEREVENT579_TIMERE_CMP4 ((uint32_t)0x19U) /*!< ADC Trigger on Timer E compare 4U */
  2172. #define HRTIM_ADCTRIGGEREVENT579_TIMERE_PERIOD ((uint32_t)0x1AU) /*!< ADC Trigger on Timer E period */
  2173. #define HRTIM_ADCTRIGGEREVENT579_TIMERF_CMP2 ((uint32_t)0x1BU) /*!< ADC Trigger on Timer F compare 2U */
  2174. #define HRTIM_ADCTRIGGEREVENT579_TIMERF_CMP3 ((uint32_t)0x1CU) /*!< ADC Trigger on Timer F compare 3U */
  2175. #define HRTIM_ADCTRIGGEREVENT579_TIMERF_CMP4 ((uint32_t)0x1DU) /*!< ADC Trigger on Timer F compare 4U */
  2176. #define HRTIM_ADCTRIGGEREVENT579_TIMERF_PERIOD ((uint32_t)0x1EU) /*!< ADC Trigger on Timer F period */
  2177. #define HRTIM_ADCTRIGGEREVENT579_TIMERF_RESET ((uint32_t)0x1FU) /*!< ADC Trigger on Timer F reset */
  2178. /**
  2179. * @}
  2180. */
  2181. /** @defgroup HRTIM_DLL_Calibration_Rate HRTIM DLL Calibration Rate
  2182. * @{
  2183. * @brief Constants defining the DLL calibration periods (in micro seconds)
  2184. */
  2185. #define HRTIM_SINGLE_CALIBRATION 0xFFFFFFFFU /*!< Non periodic DLL calibration */
  2186. #define HRTIM_CALIBRATIONRATE_0 0x00000000U /*!< Periodic DLL calibration: T = 1048576U * tHRTIM (6.168 ms) */
  2187. #define HRTIM_CALIBRATIONRATE_1 (HRTIM_DLLCR_CALRTE_0) /*!< Periodic DLL calibration: T = 131072U * tHRTIM (0.771 ms) */
  2188. #define HRTIM_CALIBRATIONRATE_2 (HRTIM_DLLCR_CALRTE_1) /*!< Periodic DLL calibration: T = 16384U * tHRTIM (0.096 ms) */
  2189. #define HRTIM_CALIBRATIONRATE_3 (HRTIM_DLLCR_CALRTE_1 | HRTIM_DLLCR_CALRTE_0) /*!< Periodic DLL calibration: T = 2048U * tHRTIM (0.012 ms) */
  2190. /**
  2191. * @}
  2192. */
  2193. /** @defgroup HRTIM_Burst_DMA_Registers_Update HRTIM Burst DMA Registers Update
  2194. * @{
  2195. * @brief Constants defining the registers that can be written during a burst
  2196. * DMA operation
  2197. */
  2198. #define HRTIM_BURSTDMA_NONE 0x00000000U /*!< No register is updated by Burst DMA accesses */
  2199. #define HRTIM_BURSTDMA_CR (HRTIM_BDTUPR_TIMCR) /*!< MCR or TIMxCR register is updated by Burst DMA accesses */
  2200. #define HRTIM_BURSTDMA_ICR (HRTIM_BDTUPR_TIMICR) /*!< MICR or TIMxICR register is updated by Burst DMA accesses */
  2201. #define HRTIM_BURSTDMA_DIER (HRTIM_BDTUPR_TIMDIER) /*!< MDIER or TIMxDIER register is updated by Burst DMA accesses */
  2202. #define HRTIM_BURSTDMA_CNT (HRTIM_BDTUPR_TIMCNT) /*!< MCNTR or CNTxCR register is updated by Burst DMA accesses */
  2203. #define HRTIM_BURSTDMA_PER (HRTIM_BDTUPR_TIMPER) /*!< MPER or PERxR register is updated by Burst DMA accesses */
  2204. #define HRTIM_BURSTDMA_REP (HRTIM_BDTUPR_TIMREP) /*!< MREPR or REPxR register is updated by Burst DMA accesses */
  2205. #define HRTIM_BURSTDMA_CMP1 (HRTIM_BDTUPR_TIMCMP1) /*!< MCMP1R or CMP1xR register is updated by Burst DMA accesses */
  2206. #define HRTIM_BURSTDMA_CMP2 (HRTIM_BDTUPR_TIMCMP2) /*!< MCMP2R or CMP2xR register is updated by Burst DMA accesses */
  2207. #define HRTIM_BURSTDMA_CMP3 (HRTIM_BDTUPR_TIMCMP3) /*!< MCMP3R or CMP3xR register is updated by Burst DMA accesses */
  2208. #define HRTIM_BURSTDMA_CMP4 (HRTIM_BDTUPR_TIMCMP4) /*!< MCMP4R or CMP4xR register is updated by Burst DMA accesses */
  2209. #define HRTIM_BURSTDMA_DTR (HRTIM_BDTUPR_TIMDTR) /*!< TDxR register is updated by Burst DMA accesses */
  2210. #define HRTIM_BURSTDMA_SET1R (HRTIM_BDTUPR_TIMSET1R) /*!< SET1R register is updated by Burst DMA accesses */
  2211. #define HRTIM_BURSTDMA_RST1R (HRTIM_BDTUPR_TIMRST1R) /*!< RST1R register is updated by Burst DMA accesses */
  2212. #define HRTIM_BURSTDMA_SET2R (HRTIM_BDTUPR_TIMSET2R) /*!< SET2R register is updated by Burst DMA accesses */
  2213. #define HRTIM_BURSTDMA_RST2R (HRTIM_BDTUPR_TIMRST2R) /*!< RST1R register is updated by Burst DMA accesses */
  2214. #define HRTIM_BURSTDMA_EEFR1 (HRTIM_BDTUPR_TIMEEFR1) /*!< EEFxR1 register is updated by Burst DMA accesses */
  2215. #define HRTIM_BURSTDMA_EEFR2 (HRTIM_BDTUPR_TIMEEFR2) /*!< EEFxR2 register is updated by Burst DMA accesses */
  2216. #define HRTIM_BURSTDMA_RSTR (HRTIM_BDTUPR_TIMRSTR) /*!< RSTxR register is updated by Burst DMA accesses */
  2217. #define HRTIM_BURSTDMA_CHPR (HRTIM_BDTUPR_TIMCHPR) /*!< CHPxR register is updated by Burst DMA accesses */
  2218. #define HRTIM_BURSTDMA_OUTR (HRTIM_BDTUPR_TIMOUTR) /*!< OUTxR register is updated by Burst DMA accesses */
  2219. #define HRTIM_BURSTDMA_FLTR (HRTIM_BDTUPR_TIMFLTR) /*!< FLTxR register is updated by Burst DMA accesses */
  2220. #define HRTIM_BURSTDMA_CR2 (HRTIM_BDTUPR_TIMCR2) /*!< TIMxCR2 register is updated by Burst DMA accesses */
  2221. #define HRTIM_BURSTDMA_EEFR3 (HRTIM_BDTUPR_TIMEEFR3) /*!< EEFxR3 register is updated by Burst DMA accesses */
  2222. /**
  2223. * @}
  2224. */
  2225. /** @defgroup HRTIM_Burst_Mode_Control HRTIM Burst Mode Control
  2226. * @{
  2227. * @brief Constants used to enable or disable the burst mode controller
  2228. */
  2229. #define HRTIM_BURSTMODECTL_DISABLED 0x00000000U /*!< Burst mode disabled */
  2230. #define HRTIM_BURSTMODECTL_ENABLED (HRTIM_BMCR_BME) /*!< Burst mode enabled */
  2231. /**
  2232. * @}
  2233. */
  2234. /** @defgroup HRTIM_Fault_Mode_Control HRTIM Fault Mode Control
  2235. * @{
  2236. * @brief Constants used to enable or disable a fault channel
  2237. */
  2238. #define HRTIM_FAULTMODECTL_DISABLED 0x00000000U /*!< Fault channel is disabled */
  2239. #define HRTIM_FAULTMODECTL_ENABLED 0x00000001U /*!< Fault channel is enabled */
  2240. /**
  2241. * @}
  2242. */
  2243. /** @defgroup HRTIM_Software_Timer_Update HRTIM Software Timer Update
  2244. * @{
  2245. * @brief Constants used to force timer registers update
  2246. */
  2247. #define HRTIM_TIMERUPDATE_MASTER (HRTIM_CR2_MSWU) /*!< Force an immediate transfer from the preload to the active register in the master timer */
  2248. #define HRTIM_TIMERUPDATE_A (HRTIM_CR2_TASWU) /*!< Force an immediate transfer from the preload to the active register in the timer A */
  2249. #define HRTIM_TIMERUPDATE_B (HRTIM_CR2_TBSWU) /*!< Force an immediate transfer from the preload to the active register in the timer B */
  2250. #define HRTIM_TIMERUPDATE_C (HRTIM_CR2_TCSWU) /*!< Force an immediate transfer from the preload to the active register in the timer C */
  2251. #define HRTIM_TIMERUPDATE_D (HRTIM_CR2_TDSWU) /*!< Force an immediate transfer from the preload to the active register in the timer D */
  2252. #define HRTIM_TIMERUPDATE_E (HRTIM_CR2_TESWU) /*!< Force an immediate transfer from the preload to the active register in the timer E */
  2253. #define HRTIM_TIMERUPDATE_F (HRTIM_CR2_TFSWU) /*!< Forces an immediate transfer from the preload to the active register in the timer F */
  2254. /**
  2255. * @}
  2256. */
  2257. /** @defgroup HRTIM_Software_Timer_SwapOutput HRTIM Software Timer swap Output
  2258. * @{
  2259. * @brief Constants used to swap the output of the timer registers
  2260. */
  2261. #define HRTIM_TIMERSWAP_A (HRTIM_CR2_SWPA) /*!< Swap the output of the Timer A */
  2262. #define HRTIM_TIMERSWAP_B (HRTIM_CR2_SWPB) /*!< Swap the output of the Timer B */
  2263. #define HRTIM_TIMERSWAP_C (HRTIM_CR2_SWPC) /*!< Swap the output of the Timer C */
  2264. #define HRTIM_TIMERSWAP_D (HRTIM_CR2_SWPD) /*!< Swap the output of the Timer D */
  2265. #define HRTIM_TIMERSWAP_E (HRTIM_CR2_SWPE) /*!< Swap the output of the Timer E */
  2266. #define HRTIM_TIMERSWAP_F (HRTIM_CR2_SWPF) /*!< Swap the output of the Timer F */
  2267. /**
  2268. * @}
  2269. */
  2270. /** @defgroup HRTIM_Software_Timer_Reset HRTIM Software Timer Reset
  2271. * @{
  2272. * @brief Constants used to force timer counter reset
  2273. */
  2274. #define HRTIM_TIMERRESET_MASTER (HRTIM_CR2_MRST) /*!< Reset the master timer counter */
  2275. #define HRTIM_TIMERRESET_TIMER_A (HRTIM_CR2_TARST) /*!< Reset the timer A counter */
  2276. #define HRTIM_TIMERRESET_TIMER_B (HRTIM_CR2_TBRST) /*!< Reset the timer B counter */
  2277. #define HRTIM_TIMERRESET_TIMER_C (HRTIM_CR2_TCRST) /*!< Reset the timer C counter */
  2278. #define HRTIM_TIMERRESET_TIMER_D (HRTIM_CR2_TDRST) /*!< Reset the timer D counter */
  2279. #define HRTIM_TIMERRESET_TIMER_E (HRTIM_CR2_TERST) /*!< Reset the timer E counter */
  2280. #define HRTIM_TIMERRESET_TIMER_F (HRTIM_CR2_TFRST) /*!< Reset the timer F counter */
  2281. /**
  2282. * @}
  2283. */
  2284. /** @defgroup HRTIM_Output_Level HRTIM Output Level
  2285. * @{
  2286. * @brief Constants defining the level of a timer output
  2287. */
  2288. #define HRTIM_OUTPUTLEVEL_ACTIVE (0x00000001U) /*!< Force the output to its active state */
  2289. #define HRTIM_OUTPUTLEVEL_INACTIVE (0x00000002U) /*!< Force the output to its inactive state */
  2290. #define IS_HRTIM_OUTPUTLEVEL(OUTPUTLEVEL)\
  2291. (((OUTPUTLEVEL) == HRTIM_OUTPUTLEVEL_ACTIVE) || \
  2292. ((OUTPUTLEVEL) == HRTIM_OUTPUTLEVEL_INACTIVE))
  2293. /**
  2294. * @}
  2295. */
  2296. /** @defgroup HRTIM_Output_State HRTIM Output State
  2297. * @{
  2298. * @brief Constants defining the state of a timer output
  2299. */
  2300. #define HRTIM_OUTPUTSTATE_IDLE (0x00000001U) /*!< Main operating mode, where the output can take the active or
  2301. inactive level as programmed in the crossbar unit */
  2302. #define HRTIM_OUTPUTSTATE_RUN (0x00000002U) /*!< Default operating state (e.g. after an HRTIM reset, when the
  2303. outputs are disabled by software or during a burst mode operation */
  2304. #define HRTIM_OUTPUTSTATE_FAULT (0x00000003U) /*!< Safety state, entered in case of a shut-down request on
  2305. FAULTx inputs */
  2306. /**
  2307. * @}
  2308. */
  2309. /** @defgroup HRTIM_Burst_Mode_Status HRTIM Burst Mode Status
  2310. * @{
  2311. * @brief Constants defining the operating state of the burst mode controller
  2312. */
  2313. #define HRTIM_BURSTMODESTATUS_NORMAL 0x00000000U /*!< Normal operation */
  2314. #define HRTIM_BURSTMODESTATUS_ONGOING (HRTIM_BMCR_BMSTAT) /*!< Burst operation on-going */
  2315. /**
  2316. * @}
  2317. */
  2318. /** @defgroup HRTIM_Current_Push_Pull_Status HRTIM Current Push Pull Status
  2319. * @{
  2320. * @brief Constants defining on which output the signal is currently applied
  2321. * in push-pull mode
  2322. */
  2323. #define HRTIM_PUSHPULL_CURRENTSTATUS_OUTPUT1 0x00000000U /*!< Signal applied on output 1 and output 2 forced inactive */
  2324. #define HRTIM_PUSHPULL_CURRENTSTATUS_OUTPUT2 (HRTIM_TIMISR_CPPSTAT) /*!< Signal applied on output 2 and output 1 forced inactive */
  2325. /**
  2326. * @}
  2327. */
  2328. /** @defgroup HRTIM_Idle_Push_Pull_Status HRTIM Idle Push Pull Status
  2329. * @{
  2330. * @brief Constants defining on which output the signal was applied, in
  2331. * push-pull mode balanced fault mode or delayed idle mode, when the
  2332. * protection was triggered
  2333. */
  2334. #define HRTIM_PUSHPULL_IDLESTATUS_OUTPUT1 0x00000000U /*!< Protection occurred when the output 1 was active and output 2 forced inactive */
  2335. #define HRTIM_PUSHPULL_IDLESTATUS_OUTPUT2 (HRTIM_TIMISR_IPPSTAT) /*!< Protection occurred when the output 2 was active and output 1 forced inactive */
  2336. /**
  2337. * @}
  2338. */
  2339. /** @defgroup HRTIM_Common_Interrupt_Enable HRTIM Common Interrupt Enable
  2340. * @{
  2341. */
  2342. #define HRTIM_IT_NONE 0x00000000U /*!< No interrupt enabled */
  2343. #define HRTIM_IT_FLT1 HRTIM_IER_FLT1 /*!< Fault 1 interrupt enable */
  2344. #define HRTIM_IT_FLT2 HRTIM_IER_FLT2 /*!< Fault 2 interrupt enable */
  2345. #define HRTIM_IT_FLT3 HRTIM_IER_FLT3 /*!< Fault 3 interrupt enable */
  2346. #define HRTIM_IT_FLT4 HRTIM_IER_FLT4 /*!< Fault 4 interrupt enable */
  2347. #define HRTIM_IT_FLT5 HRTIM_IER_FLT5 /*!< Fault 5 interrupt enable */
  2348. #define HRTIM_IT_FLT6 HRTIM_IER_FLT6 /*!< Fault 6 interrupt enable */
  2349. #define HRTIM_IT_SYSFLT HRTIM_IER_SYSFLT /*!< System Fault interrupt enable */
  2350. #define HRTIM_IT_DLLRDY HRTIM_IER_DLLRDY /*!< DLL ready interrupt enable */
  2351. #define HRTIM_IT_BMPER HRTIM_IER_BMPER /*!< Burst mode period interrupt enable */
  2352. /**
  2353. * @}
  2354. */
  2355. /** @defgroup HRTIM_Master_Interrupt_Enable HRTIM Master Interrupt Enable
  2356. * @{
  2357. */
  2358. #define HRTIM_MASTER_IT_NONE 0x00000000U /*!< No interrupt enabled */
  2359. #define HRTIM_MASTER_IT_MCMP1 HRTIM_MDIER_MCMP1IE /*!< Master compare 1 interrupt enable */
  2360. #define HRTIM_MASTER_IT_MCMP2 HRTIM_MDIER_MCMP2IE /*!< Master compare 2 interrupt enable */
  2361. #define HRTIM_MASTER_IT_MCMP3 HRTIM_MDIER_MCMP3IE /*!< Master compare 3 interrupt enable */
  2362. #define HRTIM_MASTER_IT_MCMP4 HRTIM_MDIER_MCMP4IE /*!< Master compare 4 interrupt enable */
  2363. #define HRTIM_MASTER_IT_MREP HRTIM_MDIER_MREPIE /*!< Master Repetition interrupt enable */
  2364. #define HRTIM_MASTER_IT_SYNC HRTIM_MDIER_SYNCIE /*!< Synchronization input interrupt enable */
  2365. #define HRTIM_MASTER_IT_MUPD HRTIM_MDIER_MUPDIE /*!< Master update interrupt enable */
  2366. /**
  2367. * @}
  2368. */
  2369. /** @defgroup HRTIM_Timing_Unit_Interrupt_Enable HRTIM Timing Unit Interrupt Enable
  2370. * @{
  2371. */
  2372. #define HRTIM_TIM_IT_NONE 0x00000000U /*!< No interrupt enabled */
  2373. #define HRTIM_TIM_IT_CMP1 HRTIM_TIMDIER_CMP1IE /*!< Timer compare 1 interrupt enable */
  2374. #define HRTIM_TIM_IT_CMP2 HRTIM_TIMDIER_CMP2IE /*!< Timer compare 2 interrupt enable */
  2375. #define HRTIM_TIM_IT_CMP3 HRTIM_TIMDIER_CMP3IE /*!< Timer compare 3 interrupt enable */
  2376. #define HRTIM_TIM_IT_CMP4 HRTIM_TIMDIER_CMP4IE /*!< Timer compare 4 interrupt enable */
  2377. #define HRTIM_TIM_IT_REP HRTIM_TIMDIER_REPIE /*!< Timer repetition interrupt enable */
  2378. #define HRTIM_TIM_IT_UPD HRTIM_TIMDIER_UPDIE /*!< Timer update interrupt enable */
  2379. #define HRTIM_TIM_IT_CPT1 HRTIM_TIMDIER_CPT1IE /*!< Timer capture 1 interrupt enable */
  2380. #define HRTIM_TIM_IT_CPT2 HRTIM_TIMDIER_CPT2IE /*!< Timer capture 2 interrupt enable */
  2381. #define HRTIM_TIM_IT_SET1 HRTIM_TIMDIER_SET1IE /*!< Timer output 1 set interrupt enable */
  2382. #define HRTIM_TIM_IT_RST1 HRTIM_TIMDIER_RST1IE /*!< Timer output 1 reset interrupt enable */
  2383. #define HRTIM_TIM_IT_SET2 HRTIM_TIMDIER_SET2IE /*!< Timer output 2 set interrupt enable */
  2384. #define HRTIM_TIM_IT_RST2 HRTIM_TIMDIER_RST2IE /*!< Timer output 2 reset interrupt enable */
  2385. #define HRTIM_TIM_IT_RST HRTIM_TIMDIER_RSTIE /*!< Timer reset interrupt enable */
  2386. #define HRTIM_TIM_IT_DLYPRT HRTIM_TIMDIER_DLYPRTIE /*!< Timer delay protection interrupt enable */
  2387. /**
  2388. * @}
  2389. */
  2390. /** @defgroup HRTIM_Common_Interrupt_Flag HRTIM Common Interrupt Flag
  2391. * @{
  2392. */
  2393. #define HRTIM_FLAG_FLT1 HRTIM_ISR_FLT1 /*!< Fault 1 interrupt flag */
  2394. #define HRTIM_FLAG_FLT2 HRTIM_ISR_FLT2 /*!< Fault 2 interrupt flag */
  2395. #define HRTIM_FLAG_FLT3 HRTIM_ISR_FLT3 /*!< Fault 3 interrupt flag */
  2396. #define HRTIM_FLAG_FLT4 HRTIM_ISR_FLT4 /*!< Fault 4 interrupt flag */
  2397. #define HRTIM_FLAG_FLT5 HRTIM_ISR_FLT5 /*!< Fault 5 interrupt flag */
  2398. #define HRTIM_FLAG_FLT6 HRTIM_ISR_FLT6 /*!< Fault 6 interrupt flag */
  2399. #define HRTIM_FLAG_SYSFLT HRTIM_ISR_SYSFLT /*!< System Fault interrupt flag */
  2400. #define HRTIM_FLAG_DLLRDY HRTIM_ISR_DLLRDY /*!< DLL ready interrupt flag */
  2401. #define HRTIM_FLAG_BMPER HRTIM_ISR_BMPER /*!< Burst mode period interrupt flag */
  2402. /**
  2403. * @}
  2404. */
  2405. /** @defgroup HRTIM_Master_Interrupt_Flag HRTIM Master Interrupt Flag
  2406. * @{
  2407. */
  2408. #define HRTIM_MASTER_FLAG_MCMP1 HRTIM_MISR_MCMP1 /*!< Master compare 1 interrupt flag */
  2409. #define HRTIM_MASTER_FLAG_MCMP2 HRTIM_MISR_MCMP2 /*!< Master compare 2 interrupt flag */
  2410. #define HRTIM_MASTER_FLAG_MCMP3 HRTIM_MISR_MCMP3 /*!< Master compare 3 interrupt flag */
  2411. #define HRTIM_MASTER_FLAG_MCMP4 HRTIM_MISR_MCMP4 /*!< Master compare 4 interrupt flag */
  2412. #define HRTIM_MASTER_FLAG_MREP HRTIM_MISR_MREP /*!< Master Repetition interrupt flag */
  2413. #define HRTIM_MASTER_FLAG_SYNC HRTIM_MISR_SYNC /*!< Synchronization input interrupt flag */
  2414. #define HRTIM_MASTER_FLAG_MUPD HRTIM_MISR_MUPD /*!< Master update interrupt flag */
  2415. /**
  2416. * @}
  2417. */
  2418. /** @defgroup HRTIM_Timing_Unit_Interrupt_Flag HRTIM Timing Unit Interrupt Flag
  2419. * @{
  2420. */
  2421. #define HRTIM_TIM_FLAG_CMP1 HRTIM_TIMISR_CMP1 /*!< Timer compare 1 interrupt flag */
  2422. #define HRTIM_TIM_FLAG_CMP2 HRTIM_TIMISR_CMP2 /*!< Timer compare 2 interrupt flag */
  2423. #define HRTIM_TIM_FLAG_CMP3 HRTIM_TIMISR_CMP3 /*!< Timer compare 3 interrupt flag */
  2424. #define HRTIM_TIM_FLAG_CMP4 HRTIM_TIMISR_CMP4 /*!< Timer compare 4 interrupt flag */
  2425. #define HRTIM_TIM_FLAG_REP HRTIM_TIMISR_REP /*!< Timer repetition interrupt flag */
  2426. #define HRTIM_TIM_FLAG_UPD HRTIM_TIMISR_UPD /*!< Timer update interrupt flag */
  2427. #define HRTIM_TIM_FLAG_CPT1 HRTIM_TIMISR_CPT1 /*!< Timer capture 1 interrupt flag */
  2428. #define HRTIM_TIM_FLAG_CPT2 HRTIM_TIMISR_CPT2 /*!< Timer capture 2 interrupt flag */
  2429. #define HRTIM_TIM_FLAG_SET1 HRTIM_TIMISR_SET1 /*!< Timer output 1 set interrupt flag */
  2430. #define HRTIM_TIM_FLAG_RST1 HRTIM_TIMISR_RST1 /*!< Timer output 1 reset interrupt flag */
  2431. #define HRTIM_TIM_FLAG_SET2 HRTIM_TIMISR_SET2 /*!< Timer output 2 set interrupt flag */
  2432. #define HRTIM_TIM_FLAG_RST2 HRTIM_TIMISR_RST2 /*!< Timer output 2 reset interrupt flag */
  2433. #define HRTIM_TIM_FLAG_RST HRTIM_TIMISR_RST /*!< Timer reset interrupt flag */
  2434. #define HRTIM_TIM_FLAG_DLYPRT HRTIM_TIMISR_DLYPRT /*!< Timer delay protection interrupt flag */
  2435. /**
  2436. * @}
  2437. */
  2438. /** @defgroup HRTIM_Master_DMA_Request_Enable HRTIM Master DMA Request Enable
  2439. * @{
  2440. */
  2441. #define HRTIM_MASTER_DMA_NONE 0x00000000U /*!< No DMA request enable */
  2442. #define HRTIM_MASTER_DMA_MCMP1 HRTIM_MDIER_MCMP1DE /*!< Master compare 1 DMA request enable */
  2443. #define HRTIM_MASTER_DMA_MCMP2 HRTIM_MDIER_MCMP2DE /*!< Master compare 2 DMA request enable */
  2444. #define HRTIM_MASTER_DMA_MCMP3 HRTIM_MDIER_MCMP3DE /*!< Master compare 3 DMA request enable */
  2445. #define HRTIM_MASTER_DMA_MCMP4 HRTIM_MDIER_MCMP4DE /*!< Master compare 4 DMA request enable */
  2446. #define HRTIM_MASTER_DMA_MREP HRTIM_MDIER_MREPDE /*!< Master Repetition DMA request enable */
  2447. #define HRTIM_MASTER_DMA_SYNC HRTIM_MDIER_SYNCDE /*!< Synchronization input DMA request enable */
  2448. #define HRTIM_MASTER_DMA_MUPD HRTIM_MDIER_MUPDDE /*!< Master update DMA request enable */
  2449. /**
  2450. * @}
  2451. */
  2452. /** @defgroup HRTIM_Timing_Unit_DMA_Request_Enable HRTIM Timing Unit DMA Request Enable
  2453. * @{
  2454. */
  2455. #define HRTIM_TIM_DMA_NONE 0x00000000U /*!< No DMA request enable */
  2456. #define HRTIM_TIM_DMA_CMP1 HRTIM_TIMDIER_CMP1DE /*!< Timer compare 1 DMA request enable */
  2457. #define HRTIM_TIM_DMA_CMP2 HRTIM_TIMDIER_CMP2DE /*!< Timer compare 2 DMA request enable */
  2458. #define HRTIM_TIM_DMA_CMP3 HRTIM_TIMDIER_CMP3DE /*!< Timer compare 3 DMA request enable */
  2459. #define HRTIM_TIM_DMA_CMP4 HRTIM_TIMDIER_CMP4DE /*!< Timer compare 4 DMA request enable */
  2460. #define HRTIM_TIM_DMA_REP HRTIM_TIMDIER_REPDE /*!< Timer repetition DMA request enable */
  2461. #define HRTIM_TIM_DMA_UPD HRTIM_TIMDIER_UPDDE /*!< Timer update DMA request enable */
  2462. #define HRTIM_TIM_DMA_CPT1 HRTIM_TIMDIER_CPT1DE /*!< Timer capture 1 DMA request enable */
  2463. #define HRTIM_TIM_DMA_CPT2 HRTIM_TIMDIER_CPT2DE /*!< Timer capture 2 DMA request enable */
  2464. #define HRTIM_TIM_DMA_SET1 HRTIM_TIMDIER_SET1DE /*!< Timer output 1 set DMA request enable */
  2465. #define HRTIM_TIM_DMA_RST1 HRTIM_TIMDIER_RST1DE /*!< Timer output 1 reset DMA request enable */
  2466. #define HRTIM_TIM_DMA_SET2 HRTIM_TIMDIER_SET2DE /*!< Timer output 2 set DMA request enable */
  2467. #define HRTIM_TIM_DMA_RST2 HRTIM_TIMDIER_RST2DE /*!< Timer output 2 reset DMA request enable */
  2468. #define HRTIM_TIM_DMA_RST HRTIM_TIMDIER_RSTDE /*!< Timer reset DMA request enable */
  2469. #define HRTIM_TIM_DMA_DLYPRT HRTIM_TIMDIER_DLYPRTDE /*!< Timer delay protection DMA request enable */
  2470. /**
  2471. * @}
  2472. */
  2473. /**
  2474. * @}
  2475. */
  2476. /* Private Constants --------------------------------------------------------*/
  2477. /** @addtogroup HRTIM_Private_Constants
  2478. * @{
  2479. */
  2480. #define HRTIM_CAPTUREFTRIGGER_NONE 0x00000000U /*!< 32bit value Capture trigger is disabled */
  2481. #define HRTIM_CAPTUREFTRIGGER_TF1_SET (HRTIM_CPT1CR_TF1SET) /*!< 32bit value Capture is triggered by TF1 output inactive to active transition */
  2482. #define HRTIM_CAPTUREFTRIGGER_TF1_RESET (HRTIM_CPT1CR_TF1RST) /*!< 32bit value Capture is triggered by TF1 output active to inactive transition */
  2483. #define HRTIM_CAPTUREFTRIGGER_TIMERF_CMP1 (HRTIM_CPT1CR_TIMFCMP1) /*!< 32bit value Timer F Compare 1 triggers Capture */
  2484. #define HRTIM_CAPTUREFTRIGGER_TIMERF_CMP2 (HRTIM_CPT1CR_TIMFCMP2) /*!< 32bit value Timer F Compare 2 triggers Capture */
  2485. /**
  2486. * @}
  2487. */
  2488. /* Private macros --------------------------------------------------------*/
  2489. /** @addtogroup HRTIM_Private_Macros
  2490. * @{
  2491. */
  2492. #define IS_HRTIM_TIMERINDEX(TIMERINDEX)\
  2493. (((TIMERINDEX) == HRTIM_TIMERINDEX_MASTER) || \
  2494. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_A) || \
  2495. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_B) || \
  2496. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_C) || \
  2497. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_D) || \
  2498. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_E) || \
  2499. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_F))
  2500. #define IS_HRTIM_TIMING_UNIT(TIMERINDEX)\
  2501. (((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_A) || \
  2502. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_B) || \
  2503. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_C) || \
  2504. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_D) || \
  2505. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_E) || \
  2506. ((TIMERINDEX) == HRTIM_TIMERINDEX_TIMER_F))
  2507. #define IS_HRTIM_TIMERID(TIMERID) (((TIMERID) & 0xFF80FFFFU) == 0x00000000U)
  2508. #define IS_HRTIM_COMPAREUNIT(COMPAREUNIT)\
  2509. (((COMPAREUNIT) == HRTIM_COMPAREUNIT_1) || \
  2510. ((COMPAREUNIT) == HRTIM_COMPAREUNIT_2) || \
  2511. ((COMPAREUNIT) == HRTIM_COMPAREUNIT_3) || \
  2512. ((COMPAREUNIT) == HRTIM_COMPAREUNIT_4))
  2513. #define IS_HRTIM_CAPTUREUNIT(CAPTUREUNIT)\
  2514. (((CAPTUREUNIT) == HRTIM_CAPTUREUNIT_1) || \
  2515. ((CAPTUREUNIT) == HRTIM_CAPTUREUNIT_2))
  2516. #define IS_HRTIM_OUTPUT(OUTPUT) (((OUTPUT) & 0xFFFFF000U) == 0x00000000U)
  2517. #define IS_HRTIM_TIMER_OUTPUT(TIMER, OUTPUT)\
  2518. ((((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && \
  2519. (((OUTPUT) == HRTIM_OUTPUT_TA1) || \
  2520. ((OUTPUT) == HRTIM_OUTPUT_TA2))) \
  2521. || \
  2522. (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && \
  2523. (((OUTPUT) == HRTIM_OUTPUT_TB1) || \
  2524. ((OUTPUT) == HRTIM_OUTPUT_TB2))) \
  2525. || \
  2526. (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && \
  2527. (((OUTPUT) == HRTIM_OUTPUT_TC1) || \
  2528. ((OUTPUT) == HRTIM_OUTPUT_TC2))) \
  2529. || \
  2530. (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && \
  2531. (((OUTPUT) == HRTIM_OUTPUT_TD1) || \
  2532. ((OUTPUT) == HRTIM_OUTPUT_TD2))) \
  2533. || \
  2534. (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && \
  2535. (((OUTPUT) == HRTIM_OUTPUT_TE1) || \
  2536. ((OUTPUT) == HRTIM_OUTPUT_TE2))) \
  2537. || \
  2538. (((TIMER) == HRTIM_TIMERINDEX_TIMER_F) && \
  2539. (((OUTPUT) == HRTIM_OUTPUT_TF1) || \
  2540. ((OUTPUT) == HRTIM_OUTPUT_TF2))))
  2541. #define IS_HRTIM_TIMEEVENT(EVENT)\
  2542. (((EVENT) == HRTIM_EVENTCOUNTER_A) || \
  2543. ((EVENT) == HRTIM_EVENTCOUNTER_B))
  2544. #define IS_HRTIM_TIMEEVENT_RESETMODE(EVENT)\
  2545. (((EVENT) == HRTIM_EVENTCOUNTER_RSTMODE_UNCONDITIONAL) || \
  2546. ((EVENT) == HRTIM_EVENTCOUNTER_RSTMODE_CONDITIONAL))
  2547. #define IS_HRTIM_TIMSYNCUPDATE(EVENT)\
  2548. (((EVENT) == HRTIM_TIMERESYNC_UPDATE_UNCONDITIONAL) || \
  2549. ((EVENT) == HRTIM_TIMERESYNC_UPDATE_CONDITIONAL))
  2550. #define IS_HRTIM_TIMEEVENT_COUNTER(COUNTER)\
  2551. ((((COUNTER) > (uint32_t)0x00U) && ((COUNTER) <= (uint32_t)0x3FU)) ||\
  2552. ((COUNTER) == (uint32_t)0x00U))
  2553. #define IS_HRTIM_TIMEEVENT_SOURCE(SOURCE)\
  2554. (((SOURCE) >= (uint32_t)0x00U) && ((SOURCE) <= (uint32_t)0x9U))
  2555. #define IS_HRTIM_EVENT(EVENT)\
  2556. (((EVENT) == HRTIM_EVENT_NONE)|| \
  2557. ((EVENT) == HRTIM_EVENT_1) || \
  2558. ((EVENT) == HRTIM_EVENT_2) || \
  2559. ((EVENT) == HRTIM_EVENT_3) || \
  2560. ((EVENT) == HRTIM_EVENT_4) || \
  2561. ((EVENT) == HRTIM_EVENT_5) || \
  2562. ((EVENT) == HRTIM_EVENT_6) || \
  2563. ((EVENT) == HRTIM_EVENT_7) || \
  2564. ((EVENT) == HRTIM_EVENT_8) || \
  2565. ((EVENT) == HRTIM_EVENT_9) || \
  2566. ((EVENT) == HRTIM_EVENT_10))
  2567. #define IS_HRTIM_FAULT(FAULT)\
  2568. (((FAULT) == HRTIM_FAULT_1) || \
  2569. ((FAULT) == HRTIM_FAULT_2) || \
  2570. ((FAULT) == HRTIM_FAULT_3) || \
  2571. ((FAULT) == HRTIM_FAULT_4) || \
  2572. ((FAULT) == HRTIM_FAULT_5) || \
  2573. ((FAULT) == HRTIM_FAULT_6))
  2574. #define IS_HRTIM_PRESCALERRATIO(PRESCALERRATIO)\
  2575. (((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL32) || \
  2576. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL16) || \
  2577. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL8) || \
  2578. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL4) || \
  2579. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_MUL2) || \
  2580. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV1) || \
  2581. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV2) || \
  2582. ((PRESCALERRATIO) == HRTIM_PRESCALERRATIO_DIV4))
  2583. #define IS_HRTIM_MODE(MODE)\
  2584. (((MODE) == HRTIM_MODE_CONTINUOUS) || \
  2585. ((MODE) == HRTIM_MODE_SINGLESHOT) || \
  2586. ((MODE) == HRTIM_MODE_SINGLESHOT_RETRIGGERABLE))
  2587. #define IS_HRTIM_MODE_ONEPULSE(MODE)\
  2588. (((MODE) == HRTIM_MODE_SINGLESHOT) || \
  2589. ((MODE) == HRTIM_MODE_SINGLESHOT_RETRIGGERABLE))
  2590. #define IS_HRTIM_HALFMODE(HALFMODE)\
  2591. (((HALFMODE) == HRTIM_HALFMODE_DISABLED) || \
  2592. ((HALFMODE) == HRTIM_HALFMODE_ENABLED))
  2593. #define IS_HRTIM_INTERLEAVEDMODE(INTLVDMODE)\
  2594. (((INTLVDMODE) == HRTIM_INTERLEAVED_MODE_DISABLED) || \
  2595. ((INTLVDMODE) == HRTIM_INTERLEAVED_MODE_DUAL) || \
  2596. ((INTLVDMODE) == HRTIM_INTERLEAVED_MODE_DISABLED) || \
  2597. ((INTLVDMODE) == HRTIM_INTERLEAVED_MODE_TRIPLE) || \
  2598. ((INTLVDMODE) == HRTIM_INTERLEAVED_MODE_DISABLED) || \
  2599. ((INTLVDMODE) == HRTIM_INTERLEAVED_MODE_QUAD))
  2600. #define IS_HRTIM_SYNCSTART(SYNCSTART)\
  2601. (((SYNCSTART) == HRTIM_SYNCSTART_DISABLED) || \
  2602. ((SYNCSTART) == HRTIM_SYNCSTART_ENABLED))
  2603. #define IS_HRTIM_SYNCRESET(SYNCRESET)\
  2604. (((SYNCRESET) == HRTIM_SYNCRESET_DISABLED) || \
  2605. ((SYNCRESET) == HRTIM_SYNCRESET_ENABLED))
  2606. #define IS_HRTIM_DACSYNC(DACSYNC)\
  2607. (((DACSYNC) == HRTIM_DACSYNC_NONE) || \
  2608. ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_1) || \
  2609. ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_2) || \
  2610. ((DACSYNC) == HRTIM_DACSYNC_DACTRIGOUT_3))
  2611. #define IS_HRTIM_PRELOAD(PRELOAD)\
  2612. (((PRELOAD) == HRTIM_PRELOAD_DISABLED) || \
  2613. ((PRELOAD) == HRTIM_PRELOAD_ENABLED))
  2614. #define IS_HRTIM_UPDATEGATING_MASTER(UPDATEGATING)\
  2615. (((UPDATEGATING) == HRTIM_UPDATEGATING_INDEPENDENT) || \
  2616. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST) || \
  2617. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST_UPDATE))
  2618. #define IS_HRTIM_UPDATEGATING_TIM(UPDATEGATING)\
  2619. (((UPDATEGATING) == HRTIM_UPDATEGATING_INDEPENDENT) || \
  2620. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST) || \
  2621. ((UPDATEGATING) == HRTIM_UPDATEGATING_DMABURST_UPDATE) || \
  2622. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN1) || \
  2623. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN2) || \
  2624. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN3) || \
  2625. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN1_UPDATE) || \
  2626. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN2_UPDATE) || \
  2627. ((UPDATEGATING) == HRTIM_UPDATEGATING_UPDEN3_UPDATE))
  2628. #define IS_HRTIM_TIMERBURSTMODE(MODE) \
  2629. (((MODE) == HRTIM_TIMERBURSTMODE_MAINTAINCLOCK) || \
  2630. ((MODE) == HRTIM_TIMERBURSTMODE_RESETCOUNTER))
  2631. #define IS_HRTIM_TIMERUPDOWNMODE(MODE) \
  2632. (((MODE) == HRTIM_TIMERUPDOWNMODE_UP) || \
  2633. ((MODE) == HRTIM_TIMERUPDOWNMODE_UPDOWN))
  2634. #define IS_HRTIM_TIMERTRGHLFMODE(MODE) \
  2635. (((MODE) == HRTIM_TIMERTRIGHALF_DISABLED) || \
  2636. ((MODE) == HRTIM_TIMERTRIGHALF_ENABLED))
  2637. #define IS_HRTIM_TIMERGTCMP3(MODE) \
  2638. (((MODE) == HRTIM_TIMERGTCMP3_EQUAL) || \
  2639. ((MODE) == HRTIM_TIMERGTCMP3_GREATER))
  2640. #define IS_HRTIM_TIMERGTCMP1(MODE) \
  2641. (((MODE) == HRTIM_TIMERGTCMP1_EQUAL) || \
  2642. ((MODE) == HRTIM_TIMERGTCMP1_GREATER))
  2643. #define IS_HRTIM_DUALDAC_RESET(DUALCHANNELDAC) \
  2644. (((DUALCHANNELDAC) == HRTIM_TIMER_DCDR_COUNTER) || \
  2645. ((DUALCHANNELDAC) == HRTIM_TIMER_DCDR_OUT1SET))
  2646. #define IS_HRTIM_DUALDAC_STEP(DUALCHANNELDAC) \
  2647. (((DUALCHANNELDAC) == HRTIM_TIMER_DCDS_CMP2) || \
  2648. ((DUALCHANNELDAC) == HRTIM_TIMER_DCDS_OUT1RST))
  2649. #define IS_HRTIM_DUALDAC_ENABLE(DUALCHANNELDAC) \
  2650. (((DUALCHANNELDAC) == HRTIM_TIMER_DCDE_DISABLED) || \
  2651. ((DUALCHANNELDAC) == HRTIM_TIMER_DCDE_ENABLED ))
  2652. #define IS_HRTIM_UPDATEONREPETITION(UPDATEONREPETITION) \
  2653. (((UPDATEONREPETITION) == HRTIM_UPDATEONREPETITION_DISABLED) || \
  2654. ((UPDATEONREPETITION) == HRTIM_UPDATEONREPETITION_ENABLED))
  2655. #define IS_HRTIM_TIMPUSHPULLMODE(TIMPUSHPULLMODE)\
  2656. (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_DISABLED) || \
  2657. ((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED))
  2658. #define IS_HRTIM_TIMFAULTENABLE(TIMFAULTENABLE) (((TIMFAULTENABLE) & 0xFFFFFFC0U) == 0x00000000U)
  2659. #define IS_HRTIM_TIMFAULTLOCK(TIMFAULTLOCK)\
  2660. (((TIMFAULTLOCK) == HRTIM_TIMFAULTLOCK_READWRITE) || \
  2661. ((TIMFAULTLOCK) == HRTIM_TIMFAULTLOCK_READONLY))
  2662. #define IS_HRTIM_TIMDEADTIMEINSERTION(TIMPUSHPULLMODE, TIMDEADTIMEINSERTION)\
  2663. (((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_DISABLED) || \
  2664. ((TIMDEADTIMEINSERTION) == HRTIM_TIMDEADTIMEINSERTION_ENABLED))
  2665. #define IS_HRTIM_TIMDELAYEDPROTECTION(TIMPUSHPULLMODE, TIMDELAYEDPROTECTION)\
  2666. ((((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED) || \
  2667. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_EEV6) || \
  2668. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_EEV6) || \
  2669. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV6) || \
  2670. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT1_DEEV7) || \
  2671. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDOUT2_DEEV7) || \
  2672. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DELAYEDBOTH_EEV7)) \
  2673. || \
  2674. (((TIMPUSHPULLMODE) == HRTIM_TIMPUSHPULLMODE_ENABLED) && \
  2675. (((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV6) || \
  2676. ((TIMDELAYEDPROTECTION) == HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_BALANCED_EEV7))))
  2677. #define IS_HRTIM_TIMUPDATETRIGGER(TIMUPDATETRIGGER) (((TIMUPDATETRIGGER) & 0xFE06FFFFU) == 0x00000000U)
  2678. #define IS_HRTIM_TIMRESETTRIGGER(TIMRESETTRIGGER) (((TIMRESETTRIGGER) & 0x00000000U) == 0x00000000U)
  2679. #define IS_HRTIM_TIMUPDATEONRESET(TIMUPDATEONRESET) \
  2680. (((TIMUPDATEONRESET) == HRTIM_TIMUPDATEONRESET_DISABLED) || \
  2681. ((TIMUPDATEONRESET) == HRTIM_TIMUPDATEONRESET_ENABLED))
  2682. #define IS_HRTIM_AUTODELAYEDMODE(AUTODELAYEDMODE)\
  2683. (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR) || \
  2684. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT) || \
  2685. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) || \
  2686. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))
  2687. /* Auto delayed mode is only available for compare units 2 and 4U */
  2688. #define IS_HRTIM_COMPAREUNIT_AUTODELAYEDMODE(COMPAREUNIT, AUTODELAYEDMODE) \
  2689. ((((COMPAREUNIT) == HRTIM_COMPAREUNIT_2) && \
  2690. (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR) || \
  2691. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT) || \
  2692. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) || \
  2693. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))) \
  2694. || \
  2695. (((COMPAREUNIT) == HRTIM_COMPAREUNIT_4) && \
  2696. (((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_REGULAR) || \
  2697. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_NOTIMEOUT) || \
  2698. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP1) || \
  2699. ((AUTODELAYEDMODE) == HRTIM_AUTODELAYEDMODE_AUTODELAYED_TIMEOUTCMP3))))
  2700. #define IS_HRTIM_OUTPUTPOLARITY(OUTPUTPOLARITY)\
  2701. (((OUTPUTPOLARITY) == HRTIM_OUTPUTPOLARITY_HIGH) || \
  2702. ((OUTPUTPOLARITY) == HRTIM_OUTPUTPOLARITY_LOW))
  2703. #define IS_HRTIM_OUTPUTPULSE(OUTPUTPULSE) ((OUTPUTPULSE) <= 0x0000FFFFU)
  2704. #define IS_HRTIM_OUTPUTSET(OUTPUTSET)\
  2705. (((OUTPUTSET) == HRTIM_OUTPUTSET_NONE) || \
  2706. ((OUTPUTSET) == HRTIM_OUTPUTSET_RESYNC) || \
  2707. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMPER) || \
  2708. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP1) || \
  2709. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP2) || \
  2710. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP3) || \
  2711. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMCMP4) || \
  2712. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERPER) || \
  2713. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP1) || \
  2714. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP2) || \
  2715. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP3) || \
  2716. ((OUTPUTSET) == HRTIM_OUTPUTSET_MASTERCMP4) || \
  2717. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMAEV1_TIMBCMP1) || \
  2718. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMAEV2_TIMBCMP2) || \
  2719. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMAEV3_TIMCCMP2) || \
  2720. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMAEV4_TIMCCMP3) || \
  2721. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMAEV5_TIMDCMP1) || \
  2722. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMAEV6_TIMDCMP2) || \
  2723. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMAEV7_TIMECMP3) || \
  2724. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMAEV8_TIMECMP4) || \
  2725. ((OUTPUTSET) == HRTIM_OUTPUTSET_TIMAEV9_TIMFCMP4) || \
  2726. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_1) || \
  2727. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_2) || \
  2728. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_3) || \
  2729. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_4) || \
  2730. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_5) || \
  2731. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_6) || \
  2732. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_7) || \
  2733. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_8) || \
  2734. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_9) || \
  2735. ((OUTPUTSET) == HRTIM_OUTPUTSET_EEV_10) || \
  2736. ((OUTPUTSET) == HRTIM_OUTPUTSET_UPDATE))
  2737. #define IS_HRTIM_OUTPUTRESET(OUTPUTRESET)\
  2738. (((OUTPUTRESET) == HRTIM_OUTPUTRESET_NONE) || \
  2739. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_RESYNC) || \
  2740. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMPER) || \
  2741. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP1) || \
  2742. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP2) || \
  2743. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP3) || \
  2744. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMCMP4) || \
  2745. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERPER) || \
  2746. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP1) || \
  2747. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP2) || \
  2748. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP3) || \
  2749. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_MASTERCMP4) || \
  2750. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMAEV1_TIMBCMP1) || \
  2751. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMAEV2_TIMBCMP2) || \
  2752. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMAEV3_TIMCCMP2) || \
  2753. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMAEV4_TIMCCMP3) || \
  2754. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMAEV5_TIMDCMP1) || \
  2755. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMAEV6_TIMDCMP2) || \
  2756. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMAEV7_TIMECMP3) || \
  2757. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMAEV8_TIMECMP4) || \
  2758. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_TIMAEV9_TIMFCMP4) || \
  2759. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_1) || \
  2760. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_2) || \
  2761. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_3) || \
  2762. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_4) || \
  2763. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_5) || \
  2764. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_6) || \
  2765. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_7) || \
  2766. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_8) || \
  2767. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_9) || \
  2768. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_EEV_10) || \
  2769. ((OUTPUTRESET) == HRTIM_OUTPUTRESET_UPDATE))
  2770. #define IS_HRTIM_OUTPUTIDLEMODE(OUTPUTIDLEMODE)\
  2771. (((OUTPUTIDLEMODE) == HRTIM_OUTPUTIDLEMODE_NONE) || \
  2772. ((OUTPUTIDLEMODE) == HRTIM_OUTPUTIDLEMODE_IDLE))
  2773. #define IS_HRTIM_OUTPUTIDLELEVEL(OUTPUTIDLELEVEL)\
  2774. (((OUTPUTIDLELEVEL) == HRTIM_OUTPUTIDLELEVEL_INACTIVE) || \
  2775. ((OUTPUTIDLELEVEL) == HRTIM_OUTPUTIDLELEVEL_ACTIVE))
  2776. #define IS_HRTIM_OUTPUTFAULTLEVEL(OUTPUTFAULTLEVEL)\
  2777. (((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_NONE) || \
  2778. ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_ACTIVE) || \
  2779. ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_INACTIVE) || \
  2780. ((OUTPUTFAULTLEVEL) == HRTIM_OUTPUTFAULTLEVEL_HIGHZ))
  2781. #define IS_HRTIM_OUTPUTCHOPPERMODE(OUTPUTCHOPPERMODE)\
  2782. (((OUTPUTCHOPPERMODE) == HRTIM_OUTPUTCHOPPERMODE_DISABLED) || \
  2783. ((OUTPUTCHOPPERMODE) == HRTIM_OUTPUTCHOPPERMODE_ENABLED))
  2784. #define IS_HRTIM_OUTPUTBURSTMODEENTRY(OUTPUTBURSTMODEENTRY)\
  2785. (((OUTPUTBURSTMODEENTRY) == HRTIM_OUTPUTBURSTMODEENTRY_REGULAR) || \
  2786. ((OUTPUTBURSTMODEENTRY) == HRTIM_OUTPUTBURSTMODEENTRY_DELAYED))
  2787. #define IS_HRTIM_OUTPUTBALANCEDIDLE(OUTPUTBIAR)\
  2788. (((OUTPUTBIAR) == HRTIM_OUTPUTBIAR_DISABLED) || \
  2789. ((OUTPUTBIAR) == HRTIM_OUTPUTBIAR_ENABLED))
  2790. #define IS_HRTIM_TIMER_CAPTURETRIGGER(TIMER, CAPTURETRIGGER) \
  2791. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_NONE) || \
  2792. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_UPDATE) || \
  2793. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_1) || \
  2794. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_2) || \
  2795. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_3) || \
  2796. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_4) || \
  2797. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_5) || \
  2798. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_6) || \
  2799. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_7) || \
  2800. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_8) || \
  2801. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_9) || \
  2802. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_EEV_10) \
  2803. || \
  2804. (((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && \
  2805. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2806. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2807. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2808. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2809. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2810. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2811. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2812. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2813. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2814. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2815. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2816. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2817. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2818. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2819. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2820. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2821. || \
  2822. (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && \
  2823. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2824. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2825. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2826. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2827. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2828. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2829. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2830. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2831. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2832. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2833. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2834. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2835. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2836. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2837. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2838. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2839. || \
  2840. (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && \
  2841. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2842. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2843. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2844. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2845. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2846. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2847. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2848. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2849. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2850. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2851. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2852. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2853. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2854. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2855. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2856. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2857. || \
  2858. (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && \
  2859. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2860. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2861. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2862. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2863. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2864. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2865. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2866. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2867. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2868. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2869. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2870. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2871. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2872. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2873. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2874. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))) \
  2875. || \
  2876. (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && \
  2877. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2878. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2879. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2880. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2881. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2882. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2883. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2884. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2885. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2886. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2887. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2888. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2889. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2890. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2891. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2892. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2))) \
  2893. || \
  2894. (((TIMER) == HRTIM_TIMERINDEX_TIMER_F) && \
  2895. (((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_SET) || \
  2896. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TA1_RESET) || \
  2897. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP1) || \
  2898. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERA_CMP2) || \
  2899. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_SET) || \
  2900. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TB1_RESET) || \
  2901. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP1) || \
  2902. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERB_CMP2) || \
  2903. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_SET) || \
  2904. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TC1_RESET) || \
  2905. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP1) || \
  2906. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERC_CMP2) || \
  2907. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_SET) || \
  2908. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TD1_RESET) || \
  2909. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP1) || \
  2910. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERD_CMP2) || \
  2911. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_SET) || \
  2912. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TE1_RESET) || \
  2913. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP1) || \
  2914. ((CAPTURETRIGGER) == HRTIM_CAPTURETRIGGER_TIMERE_CMP2))))
  2915. #define IS_HRTIM_TIMER_CAPTUREFTRIGGER(TIMER, CAPTUREFTRIGGER) \
  2916. ( ((CAPTUREFTRIGGER) == HRTIM_CAPTUREFTRIGGER_NONE) || \
  2917. ((CAPTUREFTRIGGER) == HRTIM_CAPTUREFTRIGGER_TF1_SET) || \
  2918. ((CAPTUREFTRIGGER) == HRTIM_CAPTUREFTRIGGER_TF1_RESET) || \
  2919. ((CAPTUREFTRIGGER) == HRTIM_CAPTUREFTRIGGER_TIMERF_CMP1) || \
  2920. ((CAPTUREFTRIGGER) == HRTIM_CAPTUREFTRIGGER_TIMERF_CMP2))
  2921. #define IS_HRTIM_TIMEVENTFILTER(TIMER,TIMEVENTFILTER)\
  2922. (((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_NONE) || \
  2923. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKINGCMP1) || \
  2924. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKINGCMP2) || \
  2925. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKINGCMP3) || \
  2926. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKINGCMP4) || \
  2927. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_WINDOWINGCMP2) || \
  2928. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_WINDOWINGCMP3) || \
  2929. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_WINDOWINGTIM) \
  2930. || \
  2931. (((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && \
  2932. (((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMAEEF1_TIMBCMP1) || \
  2933. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMAEEF2_TIMBCMP4) || \
  2934. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMAEEF3_TIMBOUT2) || \
  2935. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMAEEF4_TIMCCMP1) || \
  2936. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMAEEF5_TIMCCMP4) || \
  2937. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMAEEF6_TIMFCMP1) || \
  2938. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMAEEF7_TIMDCMP1) || \
  2939. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMAEEF8_TIMECMP2))) \
  2940. || \
  2941. (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && \
  2942. (((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMBEEF1_TIMACMP1) || \
  2943. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMBEEF2_TIMACMP4) || \
  2944. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMBEEF3_TIMAOUT2) || \
  2945. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMBEEF4_TIMCCMP1) || \
  2946. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMBEEF5_TIMCCMP2) || \
  2947. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMBEEF6_TIMFCMP2) || \
  2948. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMBEEF7_TIMDCMP2) || \
  2949. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMBEEF8_TIMECMP1))) \
  2950. || \
  2951. (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && \
  2952. (((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMCEEF1_TIMACMP2) || \
  2953. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMCEEF2_TIMBCMP1) || \
  2954. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMCEEF3_TIMBCMP4) || \
  2955. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMCEEF4_TIMFCMP1) || \
  2956. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMCEEF5_TIMDCMP1) || \
  2957. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMCEEF6_TIMDCMP4) || \
  2958. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMCEEF7_TIMDOUT2) || \
  2959. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMCEEF8_TIMECMP4))) \
  2960. || \
  2961. (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && \
  2962. (((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMDEEF1_TIMACMP1) || \
  2963. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMDEEF2_TIMBCMP2) || \
  2964. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMDEEF3_TIMCCMP1) || \
  2965. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMDEEF4_TIMCCMP2) || \
  2966. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMDEEF5_TIMCOUT2) || \
  2967. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMDEEF6_TIMECMP1) || \
  2968. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMDEEF7_TIMECMP4) || \
  2969. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMDEEF8_TIMFCMP4))) \
  2970. || \
  2971. (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && \
  2972. (((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMEEEF1_TIMACMP2) || \
  2973. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMEEEF2_TIMBCMP1) || \
  2974. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMEEEF3_TIMCCMP1) || \
  2975. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMEEEF4_TIMFCMP4) || \
  2976. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMEEEF5_TIMFOUT2) || \
  2977. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMEEEF6_TIMDCMP1) || \
  2978. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMEEEF7_TIMDCMP4) || \
  2979. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMEEEF8_TIMDOUT2))) \
  2980. || \
  2981. (((TIMER) == HRTIM_TIMERINDEX_TIMER_F) && \
  2982. (((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMFEEF1_TIMACMP4) || \
  2983. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMFEEF2_TIMBCMP2) || \
  2984. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMFEEF3_TIMCCMP4) || \
  2985. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMFEEF4_TIMDCMP2) || \
  2986. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMFEEF5_TIMDCMP4) || \
  2987. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMFEEF6_TIMECMP1) || \
  2988. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMFEEF7_TIMECMP4) || \
  2989. ((TIMEVENTFILTER) == HRTIM_TIMEEVFLT_BLANKING_TIMFEEF8_TIMEOUT2))))
  2990. #define IS_HRTIM_TIMEVENTLATCH(TIMEVENTLATCH)\
  2991. (((TIMEVENTLATCH) == HRTIM_TIMEVENTLATCH_DISABLED) || \
  2992. ((TIMEVENTLATCH) == HRTIM_TIMEVENTLATCH_ENABLED))
  2993. #define IS_HRTIM_TIMDEADTIME_PRESCALERRATIO(PRESCALERRATIO)\
  2994. (((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL8) || \
  2995. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL4) || \
  2996. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_MUL2) || \
  2997. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV1) || \
  2998. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV2) || \
  2999. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV4) || \
  3000. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV8) || \
  3001. ((PRESCALERRATIO) == HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV16))
  3002. #define IS_HRTIM_TIMDEADTIME_RISINGSIGN(RISINGSIGN)\
  3003. (((RISINGSIGN) == HRTIM_TIMDEADTIME_RISINGSIGN_POSITIVE) || \
  3004. ((RISINGSIGN) == HRTIM_TIMDEADTIME_RISINGSIGN_NEGATIVE))
  3005. #define IS_HRTIM_TIMDEADTIME_RISINGLOCK(RISINGLOCK)\
  3006. (((RISINGLOCK) == HRTIM_TIMDEADTIME_RISINGLOCK_WRITE) || \
  3007. ((RISINGLOCK) == HRTIM_TIMDEADTIME_RISINGLOCK_READONLY))
  3008. #define IS_HRTIM_TIMDEADTIME_RISINGSIGNLOCK(RISINGSIGNLOCK)\
  3009. (((RISINGSIGNLOCK) == HRTIM_TIMDEADTIME_RISINGSIGNLOCK_WRITE) || \
  3010. ((RISINGSIGNLOCK) == HRTIM_TIMDEADTIME_RISINGSIGNLOCK_READONLY))
  3011. #define IS_HRTIM_TIMDEADTIME_FALLINGSIGN(FALLINGSIGN)\
  3012. (((FALLINGSIGN) == HRTIM_TIMDEADTIME_FALLINGSIGN_POSITIVE) || \
  3013. ((FALLINGSIGN) == HRTIM_TIMDEADTIME_FALLINGSIGN_NEGATIVE))
  3014. #define IS_HRTIM_TIMDEADTIME_FALLINGLOCK(FALLINGLOCK)\
  3015. (((FALLINGLOCK) == HRTIM_TIMDEADTIME_FALLINGLOCK_WRITE) || \
  3016. ((FALLINGLOCK) == HRTIM_TIMDEADTIME_FALLINGLOCK_READONLY))
  3017. #define IS_HRTIM_TIMDEADTIME_FALLINGSIGNLOCK(FALLINGSIGNLOCK)\
  3018. (((FALLINGSIGNLOCK) == HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_WRITE) || \
  3019. ((FALLINGSIGNLOCK) == HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_READONLY))
  3020. #define IS_HRTIM_CHOPPER_PRESCALERRATIO(PRESCALERRATIO)\
  3021. (((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV16) || \
  3022. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV32) || \
  3023. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV48) || \
  3024. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV64) || \
  3025. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV80) || \
  3026. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV96) || \
  3027. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV112) || \
  3028. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV128) || \
  3029. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV144) || \
  3030. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV160) || \
  3031. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV176) || \
  3032. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV192) || \
  3033. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV208) || \
  3034. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV224) || \
  3035. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV240) || \
  3036. ((PRESCALERRATIO) == HRTIM_CHOPPER_PRESCALERRATIO_DIV256))
  3037. #define IS_HRTIM_CHOPPER_DUTYCYCLE(DUTYCYCLE)\
  3038. (((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_0) || \
  3039. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_125) || \
  3040. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_250) || \
  3041. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_375) || \
  3042. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_500) || \
  3043. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_625) || \
  3044. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_750) || \
  3045. ((DUTYCYCLE) == HRTIM_CHOPPER_DUTYCYCLE_875))
  3046. #define IS_HRTIM_CHOPPER_PULSEWIDTH(PULSEWIDTH)\
  3047. (((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_16) || \
  3048. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_32) || \
  3049. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_48) || \
  3050. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_64) || \
  3051. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_80) || \
  3052. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_96) || \
  3053. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_112) || \
  3054. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_128) || \
  3055. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_144) || \
  3056. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_160) || \
  3057. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_176) || \
  3058. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_192) || \
  3059. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_208) || \
  3060. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_224) || \
  3061. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_240) || \
  3062. ((PULSEWIDTH) == HRTIM_CHOPPER_PULSEWIDTH_256))
  3063. #define IS_HRTIM_SYNCINPUTSOURCE(SYNCINPUTSOURCE)\
  3064. (((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_NONE) || \
  3065. ((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_INTERNALEVENT) || \
  3066. ((SYNCINPUTSOURCE) == HRTIM_SYNCINPUTSOURCE_EXTERNALEVENT))
  3067. #define IS_HRTIM_SYNCOUTPUTSOURCE(SYNCOUTPUTSOURCE)\
  3068. (((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_MASTER_START) || \
  3069. ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1) || \
  3070. ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_TIMA_START) || \
  3071. ((SYNCOUTPUTSOURCE) == HRTIM_SYNCOUTPUTSOURCE_TIMA_CMP1))
  3072. #define IS_HRTIM_SYNCOUTPUTPOLARITY(SYNCOUTPUTPOLARITY)\
  3073. (((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_NONE) || \
  3074. ((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_POSITIVE) || \
  3075. ((SYNCOUTPUTPOLARITY) == HRTIM_SYNCOUTPUTPOLARITY_NEGATIVE))
  3076. #define IS_HRTIM_EVENTSRC(EVENT, EVENTSRC) \
  3077. ((((EVENT) == HRTIM_EVENT_1) && \
  3078. (((EVENTSRC) == HRTIM_EEV1SRC_GPIO ) || \
  3079. ((EVENTSRC) == HRTIM_EEV1SRC_COMP2_OUT ) || \
  3080. ((EVENTSRC) == HRTIM_EEV1SRC_TIM1_TRGO ) || \
  3081. ((EVENTSRC) == HRTIM_EEV1SRC_ADC1_AWD1 ))) \
  3082. || \
  3083. (((EVENT) == HRTIM_EVENT_2) && \
  3084. (((EVENTSRC) == HRTIM_EEV2SRC_GPIO ) || \
  3085. ((EVENTSRC) == HRTIM_EEV2SRC_COMP4_OUT ) || \
  3086. ((EVENTSRC) == HRTIM_EEV2SRC_TIM2_TRGO ) || \
  3087. ((EVENTSRC) == HRTIM_EEV2SRC_ADC1_AWD2 ))) \
  3088. || \
  3089. (((EVENT) == HRTIM_EVENT_3) && \
  3090. (((EVENTSRC) == HRTIM_EEV3SRC_GPIO ) || \
  3091. ((EVENTSRC) == HRTIM_EEV3SRC_COMP6_OUT ) || \
  3092. ((EVENTSRC) == HRTIM_EEV3SRC_TIM3_TRGO ) || \
  3093. ((EVENTSRC) == HRTIM_EEV3SRC_ADC1_AWD3 ))) \
  3094. || \
  3095. (((EVENT) == HRTIM_EVENT_4) && \
  3096. (((EVENTSRC) == HRTIM_EEV4SRC_GPIO ) || \
  3097. ((EVENTSRC) == HRTIM_EEV4SRC_COMP1_OUT ) || \
  3098. ((EVENTSRC) == HRTIM_EEV4SRC_COMP5_OUT ) || \
  3099. ((EVENTSRC) == HRTIM_EEV4SRC_ADC2_AWD1 ))) \
  3100. || \
  3101. (((EVENT) == HRTIM_EVENT_5) && \
  3102. (((EVENTSRC) == HRTIM_EEV5SRC_GPIO ) || \
  3103. ((EVENTSRC) == HRTIM_EEV5SRC_COMP3_OUT ) || \
  3104. ((EVENTSRC) == HRTIM_EEV5SRC_COMP7_OUT ) || \
  3105. ((EVENTSRC) == HRTIM_EEV5SRC_ADC2_AWD2 ))) \
  3106. || \
  3107. (((EVENT) == HRTIM_EVENT_6) && \
  3108. (((EVENTSRC) == HRTIM_EEV6SRC_GPIO ) || \
  3109. ((EVENTSRC) == HRTIM_EEV6SRC_COMP2_OUT ) || \
  3110. ((EVENTSRC) == HRTIM_EEV6SRC_COMP1_OUT ) || \
  3111. ((EVENTSRC) == HRTIM_EEV6SRC_ADC2_AWD3 ))) \
  3112. || \
  3113. (((EVENT) == HRTIM_EVENT_7) && \
  3114. (((EVENTSRC) == HRTIM_EEV7SRC_GPIO ) || \
  3115. ((EVENTSRC) == HRTIM_EEV7SRC_COMP4_OUT ) || \
  3116. ((EVENTSRC) == HRTIM_EEV7SRC_TIM7_TRGO ) || \
  3117. ((EVENTSRC) == HRTIM_EEV7SRC_ADC3_AWD1 ))) \
  3118. || \
  3119. (((EVENT) == HRTIM_EVENT_8) && \
  3120. (((EVENTSRC) == HRTIM_EEV8SRC_GPIO ) || \
  3121. ((EVENTSRC) == HRTIM_EEV8SRC_COMP6_OUT ) || \
  3122. ((EVENTSRC) == HRTIM_EEV8SRC_COMP3_OUT ) || \
  3123. ((EVENTSRC) == HRTIM_EEV8SRC_ADC4_AWD1 ))) \
  3124. || \
  3125. (((EVENT) == HRTIM_EVENT_9) && \
  3126. (((EVENTSRC) == HRTIM_EEV9SRC_GPIO ) || \
  3127. ((EVENTSRC) == HRTIM_EEV9SRC_COMP5_OUT ) || \
  3128. ((EVENTSRC) == HRTIM_EEV9SRC_TIM15_TRGO) || \
  3129. ((EVENTSRC) == HRTIM_EEV9SRC_COMP4_OUT ))) \
  3130. || \
  3131. (((EVENT) == HRTIM_EVENT_10) && \
  3132. (((EVENTSRC) == HRTIM_EEV10SRC_GPIO ) || \
  3133. ((EVENTSRC) == HRTIM_EEV10SRC_COMP7_OUT) || \
  3134. ((EVENTSRC) == HRTIM_EEV10SRC_TIM6_TRGO) || \
  3135. ((EVENTSRC) == HRTIM_EEV10SRC_ADC5_AWD1))))
  3136. #define IS_HRTIM_EVENTPOLARITY(EVENTSENSITIVITY, EVENTPOLARITY)\
  3137. ((((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_LEVEL) && \
  3138. (((EVENTPOLARITY) == HRTIM_EVENTPOLARITY_HIGH) || \
  3139. ((EVENTPOLARITY) == HRTIM_EVENTPOLARITY_LOW))) \
  3140. || \
  3141. (((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_RISINGEDGE) || \
  3142. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_FALLINGEDGE)|| \
  3143. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_BOTHEDGES)))
  3144. #define IS_HRTIM_EVENTSENSITIVITY(EVENTSENSITIVITY)\
  3145. (((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_LEVEL) || \
  3146. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_RISINGEDGE) || \
  3147. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_FALLINGEDGE) || \
  3148. ((EVENTSENSITIVITY) == HRTIM_EVENTSENSITIVITY_BOTHEDGES))
  3149. #define IS_HRTIM_EVENTFASTMODE(EVENT, FASTMODE)\
  3150. (((((EVENT) == HRTIM_EVENT_1) || \
  3151. ((EVENT) == HRTIM_EVENT_2) || \
  3152. ((EVENT) == HRTIM_EVENT_3) || \
  3153. ((EVENT) == HRTIM_EVENT_4) || \
  3154. ((EVENT) == HRTIM_EVENT_5)) && \
  3155. (((FASTMODE) == HRTIM_EVENTFASTMODE_ENABLE) || \
  3156. ((FASTMODE) == HRTIM_EVENTFASTMODE_DISABLE))) \
  3157. || \
  3158. (((EVENT) == HRTIM_EVENT_6) || \
  3159. ((EVENT) == HRTIM_EVENT_7) || \
  3160. ((EVENT) == HRTIM_EVENT_8) || \
  3161. ((EVENT) == HRTIM_EVENT_9) || \
  3162. ((EVENT) == HRTIM_EVENT_10)))
  3163. #define IS_HRTIM_EVENTFILTER(EVENT, FILTER)\
  3164. ((((EVENT) == HRTIM_EVENT_1) || \
  3165. ((EVENT) == HRTIM_EVENT_2) || \
  3166. ((EVENT) == HRTIM_EVENT_3) || \
  3167. ((EVENT) == HRTIM_EVENT_4) || \
  3168. ((EVENT) == HRTIM_EVENT_5)) \
  3169. || \
  3170. ((((EVENT) == HRTIM_EVENT_6) || \
  3171. ((EVENT) == HRTIM_EVENT_7) || \
  3172. ((EVENT) == HRTIM_EVENT_8) || \
  3173. ((EVENT) == HRTIM_EVENT_9) || \
  3174. ((EVENT) == HRTIM_EVENT_10)) && \
  3175. (((FILTER) == HRTIM_EVENTFILTER_NONE) || \
  3176. ((FILTER) == HRTIM_EVENTFILTER_1) || \
  3177. ((FILTER) == HRTIM_EVENTFILTER_2) || \
  3178. ((FILTER) == HRTIM_EVENTFILTER_3) || \
  3179. ((FILTER) == HRTIM_EVENTFILTER_4) || \
  3180. ((FILTER) == HRTIM_EVENTFILTER_5) || \
  3181. ((FILTER) == HRTIM_EVENTFILTER_6) || \
  3182. ((FILTER) == HRTIM_EVENTFILTER_7) || \
  3183. ((FILTER) == HRTIM_EVENTFILTER_8) || \
  3184. ((FILTER) == HRTIM_EVENTFILTER_9) || \
  3185. ((FILTER) == HRTIM_EVENTFILTER_10) || \
  3186. ((FILTER) == HRTIM_EVENTFILTER_11) || \
  3187. ((FILTER) == HRTIM_EVENTFILTER_12) || \
  3188. ((FILTER) == HRTIM_EVENTFILTER_13) || \
  3189. ((FILTER) == HRTIM_EVENTFILTER_14) || \
  3190. ((FILTER) == HRTIM_EVENTFILTER_15))))
  3191. #define IS_HRTIM_EVENTPRESCALER(EVENTPRESCALER)\
  3192. (((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV1) || \
  3193. ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV2) || \
  3194. ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV4) || \
  3195. ((EVENTPRESCALER) == HRTIM_EVENTPRESCALER_DIV8))
  3196. #define IS_HRTIM_FAULTSOURCE(FAULTSOURCE)\
  3197. (((FAULTSOURCE) == HRTIM_FAULTSOURCE_DIGITALINPUT) || \
  3198. ((FAULTSOURCE) == HRTIM_FAULTSOURCE_INTERNAL) || \
  3199. ((FAULTSOURCE) == HRTIM_FAULTSOURCE_EEVINPUT))
  3200. #define IS_HRTIM_FAULTPOLARITY(HRTIM_FAULTPOLARITY)\
  3201. (((HRTIM_FAULTPOLARITY) == HRTIM_FAULTPOLARITY_LOW) || \
  3202. ((HRTIM_FAULTPOLARITY) == HRTIM_FAULTPOLARITY_HIGH))
  3203. #define IS_HRTIM_FAULTMODECTL(FAULTMODECTL)\
  3204. (((FAULTMODECTL) == HRTIM_FAULTMODECTL_DISABLED) || \
  3205. ((FAULTMODECTL) == HRTIM_FAULTMODECTL_ENABLED))
  3206. #define IS_HRTIM_FAULTBLANKNGMODE(FAULTBLANKINGMODE)\
  3207. (((FAULTBLANKINGMODE) == HRTIM_FAULTBLANKINGMODE_RSTALIGNED) || \
  3208. ((FAULTBLANKINGMODE) == HRTIM_FAULTBLANKINGMODE_MOVING))
  3209. #define IS_HRTIM_FAULTBLANKING(FAULTBLANKINGCTL)\
  3210. (((FAULTBLANKINGCTL) == HRTIM_FAULTBLANKING_DISABLED) || \
  3211. ((FAULTBLANKINGCTL) == HRTIM_FAULTBLANKING_ENABLED))
  3212. #define IS_HRTIM_FAULTCOUNTERRST(HRTIM_FAULTCOUNTERRST)\
  3213. (((HRTIM_FAULTCOUNTERRST) == HRTIM_FAULTCOUNTERRST_UNCONDITIONAL) || \
  3214. ((HRTIM_FAULTCOUNTERRST) == HRTIM_FAULTCOUNTERRST_CONDITIONAL))
  3215. #define IS_HRTIM_FAULTBLANKINGCTL(FAULTBLANKINGCTL)\
  3216. (((FAULTBLANKINGCTL) == HRTIM_FAULTBLANKINGCTL_DISABLED) || \
  3217. ((FAULTBLANKINGCTL) == HRTIM_FAULTBLANKINGCTL_ENABLED))
  3218. #define IS_HRTIM_FAULTCOUNTER(FAULTCOUNTER)\
  3219. (((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_NONE) || \
  3220. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_1) || \
  3221. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_2) || \
  3222. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_3) || \
  3223. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_4) || \
  3224. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_5) || \
  3225. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_6) || \
  3226. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_7) || \
  3227. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_8) || \
  3228. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_9) || \
  3229. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_10) || \
  3230. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_11) || \
  3231. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_12) || \
  3232. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_13) || \
  3233. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_14) || \
  3234. ((FAULTCOUNTER) == HRTIM_FAULTCOUNTER_15))
  3235. #define IS_HRTIM_FAULTFILTER(FAULTFILTER)\
  3236. (((FAULTFILTER) == HRTIM_FAULTFILTER_NONE) || \
  3237. ((FAULTFILTER) == HRTIM_FAULTFILTER_1) || \
  3238. ((FAULTFILTER) == HRTIM_FAULTFILTER_2) || \
  3239. ((FAULTFILTER) == HRTIM_FAULTFILTER_3) || \
  3240. ((FAULTFILTER) == HRTIM_FAULTFILTER_4) || \
  3241. ((FAULTFILTER) == HRTIM_FAULTFILTER_5) || \
  3242. ((FAULTFILTER) == HRTIM_FAULTFILTER_6) || \
  3243. ((FAULTFILTER) == HRTIM_FAULTFILTER_7) || \
  3244. ((FAULTFILTER) == HRTIM_FAULTFILTER_8) || \
  3245. ((FAULTFILTER) == HRTIM_FAULTFILTER_9) || \
  3246. ((FAULTFILTER) == HRTIM_FAULTFILTER_10) || \
  3247. ((FAULTFILTER) == HRTIM_FAULTFILTER_11) || \
  3248. ((FAULTFILTER) == HRTIM_FAULTFILTER_12) || \
  3249. ((FAULTFILTER) == HRTIM_FAULTFILTER_13) || \
  3250. ((FAULTFILTER) == HRTIM_FAULTFILTER_14) || \
  3251. ((FAULTFILTER) == HRTIM_FAULTFILTER_15))
  3252. #define IS_HRTIM_FAULTLOCK(FAULTLOCK)\
  3253. (((FAULTLOCK) == HRTIM_FAULTLOCK_READWRITE) || \
  3254. ((FAULTLOCK) == HRTIM_FAULTLOCK_READONLY))
  3255. #define IS_HRTIM_FAULTPRESCALER(FAULTPRESCALER)\
  3256. (((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV1) || \
  3257. ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV2) || \
  3258. ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV4) || \
  3259. ((FAULTPRESCALER) == HRTIM_FAULTPRESCALER_DIV8))
  3260. #define IS_HRTIM_BURSTMODE(BURSTMODE)\
  3261. (((BURSTMODE) == HRTIM_BURSTMODE_SINGLESHOT) || \
  3262. ((BURSTMODE) == HRTIM_BURSTMODE_CONTINOUS))
  3263. #define IS_HRTIM_BURSTMODECLOCKSOURCE(BURSTMODECLOCKSOURCE)\
  3264. (((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_MASTER) || \
  3265. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_A) || \
  3266. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_B) || \
  3267. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_C) || \
  3268. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_D) || \
  3269. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_E) || \
  3270. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIMER_F) || \
  3271. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM16_OC) || \
  3272. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM17_OC) || \
  3273. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_TIM7_TRGO) || \
  3274. ((BURSTMODECLOCKSOURCE) == HRTIM_BURSTMODECLOCKSOURCE_FHRTIM))
  3275. #define IS_HRTIM_HRTIM_BURSTMODEPRESCALER(BURSTMODEPRESCALER)\
  3276. (((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV1) || \
  3277. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV2) || \
  3278. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV4) || \
  3279. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV8) || \
  3280. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV16) || \
  3281. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV32) || \
  3282. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV64) || \
  3283. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV128) || \
  3284. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV256) || \
  3285. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV512) || \
  3286. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV1024) || \
  3287. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV2048) || \
  3288. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV4096) || \
  3289. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV8192) || \
  3290. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV16384) || \
  3291. ((BURSTMODEPRESCALER) == HRTIM_BURSTMODEPRESCALER_DIV32768))
  3292. #define IS_HRTIM_BURSTMODEPRELOAD(BURSTMODEPRELOAD)\
  3293. (((BURSTMODEPRELOAD) == HRIM_BURSTMODEPRELOAD_DISABLED) || \
  3294. ((BURSTMODEPRELOAD) == HRIM_BURSTMODEPRELOAD_ENABLED))
  3295. #define IS_HRTIM_BURSTMODETRIGGER(BURSTMODETRIGGER)\
  3296. (((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_NONE) || \
  3297. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_RESET) || \
  3298. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_REPETITION) || \
  3299. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP1) || \
  3300. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP2) || \
  3301. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP3) || \
  3302. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_MASTER_CMP4) || \
  3303. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_RESET) || \
  3304. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_REPETITION) || \
  3305. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_CMP1) || \
  3306. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_CMP2) || \
  3307. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_RESET) || \
  3308. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_REPETITION) || \
  3309. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_CMP1) || \
  3310. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERB_CMP2) || \
  3311. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_RESET) || \
  3312. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_REPETITION) || \
  3313. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERC_CMP1) || \
  3314. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERF_RESET) || \
  3315. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_RESET) || \
  3316. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_REPETITION) || \
  3317. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERF_REPETITION) || \
  3318. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_CMP2) || \
  3319. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERF_CMP1) || \
  3320. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_REPETITION) || \
  3321. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_CMP1) || \
  3322. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERE_CMP2) || \
  3323. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERA_EVENT7) || \
  3324. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_TIMERD_EVENT8) || \
  3325. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_EVENT_7) || \
  3326. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_EVENT_8) || \
  3327. ((BURSTMODETRIGGER) == HRTIM_BURSTMODETRIGGER_EVENT_ONCHIP))
  3328. #define IS_HRTIM_ADCTRIGGERUPDATE(ADCTRIGGERUPDATE)\
  3329. (((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_MASTER) || \
  3330. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_A) || \
  3331. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_B) || \
  3332. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_C) || \
  3333. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_D) || \
  3334. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_E) || \
  3335. ((ADCTRIGGERUPDATE) == HRTIM_ADCTRIGGERUPDATE_TIMER_F))
  3336. #define IS_HRTIM_CALIBRATIONRATE(CALIBRATIONRATE)\
  3337. (((CALIBRATIONRATE) == HRTIM_SINGLE_CALIBRATION) || \
  3338. ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_0) || \
  3339. ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_1) || \
  3340. ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_2) || \
  3341. ((CALIBRATIONRATE) == HRTIM_CALIBRATIONRATE_3))
  3342. #define IS_HRTIM_TIMER_BURSTDMA(TIMER, BURSTDMA) \
  3343. ((((TIMER) == HRTIM_TIMERINDEX_MASTER) && (((BURSTDMA) & 0xFFFFC000U) == 0x00000000U)) \
  3344. || (((TIMER) == HRTIM_TIMERINDEX_TIMER_A) && (((BURSTDMA) & 0xFF800000U) == 0x00000000U)) \
  3345. || (((TIMER) == HRTIM_TIMERINDEX_TIMER_B) && (((BURSTDMA) & 0xFF800000U) == 0x00000000U)) \
  3346. || (((TIMER) == HRTIM_TIMERINDEX_TIMER_C) && (((BURSTDMA) & 0xFF800000U) == 0x00000000U)) \
  3347. || (((TIMER) == HRTIM_TIMERINDEX_TIMER_D) && (((BURSTDMA) & 0xFF800000U) == 0x00000000U)) \
  3348. || (((TIMER) == HRTIM_TIMERINDEX_TIMER_E) && (((BURSTDMA) & 0xFF800000U) == 0x00000000U)) \
  3349. || (((TIMER) == HRTIM_TIMERINDEX_TIMER_F) && (((BURSTDMA) & 0xFF800000U) == 0x00000000U)))
  3350. #define IS_HRTIM_BURSTMODECTL(BURSTMODECTL)\
  3351. (((BURSTMODECTL) == HRTIM_BURSTMODECTL_DISABLED) || \
  3352. ((BURSTMODECTL) == HRTIM_BURSTMODECTL_ENABLED))
  3353. #define IS_HRTIM_TIMERUPDATE(TIMERUPDATE) (((TIMERUPDATE) & 0xFFFFFF80U) == 0x00000000U)
  3354. #define IS_HRTIM_TIMERRESET(TIMERRESET) (((TIMERRESET) & 0xFFFF80FFU) == 0x00000000U)
  3355. #define IS_HRTIM_TIMERSWAP(TIMERSWAP) (((TIMERSWAP) & 0xFFC0FFFFU) == 0x00000000U)
  3356. #define IS_HRTIM_IT(IT) (((IT) & 0xFFFCFF80U) == 0x00000000U)
  3357. #define IS_HRTIM_MASTER_IT(MASTER_IT) (((MASTER_IT) & 0xFFFFFF80U) == 0x00000000U)
  3358. #define IS_HRTIM_TIM_IT(TIM_IT) (((TIM_IT) & 0xFFFF8020U) == 0x00000000U)
  3359. #define IS_HRTIM_MASTER_DMA(MASTER_DMA) (((MASTER_DMA) & 0xFF80FFFFU) == 0x00000000U)
  3360. #define IS_HRTIM_TIM_DMA(TIM_DMA) (((TIM_DMA) & 0x8020FFFFU) == 0x00000000U)
  3361. /**
  3362. * @}
  3363. */
  3364. /* Exported macros -----------------------------------------------------------*/
  3365. /** @defgroup HRTIM_Exported_Macros HRTIM Exported Macros
  3366. * @{
  3367. */
  3368. /**
  3369. * @brief configures the actual direction of the counter to UP counting mode
  3370. * @param __HANDLE__ : HRTIM handle.
  3371. * @param __TIMER__ : Timer index
  3372. * This parameter can be a combination of the following values:
  3373. * @arg HRTIM_TIMERINDEX_TIMER_A for timer A
  3374. * @arg HRTIM_TIMERINDEX_TIMER_B for timer B
  3375. * @arg HRTIM_TIMERINDEX_TIMER_C for timer C
  3376. * @arg HRTIM_TIMERINDEX_TIMER_D for timer D
  3377. * @arg HRTIM_TIMERINDEX_TIMER_E for timer E
  3378. * @arg HRTIM_TIMERINDEX_TIMER_F for timer F
  3379. * @retval none
  3380. */
  3381. #define __HAL_HRTIM_COUNTER_MODE_UP(__HANDLE__, __TIMERS__)\
  3382. do {\
  3383. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_A) == HRTIM_TIMERINDEX_TIMER_A)\
  3384. {\
  3385. CLEAR_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_A)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3386. }\
  3387. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_B) == HRTIM_TIMERINDEX_TIMER_B)\
  3388. {\
  3389. CLEAR_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_B)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3390. }\
  3391. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_C) == HRTIM_TIMERINDEX_TIMER_C)\
  3392. {\
  3393. CLEAR_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_C)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3394. }\
  3395. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_D) == HRTIM_TIMERINDEX_TIMER_D)\
  3396. {\
  3397. CLEAR_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_D)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3398. }\
  3399. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_E) == HRTIM_TIMERINDEX_TIMER_E)\
  3400. {\
  3401. CLEAR_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_E)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3402. }\
  3403. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_F) == HRTIM_TIMERINDEX_TIMER_F)\
  3404. {\
  3405. CLEAR_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_F)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3406. }\
  3407. } while(0U)
  3408. /**
  3409. * @brief configures the actual direction of the counter to UP-DOWN counting mode
  3410. * @param __HANDLE__ : HRTIM handle.
  3411. * @param __TIMER__ : Timer index
  3412. * This parameter can be a combination of the following values:
  3413. * @arg HRTIM_TIMERINDEX_TIMER_A for timer A
  3414. * @arg HRTIM_TIMERINDEX_TIMER_B for timer B
  3415. * @arg HRTIM_TIMERINDEX_TIMER_C for timer C
  3416. * @arg HRTIM_TIMERINDEX_TIMER_D for timer D
  3417. * @arg HRTIM_TIMERINDEX_TIMER_E for timer E
  3418. * @arg HRTIM_TIMERINDEX_TIMER_F for timer F
  3419. * @retval none
  3420. */
  3421. #define __HAL_HRTIM_COUNTER_MODE_UPDOWN(__HANDLE__, __TIMERS__)\
  3422. do {\
  3423. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_A) == HRTIM_TIMERINDEX_TIMER_A)\
  3424. {\
  3425. SET_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_A)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3426. }\
  3427. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_B) == HRTIM_TIMERINDEX_TIMER_B)\
  3428. {\
  3429. SET_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_B)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3430. }\
  3431. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_C) == HRTIM_TIMERINDEX_TIMER_C)\
  3432. {\
  3433. SET_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_C)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3434. }\
  3435. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_D) == HRTIM_TIMERINDEX_TIMER_D)\
  3436. {\
  3437. SET_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_D)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3438. }\
  3439. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_E) == HRTIM_TIMERINDEX_TIMER_E)\
  3440. {\
  3441. SET_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_E)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3442. }\
  3443. if (((__TIMERS__) & HRTIM_TIMERINDEX_TIMER_F) == HRTIM_TIMERINDEX_TIMER_F)\
  3444. {\
  3445. SET_BIT((__HANDLE__)->Instance->sTimerxRegs[(HRTIM_TIMERINDEX_TIMER_F)].TIMxCR2 , (HRTIM_TIMCR2_UDM)); \
  3446. }\
  3447. } while(0U)
  3448. /**
  3449. * @brief swap the output of the timer
  3450. * HRTIM_SETA1R and HRTIM_RSTA1R are coding for the output A2,
  3451. * HRTIM_SETA2R and HRTIM_RSTA2R are coding for the output A1
  3452. * @param __HANDLE__ : HRTIM handle.
  3453. * @param __TIMER__ : Timer index
  3454. * This parameter can be a combination of the following values:
  3455. * @arg HRTIM_TIMERINDEX_TIMER_A for timer A
  3456. * @arg HRTIM_TIMERINDEX_TIMER_B for timer B
  3457. * @arg HRTIM_TIMERINDEX_TIMER_C for timer C
  3458. * @arg HRTIM_TIMERINDEX_TIMER_D for timer D
  3459. * @arg HRTIM_TIMERINDEX_TIMER_E for timer E
  3460. * @arg HRTIM_TIMERINDEX_TIMER_F for timer F
  3461. * @retval none
  3462. */
  3463. #define __HAL_HRTIM_TIMER_OUTPUT_SWAP(__HANDLE__, __TIMERS__)\
  3464. do {\
  3465. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_A) == HRTIM_TIMERID_TIMER_A)\
  3466. {\
  3467. SET_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPA)); \
  3468. }\
  3469. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_B) == HRTIM_TIMERID_TIMER_B)\
  3470. {\
  3471. SET_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPB)); \
  3472. }\
  3473. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_C) == HRTIM_TIMERID_TIMER_C)\
  3474. {\
  3475. SET_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPC)); \
  3476. }\
  3477. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_D) == HRTIM_TIMERID_TIMER_D)\
  3478. {\
  3479. SET_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPD)); \
  3480. }\
  3481. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_E) == HRTIM_TIMERID_TIMER_E)\
  3482. {\
  3483. SET_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPE)); \
  3484. }\
  3485. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_F) == HRTIM_TIMERID_TIMER_F)\
  3486. {\
  3487. SET_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPF)); \
  3488. }\
  3489. } while(0U)
  3490. /**
  3491. * @brief Un-swap the output of the timer
  3492. * HRTIM_SETA1R and HRTIM_RSTA1R are coding for the output A1,
  3493. * HRTIM_SETA2R and HRTIM_RSTA2R are coding for the output A2
  3494. * @param __HANDLE__ : HRTIM handle.
  3495. * @param __TIMER__ : Timer index
  3496. * This parameter can be a combination of the following values:
  3497. * @arg HRTIM_TIMERINDEX_TIMER_A for timer A
  3498. * @arg HRTIM_TIMERINDEX_TIMER_B for timer B
  3499. * @arg HRTIM_TIMERINDEX_TIMER_C for timer C
  3500. * @arg HRTIM_TIMERINDEX_TIMER_D for timer D
  3501. * @arg HRTIM_TIMERINDEX_TIMER_E for timer E
  3502. * @arg HRTIM_TIMERINDEX_TIMER_F for timer F
  3503. * @retval none
  3504. */
  3505. #define __HAL_HRTIM_TIMER_OUTPUT_NOSWAP(__HANDLE__, __TIMERS__)\
  3506. do {\
  3507. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_A) == HRTIM_TIMERID_TIMER_A)\
  3508. {\
  3509. CLEAR_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPA)); \
  3510. }\
  3511. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_B) == HRTIM_TIMERID_TIMER_B)\
  3512. {\
  3513. CLEAR_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPB)); \
  3514. }\
  3515. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_C) == HRTIM_TIMERID_TIMER_C)\
  3516. {\
  3517. CLEAR_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPC)); \
  3518. }\
  3519. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_D) == HRTIM_TIMERID_TIMER_D)\
  3520. {\
  3521. CLEAR_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPD)); \
  3522. }\
  3523. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_E) == HRTIM_TIMERID_TIMER_E)\
  3524. {\
  3525. CLEAR_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPE)); \
  3526. }\
  3527. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_F) == HRTIM_TIMERID_TIMER_F)\
  3528. {\
  3529. CLEAR_BIT((__HANDLE__)->Instance->sCommonRegs.CR2 , (HRTIM_CR2_SWPF)); \
  3530. }\
  3531. } while(0U)
  3532. /** @brief Reset HRTIM handle state
  3533. * @param __HANDLE__ HRTIM handle.
  3534. * @retval None
  3535. */
  3536. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  3537. #define __HAL_HRTIM_RESET_HANDLE_STATE(__HANDLE__) do{ \
  3538. (__HANDLE__)->State = HAL_HRTIM_STATE_RESET; \
  3539. (__HANDLE__)->MspInitCallback = NULL; \
  3540. (__HANDLE__)->MspDeInitCallback = NULL; \
  3541. } while(0)
  3542. #else
  3543. #define __HAL_HRTIM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_HRTIM_STATE_RESET)
  3544. #endif
  3545. /** @brief Enables or disables the timer counter(s)
  3546. * @param __HANDLE__ specifies the HRTIM Handle.
  3547. * @param __TIMERS__ timers to enable/disable
  3548. * This parameter can be any combinations of the following values:
  3549. * @arg HRTIM_TIMERID_MASTER: Master timer identifier
  3550. * @arg HRTIM_TIMERID_TIMER_A: Timer A identifier
  3551. * @arg HRTIM_TIMERID_TIMER_B: Timer B identifier
  3552. * @arg HRTIM_TIMERID_TIMER_C: Timer C identifier
  3553. * @arg HRTIM_TIMERID_TIMER_D: Timer D identifier
  3554. * @arg HRTIM_TIMERID_TIMER_E: Timer E identifier
  3555. * @arg HRTIM_TIMERID_TIMER_F: Timer F identifier
  3556. * @retval None
  3557. */
  3558. #define __HAL_HRTIM_ENABLE(__HANDLE__, __TIMERS__) ((__HANDLE__)->Instance->sMasterRegs.MCR |= (__TIMERS__))
  3559. /* The counter of a timing unit is disabled only if all the timer outputs */
  3560. /* are disabled and no capture is configured */
  3561. #define HRTIM_TAOEN_MASK (HRTIM_OENR_TA2OEN | HRTIM_OENR_TA1OEN)
  3562. #define HRTIM_TBOEN_MASK (HRTIM_OENR_TB2OEN | HRTIM_OENR_TB1OEN)
  3563. #define HRTIM_TCOEN_MASK (HRTIM_OENR_TC2OEN | HRTIM_OENR_TC1OEN)
  3564. #define HRTIM_TDOEN_MASK (HRTIM_OENR_TD2OEN | HRTIM_OENR_TD1OEN)
  3565. #define HRTIM_TEOEN_MASK (HRTIM_OENR_TE2OEN | HRTIM_OENR_TE1OEN)
  3566. #define HRTIM_TFOEN_MASK (HRTIM_OENR_TF2OEN | HRTIM_OENR_TF1OEN)
  3567. #define __HAL_HRTIM_DISABLE(__HANDLE__, __TIMERS__)\
  3568. do {\
  3569. if (((__TIMERS__) & HRTIM_TIMERID_MASTER) == HRTIM_TIMERID_MASTER)\
  3570. {\
  3571. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_MASTER);\
  3572. }\
  3573. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_A) == HRTIM_TIMERID_TIMER_A)\
  3574. {\
  3575. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TAOEN_MASK) == (uint32_t)RESET)\
  3576. {\
  3577. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_A);\
  3578. }\
  3579. }\
  3580. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_B) == HRTIM_TIMERID_TIMER_B)\
  3581. {\
  3582. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TBOEN_MASK) == (uint32_t)RESET)\
  3583. {\
  3584. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_B);\
  3585. }\
  3586. }\
  3587. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_C) == HRTIM_TIMERID_TIMER_C)\
  3588. {\
  3589. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TCOEN_MASK) == (uint32_t)RESET)\
  3590. {\
  3591. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_C);\
  3592. }\
  3593. }\
  3594. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_D) == HRTIM_TIMERID_TIMER_D)\
  3595. {\
  3596. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TDOEN_MASK) == (uint32_t)RESET)\
  3597. {\
  3598. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_D);\
  3599. }\
  3600. }\
  3601. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_E) == HRTIM_TIMERID_TIMER_E)\
  3602. {\
  3603. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TEOEN_MASK) == (uint32_t)RESET)\
  3604. {\
  3605. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_E);\
  3606. }\
  3607. }\
  3608. if (((__TIMERS__) & HRTIM_TIMERID_TIMER_F) == HRTIM_TIMERID_TIMER_F)\
  3609. {\
  3610. if (((__HANDLE__)->Instance->sCommonRegs.OENR & HRTIM_TFOEN_MASK) == (uint32_t)RESET)\
  3611. {\
  3612. ((__HANDLE__)->Instance->sMasterRegs.MCR &= ~HRTIM_TIMERID_TIMER_F);\
  3613. }\
  3614. }\
  3615. } while(0U)
  3616. /** @brief Enables the External Event counter
  3617. * @param __HANDLE__ specifies the HRTIM Handle.
  3618. * @param __TIMERS__ timers to enable/disable
  3619. * This parameter can be one of the following values:
  3620. * @arg HRTIM_TIMERINDEX_TIMER_A: Timer A identifier
  3621. * @arg HRTIM_TIMERINDEX_TIMER_B: Timer B identifier
  3622. * @arg HRTIM_TIMERINDEX_TIMER_C: Timer C identifier
  3623. * @arg HRTIM_TIMERINDEX_TIMER_D: Timer D identifier
  3624. * @arg HRTIM_TIMERINDEX_TIMER_E: Timer E identifier
  3625. * @arg HRTIM_TIMERINDEX_TIMER_F: Timer F identifier
  3626. * @param Event external event Counter A or B for which timer event must be enabled
  3627. * This parameter can be one of the following values:
  3628. * @arg HRTIM_EVENTCOUNTER_A
  3629. * @arg HRTIM_EVENTCOUNTER_B
  3630. * @retval None
  3631. */
  3632. #define __HAL_HRTIM_EXTERNAL_EVENT_COUNTER_ENABLE(__HANDLE__, __TIMER__, __EVENT__)\
  3633. do {\
  3634. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_A) == HRTIM_TIMERINDEX_TIMER_A)\
  3635. {\
  3636. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3637. {\
  3638. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].EEFxR3) |= HRTIM_EEFR3_EEVACE;\
  3639. }\
  3640. if (((__EVENT__) & HRTIM_TIMERINDEX_TIMER_B) == HRTIM_TIMERINDEX_TIMER_B)\
  3641. {\
  3642. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].EEFxR3) |= HRTIM_EEFR3_EEVBCE;\
  3643. }\
  3644. }\
  3645. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_B) == HRTIM_TIMERINDEX_TIMER_B)\
  3646. {\
  3647. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3648. {\
  3649. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_B].EEFxR3) |= HRTIM_EEFR3_EEVACE;\
  3650. }\
  3651. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3652. {\
  3653. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_B].EEFxR3) |= HRTIM_EEFR3_EEVBCE;\
  3654. }\
  3655. }\
  3656. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_C) == HRTIM_TIMERINDEX_TIMER_C)\
  3657. {\
  3658. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3659. {\
  3660. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_C].EEFxR3) |= HRTIM_EEFR3_EEVACE;\
  3661. }\
  3662. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3663. {\
  3664. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_C].EEFxR3) |= HRTIM_EEFR3_EEVBCE;\
  3665. }\
  3666. }\
  3667. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_D) == HRTIM_TIMERINDEX_TIMER_D)\
  3668. {\
  3669. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3670. {\
  3671. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_D].EEFxR3) |= HRTIM_EEFR3_EEVACE;\
  3672. }\
  3673. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3674. {\
  3675. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_D].EEFxR3) |= HRTIM_EEFR3_EEVBCE;\
  3676. }\
  3677. }\
  3678. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_E) == HRTIM_TIMERINDEX_TIMER_E)\
  3679. {\
  3680. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3681. {\
  3682. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_E].EEFxR3) |= HRTIM_EEFR3_EEVACE;\
  3683. }\
  3684. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3685. {\
  3686. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_E].EEFxR3) |= HRTIM_EEFR3_EEVBCE;\
  3687. }\
  3688. }\
  3689. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_F) == HRTIM_TIMERINDEX_TIMER_F)\
  3690. {\
  3691. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3692. {\
  3693. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_F].EEFxR3) |= HRTIM_EEFR3_EEVACE;\
  3694. }\
  3695. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3696. {\
  3697. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_F].EEFxR3) |= HRTIM_EEFR3_EEVBCE;\
  3698. }\
  3699. }\
  3700. } while(0U)
  3701. /** @brief Disables the External Event counter
  3702. * @param __HANDLE__ specifies the HRTIM Handle.
  3703. * @param __TIMERS__ timers to enable/disable
  3704. * This parameter can be one of the following values:
  3705. * @arg HRTIM_TIMERINDEX_TIMER_A: Timer A identifier
  3706. * @arg HRTIM_TIMERINDEX_TIMER_B: Timer B identifier
  3707. * @arg HRTIM_TIMERINDEX_TIMER_C: Timer C identifier
  3708. * @arg HRTIM_TIMERINDEX_TIMER_D: Timer D identifier
  3709. * @arg HRTIM_TIMERINDEX_TIMER_E: Timer E identifier
  3710. * @arg HRTIM_TIMERINDEX_TIMER_F: Timer F identifier
  3711. * @param Event external event A or B for which timer event must be disabled
  3712. * This parameter can be one of the following values:
  3713. * @arg HRTIM_EVENTCOUNTER_A
  3714. * @arg HRTIM_EVENTCOUNTER_B
  3715. * @retval None
  3716. */
  3717. #define __HAL_HRTIM_EXTERNAL_EVENT_COUNTER_DISABLE(__HANDLE__, __TIMER__, __EVENT__)\
  3718. do {\
  3719. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_A) == HRTIM_TIMERINDEX_TIMER_A)\
  3720. {\
  3721. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3722. {\
  3723. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].EEFxR3) &= ~HRTIM_EEFR3_EEVACE;\
  3724. }\
  3725. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3726. {\
  3727. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].EEFxR3) &= ~HRTIM_EEFR3_EEVBCE;\
  3728. }\
  3729. }\
  3730. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_B) == HRTIM_TIMERINDEX_TIMER_B)\
  3731. {\
  3732. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3733. {\
  3734. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_B].EEFxR3) &= ~HRTIM_EEFR3_EEVACE;\
  3735. }\
  3736. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3737. {\
  3738. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_B].EEFxR3) &= ~HRTIM_EEFR3_EEVBCE;\
  3739. }\
  3740. }\
  3741. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_C) == HRTIM_TIMERINDEX_TIMER_C)\
  3742. {\
  3743. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3744. {\
  3745. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_C].EEFxR3) &= ~HRTIM_EEFR3_EEVACE;\
  3746. }\
  3747. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3748. {\
  3749. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_C].EEFxR3) &= ~HRTIM_EEFR3_EEVBCE;\
  3750. }\
  3751. }\
  3752. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_D) == HRTIM_TIMERINDEX_TIMER_D)\
  3753. {\
  3754. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3755. {\
  3756. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_D].EEFxR3) &= ~HRTIM_EEFR3_EEVACE;\
  3757. }\
  3758. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3759. {\
  3760. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_D].EEFxR3) &= ~HRTIM_EEFR3_EEVBCE;\
  3761. }\
  3762. }\
  3763. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_E) == HRTIM_TIMERINDEX_TIMER_E)\
  3764. {\
  3765. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3766. {\
  3767. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_E].EEFxR3) &= ~HRTIM_EEFR3_EEVACE;\
  3768. }\
  3769. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3770. {\
  3771. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_E].EEFxR3) &= ~HRTIM_EEFR3_EEVBCE;\
  3772. }\
  3773. }\
  3774. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_F) == HRTIM_TIMERINDEX_TIMER_F)\
  3775. {\
  3776. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3777. {\
  3778. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_F].EEFxR3) &= ~HRTIM_EEFR3_EEVACE;\
  3779. }\
  3780. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3781. {\
  3782. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_F].EEFxR3) &= ~HRTIM_EEFR3_EEVBCE;\
  3783. }\
  3784. }\
  3785. } while(0U)
  3786. /** @brief Resets the External Event counter
  3787. * @param __HANDLE__ specifies the HRTIM Handle.
  3788. * @param __TIMERS__ timers to enable/disable
  3789. * This parameter can be one of the following values:
  3790. * @arg HRTIM_TIMERINDEX_TIMER_A: Timer A identifier
  3791. * @arg HRTIM_TIMERINDEX_TIMER_B: Timer B identifier
  3792. * @arg HRTIM_TIMERINDEX_TIMER_C: Timer C identifier
  3793. * @arg HRTIM_TIMERINDEX_TIMER_D: Timer D identifier
  3794. * @arg HRTIM_TIMERINDEX_TIMER_E: Timer E identifier
  3795. * @arg HRTIM_TIMERINDEX_TIMER_F: Timer F identifier
  3796. * @param Event external event A or B for which timer event must be reset
  3797. * This parameter can be one of the following values:
  3798. * @arg HRTIM_EVENTCOUNTER_A
  3799. * @arg HRTIM_EVENTCOUNTER_B
  3800. * @retval None
  3801. */
  3802. #define __HAL_HRTIM_EXTERNAL_EVENT_COUNTER_RESET(__HANDLE__, __TIMER__, __EVENT__)\
  3803. do {\
  3804. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_A) == HRTIM_TIMERINDEX_TIMER_A)\
  3805. {\
  3806. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3807. {\
  3808. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].EEFxR3) |= HRTIM_EEFR3_EEVACRES;\
  3809. }\
  3810. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3811. {\
  3812. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].EEFxR3) |= HRTIM_EEFR3_EEVBCRES;\
  3813. }\
  3814. }\
  3815. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_B) == HRTIM_TIMERINDEX_TIMER_B)\
  3816. {\
  3817. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3818. {\
  3819. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_B].EEFxR3) |= HRTIM_EEFR3_EEVACRES;\
  3820. }\
  3821. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3822. {\
  3823. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_B].EEFxR3) |= HRTIM_EEFR3_EEVBCRES;\
  3824. }\
  3825. }\
  3826. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_C) == HRTIM_TIMERINDEX_TIMER_C)\
  3827. {\
  3828. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3829. {\
  3830. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_C].EEFxR3) |= HRTIM_EEFR3_EEVACRES;\
  3831. }\
  3832. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3833. {\
  3834. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_C].EEFxR3) |= HRTIM_EEFR3_EEVBCRES;\
  3835. }\
  3836. }\
  3837. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_D) == HRTIM_TIMERINDEX_TIMER_D)\
  3838. {\
  3839. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3840. {\
  3841. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_D].EEFxR3) |= HRTIM_EEFR3_EEVACRES;\
  3842. }\
  3843. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3844. {\
  3845. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_D].EEFxR3) |= HRTIM_EEFR3_EEVBCRES;\
  3846. }\
  3847. }\
  3848. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_E) == HRTIM_TIMERINDEX_TIMER_E)\
  3849. {\
  3850. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3851. {\
  3852. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_E].EEFxR3) |= HRTIM_EEFR3_EEVACRES;\
  3853. }\
  3854. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3855. {\
  3856. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_E].EEFxR3) |= HRTIM_EEFR3_EEVBCRES;\
  3857. }\
  3858. }\
  3859. if (((__TIMER__) & HRTIM_TIMERINDEX_TIMER_F) == HRTIM_TIMERINDEX_TIMER_F)\
  3860. {\
  3861. if (((__EVENT__) & HRTIM_EVENTCOUNTER_A) == HRTIM_EVENTCOUNTER_A)\
  3862. {\
  3863. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_F].EEFxR3) |= HRTIM_EEFR3_EEVACRES;\
  3864. }\
  3865. if (((__EVENT__) & HRTIM_EVENTCOUNTER_B) == HRTIM_EVENTCOUNTER_B)\
  3866. {\
  3867. ((__HANDLE__)->Instance->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_F].EEFxR3) |= HRTIM_EEFR3_EEVBCRES;\
  3868. }\
  3869. }\
  3870. } while(0U)
  3871. /** @brief Enables or disables the specified HRTIM common interrupts.
  3872. * @param __HANDLE__ specifies the HRTIM Handle.
  3873. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  3874. * This parameter can be one of the following values:
  3875. * @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
  3876. * @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
  3877. * @arg HRTIM_IT_FLT3: Fault 3 interrupt enable
  3878. * @arg HRTIM_IT_FLT4: Fault 4 interrupt enable
  3879. * @arg HRTIM_IT_FLT5: Fault 5 interrupt enable
  3880. * @arg HRTIM_IT_FLT6: Fault 6 interrupt enable
  3881. * @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
  3882. * @arg HRTIM_IT_DLLRDY: DLL ready interrupt enable
  3883. * @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
  3884. * @retval None
  3885. */
  3886. #define __HAL_HRTIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.IER |= (__INTERRUPT__))
  3887. #define __HAL_HRTIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.IER &= ~(__INTERRUPT__))
  3888. /** @brief Enables or disables the specified HRTIM Master timer interrupts.
  3889. * @param __HANDLE__ specifies the HRTIM Handle.
  3890. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  3891. * This parameter can be one of the following values:
  3892. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  3893. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  3894. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  3895. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  3896. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  3897. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  3898. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  3899. * @retval None
  3900. */
  3901. #define __HAL_HRTIM_MASTER_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MDIER \
  3902. |= (__INTERRUPT__))
  3903. #define __HAL_HRTIM_MASTER_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MDIER \
  3904. &= ~(__INTERRUPT__))
  3905. /** @brief Enables or disables the specified HRTIM Timerx interrupts.
  3906. * @param __HANDLE__ specifies the HRTIM Handle.
  3907. * @param __TIMER__ specified the timing unit (Timer A to F)
  3908. * @param __INTERRUPT__ specifies the interrupt source to enable or disable.
  3909. * This parameter can be one of the following values:
  3910. * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
  3911. * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
  3912. * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
  3913. * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
  3914. * @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
  3915. * @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
  3916. * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
  3917. * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
  3918. * @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
  3919. * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
  3920. * @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
  3921. * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
  3922. * @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
  3923. * @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
  3924. * @retval None
  3925. */
  3926. #define __HAL_HRTIM_TIMER_ENABLE_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER |= (__INTERRUPT__))
  3927. #define __HAL_HRTIM_TIMER_DISABLE_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER &= ~(__INTERRUPT__))
  3928. /** @brief Checks if the specified HRTIM common interrupt source is enabled or disabled.
  3929. * @param __HANDLE__ specifies the HRTIM Handle.
  3930. * @param __INTERRUPT__ specifies the interrupt source to check.
  3931. * This parameter can be one of the following values:
  3932. * @arg HRTIM_IT_FLT1: Fault 1 interrupt enable
  3933. * @arg HRTIM_IT_FLT2: Fault 2 interrupt enable
  3934. * @arg HRTIM_IT_FLT3: Fault 3 enable
  3935. * @arg HRTIM_IT_FLT4: Fault 4 enable
  3936. * @arg HRTIM_IT_FLT5: Fault 5 enable
  3937. * @arg HRTIM_IT_FLT6: Fault 6 enable
  3938. * @arg HRTIM_IT_SYSFLT: System Fault interrupt enable
  3939. * @arg HRTIM_IT_DLLRDY: DLL ready interrupt enable
  3940. * @arg HRTIM_IT_BMPER: Burst mode period interrupt enable
  3941. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  3942. */
  3943. #define __HAL_HRTIM_GET_ITSTATUS(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->sCommonRegs.IER &\
  3944. (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  3945. /** @brief Checks if the specified HRTIM Master interrupt source is enabled or disabled.
  3946. * @param __HANDLE__ specifies the HRTIM Handle.
  3947. * @param __INTERRUPT__ specifies the interrupt source to check.
  3948. * This parameter can be one of the following values:
  3949. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  3950. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  3951. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  3952. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  3953. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  3954. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  3955. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  3956. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  3957. */
  3958. #define __HAL_HRTIM_MASTER_GET_ITSTATUS(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->sMasterRegs.MDIER &\
  3959. (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  3960. /** @brief Checks if the specified HRTIM Timerx interrupt source is enabled or disabled.
  3961. * @param __HANDLE__ specifies the HRTIM Handle.
  3962. * @param __TIMER__ specified the timing unit (Timer A to F)
  3963. * @param __INTERRUPT__ specifies the interrupt source to check.
  3964. * This parameter can be one of the following values:
  3965. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt enable
  3966. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt enable
  3967. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt enable
  3968. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt enable
  3969. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt enable
  3970. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt enable
  3971. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt enable
  3972. * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt enable
  3973. * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt enable
  3974. * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt enable
  3975. * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt enable
  3976. * @arg HRTIM_TIM_IT_REP: Timer repetition interrupt enable
  3977. * @arg HRTIM_TIM_IT_UPD: Timer update interrupt enable
  3978. * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt enable
  3979. * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt enable
  3980. * @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt enable
  3981. * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt enable
  3982. * @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt enable
  3983. * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt enable
  3984. * @arg HRTIM_TIM_IT_RST: Timer reset interrupt enable
  3985. * @arg HRTIM_TIM_IT_DLYPRT: Timer delay protection interrupt enable
  3986. * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
  3987. */
  3988. #define __HAL_HRTIM_TIMER_GET_ITSTATUS(__HANDLE__, __TIMER__, __INTERRUPT__) ((((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER &\
  3989. (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
  3990. /** @brief Clears the specified HRTIM common pending flag.
  3991. * @param __HANDLE__ specifies the HRTIM Handle.
  3992. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  3993. * This parameter can be one of the following values:
  3994. * @arg HRTIM_IT_FLT1: Fault 1 interrupt clear flag
  3995. * @arg HRTIM_IT_FLT2: Fault 2 interrupt clear flag
  3996. * @arg HRTIM_IT_FLT3: Fault 3 clear flag
  3997. * @arg HRTIM_IT_FLT4: Fault 4 clear flag
  3998. * @arg HRTIM_IT_FLT5: Fault 5 clear flag
  3999. * @arg HRTIM_IT_FLT6: Fault 6 clear flag
  4000. * @arg HRTIM_IT_SYSFLT: System Fault interrupt clear flag
  4001. * @arg HRTIM_IT_DLLRDY: DLL ready interrupt clear flag
  4002. * @arg HRTIM_IT_BMPER: Burst mode period interrupt clear flag
  4003. * @retval None
  4004. */
  4005. #define __HAL_HRTIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sCommonRegs.ICR = (__INTERRUPT__))
  4006. /** @brief Clears the specified HRTIM Master pending flag.
  4007. * @param __HANDLE__ specifies the HRTIM Handle.
  4008. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  4009. * This parameter can be one of the following values:
  4010. * @arg HRTIM_MASTER_IT_MCMP1: Master compare 1 interrupt clear flag
  4011. * @arg HRTIM_MASTER_IT_MCMP2: Master compare 2 interrupt clear flag
  4012. * @arg HRTIM_MASTER_IT_MCMP3: Master compare 3 interrupt clear flag
  4013. * @arg HRTIM_MASTER_IT_MCMP4: Master compare 4 interrupt clear flag
  4014. * @arg HRTIM_MASTER_IT_MREP: Master Repetition interrupt clear flag
  4015. * @arg HRTIM_MASTER_IT_SYNC: Synchronization input interrupt clear flag
  4016. * @arg HRTIM_MASTER_IT_MUPD: Master update interrupt clear flag
  4017. * @retval None
  4018. */
  4019. #define __HAL_HRTIM_MASTER_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->sMasterRegs.MICR\
  4020. = (__INTERRUPT__))
  4021. /** @brief Clears the specified HRTIM Timerx pending flag.
  4022. * @param __HANDLE__ specifies the HRTIM Handle.
  4023. * @param __TIMER__ specified the timing unit (Timer A to F)
  4024. * @param __INTERRUPT__ specifies the interrupt pending bit to clear.
  4025. * This parameter can be one of the following values:
  4026. * @arg HRTIM_TIM_IT_CMP1: Timer compare 1 interrupt clear flag
  4027. * @arg HRTIM_TIM_IT_CMP2: Timer compare 2 interrupt clear flag
  4028. * @arg HRTIM_TIM_IT_CMP3: Timer compare 3 interrupt clear flag
  4029. * @arg HRTIM_TIM_IT_CMP4: Timer compare 4 interrupt clear flag
  4030. * @arg HRTIM_TIM_IT_REP: Timer repetition interrupt clear flag
  4031. * @arg HRTIM_TIM_IT_UPD: Timer update interrupt clear flag
  4032. * @arg HRTIM_TIM_IT_CPT1: Timer capture 1 interrupt clear flag
  4033. * @arg HRTIM_TIM_IT_CPT2: Timer capture 2 interrupt clear flag
  4034. * @arg HRTIM_TIM_IT_SET1: Timer output 1 set interrupt clear flag
  4035. * @arg HRTIM_TIM_IT_RST1: Timer output 1 reset interrupt clear flag
  4036. * @arg HRTIM_TIM_IT_SET2: Timer output 2 set interrupt clear flag
  4037. * @arg HRTIM_TIM_IT_RST2: Timer output 2 reset interrupt clear flag
  4038. * @arg HRTIM_TIM_IT_RST: Timer reset interrupt clear flag
  4039. * @arg HRTIM_TIM_IT_DLYPRT: Timer output 1 delay protection interrupt clear flag
  4040. * @retval None
  4041. */
  4042. #define __HAL_HRTIM_TIMER_CLEAR_IT(__HANDLE__, __TIMER__, __INTERRUPT__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxICR\
  4043. = (__INTERRUPT__))
  4044. /* DMA HANDLING */
  4045. /** @brief Enables or disables the specified HRTIM Master timer DMA requests.
  4046. * @param __HANDLE__ specifies the HRTIM Handle.
  4047. * @param __DMA__ specifies the DMA request to enable or disable.
  4048. * This parameter can be one of the following values:
  4049. * @arg HRTIM_MASTER_DMA_MCMP1: Master compare 1 DMA request enable
  4050. * @arg HRTIM_MASTER_DMA_MCMP2: Master compare 2 DMA request enable
  4051. * @arg HRTIM_MASTER_DMA_MCMP3: Master compare 3 DMA request enable
  4052. * @arg HRTIM_MASTER_DMA_MCMP4: Master compare 4 DMA request enable
  4053. * @arg HRTIM_MASTER_DMA_MREP: Master Repetition DMA request enable
  4054. * @arg HRTIM_MASTER_DMA_SYNC: Synchronization input DMA request enable
  4055. * @arg HRTIM_MASTER_DMA_MUPD: Master update DMA request enable
  4056. * @retval None
  4057. */
  4058. #define __HAL_HRTIM_MASTER_ENABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->sMasterRegs.MDIER |= (__DMA__))
  4059. #define __HAL_HRTIM_MASTER_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->sMasterRegs.MDIER &= ~(__DMA__))
  4060. /** @brief Enables or disables the specified HRTIM Timerx DMA requests.
  4061. * @param __HANDLE__ specifies the HRTIM Handle.
  4062. * @param __TIMER__ specified the timing unit (Timer A to F)
  4063. * @param __DMA__ specifies the DMA request to enable or disable.
  4064. * This parameter can be one of the following values:
  4065. * @arg HRTIM_TIM_DMA_CMP1: Timer compare 1 DMA request enable
  4066. * @arg HRTIM_TIM_DMA_CMP2: Timer compare 2 DMA request enable
  4067. * @arg HRTIM_TIM_DMA_CMP3: Timer compare 3 DMA request enable
  4068. * @arg HRTIM_TIM_DMA_CMP4: Timer compare 4 DMA request enable
  4069. * @arg HRTIM_TIM_DMA_REP: Timer repetition DMA request enable
  4070. * @arg HRTIM_TIM_DMA_UPD: Timer update DMA request enable
  4071. * @arg HRTIM_TIM_DMA_CPT1: Timer capture 1 DMA request enable
  4072. * @arg HRTIM_TIM_DMA_CPT2: Timer capture 2 DMA request enable
  4073. * @arg HRTIM_TIM_DMA_SET1: Timer output 1 set DMA request enable
  4074. * @arg HRTIM_TIM_DMA_RST1: Timer output 1 reset DMA request enable
  4075. * @arg HRTIM_TIM_DMA_SET2: Timer output 2 set DMA request enable
  4076. * @arg HRTIM_TIM_DMA_RST2: Timer output 2 reset DMA request enable
  4077. * @arg HRTIM_TIM_DMA_RST: Timer reset DMA request enable
  4078. * @arg HRTIM_TIM_DMA_DLYPRT: Timer delay protection DMA request enable
  4079. * @retval None
  4080. */
  4081. #define __HAL_HRTIM_TIMER_ENABLE_DMA(__HANDLE__, __TIMER__, __DMA__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER |= (__DMA__))
  4082. #define __HAL_HRTIM_TIMER_DISABLE_DMA(__HANDLE__, __TIMER__, __DMA__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxDIER &= ~(__DMA__))
  4083. #define __HAL_HRTIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->sCommonRegs.ISR &\
  4084. (__FLAG__)) == (__FLAG__))
  4085. #define __HAL_HRTIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->sCommonRegs.ICR = (__FLAG__))
  4086. #define __HAL_HRTIM_MASTER_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->sMasterRegs.MISR &\
  4087. (__FLAG__)) == (__FLAG__))
  4088. #define __HAL_HRTIM_MASTER_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->sMasterRegs.MICR = (__FLAG__))
  4089. #define __HAL_HRTIM_TIMER_GET_FLAG(__HANDLE__, __TIMER__, __FLAG__) (((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxISR &\
  4090. (__FLAG__)) == (__FLAG__))
  4091. #define __HAL_HRTIM_TIMER_CLEAR_FLAG(__HANDLE__, __TIMER__, __FLAG__) ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxICR\
  4092. = (__FLAG__))
  4093. /** @brief Sets the HRTIM timer Counter Register value on runtime
  4094. * @param __HANDLE__ HRTIM Handle.
  4095. * @param __TIMER__ HRTIM timer
  4096. * This parameter can be one of the following values:
  4097. * @arg 0x6 for master timer
  4098. * @arg 0x0 to 0x5 for timers A to F
  4099. * @param __COUNTER__ specifies the Counter Register new value.
  4100. * @retval None
  4101. */
  4102. #define __HAL_HRTIM_SETCOUNTER(__HANDLE__, __TIMER__, __COUNTER__) \
  4103. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCNTR = (__COUNTER__)) :\
  4104. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CNTxR = (__COUNTER__)))
  4105. /** @brief Gets the HRTIM timer Counter Register value on runtime
  4106. * @param __HANDLE__ HRTIM Handle.
  4107. * @param __TIMER__ HRTIM timer
  4108. * This parameter can be one of the following values:
  4109. * @arg 0x6 for master timer
  4110. * @arg 0x0 to 0x5 for timers A to F
  4111. * @retval HRTIM timer Counter Register value
  4112. */
  4113. #define __HAL_HRTIM_GETCOUNTER(__HANDLE__, __TIMER__) \
  4114. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCNTR) :\
  4115. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CNTxR))
  4116. /** @brief Sets the HRTIM timer Period value on runtime
  4117. * @param __HANDLE__ HRTIM Handle.
  4118. * @param __TIMER__ HRTIM timer
  4119. * This parameter can be one of the following values:
  4120. * @arg 0x6 for master timer
  4121. * @arg 0x0 to 0x5 for timers A to F
  4122. * @param __PERIOD__ specifies the Period Register new value.
  4123. * @retval None
  4124. */
  4125. #define __HAL_HRTIM_SETPERIOD(__HANDLE__, __TIMER__, __PERIOD__) \
  4126. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MPER = (__PERIOD__)) :\
  4127. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].PERxR = (__PERIOD__)))
  4128. /** @brief Gets the HRTIM timer Period Register value on runtime
  4129. * @param __HANDLE__ HRTIM Handle.
  4130. * @param __TIMER__ HRTIM timer
  4131. * This parameter can be one of the following values:
  4132. * @arg 0x6 for master timer
  4133. * @arg 0x0 to 0x5 for timers A to F
  4134. * @retval timer Period Register
  4135. */
  4136. #define __HAL_HRTIM_GETPERIOD(__HANDLE__, __TIMER__) \
  4137. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MPER) :\
  4138. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].PERxR))
  4139. /** @brief Sets the HRTIM timer clock prescaler value on runtime
  4140. * @param __HANDLE__ HRTIM Handle.
  4141. * @param __TIMER__ HRTIM timer
  4142. * This parameter can be one of the following values:
  4143. * @arg 0x6 for master timer
  4144. * @arg 0x0 to 0x5 for timers A to F
  4145. * @param __PRESCALER__ specifies the clock prescaler new value.
  4146. * This parameter can be one of the following values:
  4147. * @arg HRTIM_PRESCALERRATIO_MUL32: fHRCK: 4.608 GHz - Resolution: 217 ps - Min PWM frequency: 70.3 kHz (fHRTIM=144MHz)
  4148. * @arg HRTIM_PRESCALERRATIO_MUL16: fHRCK: 2.304 GHz - Resolution: 434 ps - Min PWM frequency: 35.1 KHz (fHRTIM=144MHz)
  4149. * @arg HRTIM_PRESCALERRATIO_MUL8: fHRCK: 1.152 GHz - Resolution: 868 ps - Min PWM frequency: 17.6 kHz (fHRTIM=144MHz)
  4150. * @arg HRTIM_PRESCALERRATIO_MUL4: fHRCK: 576 MHz - Resolution: 1.73 ns - Min PWM frequency: 8.8 kHz (fHRTIM=144MHz)
  4151. * @arg HRTIM_PRESCALERRATIO_MUL2: fHRCK: 288 MHz - Resolution: 3.47 ns - Min PWM frequency: 4.4 kHz (fHRTIM=144MHz)
  4152. * @arg HRTIM_PRESCALERRATIO_DIV1: fHRCK: 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz)
  4153. * @arg HRTIM_PRESCALERRATIO_DIV2: fHRCK: 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz)
  4154. * @arg HRTIM_PRESCALERRATIO_DIV4: fHRCK: 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz)
  4155. * @retval None
  4156. */
  4157. #define __HAL_HRTIM_SETCLOCKPRESCALER(__HANDLE__, __TIMER__, __PRESCALER__) \
  4158. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? (MODIFY_REG((__HANDLE__)->Instance->sMasterRegs.MCR, HRTIM_MCR_CK_PSC, (__PRESCALER__))) :\
  4159. (MODIFY_REG((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxCR, HRTIM_TIMCR_CK_PSC, (__PRESCALER__))))
  4160. /** @brief Gets the HRTIM timer clock prescaler value on runtime
  4161. * @param __HANDLE__ HRTIM Handle.
  4162. * @param __TIMER__ HRTIM timer
  4163. * This parameter can be one of the following values:
  4164. * @arg 0x6 for master timer
  4165. * @arg 0x0 to 0x5 for timers A to F
  4166. * @retval timer clock prescaler value
  4167. */
  4168. #define __HAL_HRTIM_GETCLOCKPRESCALER(__HANDLE__, __TIMER__) \
  4169. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? ((__HANDLE__)->Instance->sMasterRegs.MCR & HRTIM_MCR_CK_PSC) :\
  4170. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].TIMxCR & HRTIM_TIMCR_CK_PSC))
  4171. /** @brief Sets the HRTIM timer Compare Register value on runtime
  4172. * @param __HANDLE__ HRTIM Handle.
  4173. * @param __TIMER__ HRTIM timer
  4174. * This parameter can be one of the following values:
  4175. * @arg 0x0 to 0x5 for timers A to F
  4176. * @param __COMPAREUNIT__ timer compare unit
  4177. * This parameter can be one of the following values:
  4178. * @arg HRTIM_COMPAREUNIT_1: Compare unit 1
  4179. * @arg HRTIM_COMPAREUNIT_2: Compare unit 2
  4180. * @arg HRTIM_COMPAREUNIT_3: Compare unit 3
  4181. * @arg HRTIM_COMPAREUNIT_4: Compare unit 4
  4182. * @param __COMPARE__ specifies the Compare new value.
  4183. * @retval None
  4184. */
  4185. #define __HAL_HRTIM_SETCOMPARE(__HANDLE__, __TIMER__, __COMPAREUNIT__, __COMPARE__) \
  4186. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? \
  4187. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP1R = (__COMPARE__)) :\
  4188. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP2R = (__COMPARE__)) :\
  4189. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP3R = (__COMPARE__)) :\
  4190. ((__HANDLE__)->Instance->sMasterRegs.MCMP4R = (__COMPARE__))) \
  4191. : \
  4192. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP1xR = (__COMPARE__)) :\
  4193. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP2xR = (__COMPARE__)) :\
  4194. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP3xR = (__COMPARE__)) :\
  4195. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP4xR = (__COMPARE__))))
  4196. /** @brief Gets the HRTIM timer Compare Register value on runtime
  4197. * @param __HANDLE__ HRTIM Handle.
  4198. * @param __TIMER__ HRTIM timer
  4199. * This parameter can be one of the following values:
  4200. * @arg 0x0 to 0x5 for timers A to F
  4201. * @param __COMPAREUNIT__ timer compare unit
  4202. * This parameter can be one of the following values:
  4203. * @arg HRTIM_COMPAREUNIT_1: Compare unit 1
  4204. * @arg HRTIM_COMPAREUNIT_2: Compare unit 2
  4205. * @arg HRTIM_COMPAREUNIT_3: Compare unit 3
  4206. * @arg HRTIM_COMPAREUNIT_4: Compare unit 4
  4207. * @retval Compare value
  4208. */
  4209. #define __HAL_HRTIM_GETCOMPARE(__HANDLE__, __TIMER__, __COMPAREUNIT__) \
  4210. (((__TIMER__) == HRTIM_TIMERINDEX_MASTER) ? \
  4211. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP1R) :\
  4212. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP2R) :\
  4213. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sMasterRegs.MCMP3R) :\
  4214. ((__HANDLE__)->Instance->sMasterRegs.MCMP4R)) \
  4215. : \
  4216. (((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_1) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP1xR) :\
  4217. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_2) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP2xR) :\
  4218. ((__COMPAREUNIT__) == HRTIM_COMPAREUNIT_3) ? ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP3xR) :\
  4219. ((__HANDLE__)->Instance->sTimerxRegs[(__TIMER__)].CMP4xR)))
  4220. /**
  4221. * @brief Enables the Fault Counter
  4222. * @param hhrtim pointer to HAL HRTIM handle
  4223. * @param Fault fault input to enable
  4224. * This parameter can be one of the following values:
  4225. * @arg HRTIM_FAULT_1: Fault input 1
  4226. * @arg HRTIM_FAULT_2: Fault input 2
  4227. * @arg HRTIM_FAULT_3: Fault input 3
  4228. * @arg HRTIM_FAULT_4: Fault input 4
  4229. * @arg HRTIM_FAULT_5: Fault input 5
  4230. * @arg HRTIM_FAULT_6: Fault input 6
  4231. * @note This function must be called when fault is not enabled
  4232. * @retval HAL status
  4233. */
  4234. #define __HAL_HRTIM_FAULT_BLANKING_ENABLE(__HANDLE__, __FAULT__)\
  4235. do {\
  4236. if (((__FAULT__) & HRTIM_FAULT_1) == HRTIM_FAULT_1)\
  4237. {\
  4238. ((__HANDLE__)->Instance->sCommonRegs.FLTINR3) |= HRTIM_FLTINR3_FLT1BLKE;\
  4239. }\
  4240. if (((__FAULT__) & HRTIM_FAULT_2) == HRTIM_FAULT_2)\
  4241. {\
  4242. ((__HANDLE__)->Instance->sCommonRegs.FLTINR3) |= HRTIM_FLTINR3_FLT2BLKE;\
  4243. }\
  4244. if (((__FAULT__) & HRTIM_FAULT_3) == HRTIM_FAULT_3)\
  4245. {\
  4246. ((__HANDLE__)->Instance->sCommonRegs.FLTINR3) |= HRTIM_FLTINR3_FLT3BLKE;\
  4247. }\
  4248. if (((__FAULT__) & HRTIM_FAULT_4) == HRTIM_FAULT_4)\
  4249. {\
  4250. ((__HANDLE__)->Instance->sCommonRegs.FLTINR3) |= HRTIM_FLTINR3_FLT4BLKE;\
  4251. }\
  4252. if (((__FAULT__) & HRTIM_FAULT_5) == HRTIM_FAULT_5)\
  4253. {\
  4254. ((__HANDLE__)->Instance->sCommonRegs.FLTINR4) |= HRTIM_FLTINR4_FLT5BLKE;\
  4255. }\
  4256. if (((__FAULT__) & HRTIM_FAULT_6) == HRTIM_FAULT_6)\
  4257. {\
  4258. ((__HANDLE__)->Instance->sCommonRegs.FLTINR4) |= HRTIM_FLTINR4_FLT6BLKE;\
  4259. }\
  4260. } while(0U)
  4261. /**
  4262. * @brief Disables the Fault Counter
  4263. * @param hhrtim pointer to HAL HRTIM handle
  4264. * @param Fault fault input to disable
  4265. * This parameter can be one of the following values:
  4266. * @arg HRTIM_FAULT_1: Fault input 1
  4267. * @arg HRTIM_FAULT_2: Fault input 2
  4268. * @arg HRTIM_FAULT_3: Fault input 3
  4269. * @arg HRTIM_FAULT_4: Fault input 4
  4270. * @arg HRTIM_FAULT_5: Fault input 5
  4271. * @arg HRTIM_FAULT_6: Fault input 6
  4272. * @retval HAL status
  4273. */
  4274. #define __HAL_HRTIM_FAULT_BLANKING_DISABLE(__HANDLE__, __FAULT__)\
  4275. do {\
  4276. if (((__FAULT__) & HRTIM_FAULT_1) == HRTIM_FAULT_1)\
  4277. {\
  4278. ((__HANDLE__)->Instance->sCommonRegs.FLTINR3) &= ~HRTIM_FLTINR3_FLT1BLKE;\
  4279. }\
  4280. if (((__FAULT__) & HRTIM_FAULT_2) == HRTIM_FAULT_2)\
  4281. {\
  4282. ((__HANDLE__)->Instance->sCommonRegs.FLTINR3) &= ~HRTIM_FLTINR3_FLT2BLKE;\
  4283. }\
  4284. if (((__FAULT__) & HRTIM_FAULT_3) == HRTIM_FAULT_3)\
  4285. {\
  4286. ((__HANDLE__)->Instance->sCommonRegs.FLTINR3) &= ~HRTIM_FLTINR3_FLT3BLKE;\
  4287. }\
  4288. if (((__FAULT__) & HRTIM_FAULT_4) == HRTIM_FAULT_4)\
  4289. {\
  4290. ((__HANDLE__)->Instance->sCommonRegs.FLTINR3) &= ~HRTIM_FLTINR3_FLT4BLKE;\
  4291. }\
  4292. if (((__FAULT__) & HRTIM_FAULT_5) == HRTIM_FAULT_5)\
  4293. {\
  4294. ((__HANDLE__)->Instance->sCommonRegs.FLTINR4) &= ~HRTIM_FLTINR4_FLT5BLKE;\
  4295. }\
  4296. if (((__FAULT__) & HRTIM_FAULT_6) == HRTIM_FAULT_6)\
  4297. {\
  4298. ((__HANDLE__)->Instance->sCommonRegs.FLTINR4) &= ~HRTIM_FLTINR4_FLT6BLKE;\
  4299. }\
  4300. } while(0U)
  4301. /**
  4302. * @}
  4303. */
  4304. /* Exported functions --------------------------------------------------------*/
  4305. /** @addtogroup HRTIM_Exported_Functions
  4306. * @{
  4307. */
  4308. /** @addtogroup HRTIM_Exported_Functions_Group1
  4309. * @{
  4310. */
  4311. /* Initialization and Configuration functions ********************************/
  4312. HAL_StatusTypeDef HAL_HRTIM_Init(HRTIM_HandleTypeDef *hhrtim);
  4313. HAL_StatusTypeDef HAL_HRTIM_DeInit(HRTIM_HandleTypeDef *hhrtim);
  4314. void HAL_HRTIM_MspInit(HRTIM_HandleTypeDef *hhrtim);
  4315. void HAL_HRTIM_MspDeInit(HRTIM_HandleTypeDef *hhrtim);
  4316. HAL_StatusTypeDef HAL_HRTIM_TimeBaseConfig(HRTIM_HandleTypeDef *hhrtim,
  4317. uint32_t TimerIdx,
  4318. const HRTIM_TimeBaseCfgTypeDef *pTimeBaseCfg);
  4319. HAL_StatusTypeDef HAL_HRTIM_DLLCalibrationStart(HRTIM_HandleTypeDef *hhrtim,
  4320. uint32_t CalibrationRate);
  4321. HAL_StatusTypeDef HAL_HRTIM_DLLCalibrationStart_IT(HRTIM_HandleTypeDef *hhrtim,
  4322. uint32_t CalibrationRate);
  4323. HAL_StatusTypeDef HAL_HRTIM_PollForDLLCalibration(HRTIM_HandleTypeDef *hhrtim,
  4324. uint32_t Timeout);
  4325. /**
  4326. * @}
  4327. */
  4328. /** @addtogroup HRTIM_Exported_Functions_Group2
  4329. * @{
  4330. */
  4331. /* Simple time base related functions *****************************************/
  4332. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart(HRTIM_HandleTypeDef *hhrtim,
  4333. uint32_t TimerIdx);
  4334. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop(HRTIM_HandleTypeDef *hhrtim,
  4335. uint32_t TimerIdx);
  4336. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_IT(HRTIM_HandleTypeDef *hhrtim,
  4337. uint32_t TimerIdx);
  4338. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_IT(HRTIM_HandleTypeDef *hhrtim,
  4339. uint32_t TimerIdx);
  4340. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  4341. uint32_t TimerIdx,
  4342. uint32_t SrcAddr,
  4343. uint32_t DestAddr,
  4344. uint32_t Length);
  4345. HAL_StatusTypeDef HAL_HRTIM_SimpleBaseStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  4346. uint32_t TimerIdx);
  4347. /**
  4348. * @}
  4349. */
  4350. /** @addtogroup HRTIM_Exported_Functions_Group3
  4351. * @{
  4352. */
  4353. /* Simple output compare related functions ************************************/
  4354. HAL_StatusTypeDef HAL_HRTIM_SimpleOCChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  4355. uint32_t TimerIdx,
  4356. uint32_t OCChannel,
  4357. const HRTIM_SimpleOCChannelCfgTypeDef *pSimpleOCChannelCfg);
  4358. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart(HRTIM_HandleTypeDef *hhrtim,
  4359. uint32_t TimerIdx,
  4360. uint32_t OCChannel);
  4361. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop(HRTIM_HandleTypeDef *hhrtim,
  4362. uint32_t TimerIdx,
  4363. uint32_t OCChannel);
  4364. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_IT(HRTIM_HandleTypeDef *hhrtim,
  4365. uint32_t TimerIdx,
  4366. uint32_t OCChannel);
  4367. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_IT(HRTIM_HandleTypeDef *hhrtim,
  4368. uint32_t TimerIdx,
  4369. uint32_t OCChannel);
  4370. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  4371. uint32_t TimerIdx,
  4372. uint32_t OCChannel,
  4373. uint32_t SrcAddr,
  4374. uint32_t DestAddr,
  4375. uint32_t Length);
  4376. HAL_StatusTypeDef HAL_HRTIM_SimpleOCStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  4377. uint32_t TimerIdx,
  4378. uint32_t OCChannel);
  4379. /**
  4380. * @}
  4381. */
  4382. /** @addtogroup HRTIM_Exported_Functions_Group4
  4383. * @{
  4384. */
  4385. /* Simple PWM output related functions ****************************************/
  4386. HAL_StatusTypeDef HAL_HRTIM_SimplePWMChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  4387. uint32_t TimerIdx,
  4388. uint32_t PWMChannel,
  4389. const HRTIM_SimplePWMChannelCfgTypeDef *pSimplePWMChannelCfg);
  4390. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart(HRTIM_HandleTypeDef *hhrtim,
  4391. uint32_t TimerIdx,
  4392. uint32_t PWMChannel);
  4393. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop(HRTIM_HandleTypeDef *hhrtim,
  4394. uint32_t TimerIdx,
  4395. uint32_t PWMChannel);
  4396. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_IT(HRTIM_HandleTypeDef *hhrtim,
  4397. uint32_t TimerIdx,
  4398. uint32_t PWMChannel);
  4399. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_IT(HRTIM_HandleTypeDef *hhrtim,
  4400. uint32_t TimerIdx,
  4401. uint32_t PWMChannel);
  4402. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  4403. uint32_t TimerIdx,
  4404. uint32_t PWMChannel,
  4405. uint32_t SrcAddr,
  4406. uint32_t DestAddr,
  4407. uint32_t Length);
  4408. HAL_StatusTypeDef HAL_HRTIM_SimplePWMStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  4409. uint32_t TimerIdx,
  4410. uint32_t PWMChannel);
  4411. /**
  4412. * @}
  4413. */
  4414. /** @addtogroup HRTIM_Exported_Functions_Group5
  4415. * @{
  4416. */
  4417. /* Simple capture related functions *******************************************/
  4418. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  4419. uint32_t TimerIdx,
  4420. uint32_t CaptureChannel,
  4421. const HRTIM_SimpleCaptureChannelCfgTypeDef *pSimpleCaptureChannelCfg);
  4422. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart(HRTIM_HandleTypeDef *hhrtim,
  4423. uint32_t TimerIdx,
  4424. uint32_t CaptureChannel);
  4425. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop(HRTIM_HandleTypeDef *hhrtim,
  4426. uint32_t TimerIdx,
  4427. uint32_t CaptureChannel);
  4428. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_IT(HRTIM_HandleTypeDef *hhrtim,
  4429. uint32_t TimerIdx,
  4430. uint32_t CaptureChannel);
  4431. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_IT(HRTIM_HandleTypeDef *hhrtim,
  4432. uint32_t TimerIdx,
  4433. uint32_t CaptureChannel);
  4434. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  4435. uint32_t TimerIdx,
  4436. uint32_t CaptureChannel,
  4437. uint32_t SrcAddr,
  4438. uint32_t DestAddr,
  4439. uint32_t Length);
  4440. HAL_StatusTypeDef HAL_HRTIM_SimpleCaptureStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  4441. uint32_t TimerIdx,
  4442. uint32_t CaptureChannel);
  4443. /**
  4444. * @}
  4445. */
  4446. /** @addtogroup HRTIM_Exported_Functions_Group6
  4447. * @{
  4448. */
  4449. /* Simple one pulse related functions *****************************************/
  4450. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseChannelConfig(HRTIM_HandleTypeDef *hhrtim,
  4451. uint32_t TimerIdx,
  4452. uint32_t OnePulseChannel,
  4453. const HRTIM_SimpleOnePulseChannelCfgTypeDef *pSimpleOnePulseChannelCfg);
  4454. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart(HRTIM_HandleTypeDef *hhrtim,
  4455. uint32_t TimerIdx,
  4456. uint32_t OnePulseChannel);
  4457. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop(HRTIM_HandleTypeDef *hhrtim,
  4458. uint32_t TimerIdx,
  4459. uint32_t OnePulseChannel);
  4460. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStart_IT(HRTIM_HandleTypeDef *hhrtim,
  4461. uint32_t TimerIdx,
  4462. uint32_t OnePulseChannel);
  4463. HAL_StatusTypeDef HAL_HRTIM_SimpleOnePulseStop_IT(HRTIM_HandleTypeDef *hhrtim,
  4464. uint32_t TimerIdx,
  4465. uint32_t OnePulseChannel);
  4466. /**
  4467. * @}
  4468. */
  4469. /** @addtogroup HRTIM_Exported_Functions_Group7
  4470. * @{
  4471. */
  4472. HAL_StatusTypeDef HAL_HRTIM_BurstModeConfig(HRTIM_HandleTypeDef *hhrtim,
  4473. const HRTIM_BurstModeCfgTypeDef *pBurstModeCfg);
  4474. HAL_StatusTypeDef HAL_HRTIM_EventConfig(HRTIM_HandleTypeDef *hhrtim,
  4475. uint32_t Event,
  4476. const HRTIM_EventCfgTypeDef *pEventCfg);
  4477. HAL_StatusTypeDef HAL_HRTIM_EventPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
  4478. uint32_t Prescaler);
  4479. HAL_StatusTypeDef HAL_HRTIM_FaultConfig(HRTIM_HandleTypeDef *hhrtim,
  4480. uint32_t Fault,
  4481. const HRTIM_FaultCfgTypeDef *pFaultCfg);
  4482. HAL_StatusTypeDef HAL_HRTIM_FaultPrescalerConfig(HRTIM_HandleTypeDef *hhrtim,
  4483. uint32_t Prescaler);
  4484. HAL_StatusTypeDef HAL_HRTIM_FaultBlankingConfigAndEnable(HRTIM_HandleTypeDef *hhrtim,
  4485. uint32_t Fault,
  4486. const HRTIM_FaultBlankingCfgTypeDef *pFaultBlkCfg);
  4487. HAL_StatusTypeDef HAL_HRTIM_FaultCounterConfig(HRTIM_HandleTypeDef *hhrtim,
  4488. uint32_t Fault,
  4489. const HRTIM_FaultBlankingCfgTypeDef *pFaultBlkCfg);
  4490. HAL_StatusTypeDef HAL_HRTIM_FaultCounterReset(HRTIM_HandleTypeDef *hhrtim,
  4491. uint32_t Fault);
  4492. HAL_StatusTypeDef HAL_HRTIM_SwapTimerOutput(HRTIM_HandleTypeDef *hhrtim,
  4493. uint32_t Timers);
  4494. void HAL_HRTIM_FaultModeCtl(HRTIM_HandleTypeDef *hhrtim,
  4495. uint32_t Faults,
  4496. uint32_t Enable);
  4497. HAL_StatusTypeDef HAL_HRTIM_ADCTriggerConfig(HRTIM_HandleTypeDef *hhrtim,
  4498. uint32_t ADCTrigger,
  4499. const HRTIM_ADCTriggerCfgTypeDef *pADCTriggerCfg);
  4500. HAL_StatusTypeDef HAL_HRTIM_ADCPostScalerConfig(HRTIM_HandleTypeDef *hhrtim,
  4501. uint32_t ADCTrigger,
  4502. uint32_t Postscaler);
  4503. HAL_StatusTypeDef HAL_HRTIM_RollOverModeConfig(HRTIM_HandleTypeDef *hhrtim,
  4504. uint32_t TimerIdx,
  4505. uint32_t RollOverCfg);
  4506. HAL_StatusTypeDef HAL_HRTIM_OutputSwapEnable(HRTIM_HandleTypeDef *hhrtim,
  4507. uint32_t Timers);
  4508. HAL_StatusTypeDef HAL_HRTIM_OutputSwapDisable(HRTIM_HandleTypeDef *hhrtim,
  4509. uint32_t Timers);
  4510. /**
  4511. * @}
  4512. */
  4513. /** @addtogroup HRTIM_Exported_Functions_Group8
  4514. * @{
  4515. */
  4516. /* Waveform related functions *************************************************/
  4517. HAL_StatusTypeDef HAL_HRTIM_WaveformTimerConfig(HRTIM_HandleTypeDef *hhrtim,
  4518. uint32_t TimerIdx,
  4519. const HRTIM_TimerCfgTypeDef *pTimerCfg);
  4520. HAL_StatusTypeDef HAL_HRTIM_WaveformTimerControl(HRTIM_HandleTypeDef *hhrtim,
  4521. uint32_t TimerIdx,
  4522. const HRTIM_TimerCtlTypeDef *pTimerCtl);
  4523. HAL_StatusTypeDef HAL_HRTIM_TimerDualChannelDacConfig(HRTIM_HandleTypeDef *hhrtim,
  4524. uint32_t TimerIdx,
  4525. const HRTIM_TimerCtlTypeDef *pTimerCtl);
  4526. HAL_StatusTypeDef HAL_HRTIM_WaveformCompareConfig(HRTIM_HandleTypeDef *hhrtim,
  4527. uint32_t TimerIdx,
  4528. uint32_t CompareUnit,
  4529. const HRTIM_CompareCfgTypeDef *pCompareCfg);
  4530. HAL_StatusTypeDef HAL_HRTIM_WaveformCaptureConfig(HRTIM_HandleTypeDef *hhrtim,
  4531. uint32_t TimerIdx,
  4532. uint32_t CaptureUnit,
  4533. const HRTIM_CaptureCfgTypeDef *pCaptureCfg);
  4534. HAL_StatusTypeDef HAL_HRTIM_WaveformOutputConfig(HRTIM_HandleTypeDef *hhrtim,
  4535. uint32_t TimerIdx,
  4536. uint32_t Output,
  4537. const HRTIM_OutputCfgTypeDef *pOutputCfg);
  4538. HAL_StatusTypeDef HAL_HRTIM_WaveformSetOutputLevel(HRTIM_HandleTypeDef *hhrtim,
  4539. uint32_t TimerIdx,
  4540. uint32_t Output,
  4541. uint32_t OutputLevel);
  4542. HAL_StatusTypeDef HAL_HRTIM_TimerEventFilteringConfig(HRTIM_HandleTypeDef *hhrtim,
  4543. uint32_t TimerIdx,
  4544. uint32_t Event,
  4545. const HRTIM_TimerEventFilteringCfgTypeDef *pTimerEventFilteringCfg);
  4546. HAL_StatusTypeDef HAL_HRTIM_ExtEventCounterConfig(HRTIM_HandleTypeDef *hhrtim,
  4547. uint32_t TimerIdx,
  4548. uint32_t EventCounter,
  4549. const HRTIM_ExternalEventCfgTypeDef *pTimerExternalEventCfg);
  4550. HAL_StatusTypeDef HAL_HRTIM_ExtEventCounterEnable(HRTIM_HandleTypeDef *hhrtim,
  4551. uint32_t TimerIdx,
  4552. uint32_t EventCounter);
  4553. HAL_StatusTypeDef HAL_HRTIM_ExtEventCounterDisable(HRTIM_HandleTypeDef *hhrtim,
  4554. uint32_t TimerIdx,
  4555. uint32_t EventCounter);
  4556. HAL_StatusTypeDef HAL_HRTIM_ExtEventCounterReset(HRTIM_HandleTypeDef *hhrtim,
  4557. uint32_t TimerIdx,
  4558. uint32_t EventCounter);
  4559. HAL_StatusTypeDef HAL_HRTIM_DeadTimeConfig(HRTIM_HandleTypeDef *hhrtim,
  4560. uint32_t TimerIdx,
  4561. const HRTIM_DeadTimeCfgTypeDef *pDeadTimeCfg);
  4562. HAL_StatusTypeDef HAL_HRTIM_ChopperModeConfig(HRTIM_HandleTypeDef *hhrtim,
  4563. uint32_t TimerIdx,
  4564. const HRTIM_ChopperModeCfgTypeDef *pChopperModeCfg);
  4565. HAL_StatusTypeDef HAL_HRTIM_BurstDMAConfig(HRTIM_HandleTypeDef *hhrtim,
  4566. uint32_t TimerIdx,
  4567. uint32_t RegistersToUpdate);
  4568. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart(HRTIM_HandleTypeDef *hhrtim,
  4569. uint32_t Timers);
  4570. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop(HRTIM_HandleTypeDef *hhrtim,
  4571. uint32_t Timers);
  4572. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart_IT(HRTIM_HandleTypeDef *hhrtim,
  4573. uint32_t Timers);
  4574. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop_IT(HRTIM_HandleTypeDef *hhrtim,
  4575. uint32_t Timers);
  4576. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStart_DMA(HRTIM_HandleTypeDef *hhrtim,
  4577. uint32_t Timers);
  4578. HAL_StatusTypeDef HAL_HRTIM_WaveformCountStop_DMA(HRTIM_HandleTypeDef *hhrtim,
  4579. uint32_t Timers);
  4580. HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStart(HRTIM_HandleTypeDef *hhrtim,
  4581. uint32_t OutputsToStart);
  4582. HAL_StatusTypeDef HAL_HRTIM_WaveformOutputStop(HRTIM_HandleTypeDef *hhrtim,
  4583. uint32_t OutputsToStop);
  4584. HAL_StatusTypeDef HAL_HRTIM_BurstModeCtl(HRTIM_HandleTypeDef *hhrtim,
  4585. uint32_t Enable);
  4586. HAL_StatusTypeDef HAL_HRTIM_BurstModeSoftwareTrigger(HRTIM_HandleTypeDef *hhrtim);
  4587. HAL_StatusTypeDef HAL_HRTIM_SoftwareCapture(HRTIM_HandleTypeDef *hhrtim,
  4588. uint32_t TimerIdx,
  4589. uint32_t CaptureUnit);
  4590. HAL_StatusTypeDef HAL_HRTIM_SoftwareUpdate(HRTIM_HandleTypeDef *hhrtim,
  4591. uint32_t Timers);
  4592. HAL_StatusTypeDef HAL_HRTIM_SoftwareReset(HRTIM_HandleTypeDef *hhrtim,
  4593. uint32_t Timers);
  4594. HAL_StatusTypeDef HAL_HRTIM_BurstDMATransfer(HRTIM_HandleTypeDef *hhrtim,
  4595. uint32_t TimerIdx,
  4596. uint32_t BurstBufferAddress,
  4597. uint32_t BurstBufferLength);
  4598. HAL_StatusTypeDef HAL_HRTIM_UpdateEnable(HRTIM_HandleTypeDef *hhrtim,
  4599. uint32_t Timers);
  4600. HAL_StatusTypeDef HAL_HRTIM_UpdateDisable(HRTIM_HandleTypeDef *hhrtim,
  4601. uint32_t Timers);
  4602. /**
  4603. * @}
  4604. */
  4605. /** @addtogroup HRTIM_Exported_Functions_Group9
  4606. * @{
  4607. */
  4608. /* HRTIM peripheral state functions */
  4609. HAL_HRTIM_StateTypeDef HAL_HRTIM_GetState(const HRTIM_HandleTypeDef *hhrtim);
  4610. uint32_t HAL_HRTIM_GetCapturedValue(const HRTIM_HandleTypeDef *hhrtim,
  4611. uint32_t TimerIdx,
  4612. uint32_t CaptureUnit);
  4613. uint32_t HAL_HRTIM_GetCapturedDir(const HRTIM_HandleTypeDef *hhrtim,
  4614. uint32_t TimerIdx,
  4615. uint32_t CaptureUnit);
  4616. HRTIM_CaptureValueTypeDef HAL_HRTIM_GetCaptured(const HRTIM_HandleTypeDef *hhrtim,
  4617. uint32_t TimerIdx,
  4618. uint32_t CaptureUnit);
  4619. uint32_t HAL_HRTIM_WaveformGetOutputLevel(const HRTIM_HandleTypeDef *hhrtim,
  4620. uint32_t TimerIdx,
  4621. uint32_t Output);
  4622. uint32_t HAL_HRTIM_WaveformGetOutputState(const HRTIM_HandleTypeDef *hhrtim,
  4623. uint32_t TimerIdx,
  4624. uint32_t Output);
  4625. uint32_t HAL_HRTIM_GetDelayedProtectionStatus(const HRTIM_HandleTypeDef *hhrtim,
  4626. uint32_t TimerIdx,
  4627. uint32_t Output);
  4628. uint32_t HAL_HRTIM_GetBurstStatus(const HRTIM_HandleTypeDef *hhrtim);
  4629. uint32_t HAL_HRTIM_GetCurrentPushPullStatus(const HRTIM_HandleTypeDef *hhrtim,
  4630. uint32_t TimerIdx);
  4631. uint32_t HAL_HRTIM_GetIdlePushPullStatus(const HRTIM_HandleTypeDef *hhrtim,
  4632. uint32_t TimerIdx);
  4633. /**
  4634. * @}
  4635. */
  4636. /** @addtogroup HRTIM_Exported_Functions_Group10
  4637. * @{
  4638. */
  4639. /* IRQ handler */
  4640. void HAL_HRTIM_IRQHandler(HRTIM_HandleTypeDef *hhrtim,
  4641. uint32_t TimerIdx);
  4642. /* HRTIM events related callback functions */
  4643. void HAL_HRTIM_Fault1Callback(HRTIM_HandleTypeDef *hhrtim);
  4644. void HAL_HRTIM_Fault2Callback(HRTIM_HandleTypeDef *hhrtim);
  4645. void HAL_HRTIM_Fault3Callback(HRTIM_HandleTypeDef *hhrtim);
  4646. void HAL_HRTIM_Fault4Callback(HRTIM_HandleTypeDef *hhrtim);
  4647. void HAL_HRTIM_Fault5Callback(HRTIM_HandleTypeDef *hhrtim);
  4648. void HAL_HRTIM_Fault6Callback(HRTIM_HandleTypeDef *hhrtim);
  4649. void HAL_HRTIM_SystemFaultCallback(HRTIM_HandleTypeDef *hhrtim);
  4650. void HAL_HRTIM_DLLCalibrationReadyCallback(HRTIM_HandleTypeDef *hhrtim);
  4651. void HAL_HRTIM_BurstModePeriodCallback(HRTIM_HandleTypeDef *hhrtim);
  4652. void HAL_HRTIM_SynchronizationEventCallback(HRTIM_HandleTypeDef *hhrtim);
  4653. /* Timer events related callback functions */
  4654. void HAL_HRTIM_RegistersUpdateCallback(HRTIM_HandleTypeDef *hhrtim,
  4655. uint32_t TimerIdx);
  4656. void HAL_HRTIM_RepetitionEventCallback(HRTIM_HandleTypeDef *hhrtim,
  4657. uint32_t TimerIdx);
  4658. void HAL_HRTIM_Compare1EventCallback(HRTIM_HandleTypeDef *hhrtim,
  4659. uint32_t TimerIdx);
  4660. void HAL_HRTIM_Compare2EventCallback(HRTIM_HandleTypeDef *hhrtim,
  4661. uint32_t TimerIdx);
  4662. void HAL_HRTIM_Compare3EventCallback(HRTIM_HandleTypeDef *hhrtim,
  4663. uint32_t TimerIdx);
  4664. void HAL_HRTIM_Compare4EventCallback(HRTIM_HandleTypeDef *hhrtim,
  4665. uint32_t TimerIdx);
  4666. void HAL_HRTIM_Capture1EventCallback(HRTIM_HandleTypeDef *hhrtim,
  4667. uint32_t TimerIdx);
  4668. void HAL_HRTIM_Capture2EventCallback(HRTIM_HandleTypeDef *hhrtim,
  4669. uint32_t TimerIdx);
  4670. void HAL_HRTIM_DelayedProtectionCallback(HRTIM_HandleTypeDef *hhrtim,
  4671. uint32_t TimerIdx);
  4672. void HAL_HRTIM_CounterResetCallback(HRTIM_HandleTypeDef *hhrtim,
  4673. uint32_t TimerIdx);
  4674. void HAL_HRTIM_Output1SetCallback(HRTIM_HandleTypeDef *hhrtim,
  4675. uint32_t TimerIdx);
  4676. void HAL_HRTIM_Output1ResetCallback(HRTIM_HandleTypeDef *hhrtim,
  4677. uint32_t TimerIdx);
  4678. void HAL_HRTIM_Output2SetCallback(HRTIM_HandleTypeDef *hhrtim,
  4679. uint32_t TimerIdx);
  4680. void HAL_HRTIM_Output2ResetCallback(HRTIM_HandleTypeDef *hhrtim,
  4681. uint32_t TimerIdx);
  4682. void HAL_HRTIM_BurstDMATransferCallback(HRTIM_HandleTypeDef *hhrtim,
  4683. uint32_t TimerIdx);
  4684. void HAL_HRTIM_ErrorCallback(HRTIM_HandleTypeDef *hhrtim);
  4685. #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
  4686. HAL_StatusTypeDef HAL_HRTIM_RegisterCallback(HRTIM_HandleTypeDef *hhrtim,
  4687. HAL_HRTIM_CallbackIDTypeDef CallbackID,
  4688. pHRTIM_CallbackTypeDef pCallback);
  4689. HAL_StatusTypeDef HAL_HRTIM_UnRegisterCallback(HRTIM_HandleTypeDef *hhrtim,
  4690. HAL_HRTIM_CallbackIDTypeDef CallbackID);
  4691. HAL_StatusTypeDef HAL_HRTIM_TIMxRegisterCallback(HRTIM_HandleTypeDef *hhrtim,
  4692. HAL_HRTIM_CallbackIDTypeDef CallbackID,
  4693. pHRTIM_TIMxCallbackTypeDef pCallback);
  4694. HAL_StatusTypeDef HAL_HRTIM_TIMxUnRegisterCallback(HRTIM_HandleTypeDef *hhrtim,
  4695. HAL_HRTIM_CallbackIDTypeDef CallbackID);
  4696. #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
  4697. /**
  4698. * @}
  4699. */
  4700. /**
  4701. * @}
  4702. */
  4703. /**
  4704. * @}
  4705. */
  4706. /**
  4707. * @}
  4708. */
  4709. #endif /* HRTIM1 */
  4710. #ifdef __cplusplus
  4711. }
  4712. #endif
  4713. #endif /* STM32G4xx_HAL_HRTIM_H */