MCUXpresso_LPC55S69/docs/MCUXpresso SDK API Referenc.../a00040.html

1043 lines
58 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: MRT: Multi-Rate Timer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">MCUXpresso SDK API Reference Manual
&#160;<span id="projectnumber">Rev 2.15.000</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a00040.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#files">Files</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">MRT: Multi-Rate Timer</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The MCUXpresso SDK provides a driver for the Multi-Rate Timer (MRT) of MCUXpresso SDK devices.</p>
<h1><a class="anchor" id="MRTFunc"></a>
Function groups</h1>
<p>The MRT driver supports operating the module as a time counter.</p>
<h2><a class="anchor" id="MRTInit"></a>
Initialization and deinitialization</h2>
<p>The function <a class="el" href="a00040.html#ga44091408531a61dfac7c4ee4982be317" title="Ungates the MRT clock and configures the peripheral for basic operation. ">MRT_Init()</a> initializes the MRT with specified configurations. The function <a class="el" href="a00040.html#gad30aa85105a47b708fd5880a929e5e84" title="Fill in the MRT config struct with the default settings. ">MRT_GetDefaultConfig()</a> gets the default configurations. The initialization function configures the MRT operating mode.</p>
<p>The function <a class="el" href="a00040.html#ga5d988ee09b604ab28f1b37320ee8d2d9" title="Gate the MRT clock. ">MRT_Deinit()</a> stops the MRT timers and disables the module clock.</p>
<h2><a class="anchor" id="MRTTimerPeriodOperation"></a>
Timer period Operations</h2>
<p>The function <a class="el" href="a00040.html#ga57f3d18e0ec88a5eb04b3282e0f3dc95" title="Used to update the timer period in units of count. ">MRT_UpdateTimerPeriod()</a> is used to update the timer period in units of count. The new value is immediately loaded or will be loaded at the end of the current time interval.</p>
<p>The function <a class="el" href="a00040.html#ga7c0bbb20b4abd7450f860277ef9d8a20" title="Reads the current timer counting value. ">MRT_GetCurrentTimerCount()</a> reads the current timer counting value. This function returns the real-time timer counting value, in a range from 0 to a timer period.</p>
<p>The timer period operation functions takes the count value in ticks. The user can call the utility macros provided in fsl_common.h to convert to microseconds or milliseconds</p>
<h2><a class="anchor" id="MRTStartStopOperation"></a>
Start and Stop timer operations</h2>
<p>The function <a class="el" href="a00040.html#ga388dd5041e6c179d637e17cd6e5a607e" title="Starts the timer counting. ">MRT_StartTimer()</a> starts the timer counting. After calling this function, the timer loads the period value, counts down to 0 and depending on the timer mode it either loads the respective start value again or stop. When the timer reaches 0, it generates a trigger pulse and sets the timeout interrupt flag.</p>
<p>The function <a class="el" href="a00040.html#ga7620866a54acdcc17abab2b46a94dc6c" title="Stops the timer counting. ">MRT_StopTimer()</a> stops the timer counting.</p>
<h2><a class="anchor" id="MRTChannel"></a>
Get and release channel</h2>
<p>These functions can be used to reserve and release a channel. The function <a class="el" href="a00040.html#ga320ba098c93a30174254eb763dd37dde" title="Find the available channel. ">MRT_GetIdleChannel()</a> finds the available channel. This function returns the lowest available channel number. The function <a class="el" href="a00040.html#ga8e55bb859e4f9b98ea8ec580ed7b106a" title="Release the channel when the timer is using the multi-task mode. ">MRT_ReleaseChannel()</a> release the channel when the timer is using the multi-task mode. In multi-task mode, the INUSE flags allow more control over when MRT channels are released for further use.</p>
<h2><a class="anchor" id="MRTStatus"></a>
Status</h2>
<p>Provides functions to get and clear the PIT status.</p>
<h2><a class="anchor" id="MRTInterrupt"></a>
Interrupt</h2>
<p>Provides functions to enable/disable PIT interrupts and get current enabled interrupts.</p>
<h1><a class="anchor" id="MRTUseCase"></a>
Typical use case</h1>
<h2><a class="anchor" id="MRTTick"></a>
MRT tick example</h2>
<p>Updates the MRT period and toggles an LED periodically. Refer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/driver_examples/mrt </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:a00203"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00203.html">fsl_mrt.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:a00373"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#a00373">_mrt_config</a></td></tr>
<tr class="memdesc:a00373"><td class="mdescLeft">&#160;</td><td class="mdescRight">MRT configuration structure. <a href="a00040.html#a00373">More...</a><br/></td></tr>
<tr class="separator:a00373"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaf78437e7a713ae57fd5c12135af514ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf78437e7a713ae57fd5c12135af514ba"></a>
typedef enum <a class="el" href="a00040.html#ga05660f6ec5e7c0ac6204165d7ab9bf35">_mrt_chnl</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a></td></tr>
<tr class="memdesc:gaf78437e7a713ae57fd5c12135af514ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of MRT channels. <br/></td></tr>
<tr class="separator:gaf78437e7a713ae57fd5c12135af514ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff791fb43331fc1ae8f4e0d9003ac286"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaff791fb43331fc1ae8f4e0d9003ac286"></a>
typedef enum <a class="el" href="a00040.html#gae772c3f1dc986d55a787b987f731b389">_mrt_timer_mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#gaff791fb43331fc1ae8f4e0d9003ac286">mrt_timer_mode_t</a></td></tr>
<tr class="memdesc:gaff791fb43331fc1ae8f4e0d9003ac286"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of MRT timer modes. <br/></td></tr>
<tr class="separator:gaff791fb43331fc1ae8f4e0d9003ac286"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga35fd7f67352e6660946fe980fcd4fc5d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga35fd7f67352e6660946fe980fcd4fc5d"></a>
typedef enum <a class="el" href="a00040.html#ga854d01b9575db5b6f0f7aaad49cf0c7d">_mrt_interrupt_enable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga35fd7f67352e6660946fe980fcd4fc5d">mrt_interrupt_enable_t</a></td></tr>
<tr class="memdesc:ga35fd7f67352e6660946fe980fcd4fc5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of MRT interrupts. <br/></td></tr>
<tr class="separator:ga35fd7f67352e6660946fe980fcd4fc5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42f664094e65ac53728a8bb0dea0d641"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga42f664094e65ac53728a8bb0dea0d641"></a>
typedef enum <a class="el" href="a00040.html#ga13878b183833475306c8aabb81391a8a">_mrt_status_flags</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga42f664094e65ac53728a8bb0dea0d641">mrt_status_flags_t</a></td></tr>
<tr class="memdesc:ga42f664094e65ac53728a8bb0dea0d641"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of MRT status flags. <br/></td></tr>
<tr class="separator:ga42f664094e65ac53728a8bb0dea0d641"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb656916391d01109e84f6e5d97fd5c3"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00040.html#a00373">_mrt_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#gadb656916391d01109e84f6e5d97fd5c3">mrt_config_t</a></td></tr>
<tr class="memdesc:gadb656916391d01109e84f6e5d97fd5c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">MRT configuration structure. <a href="#gadb656916391d01109e84f6e5d97fd5c3">More...</a><br/></td></tr>
<tr class="separator:gadb656916391d01109e84f6e5d97fd5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga05660f6ec5e7c0ac6204165d7ab9bf35"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga05660f6ec5e7c0ac6204165d7ab9bf35">_mrt_chnl</a> { <br/>
&#160;&#160;<a class="el" href="a00040.html#gga05660f6ec5e7c0ac6204165d7ab9bf35a27e83d437e2798b19c59c2af4d99e1dc">kMRT_Channel_0</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00040.html#gga05660f6ec5e7c0ac6204165d7ab9bf35a44b7807f36fe0a21240e721d46d8f9d7">kMRT_Channel_1</a>,
<br/>
&#160;&#160;<a class="el" href="a00040.html#gga05660f6ec5e7c0ac6204165d7ab9bf35a17597fb66d9b1d3e97b318db79267f52">kMRT_Channel_2</a>,
<br/>
&#160;&#160;<a class="el" href="a00040.html#gga05660f6ec5e7c0ac6204165d7ab9bf35af57e6e009258a71bc3a2890aedff34b3">kMRT_Channel_3</a>
<br/>
}</td></tr>
<tr class="memdesc:ga05660f6ec5e7c0ac6204165d7ab9bf35"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of MRT channels. <a href="a00040.html#ga05660f6ec5e7c0ac6204165d7ab9bf35">More...</a><br/></td></tr>
<tr class="separator:ga05660f6ec5e7c0ac6204165d7ab9bf35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae772c3f1dc986d55a787b987f731b389"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#gae772c3f1dc986d55a787b987f731b389">_mrt_timer_mode</a> { <br/>
&#160;&#160;<a class="el" href="a00040.html#ggae772c3f1dc986d55a787b987f731b389a6b415c060dc09ed293ec3dda829cb257">kMRT_RepeatMode</a> = (0 &lt;&lt; MRT_CHANNEL_CTRL_MODE_SHIFT),
<br/>
&#160;&#160;<a class="el" href="a00040.html#ggae772c3f1dc986d55a787b987f731b389abe4ba0a30bc09f1921a0504eb826b3dc">kMRT_OneShotMode</a> = (1 &lt;&lt; MRT_CHANNEL_CTRL_MODE_SHIFT),
<br/>
&#160;&#160;<a class="el" href="a00040.html#ggae772c3f1dc986d55a787b987f731b389add9f55173bb54f623c955c29c22dd5b2">kMRT_OneShotStallMode</a> = (2 &lt;&lt; MRT_CHANNEL_CTRL_MODE_SHIFT)
<br/>
}</td></tr>
<tr class="memdesc:gae772c3f1dc986d55a787b987f731b389"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of MRT timer modes. <a href="a00040.html#gae772c3f1dc986d55a787b987f731b389">More...</a><br/></td></tr>
<tr class="separator:gae772c3f1dc986d55a787b987f731b389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga854d01b9575db5b6f0f7aaad49cf0c7d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga854d01b9575db5b6f0f7aaad49cf0c7d">_mrt_interrupt_enable</a> { <a class="el" href="a00040.html#gga854d01b9575db5b6f0f7aaad49cf0c7da2a5e8ee568da2c888093b732f2157ea5">kMRT_TimerInterruptEnable</a> = MRT_CHANNEL_CTRL_INTEN_MASK
}</td></tr>
<tr class="memdesc:ga854d01b9575db5b6f0f7aaad49cf0c7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of MRT interrupts. <a href="a00040.html#ga854d01b9575db5b6f0f7aaad49cf0c7d">More...</a><br/></td></tr>
<tr class="separator:ga854d01b9575db5b6f0f7aaad49cf0c7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13878b183833475306c8aabb81391a8a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga13878b183833475306c8aabb81391a8a">_mrt_status_flags</a> { <br/>
&#160;&#160;<a class="el" href="a00040.html#gga13878b183833475306c8aabb81391a8aa6942598faf3aef148a850f8850cf01c3">kMRT_TimerInterruptFlag</a> = MRT_CHANNEL_STAT_INTFLAG_MASK,
<br/>
&#160;&#160;<a class="el" href="a00040.html#gga13878b183833475306c8aabb81391a8aa745c62687191197b48b35dbd1aac40db">kMRT_TimerRunFlag</a> = MRT_CHANNEL_STAT_RUN_MASK
<br/>
}</td></tr>
<tr class="memdesc:ga13878b183833475306c8aabb81391a8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of MRT status flags. <a href="a00040.html#ga13878b183833475306c8aabb81391a8a">More...</a><br/></td></tr>
<tr class="separator:ga13878b183833475306c8aabb81391a8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Driver version</h2></td></tr>
<tr class="memitem:gae39f6122bd73a5156d40291962f7507f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae39f6122bd73a5156d40291962f7507f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#gae39f6122bd73a5156d40291962f7507f">FSL_MRT_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="a00242.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 3))</td></tr>
<tr class="memdesc:gae39f6122bd73a5156d40291962f7507f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version 2.0.3. <br/></td></tr>
<tr class="separator:gae39f6122bd73a5156d40291962f7507f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Initialization and deinitialization</h2></td></tr>
<tr class="memitem:ga44091408531a61dfac7c4ee4982be317"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga44091408531a61dfac7c4ee4982be317">MRT_Init</a> (MRT_Type *base, const <a class="el" href="a00040.html#gadb656916391d01109e84f6e5d97fd5c3">mrt_config_t</a> *config)</td></tr>
<tr class="memdesc:ga44091408531a61dfac7c4ee4982be317"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ungates the MRT clock and configures the peripheral for basic operation. <a href="#ga44091408531a61dfac7c4ee4982be317">More...</a><br/></td></tr>
<tr class="separator:ga44091408531a61dfac7c4ee4982be317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d988ee09b604ab28f1b37320ee8d2d9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga5d988ee09b604ab28f1b37320ee8d2d9">MRT_Deinit</a> (MRT_Type *base)</td></tr>
<tr class="memdesc:ga5d988ee09b604ab28f1b37320ee8d2d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gate the MRT clock. <a href="#ga5d988ee09b604ab28f1b37320ee8d2d9">More...</a><br/></td></tr>
<tr class="separator:ga5d988ee09b604ab28f1b37320ee8d2d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad30aa85105a47b708fd5880a929e5e84"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#gad30aa85105a47b708fd5880a929e5e84">MRT_GetDefaultConfig</a> (<a class="el" href="a00040.html#gadb656916391d01109e84f6e5d97fd5c3">mrt_config_t</a> *config)</td></tr>
<tr class="memdesc:gad30aa85105a47b708fd5880a929e5e84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill in the MRT config struct with the default settings. <a href="#gad30aa85105a47b708fd5880a929e5e84">More...</a><br/></td></tr>
<tr class="separator:gad30aa85105a47b708fd5880a929e5e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f4d38afa34e99ba521d9ca08be06355"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga8f4d38afa34e99ba521d9ca08be06355">MRT_SetupChannelMode</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel, const <a class="el" href="a00040.html#gaff791fb43331fc1ae8f4e0d9003ac286">mrt_timer_mode_t</a> mode)</td></tr>
<tr class="memdesc:ga8f4d38afa34e99ba521d9ca08be06355"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets up an MRT channel mode. <a href="#ga8f4d38afa34e99ba521d9ca08be06355">More...</a><br/></td></tr>
<tr class="separator:ga8f4d38afa34e99ba521d9ca08be06355"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Interrupt Interface</h2></td></tr>
<tr class="memitem:gae875817838659e596dc1cb1527c948c3"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#gae875817838659e596dc1cb1527c948c3">MRT_EnableInterrupts</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel, uint32_t mask)</td></tr>
<tr class="memdesc:gae875817838659e596dc1cb1527c948c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the MRT interrupt. <a href="#gae875817838659e596dc1cb1527c948c3">More...</a><br/></td></tr>
<tr class="separator:gae875817838659e596dc1cb1527c948c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a8066680089523fa602dbe58b0c0505"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga7a8066680089523fa602dbe58b0c0505">MRT_DisableInterrupts</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel, uint32_t mask)</td></tr>
<tr class="memdesc:ga7a8066680089523fa602dbe58b0c0505"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the selected MRT interrupt. <a href="#ga7a8066680089523fa602dbe58b0c0505">More...</a><br/></td></tr>
<tr class="separator:ga7a8066680089523fa602dbe58b0c0505"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e666900eef9bdbd9d9e587d2b7ca2c2"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga2e666900eef9bdbd9d9e587d2b7ca2c2">MRT_GetEnabledInterrupts</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel)</td></tr>
<tr class="memdesc:ga2e666900eef9bdbd9d9e587d2b7ca2c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the enabled MRT interrupts. <a href="#ga2e666900eef9bdbd9d9e587d2b7ca2c2">More...</a><br/></td></tr>
<tr class="separator:ga2e666900eef9bdbd9d9e587d2b7ca2c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Status Interface</h2></td></tr>
<tr class="memitem:gafa8493a0faee1cc356da26ca99a54da8"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#gafa8493a0faee1cc356da26ca99a54da8">MRT_GetStatusFlags</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel)</td></tr>
<tr class="memdesc:gafa8493a0faee1cc356da26ca99a54da8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the MRT status flags. <a href="#gafa8493a0faee1cc356da26ca99a54da8">More...</a><br/></td></tr>
<tr class="separator:gafa8493a0faee1cc356da26ca99a54da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga959db20281cfce080c684bd94f667799"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga959db20281cfce080c684bd94f667799">MRT_ClearStatusFlags</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel, uint32_t mask)</td></tr>
<tr class="memdesc:ga959db20281cfce080c684bd94f667799"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the MRT status flags. <a href="#ga959db20281cfce080c684bd94f667799">More...</a><br/></td></tr>
<tr class="separator:ga959db20281cfce080c684bd94f667799"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Read and Write the timer period</h2></td></tr>
<tr class="memitem:ga57f3d18e0ec88a5eb04b3282e0f3dc95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga57f3d18e0ec88a5eb04b3282e0f3dc95">MRT_UpdateTimerPeriod</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel, uint32_t count, bool immediateLoad)</td></tr>
<tr class="memdesc:ga57f3d18e0ec88a5eb04b3282e0f3dc95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to update the timer period in units of count. <a href="#ga57f3d18e0ec88a5eb04b3282e0f3dc95">More...</a><br/></td></tr>
<tr class="separator:ga57f3d18e0ec88a5eb04b3282e0f3dc95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c0bbb20b4abd7450f860277ef9d8a20"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga7c0bbb20b4abd7450f860277ef9d8a20">MRT_GetCurrentTimerCount</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel)</td></tr>
<tr class="memdesc:ga7c0bbb20b4abd7450f860277ef9d8a20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current timer counting value. <a href="#ga7c0bbb20b4abd7450f860277ef9d8a20">More...</a><br/></td></tr>
<tr class="separator:ga7c0bbb20b4abd7450f860277ef9d8a20"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Timer Start and Stop</h2></td></tr>
<tr class="memitem:ga388dd5041e6c179d637e17cd6e5a607e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga388dd5041e6c179d637e17cd6e5a607e">MRT_StartTimer</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel, uint32_t count)</td></tr>
<tr class="memdesc:ga388dd5041e6c179d637e17cd6e5a607e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts the timer counting. <a href="#ga388dd5041e6c179d637e17cd6e5a607e">More...</a><br/></td></tr>
<tr class="separator:ga388dd5041e6c179d637e17cd6e5a607e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7620866a54acdcc17abab2b46a94dc6c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga7620866a54acdcc17abab2b46a94dc6c">MRT_StopTimer</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel)</td></tr>
<tr class="memdesc:ga7620866a54acdcc17abab2b46a94dc6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the timer counting. <a href="#ga7620866a54acdcc17abab2b46a94dc6c">More...</a><br/></td></tr>
<tr class="separator:ga7620866a54acdcc17abab2b46a94dc6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Get &amp; release channel</h2></td></tr>
<tr class="memitem:ga320ba098c93a30174254eb763dd37dde"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga320ba098c93a30174254eb763dd37dde">MRT_GetIdleChannel</a> (MRT_Type *base)</td></tr>
<tr class="memdesc:ga320ba098c93a30174254eb763dd37dde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the available channel. <a href="#ga320ba098c93a30174254eb763dd37dde">More...</a><br/></td></tr>
<tr class="separator:ga320ba098c93a30174254eb763dd37dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e55bb859e4f9b98ea8ec580ed7b106a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#ga8e55bb859e4f9b98ea8ec580ed7b106a">MRT_ReleaseChannel</a> (MRT_Type *base, <a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a> channel)</td></tr>
<tr class="memdesc:ga8e55bb859e4f9b98ea8ec580ed7b106a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release the channel when the timer is using the multi-task mode. <a href="#ga8e55bb859e4f9b98ea8ec580ed7b106a">More...</a><br/></td></tr>
<tr class="separator:ga8e55bb859e4f9b98ea8ec580ed7b106a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00373" id="a00373"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _mrt_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>This structure holds the configuration settings for the MRT peripheral. To initialize this structure to reasonable defaults, call the <a class="el" href="a00040.html#gad30aa85105a47b708fd5880a929e5e84" title="Fill in the MRT config struct with the default settings. ">MRT_GetDefaultConfig()</a> function and pass a pointer to your config structure instance.</p>
<p>The config struct can be made const so it resides in flash </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:adf44f75ebc1e4c27ed0cf88c03c122d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf44f75ebc1e4c27ed0cf88c03c122d9"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00040.html#adf44f75ebc1e4c27ed0cf88c03c122d9">enableMultiTask</a></td></tr>
<tr class="memdesc:adf44f75ebc1e4c27ed0cf88c03c122d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">true: Timers run in multi-task mode; false: Timers run in hardware status mode <br/></td></tr>
<tr class="separator:adf44f75ebc1e4c27ed0cf88c03c122d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gadb656916391d01109e84f6e5d97fd5c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00040.html#a00373">_mrt_config</a> <a class="el" href="a00040.html#gadb656916391d01109e84f6e5d97fd5c3">mrt_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This structure holds the configuration settings for the MRT peripheral. To initialize this structure to reasonable defaults, call the <a class="el" href="a00040.html#gad30aa85105a47b708fd5880a929e5e84" title="Fill in the MRT config struct with the default settings. ">MRT_GetDefaultConfig()</a> function and pass a pointer to your config structure instance.</p>
<p>The config struct can be made const so it resides in flash </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga05660f6ec5e7c0ac6204165d7ab9bf35"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00040.html#ga05660f6ec5e7c0ac6204165d7ab9bf35">_mrt_chnl</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga05660f6ec5e7c0ac6204165d7ab9bf35a27e83d437e2798b19c59c2af4d99e1dc"></a>kMRT_Channel_0</em>&nbsp;</td><td class="fielddoc">
<p>MRT channel number 0. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga05660f6ec5e7c0ac6204165d7ab9bf35a44b7807f36fe0a21240e721d46d8f9d7"></a>kMRT_Channel_1</em>&nbsp;</td><td class="fielddoc">
<p>MRT channel number 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga05660f6ec5e7c0ac6204165d7ab9bf35a17597fb66d9b1d3e97b318db79267f52"></a>kMRT_Channel_2</em>&nbsp;</td><td class="fielddoc">
<p>MRT channel number 2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga05660f6ec5e7c0ac6204165d7ab9bf35af57e6e009258a71bc3a2890aedff34b3"></a>kMRT_Channel_3</em>&nbsp;</td><td class="fielddoc">
<p>MRT channel number 3. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gae772c3f1dc986d55a787b987f731b389"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00040.html#gae772c3f1dc986d55a787b987f731b389">_mrt_timer_mode</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggae772c3f1dc986d55a787b987f731b389a6b415c060dc09ed293ec3dda829cb257"></a>kMRT_RepeatMode</em>&nbsp;</td><td class="fielddoc">
<p>Repeat Interrupt mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae772c3f1dc986d55a787b987f731b389abe4ba0a30bc09f1921a0504eb826b3dc"></a>kMRT_OneShotMode</em>&nbsp;</td><td class="fielddoc">
<p>One-shot Interrupt mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggae772c3f1dc986d55a787b987f731b389add9f55173bb54f623c955c29c22dd5b2"></a>kMRT_OneShotStallMode</em>&nbsp;</td><td class="fielddoc">
<p>One-shot stall mode. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga854d01b9575db5b6f0f7aaad49cf0c7d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00040.html#ga854d01b9575db5b6f0f7aaad49cf0c7d">_mrt_interrupt_enable</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga854d01b9575db5b6f0f7aaad49cf0c7da2a5e8ee568da2c888093b732f2157ea5"></a>kMRT_TimerInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Timer interrupt enable. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga13878b183833475306c8aabb81391a8a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00040.html#ga13878b183833475306c8aabb81391a8a">_mrt_status_flags</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga13878b183833475306c8aabb81391a8aa6942598faf3aef148a850f8850cf01c3"></a>kMRT_TimerInterruptFlag</em>&nbsp;</td><td class="fielddoc">
<p>Timer interrupt flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga13878b183833475306c8aabb81391a8aa745c62687191197b48b35dbd1aac40db"></a>kMRT_TimerRunFlag</em>&nbsp;</td><td class="fielddoc">
<p>Indicates state of the timer. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga44091408531a61dfac7c4ee4982be317"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MRT_Init </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00040.html#gadb656916391d01109e84f6e5d97fd5c3">mrt_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>This API should be called at the beginning of the application using the MRT driver.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">config</td><td>Pointer to user's MRT config structure. If MRT has MULTITASK bit field in MODCFG reigster, param config is useless. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5d988ee09b604ab28f1b37320ee8d2d9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MRT_Deinit </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad30aa85105a47b708fd5880a929e5e84"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void MRT_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00040.html#gadb656916391d01109e84f6e5d97fd5c3">mrt_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The default values are: </p>
<div class="fragment"><div class="line">* config-&gt;enableMultiTask = <span class="keyword">false</span>;</div>
<div class="line">* </div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to user's MRT config structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8f4d38afa34e99ba521d9ca08be06355"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void MRT_SetupChannelMode </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00040.html#gaff791fb43331fc1ae8f4e0d9003ac286">mrt_timer_mode_t</a>&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Channel that is being configured. </td></tr>
<tr><td class="paramname">mode</td><td>Timer mode to use for the channel. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae875817838659e596dc1cb1527c948c3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void MRT_EnableInterrupts </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number </td></tr>
<tr><td class="paramname">mask</td><td>The interrupts to enable. This is a logical OR of members of the enumeration <a class="el" href="a00040.html#ga35fd7f67352e6660946fe980fcd4fc5d" title="List of MRT interrupts. ">mrt_interrupt_enable_t</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7a8066680089523fa602dbe58b0c0505"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void MRT_DisableInterrupts </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number </td></tr>
<tr><td class="paramname">mask</td><td>The interrupts to disable. This is a logical OR of members of the enumeration <a class="el" href="a00040.html#ga35fd7f67352e6660946fe980fcd4fc5d" title="List of MRT interrupts. ">mrt_interrupt_enable_t</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2e666900eef9bdbd9d9e587d2b7ca2c2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t MRT_GetEnabledInterrupts </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The enabled interrupts. This is the logical OR of members of the enumeration <a class="el" href="a00040.html#ga35fd7f67352e6660946fe980fcd4fc5d" title="List of MRT interrupts. ">mrt_interrupt_enable_t</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gafa8493a0faee1cc356da26ca99a54da8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t MRT_GetStatusFlags </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status flags. This is the logical OR of members of the enumeration <a class="el" href="a00040.html#ga42f664094e65ac53728a8bb0dea0d641" title="List of MRT status flags. ">mrt_status_flags_t</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga959db20281cfce080c684bd94f667799"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void MRT_ClearStatusFlags </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number </td></tr>
<tr><td class="paramname">mask</td><td>The status flags to clear. This is a logical OR of members of the enumeration <a class="el" href="a00040.html#ga42f664094e65ac53728a8bb0dea0d641" title="List of MRT status flags. ">mrt_status_flags_t</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga57f3d18e0ec88a5eb04b3282e0f3dc95"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void MRT_UpdateTimerPeriod </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>immediateLoad</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The new value will be immediately loaded or will be loaded at the end of the current time interval. For one-shot interrupt mode the new value will be immediately loaded.</p>
<dl class="section note"><dt>Note</dt><dd>User can call the utility macros provided in fsl_common.h to convert to ticks</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number </td></tr>
<tr><td class="paramname">count</td><td>Timer period in units of ticks </td></tr>
<tr><td class="paramname">immediateLoad</td><td>true: Load the new value immediately into the TIMER register; false: Load the new value at the end of current timer interval </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7c0bbb20b4abd7450f860277ef9d8a20"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t MRT_GetCurrentTimerCount </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the real-time timer counting value, in a range from 0 to a timer period.</p>
<dl class="section note"><dt>Note</dt><dd>User can call the utility macros provided in fsl_common.h to convert ticks to usec or msec</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Current timer counting value in ticks </dd></dl>
</div>
</div>
<a class="anchor" id="ga388dd5041e6c179d637e17cd6e5a607e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void MRT_StartTimer </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>After calling this function, timers load period value, counts down to 0 and depending on the timer mode it will either load the respective start value again or stop.</p>
<dl class="section note"><dt>Note</dt><dd>User can call the utility macros provided in fsl_common.h to convert to ticks</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number. </td></tr>
<tr><td class="paramname">count</td><td>Timer period in units of ticks. Count can contain the LOAD bit, which control the force load feature. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7620866a54acdcc17abab2b46a94dc6c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void MRT_StopTimer </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function stops the timer from counting.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga320ba098c93a30174254eb763dd37dde"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t MRT_GetIdleChannel </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This function returns the lowest available channel number.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8e55bb859e4f9b98ea8ec580ed7b106a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void MRT_ReleaseChannel </td>
<td>(</td>
<td class="paramtype">MRT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00040.html#gaf78437e7a713ae57fd5c12135af514ba">mrt_chnl_t</a>&#160;</td>
<td class="paramname"><em>channel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>In multi-task mode, the INUSE flags allow more control over when MRT channels are released for further use. The user can hold on to a channel acquired by calling <a class="el" href="a00040.html#ga320ba098c93a30174254eb763dd37dde" title="Find the available channel. ">MRT_GetIdleChannel()</a> for as long as it is needed and release it by calling this function. This removes the need to ask for an available channel for every use.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Multi-Rate timer peripheral base address </td></tr>
<tr><td class="paramname">channel</td><td>Timer channel number. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>