Files
2016-08-09 18:02:18 +02:00

1372 lines
89 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>Kinetis SDK v.2.0 API Reference Manual: TPM: Timer PWM Module</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">Kinetis SDK v.2.0 API Reference Manual
&#160;<span id="projectnumber">Rev. 0</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('group__tpm.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="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">TPM: Timer PWM Module</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The KSDK provides a driver for the Timer PWM Module (TPM) of Kinetis devices.</p>
<p>The KSDK TPM driver supports the generation of PWM signals, input capture, and output compare modes. On some SoC's, the driver supports the generation of combined PWM signals, dual-edge capture, and quadrature decode modes. The driver also supports configuring each of the TPM fault inputs. The fault input is available only on some SoC's.</p>
<p>The function <a class="el" href="group__tpm.html#gae56e6feacdb75884b00b81256ae4a795" title="Ungates the TPM clock and configures the peripheral for basic operation. ">TPM_Init()</a> initializes the TPM with specified configurations. The function <a class="el" href="group__tpm.html#ga53fcb634d4c70d9bcb14c972944d949f" title="Fill in the TPM config struct with the default settings. ">TPM_GetDefaultConfig()</a> gets the default configurations. On some SoC's, the initialization function issues a software reset to reset the TPM internal logic. The initialization function configures the TPM's behavior when it receives a trigger input and its operation in doze and debug modes.</p>
<p>The function <a class="el" href="group__tpm.html#ga8b642860d51c3c6ef94df8c313c31e91" title="Stops the counter and gates the TPM clock. ">TPM_Deinit()</a> disables the TPM counter and turns off the module clock.</p>
<p>The function <a class="el" href="group__tpm.html#gad52f4e6f23ba1d127f5d5f3f30b49dbd" title="Configures the PWM signal parameters. ">TPM_SetupPwm()</a> sets up TPM channels for the PWM output. The function can set up the PWM signal properties for multiple channels. Each channel has its own <a class="el" href="group__tpm.html#structtpm__chnl__pwm__signal__param__t" title="Options to configure a TPM channel&#39;s PWM signal. ">tpm_chnl_pwm_signal_param_t</a> structure that is used to specify the output signals duty cycle and level-mode. However, the same PWM period and PWM mode is applied to all channels requesting a PWM output. The signal duty cycle is provided as a percentage of the PWM period. Its value should be between 0 and 100 where 0=inactive signal (0% duty cycle) and 100=always active signal (100% duty cycle). When generating a combined PWM signal, the channel number passed refers to a channel pair number, for example 0 refers to channel 0 and 1, 1 refers to channels 2 and 3.</p>
<p>The function <a class="el" href="group__tpm.html#ga7f205d02e27dd8d0b5780203d30e52a4" title="Update the duty cycle of an active PWM signal. ">TPM_UpdatePwmDutycycle()</a> updates the PWM signal duty cycle of a particular TPM channel.</p>
<p>The function <a class="el" href="group__tpm.html#ga6406c3ca4df37694a44078f12b103954" title="Update the edge level selection for a channel. ">TPM_UpdateChnlEdgeLevelSelect()</a> updates the level select bits of a particular TPM channel. This can be used to disable the PWM output when making changes to the PWM signal.</p>
<p>The function <a class="el" href="group__tpm.html#ga400726db4285f60d8c2788ab62d01f13" title="Enables capturing an input signal on the channel using the function parameters. ">TPM_SetupInputCapture()</a> sets up a TPM channel for input capture. The user can specify the capture edge.</p>
<p>The function TPM_SetupDualEdgeCapture() can be used to measure the pulse width of a signal. This is available only for certain SoC's. A channel pair is used during the capture with the input signal coming through a channel that can be configured. The user can specify the capture edge for each channel and any filter value to be used when processing the input signal.</p>
<p>The function <a class="el" href="group__tpm.html#ga382c4ecd344bc208cd6aa60287442a50" title="Configures the TPM to generate timed pulses. ">TPM_SetupOutputCompare()</a> sets up a TPM channel for output comparison. The user can specify the channel output on a successful comparison and a comparison value.</p>
<p>The function TPM_SetupQuadDecode() sets up TPM channels 0 and 1 for quad decode, which is available only for certain SoC's. The user can specify the quad decode mode, polarity, and filter properties for each input signal.</p>
<p>The function TPM_SetupFault() sets up the properties for each fault, which is available only for certain SoC's. The user can specify the fault polarity and whether to use a filter on a fault input. The overall fault filter value and fault control mode are set up during initialization.</p>
<p>Provides functions to get and clear the TPM status.</p>
<p>Provides functions to enable/disable TPM interrupts and get current enabled interrupts.</p>
<h1><a class="anchor" id="TPMCase"></a>
Typical use case</h1>
<h2><a class="anchor" id="TPMPWMOutput"></a>
PWM output</h2>
<p>Output the PWM signal on 2 TPM channels with different duty cycles. Periodically update the PWM signal duty cycle. </p>
<div class="fragment"><div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line"> <span class="keywordtype">bool</span> brightnessUp = <span class="keyword">true</span>; <span class="comment">/* Indicates whether the LED is brighter or dimmer. */</span></div>
<div class="line"> <a class="code" href="group__tpm.html#structtpm__config__t">tpm_config_t</a> tpmInfo;</div>
<div class="line"> uint8_t updatedDutycycle = 0U;</div>
<div class="line"> <a class="code" href="group__tpm.html#structtpm__chnl__pwm__signal__param__t">tpm_chnl_pwm_signal_param_t</a> tpmParam[2];</div>
<div class="line"></div>
<div class="line"> <span class="comment">/* Configures the TPM parameters with frequency 24 kHZ. */</span></div>
<div class="line"> tpmParam[0].<a class="code" href="group__tpm.html#afb510c720534830d721149ed73b1d201">chnlNumber</a> = (<a class="code" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a>)BOARD_FIRST_TPM_CHANNEL;</div>
<div class="line"> tpmParam[0].<a class="code" href="group__tpm.html#a5b49674b66d63f0c21ba27c41a4a2eaf">level</a> = <a class="code" href="group__tpm.html#ggadbc5358c74901e039e01c541a3a38675a5ab6f0dff57ca92272ff7d563ece0629">kTPM_LowTrue</a>;</div>
<div class="line"> tpmParam[0].<a class="code" href="group__tpm.html#a48d7ad0b514ba6c53f174e28629f1222">dutyCyclePercent</a> = 0U;</div>
<div class="line"></div>
<div class="line"> tpmParam[1].<a class="code" href="group__tpm.html#afb510c720534830d721149ed73b1d201">chnlNumber</a> = (<a class="code" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a>)BOARD_SECOND_TPM_CHANNEL;</div>
<div class="line"> tpmParam[1].<a class="code" href="group__tpm.html#a5b49674b66d63f0c21ba27c41a4a2eaf">level</a> = <a class="code" href="group__tpm.html#ggadbc5358c74901e039e01c541a3a38675a5ab6f0dff57ca92272ff7d563ece0629">kTPM_LowTrue</a>;</div>
<div class="line"> tpmParam[1].<a class="code" href="group__tpm.html#a48d7ad0b514ba6c53f174e28629f1222">dutyCyclePercent</a> = 0U;</div>
<div class="line"></div>
<div class="line"> <span class="comment">/* Board pin, clock, and debug console initialization. */</span></div>
<div class="line"> BOARD_InitHardware();</div>
<div class="line"></div>
<div class="line"> <a class="code" href="group__tpm.html#ga53fcb634d4c70d9bcb14c972944d949f">TPM_GetDefaultConfig</a>(&amp;tpmInfo);</div>
<div class="line"> <span class="comment">/* Initializes the TPM module. */</span></div>
<div class="line"> <a class="code" href="group__tpm.html#gae56e6feacdb75884b00b81256ae4a795">TPM_Init</a>(BOARD_TPM_BASEADDR, &amp;tpmInfo);</div>
<div class="line"></div>
<div class="line"> <a class="code" href="group__tpm.html#gad52f4e6f23ba1d127f5d5f3f30b49dbd">TPM_SetupPwm</a>(BOARD_TPM_BASEADDR, tpmParam, 2U, <a class="code" href="group__tpm.html#gga51a3684cf6ad51921da41ad494452511ac3655841b72d48d51513dbe7bfe2c6fe">kTPM_EdgeAlignedPwm</a>, 24000U, TPM_SOURCE_CLOCK);</div>
<div class="line"> <a class="code" href="group__tpm.html#ga0ec12ec457bf39ed2510d1054cbe1bbd">TPM_StartTimer</a>(BOARD_TPM_BASEADDR, <a class="code" href="group__tpm.html#gga768c5063c3ae5bcfc916c41d011d2a15a61149d2836f35678b6fc42970c53be9c">kTPM_SystemClock</a>);</div>
<div class="line"> <span class="keywordflow">while</span> (1)</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">/* Delays to see the change of LED brightness. */</span></div>
<div class="line"> delay();</div>
<div class="line"></div>
<div class="line"> <span class="keywordflow">if</span> (brightnessUp)</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">/* Increases a duty cycle until it reaches a limited value. */</span></div>
<div class="line"> <span class="keywordflow">if</span> (++updatedDutycycle == 100U)</div>
<div class="line"> {</div>
<div class="line"> brightnessUp = <span class="keyword">false</span>;</div>
<div class="line"> }</div>
<div class="line"> }</div>
<div class="line"> <span class="keywordflow">else</span></div>
<div class="line"> {</div>
<div class="line"> <span class="comment">/* Decreases a duty cycle until it reaches a limited value. */</span></div>
<div class="line"> <span class="keywordflow">if</span> (--updatedDutycycle == 0U)</div>
<div class="line"> {</div>
<div class="line"> brightnessUp = <span class="keyword">true</span>;</div>
<div class="line"> }</div>
<div class="line"> }</div>
<div class="line"> <span class="comment">/* Starts PWM mode with an updated duty cycle. */</span></div>
<div class="line"> <a class="code" href="group__tpm.html#ga7f205d02e27dd8d0b5780203d30e52a4">TPM_UpdatePwmDutycycle</a>(BOARD_TPM_BASEADDR, (<a class="code" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a>)BOARD_FIRST_TPM_CHANNEL, <a class="code" href="group__tpm.html#gga51a3684cf6ad51921da41ad494452511ac3655841b72d48d51513dbe7bfe2c6fe">kTPM_EdgeAlignedPwm</a>,</div>
<div class="line"> updatedDutycycle);</div>
<div class="line"> <a class="code" href="group__tpm.html#ga7f205d02e27dd8d0b5780203d30e52a4">TPM_UpdatePwmDutycycle</a>(BOARD_TPM_BASEADDR, (<a class="code" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a>)BOARD_SECOND_TPM_CHANNEL, <a class="code" href="group__tpm.html#gga51a3684cf6ad51921da41ad494452511ac3655841b72d48d51513dbe7bfe2c6fe">kTPM_EdgeAlignedPwm</a>,</div>
<div class="line"> updatedDutycycle);</div>
<div class="line"> }</div>
<div class="line">}</div>
</div><!-- fragment --> <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:structtpm__chnl__pwm__signal__param__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#structtpm__chnl__pwm__signal__param__t">tpm_chnl_pwm_signal_param_t</a></td></tr>
<tr class="memdesc:structtpm__chnl__pwm__signal__param__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options to configure a TPM channel's PWM signal. <a href="group__tpm.html#structtpm__chnl__pwm__signal__param__t">More...</a><br/></td></tr>
<tr class="separator:structtpm__chnl__pwm__signal__param__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structtpm__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#structtpm__config__t">tpm_config_t</a></td></tr>
<tr class="memdesc:structtpm__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">TPM config structure. <a href="group__tpm.html#structtpm__config__t">More...</a><br/></td></tr>
<tr class="separator:structtpm__config__t"><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:gace482d4796f215765d189f74c879346e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a> { <br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggace482d4796f215765d189f74c879346ea46ff50014bfb5cde17435197d2832043">kTPM_Chnl_0</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggace482d4796f215765d189f74c879346ea7d807066dff21ee14beb69b6095e35f5">kTPM_Chnl_1</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggace482d4796f215765d189f74c879346ea5e72f0a94f0b95b5bd3741f57496f8fe">kTPM_Chnl_2</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggace482d4796f215765d189f74c879346ea94949003c1c6df144f831cbd1b0ad96b">kTPM_Chnl_3</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggace482d4796f215765d189f74c879346ea3869ab1eaba51de758fbe8ee5d0e270e">kTPM_Chnl_4</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggace482d4796f215765d189f74c879346eaf036665843a1a13b7a2a91072474cd2b">kTPM_Chnl_5</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggace482d4796f215765d189f74c879346ea010c5e2f251cd53842145ab272949cd1">kTPM_Chnl_6</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggace482d4796f215765d189f74c879346ea53c9083b38615280db7bc79bd106d7ef">kTPM_Chnl_7</a>
<br/>
}</td></tr>
<tr class="memdesc:gace482d4796f215765d189f74c879346e"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of TPM channels. <a href="group__tpm.html#gace482d4796f215765d189f74c879346e">More...</a><br/></td></tr>
<tr class="separator:gace482d4796f215765d189f74c879346e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51a3684cf6ad51921da41ad494452511"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga51a3684cf6ad51921da41ad494452511">tpm_pwm_mode_t</a> { <br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga51a3684cf6ad51921da41ad494452511ac3655841b72d48d51513dbe7bfe2c6fe">kTPM_EdgeAlignedPwm</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga51a3684cf6ad51921da41ad494452511a9e201f84919cf715746382741a708263">kTPM_CenterAlignedPwm</a>
<br/>
}</td></tr>
<tr class="memdesc:ga51a3684cf6ad51921da41ad494452511"><td class="mdescLeft">&#160;</td><td class="mdescRight">TPM PWM operation modes. <a href="group__tpm.html#ga51a3684cf6ad51921da41ad494452511">More...</a><br/></td></tr>
<tr class="separator:ga51a3684cf6ad51921da41ad494452511"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadbc5358c74901e039e01c541a3a38675"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#gadbc5358c74901e039e01c541a3a38675">tpm_pwm_level_select_t</a> { <br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggadbc5358c74901e039e01c541a3a38675af23b8097a9d46a24efdfdee6ed1cdcca">kTPM_NoPwmSignal</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggadbc5358c74901e039e01c541a3a38675a5ab6f0dff57ca92272ff7d563ece0629">kTPM_LowTrue</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggadbc5358c74901e039e01c541a3a38675a33357d6aa2305f0e4881b27399de55ee">kTPM_HighTrue</a>
<br/>
}</td></tr>
<tr class="memdesc:gadbc5358c74901e039e01c541a3a38675"><td class="mdescLeft">&#160;</td><td class="mdescRight">TPM PWM output pulse mode: high-true, low-true or no output. <a href="group__tpm.html#gadbc5358c74901e039e01c541a3a38675">More...</a><br/></td></tr>
<tr class="separator:gadbc5358c74901e039e01c541a3a38675"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacadd005436330574ae7dca2fef61ca21"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#gacadd005436330574ae7dca2fef61ca21">tpm_trigger_select_t</a> </td></tr>
<tr class="memdesc:gacadd005436330574ae7dca2fef61ca21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trigger options available. <a href="group__tpm.html#gacadd005436330574ae7dca2fef61ca21">More...</a><br/></td></tr>
<tr class="separator:gacadd005436330574ae7dca2fef61ca21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f478f38b367d15c941f9ecc85745c6d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga8f478f38b367d15c941f9ecc85745c6d">tpm_output_compare_mode_t</a> { <br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga8f478f38b367d15c941f9ecc85745c6da9138cc3b25fc54000c123b79c922be2b">kTPM_NoOutputSignal</a> = (1U &lt;&lt; TPM_CnSC_MSA_SHIFT),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga8f478f38b367d15c941f9ecc85745c6da0870b5b951e6b34dc26018d08c112cd7">kTPM_ToggleOnMatch</a> = ((1U &lt;&lt; TPM_CnSC_MSA_SHIFT) | (1U &lt;&lt; TPM_CnSC_ELSA_SHIFT)),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga8f478f38b367d15c941f9ecc85745c6dae7de0fa57318b2440bb402b70f8de883">kTPM_ClearOnMatch</a> = ((1U &lt;&lt; TPM_CnSC_MSA_SHIFT) | (2U &lt;&lt; TPM_CnSC_ELSA_SHIFT)),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga8f478f38b367d15c941f9ecc85745c6da2ab55e90eab69c93d689b1c87876e237">kTPM_SetOnMatch</a> = ((1U &lt;&lt; TPM_CnSC_MSA_SHIFT) | (3U &lt;&lt; TPM_CnSC_ELSA_SHIFT)),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga8f478f38b367d15c941f9ecc85745c6da8aa0ae800d6aec8fe262d7c9ac3d95ba">kTPM_HighPulseOutput</a> = ((3U &lt;&lt; TPM_CnSC_MSA_SHIFT) | (1U &lt;&lt; TPM_CnSC_ELSA_SHIFT)),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga8f478f38b367d15c941f9ecc85745c6daffe4c6d8fb0fe229cabc3a3bdb83db92">kTPM_LowPulseOutput</a> = ((3U &lt;&lt; TPM_CnSC_MSA_SHIFT) | (2U &lt;&lt; TPM_CnSC_ELSA_SHIFT))
<br/>
}</td></tr>
<tr class="memdesc:ga8f478f38b367d15c941f9ecc85745c6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">TPM output compare modes. <a href="group__tpm.html#ga8f478f38b367d15c941f9ecc85745c6d">More...</a><br/></td></tr>
<tr class="separator:ga8f478f38b367d15c941f9ecc85745c6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29b793ddc184361a32c8b208d57599bf"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga29b793ddc184361a32c8b208d57599bf">tpm_input_capture_edge_t</a> { <br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga29b793ddc184361a32c8b208d57599bfa5e485c4180e5dac6a4159ddd2524eb42">kTPM_RisingEdge</a> = (1U &lt;&lt; TPM_CnSC_ELSA_SHIFT),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga29b793ddc184361a32c8b208d57599bfa17db2894d6f09cb06f821a8997986309">kTPM_FallingEdge</a> = (2U &lt;&lt; TPM_CnSC_ELSA_SHIFT),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga29b793ddc184361a32c8b208d57599bfabd91fc4d13b5c5b9421ec8f18ce40013">kTPM_RiseAndFallEdge</a> = (3U &lt;&lt; TPM_CnSC_ELSA_SHIFT)
<br/>
}</td></tr>
<tr class="memdesc:ga29b793ddc184361a32c8b208d57599bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">TPM input capture edge. <a href="group__tpm.html#ga29b793ddc184361a32c8b208d57599bf">More...</a><br/></td></tr>
<tr class="separator:ga29b793ddc184361a32c8b208d57599bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga768c5063c3ae5bcfc916c41d011d2a15"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga768c5063c3ae5bcfc916c41d011d2a15">tpm_clock_source_t</a> { <br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga768c5063c3ae5bcfc916c41d011d2a15a61149d2836f35678b6fc42970c53be9c">kTPM_SystemClock</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga768c5063c3ae5bcfc916c41d011d2a15a4857136cf43ac72ca82ed4bc0ed1cec8">kTPM_ExternalClock</a>
<br/>
}</td></tr>
<tr class="memdesc:ga768c5063c3ae5bcfc916c41d011d2a15"><td class="mdescLeft">&#160;</td><td class="mdescRight">TPM clock source selection. <a href="group__tpm.html#ga768c5063c3ae5bcfc916c41d011d2a15">More...</a><br/></td></tr>
<tr class="separator:ga768c5063c3ae5bcfc916c41d011d2a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52037435e48b8fc59a610f33c30a0a8b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga52037435e48b8fc59a610f33c30a0a8b">tpm_clock_prescale_t</a> { <br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga52037435e48b8fc59a610f33c30a0a8ba14017b91b63ac0c4c50aaf2226f79192">kTPM_Prescale_Divide_1</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga52037435e48b8fc59a610f33c30a0a8bac5cfc73fceeed177eee6ffd70dad2655">kTPM_Prescale_Divide_2</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga52037435e48b8fc59a610f33c30a0a8baec0260e031a00fcb04f9f38b95a60dc5">kTPM_Prescale_Divide_4</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga52037435e48b8fc59a610f33c30a0a8ba2b43a6a117612827f1c697d9d3563877">kTPM_Prescale_Divide_8</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga52037435e48b8fc59a610f33c30a0a8ba2e56961b31ab965c48ac6eb7656f0e2a">kTPM_Prescale_Divide_16</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga52037435e48b8fc59a610f33c30a0a8ba8d656f4013cb72bffef9663568daa7c1">kTPM_Prescale_Divide_32</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga52037435e48b8fc59a610f33c30a0a8bac1e67b46fd2639f7c157f403b244a7f5">kTPM_Prescale_Divide_64</a>,
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga52037435e48b8fc59a610f33c30a0a8baa5611bb8c5bee917cefdc5f4cffa2b17">kTPM_Prescale_Divide_128</a>
<br/>
}</td></tr>
<tr class="memdesc:ga52037435e48b8fc59a610f33c30a0a8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">TPM prescale value selection for the clock source. <a href="group__tpm.html#ga52037435e48b8fc59a610f33c30a0a8b">More...</a><br/></td></tr>
<tr class="separator:ga52037435e48b8fc59a610f33c30a0a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacaba9b7a40925c8a9bfa258e40af2db8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#gacaba9b7a40925c8a9bfa258e40af2db8">tpm_interrupt_enable_t</a> { <br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggacaba9b7a40925c8a9bfa258e40af2db8ad09402c8e38b5aa03708dcd2bb35ac51">kTPM_Chnl0InterruptEnable</a> = (1U &lt;&lt; 0),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggacaba9b7a40925c8a9bfa258e40af2db8aef3f216d32d09e6a5b3e9f9c4bb9f96d">kTPM_Chnl1InterruptEnable</a> = (1U &lt;&lt; 1),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggacaba9b7a40925c8a9bfa258e40af2db8ac7cc9904d2a195053dbbbee00358b191">kTPM_Chnl2InterruptEnable</a> = (1U &lt;&lt; 2),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggacaba9b7a40925c8a9bfa258e40af2db8abec0f2aaf00238ac0c4cb70a4d13f265">kTPM_Chnl3InterruptEnable</a> = (1U &lt;&lt; 3),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggacaba9b7a40925c8a9bfa258e40af2db8a1a8e5b59c4f342143b701ad4d3c0b932">kTPM_Chnl4InterruptEnable</a> = (1U &lt;&lt; 4),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggacaba9b7a40925c8a9bfa258e40af2db8a822c7f47ce806cd0b52c7dcf63a0737c">kTPM_Chnl5InterruptEnable</a> = (1U &lt;&lt; 5),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggacaba9b7a40925c8a9bfa258e40af2db8a7b982a6d436af5baea07f369d95a230f">kTPM_Chnl6InterruptEnable</a> = (1U &lt;&lt; 6),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggacaba9b7a40925c8a9bfa258e40af2db8aa8f8ad983c89ab4bee35948bc5ebb6a4">kTPM_Chnl7InterruptEnable</a> = (1U &lt;&lt; 7),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#ggacaba9b7a40925c8a9bfa258e40af2db8ad44d57a95ac35d9567dc9978232a8e30">kTPM_TimeOverflowInterruptEnable</a> = (1U &lt;&lt; 8)
<br/>
}</td></tr>
<tr class="memdesc:gacaba9b7a40925c8a9bfa258e40af2db8"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of TPM interrupts. <a href="group__tpm.html#gacaba9b7a40925c8a9bfa258e40af2db8">More...</a><br/></td></tr>
<tr class="separator:gacaba9b7a40925c8a9bfa258e40af2db8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5904f5ce37212040c0b7f3ca5d101a56"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga5904f5ce37212040c0b7f3ca5d101a56">tpm_status_flags_t</a> { <br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga5904f5ce37212040c0b7f3ca5d101a56a00064ef5ff82a125048189d0dbcc435c">kTPM_Chnl0Flag</a> = (1U &lt;&lt; 0),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga5904f5ce37212040c0b7f3ca5d101a56a8c60b928fad1e5f5a360f58647c0e399">kTPM_Chnl1Flag</a> = (1U &lt;&lt; 1),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga5904f5ce37212040c0b7f3ca5d101a56a9121418a8a04e046dca6e301dd96895d">kTPM_Chnl2Flag</a> = (1U &lt;&lt; 2),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga5904f5ce37212040c0b7f3ca5d101a56a9a86b2a0b4aa192856dc1f547b31953e">kTPM_Chnl3Flag</a> = (1U &lt;&lt; 3),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga5904f5ce37212040c0b7f3ca5d101a56ab41a86f123124053c919314342b44425">kTPM_Chnl4Flag</a> = (1U &lt;&lt; 4),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga5904f5ce37212040c0b7f3ca5d101a56a06962b6d33d905c35215a673ce797c1c">kTPM_Chnl5Flag</a> = (1U &lt;&lt; 5),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga5904f5ce37212040c0b7f3ca5d101a56a764b6bd11b1f5c8265c1d45329ee3d5e">kTPM_Chnl6Flag</a> = (1U &lt;&lt; 6),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga5904f5ce37212040c0b7f3ca5d101a56a3fb1b0bd96192af71535c0cd2b382989">kTPM_Chnl7Flag</a> = (1U &lt;&lt; 7),
<br/>
&#160;&#160;<a class="el" href="group__tpm.html#gga5904f5ce37212040c0b7f3ca5d101a56aa9a6749351e61cf4c92fcd20ef929c3d">kTPM_TimeOverflowFlag</a> = (1U &lt;&lt; 8)
<br/>
}</td></tr>
<tr class="memdesc:ga5904f5ce37212040c0b7f3ca5d101a56"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of TPM flags. <a href="group__tpm.html#ga5904f5ce37212040c0b7f3ca5d101a56">More...</a><br/></td></tr>
<tr class="separator:ga5904f5ce37212040c0b7f3ca5d101a56"><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:ga54511b6d5433142e99df1dfd8c0816ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga54511b6d5433142e99df1dfd8c0816ef"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga54511b6d5433142e99df1dfd8c0816ef">FSL_TPM_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 2))</td></tr>
<tr class="memdesc:ga54511b6d5433142e99df1dfd8c0816ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version 2.0.2. <br/></td></tr>
<tr class="separator:ga54511b6d5433142e99df1dfd8c0816ef"><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:gae56e6feacdb75884b00b81256ae4a795"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#gae56e6feacdb75884b00b81256ae4a795">TPM_Init</a> (TPM_Type *base, const <a class="el" href="group__tpm.html#structtpm__config__t">tpm_config_t</a> *config)</td></tr>
<tr class="memdesc:gae56e6feacdb75884b00b81256ae4a795"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ungates the TPM clock and configures the peripheral for basic operation. <a href="#gae56e6feacdb75884b00b81256ae4a795">More...</a><br/></td></tr>
<tr class="separator:gae56e6feacdb75884b00b81256ae4a795"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b642860d51c3c6ef94df8c313c31e91"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga8b642860d51c3c6ef94df8c313c31e91">TPM_Deinit</a> (TPM_Type *base)</td></tr>
<tr class="memdesc:ga8b642860d51c3c6ef94df8c313c31e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the counter and gates the TPM clock. <a href="#ga8b642860d51c3c6ef94df8c313c31e91">More...</a><br/></td></tr>
<tr class="separator:ga8b642860d51c3c6ef94df8c313c31e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53fcb634d4c70d9bcb14c972944d949f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga53fcb634d4c70d9bcb14c972944d949f">TPM_GetDefaultConfig</a> (<a class="el" href="group__tpm.html#structtpm__config__t">tpm_config_t</a> *config)</td></tr>
<tr class="memdesc:ga53fcb634d4c70d9bcb14c972944d949f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill in the TPM config struct with the default settings. <a href="#ga53fcb634d4c70d9bcb14c972944d949f">More...</a><br/></td></tr>
<tr class="separator:ga53fcb634d4c70d9bcb14c972944d949f"><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>
Channel mode operations</h2></td></tr>
<tr class="memitem:gad52f4e6f23ba1d127f5d5f3f30b49dbd"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#gad52f4e6f23ba1d127f5d5f3f30b49dbd">TPM_SetupPwm</a> (TPM_Type *base, const <a class="el" href="group__tpm.html#structtpm__chnl__pwm__signal__param__t">tpm_chnl_pwm_signal_param_t</a> *chnlParams, uint8_t numOfChnls, <a class="el" href="group__tpm.html#ga51a3684cf6ad51921da41ad494452511">tpm_pwm_mode_t</a> mode, uint32_t pwmFreq_Hz, uint32_t srcClock_Hz)</td></tr>
<tr class="memdesc:gad52f4e6f23ba1d127f5d5f3f30b49dbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the PWM signal parameters. <a href="#gad52f4e6f23ba1d127f5d5f3f30b49dbd">More...</a><br/></td></tr>
<tr class="separator:gad52f4e6f23ba1d127f5d5f3f30b49dbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f205d02e27dd8d0b5780203d30e52a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga7f205d02e27dd8d0b5780203d30e52a4">TPM_UpdatePwmDutycycle</a> (TPM_Type *base, <a class="el" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a> chnlNumber, <a class="el" href="group__tpm.html#ga51a3684cf6ad51921da41ad494452511">tpm_pwm_mode_t</a> currentPwmMode, uint8_t dutyCyclePercent)</td></tr>
<tr class="memdesc:ga7f205d02e27dd8d0b5780203d30e52a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the duty cycle of an active PWM signal. <a href="#ga7f205d02e27dd8d0b5780203d30e52a4">More...</a><br/></td></tr>
<tr class="separator:ga7f205d02e27dd8d0b5780203d30e52a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6406c3ca4df37694a44078f12b103954"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga6406c3ca4df37694a44078f12b103954">TPM_UpdateChnlEdgeLevelSelect</a> (TPM_Type *base, <a class="el" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a> chnlNumber, uint8_t level)</td></tr>
<tr class="memdesc:ga6406c3ca4df37694a44078f12b103954"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the edge level selection for a channel. <a href="#ga6406c3ca4df37694a44078f12b103954">More...</a><br/></td></tr>
<tr class="separator:ga6406c3ca4df37694a44078f12b103954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga400726db4285f60d8c2788ab62d01f13"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga400726db4285f60d8c2788ab62d01f13">TPM_SetupInputCapture</a> (TPM_Type *base, <a class="el" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a> chnlNumber, <a class="el" href="group__tpm.html#ga29b793ddc184361a32c8b208d57599bf">tpm_input_capture_edge_t</a> captureMode)</td></tr>
<tr class="memdesc:ga400726db4285f60d8c2788ab62d01f13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables capturing an input signal on the channel using the function parameters. <a href="#ga400726db4285f60d8c2788ab62d01f13">More...</a><br/></td></tr>
<tr class="separator:ga400726db4285f60d8c2788ab62d01f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga382c4ecd344bc208cd6aa60287442a50"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga382c4ecd344bc208cd6aa60287442a50">TPM_SetupOutputCompare</a> (TPM_Type *base, <a class="el" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a> chnlNumber, <a class="el" href="group__tpm.html#ga8f478f38b367d15c941f9ecc85745c6d">tpm_output_compare_mode_t</a> compareMode, uint32_t compareValue)</td></tr>
<tr class="memdesc:ga382c4ecd344bc208cd6aa60287442a50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the TPM to generate timed pulses. <a href="#ga382c4ecd344bc208cd6aa60287442a50">More...</a><br/></td></tr>
<tr class="separator:ga382c4ecd344bc208cd6aa60287442a50"><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:ga1e6563023f023ee826e687d3668b4247"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga1e6563023f023ee826e687d3668b4247">TPM_EnableInterrupts</a> (TPM_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga1e6563023f023ee826e687d3668b4247"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the selected TPM interrupts. <a href="#ga1e6563023f023ee826e687d3668b4247">More...</a><br/></td></tr>
<tr class="separator:ga1e6563023f023ee826e687d3668b4247"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga254be07975c63ee2983421df1d2f0d40"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga254be07975c63ee2983421df1d2f0d40">TPM_DisableInterrupts</a> (TPM_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga254be07975c63ee2983421df1d2f0d40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the selected TPM interrupts. <a href="#ga254be07975c63ee2983421df1d2f0d40">More...</a><br/></td></tr>
<tr class="separator:ga254be07975c63ee2983421df1d2f0d40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb59e6f67ff4281f14a9d10f25839208"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#gafb59e6f67ff4281f14a9d10f25839208">TPM_GetEnabledInterrupts</a> (TPM_Type *base)</td></tr>
<tr class="memdesc:gafb59e6f67ff4281f14a9d10f25839208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the enabled TPM interrupts. <a href="#gafb59e6f67ff4281f14a9d10f25839208">More...</a><br/></td></tr>
<tr class="separator:gafb59e6f67ff4281f14a9d10f25839208"><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:gab9ffcff25a7ad4c47d89fb89813853b7"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#gab9ffcff25a7ad4c47d89fb89813853b7">TPM_GetStatusFlags</a> (TPM_Type *base)</td></tr>
<tr class="memdesc:gab9ffcff25a7ad4c47d89fb89813853b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the TPM status flags. <a href="#gab9ffcff25a7ad4c47d89fb89813853b7">More...</a><br/></td></tr>
<tr class="separator:gab9ffcff25a7ad4c47d89fb89813853b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8ba1a1808320b2935f6760eda06e42b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#gad8ba1a1808320b2935f6760eda06e42b">TPM_ClearStatusFlags</a> (TPM_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:gad8ba1a1808320b2935f6760eda06e42b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the TPM status flags. <a href="#gad8ba1a1808320b2935f6760eda06e42b">More...</a><br/></td></tr>
<tr class="separator:gad8ba1a1808320b2935f6760eda06e42b"><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:ga0ec12ec457bf39ed2510d1054cbe1bbd"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga0ec12ec457bf39ed2510d1054cbe1bbd">TPM_StartTimer</a> (TPM_Type *base, <a class="el" href="group__tpm.html#ga768c5063c3ae5bcfc916c41d011d2a15">tpm_clock_source_t</a> clockSource)</td></tr>
<tr class="memdesc:ga0ec12ec457bf39ed2510d1054cbe1bbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts the TPM counter. <a href="#ga0ec12ec457bf39ed2510d1054cbe1bbd">More...</a><br/></td></tr>
<tr class="separator:ga0ec12ec457bf39ed2510d1054cbe1bbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga48d6d431f773ca70883c565a75017e14"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ga48d6d431f773ca70883c565a75017e14">TPM_StopTimer</a> (TPM_Type *base)</td></tr>
<tr class="memdesc:ga48d6d431f773ca70883c565a75017e14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the TPM counter. <a href="#ga48d6d431f773ca70883c565a75017e14">More...</a><br/></td></tr>
<tr class="separator:ga48d6d431f773ca70883c565a75017e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structtpm__chnl__pwm__signal__param__t" id="structtpm__chnl__pwm__signal__param__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct tpm_chnl_pwm_signal_param_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:afb510c720534830d721149ed73b1d201"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#afb510c720534830d721149ed73b1d201">chnlNumber</a></td></tr>
<tr class="memdesc:afb510c720534830d721149ed73b1d201"><td class="mdescLeft">&#160;</td><td class="mdescRight">TPM channel to configure. <a href="#afb510c720534830d721149ed73b1d201">More...</a><br/></td></tr>
<tr class="separator:afb510c720534830d721149ed73b1d201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b49674b66d63f0c21ba27c41a4a2eaf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b49674b66d63f0c21ba27c41a4a2eaf"></a>
<a class="el" href="group__tpm.html#gadbc5358c74901e039e01c541a3a38675">tpm_pwm_level_select_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#a5b49674b66d63f0c21ba27c41a4a2eaf">level</a></td></tr>
<tr class="memdesc:a5b49674b66d63f0c21ba27c41a4a2eaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">PWM output active level select. <br/></td></tr>
<tr class="separator:a5b49674b66d63f0c21ba27c41a4a2eaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48d7ad0b514ba6c53f174e28629f1222"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#a48d7ad0b514ba6c53f174e28629f1222">dutyCyclePercent</a></td></tr>
<tr class="memdesc:a48d7ad0b514ba6c53f174e28629f1222"><td class="mdescLeft">&#160;</td><td class="mdescRight">PWM pulse width, value should be between 0 to 100 0=inactive signal(0% duty cycle)... <a href="#a48d7ad0b514ba6c53f174e28629f1222">More...</a><br/></td></tr>
<tr class="separator:a48d7ad0b514ba6c53f174e28629f1222"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="afb510c720534830d721149ed73b1d201"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a> tpm_chnl_pwm_signal_param_t::chnlNumber</td>
</tr>
</table>
</div><div class="memdoc">
<p>In combined mode (available in some SoC's, this represents the channel pair number </p>
</div>
</div>
<a class="anchor" id="a48d7ad0b514ba6c53f174e28629f1222"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t tpm_chnl_pwm_signal_param_t::dutyCyclePercent</td>
</tr>
</table>
</div><div class="memdoc">
<p>100=always active signal (100% duty cycle) </p>
</div>
</div>
</div>
</div>
<a name="structtpm__config__t" id="structtpm__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct tpm_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>This structure holds the configuration settings for the TPM peripheral. To initialize this structure to reasonable defaults, call the <a class="el" href="group__tpm.html#ga53fcb634d4c70d9bcb14c972944d949f" title="Fill in the TPM config struct with the default settings. ">TPM_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:a96eafe68e41845fb308e826d98c18c4a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a96eafe68e41845fb308e826d98c18c4a"></a>
<a class="el" href="group__tpm.html#ga52037435e48b8fc59a610f33c30a0a8b">tpm_clock_prescale_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#a96eafe68e41845fb308e826d98c18c4a">prescale</a></td></tr>
<tr class="memdesc:a96eafe68e41845fb308e826d98c18c4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select TPM clock prescale value. <br/></td></tr>
<tr class="separator:a96eafe68e41845fb308e826d98c18c4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a399049f665e74d4a49610a2e2b7621de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a399049f665e74d4a49610a2e2b7621de"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#a399049f665e74d4a49610a2e2b7621de">useGlobalTimeBase</a></td></tr>
<tr class="memdesc:a399049f665e74d4a49610a2e2b7621de"><td class="mdescLeft">&#160;</td><td class="mdescRight">true: Use of an external global time base is enabled; false: disabled <br/></td></tr>
<tr class="separator:a399049f665e74d4a49610a2e2b7621de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6546b49062c7bf42d02e01803cab91f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6546b49062c7bf42d02e01803cab91f3"></a>
<a class="el" href="group__tpm.html#gacadd005436330574ae7dca2fef61ca21">tpm_trigger_select_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#a6546b49062c7bf42d02e01803cab91f3">triggerSelect</a></td></tr>
<tr class="memdesc:a6546b49062c7bf42d02e01803cab91f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input trigger to use for controlling the counter operation. <br/></td></tr>
<tr class="separator:a6546b49062c7bf42d02e01803cab91f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d81ea84451064f43e246139f3478d21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d81ea84451064f43e246139f3478d21"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#a5d81ea84451064f43e246139f3478d21">enableDoze</a></td></tr>
<tr class="memdesc:a5d81ea84451064f43e246139f3478d21"><td class="mdescLeft">&#160;</td><td class="mdescRight">true: TPM counter is paused in doze mode; false: TPM counter continues in doze mode <br/></td></tr>
<tr class="separator:a5d81ea84451064f43e246139f3478d21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6bb4ffb42467fe618a986ff825be9f7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6bb4ffb42467fe618a986ff825be9f7"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#ac6bb4ffb42467fe618a986ff825be9f7">enableDebugMode</a></td></tr>
<tr class="memdesc:ac6bb4ffb42467fe618a986ff825be9f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">true: TPM counter continues in debug mode; false: TPM counter is paused in debug mode <br/></td></tr>
<tr class="separator:ac6bb4ffb42467fe618a986ff825be9f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75bb0e3dea257f20f77a3f3ad61374af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75bb0e3dea257f20f77a3f3ad61374af"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#a75bb0e3dea257f20f77a3f3ad61374af">enableReloadOnTrigger</a></td></tr>
<tr class="memdesc:a75bb0e3dea257f20f77a3f3ad61374af"><td class="mdescLeft">&#160;</td><td class="mdescRight">true: TPM counter is reloaded on trigger; false: TPM counter not reloaded <br/></td></tr>
<tr class="separator:a75bb0e3dea257f20f77a3f3ad61374af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a044960e5040ee6b513dc18e224df482e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a044960e5040ee6b513dc18e224df482e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#a044960e5040ee6b513dc18e224df482e">enableStopOnOverflow</a></td></tr>
<tr class="memdesc:a044960e5040ee6b513dc18e224df482e"><td class="mdescLeft">&#160;</td><td class="mdescRight">true: TPM counter stops after overflow; false: TPM counter continues running after overflow <br/></td></tr>
<tr class="separator:a044960e5040ee6b513dc18e224df482e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a337ddf5e19410bf3f015afa887f77c66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a337ddf5e19410bf3f015afa887f77c66"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tpm.html#a337ddf5e19410bf3f015afa887f77c66">enableStartOnTrigger</a></td></tr>
<tr class="memdesc:a337ddf5e19410bf3f015afa887f77c66"><td class="mdescLeft">&#160;</td><td class="mdescRight">true: TPM counter only starts when a trigger is detected; false: TPM counter starts immediately <br/></td></tr>
<tr class="separator:a337ddf5e19410bf3f015afa887f77c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gace482d4796f215765d189f74c879346e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>Actual number of available channels is SoC dependent </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggace482d4796f215765d189f74c879346ea46ff50014bfb5cde17435197d2832043"></a>kTPM_Chnl_0</em>&nbsp;</td><td class="fielddoc">
<p>TPM channel number 0. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggace482d4796f215765d189f74c879346ea7d807066dff21ee14beb69b6095e35f5"></a>kTPM_Chnl_1</em>&nbsp;</td><td class="fielddoc">
<p>TPM channel number 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggace482d4796f215765d189f74c879346ea5e72f0a94f0b95b5bd3741f57496f8fe"></a>kTPM_Chnl_2</em>&nbsp;</td><td class="fielddoc">
<p>TPM channel number 2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggace482d4796f215765d189f74c879346ea94949003c1c6df144f831cbd1b0ad96b"></a>kTPM_Chnl_3</em>&nbsp;</td><td class="fielddoc">
<p>TPM channel number 3. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggace482d4796f215765d189f74c879346ea3869ab1eaba51de758fbe8ee5d0e270e"></a>kTPM_Chnl_4</em>&nbsp;</td><td class="fielddoc">
<p>TPM channel number 4. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggace482d4796f215765d189f74c879346eaf036665843a1a13b7a2a91072474cd2b"></a>kTPM_Chnl_5</em>&nbsp;</td><td class="fielddoc">
<p>TPM channel number 5. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggace482d4796f215765d189f74c879346ea010c5e2f251cd53842145ab272949cd1"></a>kTPM_Chnl_6</em>&nbsp;</td><td class="fielddoc">
<p>TPM channel number 6. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggace482d4796f215765d189f74c879346ea53c9083b38615280db7bc79bd106d7ef"></a>kTPM_Chnl_7</em>&nbsp;</td><td class="fielddoc">
<p>TPM channel number 7. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga51a3684cf6ad51921da41ad494452511"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#ga51a3684cf6ad51921da41ad494452511">tpm_pwm_mode_t</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="gga51a3684cf6ad51921da41ad494452511ac3655841b72d48d51513dbe7bfe2c6fe"></a>kTPM_EdgeAlignedPwm</em>&nbsp;</td><td class="fielddoc">
<p>Edge aligned PWM. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga51a3684cf6ad51921da41ad494452511a9e201f84919cf715746382741a708263"></a>kTPM_CenterAlignedPwm</em>&nbsp;</td><td class="fielddoc">
<p>Center aligned PWM. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gadbc5358c74901e039e01c541a3a38675"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#gadbc5358c74901e039e01c541a3a38675">tpm_pwm_level_select_t</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="ggadbc5358c74901e039e01c541a3a38675af23b8097a9d46a24efdfdee6ed1cdcca"></a>kTPM_NoPwmSignal</em>&nbsp;</td><td class="fielddoc">
<p>No PWM output on pin. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadbc5358c74901e039e01c541a3a38675a5ab6f0dff57ca92272ff7d563ece0629"></a>kTPM_LowTrue</em>&nbsp;</td><td class="fielddoc">
<p>Low true pulses. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadbc5358c74901e039e01c541a3a38675a33357d6aa2305f0e4881b27399de55ee"></a>kTPM_HighTrue</em>&nbsp;</td><td class="fielddoc">
<p>High true pulses. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gacadd005436330574ae7dca2fef61ca21"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#gacadd005436330574ae7dca2fef61ca21">tpm_trigger_select_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This is used for both internal &amp; external trigger sources (external option available in certain SoC's)</p>
<dl class="section note"><dt>Note</dt><dd>The actual trigger options available is SoC-specific. </dd></dl>
</div>
</div>
<a class="anchor" id="ga8f478f38b367d15c941f9ecc85745c6d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#ga8f478f38b367d15c941f9ecc85745c6d">tpm_output_compare_mode_t</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="gga8f478f38b367d15c941f9ecc85745c6da9138cc3b25fc54000c123b79c922be2b"></a>kTPM_NoOutputSignal</em>&nbsp;</td><td class="fielddoc">
<p>No channel output when counter reaches CnV. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga8f478f38b367d15c941f9ecc85745c6da0870b5b951e6b34dc26018d08c112cd7"></a>kTPM_ToggleOnMatch</em>&nbsp;</td><td class="fielddoc">
<p>Toggle output. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga8f478f38b367d15c941f9ecc85745c6dae7de0fa57318b2440bb402b70f8de883"></a>kTPM_ClearOnMatch</em>&nbsp;</td><td class="fielddoc">
<p>Clear output. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga8f478f38b367d15c941f9ecc85745c6da2ab55e90eab69c93d689b1c87876e237"></a>kTPM_SetOnMatch</em>&nbsp;</td><td class="fielddoc">
<p>Set output. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga8f478f38b367d15c941f9ecc85745c6da8aa0ae800d6aec8fe262d7c9ac3d95ba"></a>kTPM_HighPulseOutput</em>&nbsp;</td><td class="fielddoc">
<p>Pulse output high. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga8f478f38b367d15c941f9ecc85745c6daffe4c6d8fb0fe229cabc3a3bdb83db92"></a>kTPM_LowPulseOutput</em>&nbsp;</td><td class="fielddoc">
<p>Pulse output low. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga29b793ddc184361a32c8b208d57599bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#ga29b793ddc184361a32c8b208d57599bf">tpm_input_capture_edge_t</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="gga29b793ddc184361a32c8b208d57599bfa5e485c4180e5dac6a4159ddd2524eb42"></a>kTPM_RisingEdge</em>&nbsp;</td><td class="fielddoc">
<p>Capture on rising edge only. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga29b793ddc184361a32c8b208d57599bfa17db2894d6f09cb06f821a8997986309"></a>kTPM_FallingEdge</em>&nbsp;</td><td class="fielddoc">
<p>Capture on falling edge only. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga29b793ddc184361a32c8b208d57599bfabd91fc4d13b5c5b9421ec8f18ce40013"></a>kTPM_RiseAndFallEdge</em>&nbsp;</td><td class="fielddoc">
<p>Capture on rising or falling edge. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga768c5063c3ae5bcfc916c41d011d2a15"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#ga768c5063c3ae5bcfc916c41d011d2a15">tpm_clock_source_t</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="gga768c5063c3ae5bcfc916c41d011d2a15a61149d2836f35678b6fc42970c53be9c"></a>kTPM_SystemClock</em>&nbsp;</td><td class="fielddoc">
<p>System clock. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga768c5063c3ae5bcfc916c41d011d2a15a4857136cf43ac72ca82ed4bc0ed1cec8"></a>kTPM_ExternalClock</em>&nbsp;</td><td class="fielddoc">
<p>External clock. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga52037435e48b8fc59a610f33c30a0a8b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#ga52037435e48b8fc59a610f33c30a0a8b">tpm_clock_prescale_t</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="gga52037435e48b8fc59a610f33c30a0a8ba14017b91b63ac0c4c50aaf2226f79192"></a>kTPM_Prescale_Divide_1</em>&nbsp;</td><td class="fielddoc">
<p>Divide by 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga52037435e48b8fc59a610f33c30a0a8bac5cfc73fceeed177eee6ffd70dad2655"></a>kTPM_Prescale_Divide_2</em>&nbsp;</td><td class="fielddoc">
<p>Divide by 2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga52037435e48b8fc59a610f33c30a0a8baec0260e031a00fcb04f9f38b95a60dc5"></a>kTPM_Prescale_Divide_4</em>&nbsp;</td><td class="fielddoc">
<p>Divide by 4. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga52037435e48b8fc59a610f33c30a0a8ba2b43a6a117612827f1c697d9d3563877"></a>kTPM_Prescale_Divide_8</em>&nbsp;</td><td class="fielddoc">
<p>Divide by 8. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga52037435e48b8fc59a610f33c30a0a8ba2e56961b31ab965c48ac6eb7656f0e2a"></a>kTPM_Prescale_Divide_16</em>&nbsp;</td><td class="fielddoc">
<p>Divide by 16. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga52037435e48b8fc59a610f33c30a0a8ba8d656f4013cb72bffef9663568daa7c1"></a>kTPM_Prescale_Divide_32</em>&nbsp;</td><td class="fielddoc">
<p>Divide by 32. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga52037435e48b8fc59a610f33c30a0a8bac1e67b46fd2639f7c157f403b244a7f5"></a>kTPM_Prescale_Divide_64</em>&nbsp;</td><td class="fielddoc">
<p>Divide by 64. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga52037435e48b8fc59a610f33c30a0a8baa5611bb8c5bee917cefdc5f4cffa2b17"></a>kTPM_Prescale_Divide_128</em>&nbsp;</td><td class="fielddoc">
<p>Divide by 128. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gacaba9b7a40925c8a9bfa258e40af2db8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#gacaba9b7a40925c8a9bfa258e40af2db8">tpm_interrupt_enable_t</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="ggacaba9b7a40925c8a9bfa258e40af2db8ad09402c8e38b5aa03708dcd2bb35ac51"></a>kTPM_Chnl0InterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Channel 0 interrupt. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacaba9b7a40925c8a9bfa258e40af2db8aef3f216d32d09e6a5b3e9f9c4bb9f96d"></a>kTPM_Chnl1InterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Channel 1 interrupt. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacaba9b7a40925c8a9bfa258e40af2db8ac7cc9904d2a195053dbbbee00358b191"></a>kTPM_Chnl2InterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Channel 2 interrupt. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacaba9b7a40925c8a9bfa258e40af2db8abec0f2aaf00238ac0c4cb70a4d13f265"></a>kTPM_Chnl3InterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Channel 3 interrupt. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacaba9b7a40925c8a9bfa258e40af2db8a1a8e5b59c4f342143b701ad4d3c0b932"></a>kTPM_Chnl4InterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Channel 4 interrupt. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacaba9b7a40925c8a9bfa258e40af2db8a822c7f47ce806cd0b52c7dcf63a0737c"></a>kTPM_Chnl5InterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Channel 5 interrupt. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacaba9b7a40925c8a9bfa258e40af2db8a7b982a6d436af5baea07f369d95a230f"></a>kTPM_Chnl6InterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Channel 6 interrupt. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacaba9b7a40925c8a9bfa258e40af2db8aa8f8ad983c89ab4bee35948bc5ebb6a4"></a>kTPM_Chnl7InterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Channel 7 interrupt. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggacaba9b7a40925c8a9bfa258e40af2db8ad44d57a95ac35d9567dc9978232a8e30"></a>kTPM_TimeOverflowInterruptEnable</em>&nbsp;</td><td class="fielddoc">
<p>Time overflow interrupt. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga5904f5ce37212040c0b7f3ca5d101a56"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__tpm.html#ga5904f5ce37212040c0b7f3ca5d101a56">tpm_status_flags_t</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="gga5904f5ce37212040c0b7f3ca5d101a56a00064ef5ff82a125048189d0dbcc435c"></a>kTPM_Chnl0Flag</em>&nbsp;</td><td class="fielddoc">
<p>Channel 0 flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5904f5ce37212040c0b7f3ca5d101a56a8c60b928fad1e5f5a360f58647c0e399"></a>kTPM_Chnl1Flag</em>&nbsp;</td><td class="fielddoc">
<p>Channel 1 flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5904f5ce37212040c0b7f3ca5d101a56a9121418a8a04e046dca6e301dd96895d"></a>kTPM_Chnl2Flag</em>&nbsp;</td><td class="fielddoc">
<p>Channel 2 flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5904f5ce37212040c0b7f3ca5d101a56a9a86b2a0b4aa192856dc1f547b31953e"></a>kTPM_Chnl3Flag</em>&nbsp;</td><td class="fielddoc">
<p>Channel 3 flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5904f5ce37212040c0b7f3ca5d101a56ab41a86f123124053c919314342b44425"></a>kTPM_Chnl4Flag</em>&nbsp;</td><td class="fielddoc">
<p>Channel 4 flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5904f5ce37212040c0b7f3ca5d101a56a06962b6d33d905c35215a673ce797c1c"></a>kTPM_Chnl5Flag</em>&nbsp;</td><td class="fielddoc">
<p>Channel 5 flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5904f5ce37212040c0b7f3ca5d101a56a764b6bd11b1f5c8265c1d45329ee3d5e"></a>kTPM_Chnl6Flag</em>&nbsp;</td><td class="fielddoc">
<p>Channel 6 flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5904f5ce37212040c0b7f3ca5d101a56a3fb1b0bd96192af71535c0cd2b382989"></a>kTPM_Chnl7Flag</em>&nbsp;</td><td class="fielddoc">
<p>Channel 7 flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga5904f5ce37212040c0b7f3ca5d101a56aa9a6749351e61cf4c92fcd20ef929c3d"></a>kTPM_TimeOverflowFlag</em>&nbsp;</td><td class="fielddoc">
<p>Time overflow flag. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gae56e6feacdb75884b00b81256ae4a795"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TPM_Init </td>
<td>(</td>
<td class="paramtype">TPM_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="group__tpm.html#structtpm__config__t">tpm_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 TPM driver.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>TPM peripheral base address </td></tr>
<tr><td class="paramname">config</td><td>Pointer to user's TPM config structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8b642860d51c3c6ef94df8c313c31e91"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TPM_Deinit </td>
<td>(</td>
<td class="paramtype">TPM_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>TPM peripheral base address </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga53fcb634d4c70d9bcb14c972944d949f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TPM_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__tpm.html#structtpm__config__t">tpm_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The default values are: </p>
<div class="fragment"><div class="line">* config-&gt;prescale = <a class="code" href="group__tpm.html#gga52037435e48b8fc59a610f33c30a0a8ba14017b91b63ac0c4c50aaf2226f79192">kTPM_Prescale_Divide_1</a>;</div>
<div class="line">* config-&gt;useGlobalTimeBase = <span class="keyword">false</span>;</div>
<div class="line">* config-&gt;dozeEnable = <span class="keyword">false</span>;</div>
<div class="line">* config-&gt;dbgMode = <span class="keyword">false</span>;</div>
<div class="line">* config-&gt;enableReloadOnTrigger = <span class="keyword">false</span>;</div>
<div class="line">* config-&gt;enableStopOnOverflow = <span class="keyword">false</span>;</div>
<div class="line">* config-&gt;enableStartOnTrigger = <span class="keyword">false</span>;</div>
<div class="line">*#<span class="keywordflow">if</span> FSL_FEATURE_TPM_HAS_PAUSE_COUNTER_ON_TRIGGER</div>
<div class="line">* config-&gt;enablePauseOnTrigger = <span class="keyword">false</span>;</div>
<div class="line">*#endif</div>
<div class="line">* config-&gt;triggerSelect = kTPM_Trigger_Select_0;</div>
<div class="line">*#<span class="keywordflow">if</span> FSL_FEATURE_TPM_HAS_EXTERNAL_TRIGGER_SELECTION</div>
<div class="line">* config-&gt;triggerSource = kTPM_TriggerSource_External;</div>
<div class="line">*#endif</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 TPM config structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad52f4e6f23ba1d127f5d5f3f30b49dbd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">status_t TPM_SetupPwm </td>
<td>(</td>
<td class="paramtype">TPM_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="group__tpm.html#structtpm__chnl__pwm__signal__param__t">tpm_chnl_pwm_signal_param_t</a> *&#160;</td>
<td class="paramname"><em>chnlParams</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>numOfChnls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__tpm.html#ga51a3684cf6ad51921da41ad494452511">tpm_pwm_mode_t</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>pwmFreq_Hz</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>srcClock_Hz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>User calls this function to configure the PWM signals period, mode, dutycycle and edge. Use this function to configure all the TPM channels that will be used to output a PWM signal</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>TPM peripheral base address </td></tr>
<tr><td class="paramname">chnlParams</td><td>Array of PWM channel parameters to configure the channel(s) </td></tr>
<tr><td class="paramname">numOfChnls</td><td>Number of channels to configure, this should be the size of the array passed in </td></tr>
<tr><td class="paramname">mode</td><td>PWM operation mode, options available in enumeration <a class="el" href="group__tpm.html#ga51a3684cf6ad51921da41ad494452511" title="TPM PWM operation modes. ">tpm_pwm_mode_t</a> </td></tr>
<tr><td class="paramname">pwmFreq_Hz</td><td>PWM signal frequency in Hz </td></tr>
<tr><td class="paramname">srcClock_Hz</td><td>TPM counter clock in Hz</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>kStatus_Success if the PWM setup was successful, kStatus_Error on failure </dd></dl>
</div>
</div>
<a class="anchor" id="ga7f205d02e27dd8d0b5780203d30e52a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TPM_UpdatePwmDutycycle </td>
<td>(</td>
<td class="paramtype">TPM_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="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a>&#160;</td>
<td class="paramname"><em>chnlNumber</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__tpm.html#ga51a3684cf6ad51921da41ad494452511">tpm_pwm_mode_t</a>&#160;</td>
<td class="paramname"><em>currentPwmMode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>dutyCyclePercent</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</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>TPM peripheral base address </td></tr>
<tr><td class="paramname">chnlNumber</td><td>The channel number. In combined mode, this represents the channel pair number </td></tr>
<tr><td class="paramname">currentPwmMode</td><td>The current PWM mode set during PWM setup </td></tr>
<tr><td class="paramname">dutyCyclePercent</td><td>New PWM pulse width, value should be between 0 to 100 0=inactive signal(0% duty cycle)... 100=active signal (100% duty cycle) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6406c3ca4df37694a44078f12b103954"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TPM_UpdateChnlEdgeLevelSelect </td>
<td>(</td>
<td class="paramtype">TPM_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="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a>&#160;</td>
<td class="paramname"><em>chnlNumber</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>level</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</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>TPM peripheral base address </td></tr>
<tr><td class="paramname">chnlNumber</td><td>The channel number </td></tr>
<tr><td class="paramname">level</td><td>The level to be set to the ELSnB:ELSnA field; valid values are 00, 01, 10, 11. See the appropriate SoC reference manual for details about this field. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga400726db4285f60d8c2788ab62d01f13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TPM_SetupInputCapture </td>
<td>(</td>
<td class="paramtype">TPM_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="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a>&#160;</td>
<td class="paramname"><em>chnlNumber</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__tpm.html#ga29b793ddc184361a32c8b208d57599bf">tpm_input_capture_edge_t</a>&#160;</td>
<td class="paramname"><em>captureMode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>When the edge specified in the captureMode argument occurs on the channel, the TPM counter is captured into the CnV register. The user has to read the CnV register separately to get this value.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>TPM peripheral base address </td></tr>
<tr><td class="paramname">chnlNumber</td><td>The channel number </td></tr>
<tr><td class="paramname">captureMode</td><td>Specifies which edge to capture </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga382c4ecd344bc208cd6aa60287442a50"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TPM_SetupOutputCompare </td>
<td>(</td>
<td class="paramtype">TPM_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="group__tpm.html#gace482d4796f215765d189f74c879346e">tpm_chnl_t</a>&#160;</td>
<td class="paramname"><em>chnlNumber</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__tpm.html#ga8f478f38b367d15c941f9ecc85745c6d">tpm_output_compare_mode_t</a>&#160;</td>
<td class="paramname"><em>compareMode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>compareValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>When the TPM counter matches the value of compareVal argument (this is written into CnV reg), the channel output is changed based on what is specified in the compareMode argument.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>TPM peripheral base address </td></tr>
<tr><td class="paramname">chnlNumber</td><td>The channel number </td></tr>
<tr><td class="paramname">compareMode</td><td>Action to take on the channel output when the compare condition is met </td></tr>
<tr><td class="paramname">compareValue</td><td>Value to be programmed in the CnV register. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1e6563023f023ee826e687d3668b4247"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TPM_EnableInterrupts </td>
<td>(</td>
<td class="paramtype">TPM_Type *&#160;</td>
<td class="paramname"><em>base</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>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>TPM peripheral base address </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="group__tpm.html#gacaba9b7a40925c8a9bfa258e40af2db8" title="List of TPM interrupts. ">tpm_interrupt_enable_t</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga254be07975c63ee2983421df1d2f0d40"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void TPM_DisableInterrupts </td>
<td>(</td>
<td class="paramtype">TPM_Type *&#160;</td>
<td class="paramname"><em>base</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>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>TPM peripheral base address </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="group__tpm.html#gacaba9b7a40925c8a9bfa258e40af2db8" title="List of TPM interrupts. ">tpm_interrupt_enable_t</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gafb59e6f67ff4281f14a9d10f25839208"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t TPM_GetEnabledInterrupts </td>
<td>(</td>
<td class="paramtype">TPM_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>TPM peripheral base address</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="group__tpm.html#gacaba9b7a40925c8a9bfa258e40af2db8" title="List of TPM interrupts. ">tpm_interrupt_enable_t</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gab9ffcff25a7ad4c47d89fb89813853b7"></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 TPM_GetStatusFlags </td>
<td>(</td>
<td class="paramtype">TPM_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">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>TPM peripheral base address</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="group__tpm.html#ga5904f5ce37212040c0b7f3ca5d101a56" title="List of TPM flags. ">tpm_status_flags_t</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gad8ba1a1808320b2935f6760eda06e42b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void TPM_ClearStatusFlags </td>
<td>(</td>
<td class="paramtype">TPM_Type *&#160;</td>
<td class="paramname"><em>base</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>TPM peripheral base address </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="group__tpm.html#ga5904f5ce37212040c0b7f3ca5d101a56" title="List of TPM flags. ">tpm_status_flags_t</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0ec12ec457bf39ed2510d1054cbe1bbd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void TPM_StartTimer </td>
<td>(</td>
<td class="paramtype">TPM_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="group__tpm.html#ga768c5063c3ae5bcfc916c41d011d2a15">tpm_clock_source_t</a>&#160;</td>
<td class="paramname"><em>clockSource</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>TPM peripheral base address </td></tr>
<tr><td class="paramname">clockSource</td><td>TPM clock source; once clock source is set the counter will start running </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga48d6d431f773ca70883c565a75017e14"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void TPM_StopTimer </td>
<td>(</td>
<td class="paramtype">TPM_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">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>TPM peripheral base address </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 Freescale Semiconductor, Inc. All rights reserved.
</li>
</ul>
</div>
</body>
</html>