Files
KSDK_2.0_MK22FN512xxx12/docs/Kinetis SDK v.2.0 API Reference Manual/group__cmt.html
2016-08-09 18:06:35 +02:00

1240 lines
73 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.6"/>
<title>Kinetis SDK v.2.0 API Reference Manual: CMT: Carrier Modulator Transmitter Driver</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">Freescale Semiconductor, Inc.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<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__cmt.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="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">CMT: Carrier Modulator Transmitter Driver</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The carrier modulator transmitter (CMT) module provides the means to generate the protocol timing and carrier signals for a side variety of encoding schemes. The CMT incorporates hardware to off-load the critical and/or lengthy timing requirements associated with signal generation from the CPU. The KSDK provides a driver for the CMT module of the Kinetis devices.</p>
<h1><a class="anchor" id="CMTClkf"></a>
Clock formulas</h1>
<p>The CMT module has internal clock dividers. It was originally designed to be based on an 8 MHZ bus clock that could be divided by 1, 2, 4, or 8 according to the specification. To be compatible with higher bus frequency, the primary prescaler (PPS) was developed to receive a higher frequency and generate a clock enable signal called an intermediate frequency (IF). The IF must be approximately equal to 8MHz and works as a clock enable to the secondary prescaler. For the PPS, the prescaler is selected according to the bus clock to generate an intermediate clock approximately to 8 MHz and is selected as (bus_clock_hz/8000000). The secondary prescaler is the "cmtDivider". The clocks for the CMT module are listed below:</p>
<ol type="1">
<li>CMT clock frequency = bus_clock_Hz / (bus_clock_Hz / 8000000) / cmtDivider <br/>
</li>
<li>CMT carrier and generator frequency = CMT clock frequency / (highCount1 + lowCount1) <br/>
(In FSK mode, the second frequency = CMT clock frequency / (highCount2 + lowCount2)) <br/>
</li>
<li>CMT infrared output signal frequency <br/>
a. In Time and Baseband mode <br/>
CMT IRO signal mark time = (markCount + 1) / (CMT clock frequency / 8) <br/>
CMT IRO signal space time = spaceCount / (CMT clock frequency / 8) <br/>
b. In FSK mode <br/>
CMT IRO signal mark time = (markCount + 1) / CMT carrier and generator frequency <br/>
CMT IRO signal space time = spaceCount / CMT carrier and generator frequency <br/>
</li>
</ol>
<h1><a class="anchor" id="CMTTpyUC"></a>
Typical use case</h1>
<p>This is an example code to initialize the data:</p>
<div class="fragment"><div class="line"><a class="code" href="group__cmt.html#structcmt__config__t">cmt_config_t</a> config;</div>
<div class="line"><a class="code" href="group__cmt.html#structcmt__modulate__config__t">cmt_modulate_config_t</a> modulateConfig;</div>
<div class="line">uint32_t busClock;</div>
<div class="line"></div>
<div class="line"><span class="comment">// Gets the bus clock for the CMT module.</span></div>
<div class="line">busClock = <a class="code" href="group__mcglite.html#ga53acae220d651789bb505c53c73ecf2b">CLOCK_GetFreq</a>(<a class="code" href="group__mcglite.html#ggaf74854e9bcee544d7646c5bafdc00bd3a5d1ee238337b6aa2486a42feabdd5133">kCLOCK_BusClk</a>);</div>
<div class="line"></div>
<div class="line"><a class="code" href="group__cmt.html#ga83aac8831c386a5073c5cb6cbef1444b">CMT_GetDefaultConfig</a>(&amp;config);</div>
<div class="line"></div>
<div class="line"><span class="comment">// Interrupts is enabled to change the modulate mark and space count.</span></div>
<div class="line">config.<a class="code" href="group__cmt.html#a553a052d09a402149237b213d2f31191">isInterruptEnabled</a> = <span class="keyword">true</span>;</div>
<div class="line"><a class="code" href="group__cmt.html#gab067db14196df08dabbafa44939f8ccc">CMT_Init</a>(CMT, &amp;config, busClock);</div>
<div class="line"></div>
<div class="line"><span class="comment">// Prepares the modulate configuration for a user case.</span></div>
<div class="line">modulateConfig-&gt;<a class="code" href="group__cmt.html#a45d72b0b0c2cc5cb4d9b00cd18537421">highCount1</a> = ...;</div>
<div class="line">modulateConfig-&gt;<a class="code" href="group__cmt.html#a202b0a2ad3e79343d3387ad56c1930c8">lowCount1</a> = ...;</div>
<div class="line">modulateConfig-&gt;<a class="code" href="group__cmt.html#a280091cca15f952799612a8387736328">markCount</a> = ...;</div>
<div class="line">modulateConfig-&gt;<a class="code" href="group__cmt.html#aa5ca84db5bdb78edde333d1ae047bb35">spaceCount</a> = ...;</div>
<div class="line"></div>
<div class="line"><span class="comment">// Sets the time mode.</span></div>
<div class="line"><a class="code" href="group__cmt.html#gaec6c05a1cc1e4128b96409540dfde207">CMT_SetMode</a>(CMT, <a class="code" href="group__cmt.html#gga2c5f242ea2f66ef38f246d95735c0c11a789a9d82e971fef4e02fdb1f82c96348">kCMT_TimeMode</a>, &amp;modulateConfig);</div>
</div><!-- fragment --><p>This is an example IRQ handler to change the mark and space count to complete the data modulation:</p>
<div class="fragment"><div class="line"><span class="comment">// The data length has been transmitted.</span></div>
<div class="line">uint32_t g_CmtDataBitLen;</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">void</span> CMT_IRQHandler(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__cmt.html#gafb8839f8956c575edfc7bb07e439bdb9">CMT_GetStatusFlags</a>(CMT))</div>
<div class="line"> {</div>
<div class="line"> <span class="keywordflow">if</span> (g_CmtDataBitLen &lt;= CMT_TEST_DATA_BITS)</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// LSB.</span></div>
<div class="line"> <span class="keywordflow">if</span> (data &amp; ((uint32_t)0x01 &lt;&lt; g_CmtDataBitLen))</div>
<div class="line"> {</div>
<div class="line"> <a class="code" href="group__cmt.html#gaa151e314e014086b6f47c2150221a7a5">CMT_SetModulateMarkSpace</a>(CMT, g_CmtModDataOneMarkCount, g_CmtModDataOneSpaceCount);</div>
<div class="line"> }</div>
<div class="line"> <span class="keywordflow">else</span></div>
<div class="line"> {</div>
<div class="line"> <a class="code" href="group__cmt.html#gaa151e314e014086b6f47c2150221a7a5">CMT_SetModulateMarkSpace</a>(CMT, g_CmtModDataZeroMarkCount, g_CmtModDataZeroSpaceCount);</div>
<div class="line"> }</div>
<div class="line"> }</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="files"></a>
Files</h2></td></tr>
<tr class="memitem:fsl__cmt_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsl__cmt_8h.html">fsl_cmt.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:structcmt__modulate__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#structcmt__modulate__config__t">cmt_modulate_config_t</a></td></tr>
<tr class="memdesc:structcmt__modulate__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">CMT carrier generator and modulator configure structure. <a href="group__cmt.html#structcmt__modulate__config__t">More...</a><br/></td></tr>
<tr class="separator:structcmt__modulate__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structcmt__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#structcmt__config__t">cmt_config_t</a></td></tr>
<tr class="memdesc:structcmt__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">CMT basic configuration structure. <a href="group__cmt.html#structcmt__config__t">More...</a><br/></td></tr>
<tr class="separator:structcmt__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:ga2c5f242ea2f66ef38f246d95735c0c11"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga2c5f242ea2f66ef38f246d95735c0c11">cmt_mode_t</a> { <br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga2c5f242ea2f66ef38f246d95735c0c11a677f4c4a0ebc322a7af2c31cf6fd7245">kCMT_DirectIROCtl</a> = 0x00U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga2c5f242ea2f66ef38f246d95735c0c11a789a9d82e971fef4e02fdb1f82c96348">kCMT_TimeMode</a> = 0x01U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga2c5f242ea2f66ef38f246d95735c0c11a87447b54bf614f7f0535258eda8dd15e">kCMT_FSKMode</a> = 0x05U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga2c5f242ea2f66ef38f246d95735c0c11a7250169427845a03afbdc20d3b5ccb53">kCMT_BasebandMode</a> = 0x09U
<br/>
}</td></tr>
<tr class="memdesc:ga2c5f242ea2f66ef38f246d95735c0c11"><td class="mdescLeft">&#160;</td><td class="mdescRight">The modes of CMT. <a href="group__cmt.html#ga2c5f242ea2f66ef38f246d95735c0c11">More...</a><br/></td></tr>
<tr class="separator:ga2c5f242ea2f66ef38f246d95735c0c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10e6dbb444c934b11f1058506147673e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga10e6dbb444c934b11f1058506147673e">cmt_primary_clkdiv_t</a> { <br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea7f8ccf0f1405ae788aeddbce827ff203">kCMT_PrimaryClkDiv1</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea364268456aafc32f690f728a16154c49">kCMT_PrimaryClkDiv2</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea9eb3978c657a50642a64bbf961dcfbdc">kCMT_PrimaryClkDiv3</a> = 2U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea9c6904f4ae7082a351c5e7be8a3f35bd">kCMT_PrimaryClkDiv4</a> = 3U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673eaf31aefd53015424cefc2bc5f7be7611b">kCMT_PrimaryClkDiv5</a> = 4U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673eab9d5a8ce53e8f44347ca041a683d439e">kCMT_PrimaryClkDiv6</a> = 5U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea7a8b5587b6912013f857779c4b2c80f7">kCMT_PrimaryClkDiv7</a> = 6U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea5fc4c21a51aa5a8de80841856c4724e0">kCMT_PrimaryClkDiv8</a> = 7U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea3c289f9c62a618095254fa6cb38e8e36">kCMT_PrimaryClkDiv9</a> = 8U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea71bbb117f429c89ebb1fd0bd79eb2897">kCMT_PrimaryClkDiv10</a> = 9U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea5f1ebd2e9fe706d03c3c869b6a55c814">kCMT_PrimaryClkDiv11</a> = 10U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea223904470a3ed61c16b055c1e17d01db">kCMT_PrimaryClkDiv12</a> = 11U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673eabb87b9ed3819bc283ca70a9879e30147">kCMT_PrimaryClkDiv13</a> = 12U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea084c824f76b7cfbaa692d474a6649ef4">kCMT_PrimaryClkDiv14</a> = 13U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673ea0b0704690386eee7feef2307573a04c3">kCMT_PrimaryClkDiv15</a> = 14U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga10e6dbb444c934b11f1058506147673eaba7837db20af5fdbf02ce14439af2c97">kCMT_PrimaryClkDiv16</a> = 15U
<br/>
}</td></tr>
<tr class="memdesc:ga10e6dbb444c934b11f1058506147673e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The CMT clock divide primary prescaler. <a href="group__cmt.html#ga10e6dbb444c934b11f1058506147673e">More...</a><br/></td></tr>
<tr class="separator:ga10e6dbb444c934b11f1058506147673e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf87a952c9562d1983954d1bc5374d499"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gaf87a952c9562d1983954d1bc5374d499">cmt_second_clkdiv_t</a> { <br/>
&#160;&#160;<a class="el" href="group__cmt.html#ggaf87a952c9562d1983954d1bc5374d499a9fc437088c662c367aa5ee1cb168e6c9">kCMT_SecondClkDiv1</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#ggaf87a952c9562d1983954d1bc5374d499a319084280668b5266bb32ae1888254b2">kCMT_SecondClkDiv2</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#ggaf87a952c9562d1983954d1bc5374d499a2967b77ca11ccc48801ee6be91921c21">kCMT_SecondClkDiv4</a> = 2U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#ggaf87a952c9562d1983954d1bc5374d499ab6f6ce73b540f15ec27c45c520d7187e">kCMT_SecondClkDiv8</a> = 3U
<br/>
}</td></tr>
<tr class="memdesc:gaf87a952c9562d1983954d1bc5374d499"><td class="mdescLeft">&#160;</td><td class="mdescRight">The CMT clock divide secondary prescaler. <a href="group__cmt.html#gaf87a952c9562d1983954d1bc5374d499">More...</a><br/></td></tr>
<tr class="separator:gaf87a952c9562d1983954d1bc5374d499"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab520f43757cfdd3d454a4d00e3bb6f96"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gab520f43757cfdd3d454a4d00e3bb6f96">cmt_infrared_output_polarity_t</a> { <br/>
&#160;&#160;<a class="el" href="group__cmt.html#ggab520f43757cfdd3d454a4d00e3bb6f96acb0d99147a469eb6945374a772660de2">kCMT_IROActiveLow</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#ggab520f43757cfdd3d454a4d00e3bb6f96a6035da297f964a74fb3664d60b797c12">kCMT_IROActiveHigh</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:gab520f43757cfdd3d454a4d00e3bb6f96"><td class="mdescLeft">&#160;</td><td class="mdescRight">The CMT infrared output polarity. <a href="group__cmt.html#gab520f43757cfdd3d454a4d00e3bb6f96">More...</a><br/></td></tr>
<tr class="separator:gab520f43757cfdd3d454a4d00e3bb6f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2539ae1a596613f062b54e168decf05c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga2539ae1a596613f062b54e168decf05c">cmt_infrared_output_state_t</a> { <br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga2539ae1a596613f062b54e168decf05ca496c710abfd1d52d7954c81c48b5b4d4">kCMT_IROCtlLow</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__cmt.html#gga2539ae1a596613f062b54e168decf05cab02c5a90f7ff543ce6c66c47a320bece">kCMT_IROCtlHigh</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:ga2539ae1a596613f062b54e168decf05c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The CMT infrared output signal state control. <a href="group__cmt.html#ga2539ae1a596613f062b54e168decf05c">More...</a><br/></td></tr>
<tr class="separator:ga2539ae1a596613f062b54e168decf05c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28114fd29c11dd52d1a31bb9c797f72b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga28114fd29c11dd52d1a31bb9c797f72b">_cmt_interrupt_enable</a> { <a class="el" href="group__cmt.html#gga28114fd29c11dd52d1a31bb9c797f72ba0703c849705713437dbd9bcad78c55db">kCMT_EndOfCycleInterruptEnable</a> = CMT_MSC_EOCIE_MASK
}</td></tr>
<tr class="memdesc:ga28114fd29c11dd52d1a31bb9c797f72b"><td class="mdescLeft">&#160;</td><td class="mdescRight">CMT interrupt configuration structure, default settings all disabled. <a href="group__cmt.html#ga28114fd29c11dd52d1a31bb9c797f72b">More...</a><br/></td></tr>
<tr class="separator:ga28114fd29c11dd52d1a31bb9c797f72b"><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:ga43659014a014b4f25338506a9d97fc77"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga43659014a014b4f25338506a9d97fc77">FSL_CMT_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 0))</td></tr>
<tr class="memdesc:ga43659014a014b4f25338506a9d97fc77"><td class="mdescLeft">&#160;</td><td class="mdescRight">CMT driver version 2.0.0. <a href="#ga43659014a014b4f25338506a9d97fc77">More...</a><br/></td></tr>
<tr class="separator:ga43659014a014b4f25338506a9d97fc77"><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:ga83aac8831c386a5073c5cb6cbef1444b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga83aac8831c386a5073c5cb6cbef1444b">CMT_GetDefaultConfig</a> (<a class="el" href="group__cmt.html#structcmt__config__t">cmt_config_t</a> *config)</td></tr>
<tr class="memdesc:ga83aac8831c386a5073c5cb6cbef1444b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the CMT default configuration structure. <a href="#ga83aac8831c386a5073c5cb6cbef1444b">More...</a><br/></td></tr>
<tr class="separator:ga83aac8831c386a5073c5cb6cbef1444b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab067db14196df08dabbafa44939f8ccc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gab067db14196df08dabbafa44939f8ccc">CMT_Init</a> (CMT_Type *base, const <a class="el" href="group__cmt.html#structcmt__config__t">cmt_config_t</a> *config, uint32_t busClock_Hz)</td></tr>
<tr class="memdesc:gab067db14196df08dabbafa44939f8ccc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the CMT module. <a href="#gab067db14196df08dabbafa44939f8ccc">More...</a><br/></td></tr>
<tr class="separator:gab067db14196df08dabbafa44939f8ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb92e7c53f2028fc632b91350349ad37"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gadb92e7c53f2028fc632b91350349ad37">CMT_Deinit</a> (CMT_Type *base)</td></tr>
<tr class="memdesc:gadb92e7c53f2028fc632b91350349ad37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the CMT module and gate control. <a href="#gadb92e7c53f2028fc632b91350349ad37">More...</a><br/></td></tr>
<tr class="separator:gadb92e7c53f2028fc632b91350349ad37"><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>
Basic Control Operations</h2></td></tr>
<tr class="memitem:gaec6c05a1cc1e4128b96409540dfde207"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gaec6c05a1cc1e4128b96409540dfde207">CMT_SetMode</a> (CMT_Type *base, <a class="el" href="group__cmt.html#ga2c5f242ea2f66ef38f246d95735c0c11">cmt_mode_t</a> mode, <a class="el" href="group__cmt.html#structcmt__modulate__config__t">cmt_modulate_config_t</a> *modulateConfig)</td></tr>
<tr class="memdesc:gaec6c05a1cc1e4128b96409540dfde207"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selects the mode for CMT. <a href="#gaec6c05a1cc1e4128b96409540dfde207">More...</a><br/></td></tr>
<tr class="separator:gaec6c05a1cc1e4128b96409540dfde207"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e1d34079d3ffa8ff362717567231563"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__cmt.html#ga2c5f242ea2f66ef38f246d95735c0c11">cmt_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga6e1d34079d3ffa8ff362717567231563">CMT_GetMode</a> (CMT_Type *base)</td></tr>
<tr class="memdesc:ga6e1d34079d3ffa8ff362717567231563"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the mode of the CMT module. <a href="#ga6e1d34079d3ffa8ff362717567231563">More...</a><br/></td></tr>
<tr class="separator:ga6e1d34079d3ffa8ff362717567231563"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8acd671b6d833bda621d00ae527f975b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga8acd671b6d833bda621d00ae527f975b">CMT_GetCMTFrequency</a> (CMT_Type *base, uint32_t busClock_Hz)</td></tr>
<tr class="memdesc:ga8acd671b6d833bda621d00ae527f975b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the actual CMT clock frequency. <a href="#ga8acd671b6d833bda621d00ae527f975b">More...</a><br/></td></tr>
<tr class="separator:ga8acd671b6d833bda621d00ae527f975b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfbdf186741d404ed5f1d63bfba56431"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gabfbdf186741d404ed5f1d63bfba56431">CMT_SetCarrirGenerateCountOne</a> (CMT_Type *base, uint32_t highCount, uint32_t lowCount)</td></tr>
<tr class="memdesc:gabfbdf186741d404ed5f1d63bfba56431"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the primary data set for the CMT carrier generator counter. <a href="#gabfbdf186741d404ed5f1d63bfba56431">More...</a><br/></td></tr>
<tr class="separator:gabfbdf186741d404ed5f1d63bfba56431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab4572a5a685ea02272d269ab1bddfa43"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gab4572a5a685ea02272d269ab1bddfa43">CMT_SetCarrirGenerateCountTwo</a> (CMT_Type *base, uint32_t highCount, uint32_t lowCount)</td></tr>
<tr class="memdesc:gab4572a5a685ea02272d269ab1bddfa43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the secondary data set for the CMT carrier generator counter. <a href="#gab4572a5a685ea02272d269ab1bddfa43">More...</a><br/></td></tr>
<tr class="separator:gab4572a5a685ea02272d269ab1bddfa43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa151e314e014086b6f47c2150221a7a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gaa151e314e014086b6f47c2150221a7a5">CMT_SetModulateMarkSpace</a> (CMT_Type *base, uint32_t markCount, uint32_t spaceCount)</td></tr>
<tr class="memdesc:gaa151e314e014086b6f47c2150221a7a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the modulation mark and space time period for the CMT modulator. <a href="#gaa151e314e014086b6f47c2150221a7a5">More...</a><br/></td></tr>
<tr class="separator:gaa151e314e014086b6f47c2150221a7a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga704f5bf72c55fb1d7e9c45c20dc10d21"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga704f5bf72c55fb1d7e9c45c20dc10d21">CMT_EnableExtendedSpace</a> (CMT_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga704f5bf72c55fb1d7e9c45c20dc10d21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the extended space operation. <a href="#ga704f5bf72c55fb1d7e9c45c20dc10d21">More...</a><br/></td></tr>
<tr class="separator:ga704f5bf72c55fb1d7e9c45c20dc10d21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60ee6b28e870c4620b555002afac8c83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga60ee6b28e870c4620b555002afac8c83">CMT_SetIroState</a> (CMT_Type *base, <a class="el" href="group__cmt.html#ga2539ae1a596613f062b54e168decf05c">cmt_infrared_output_state_t</a> state)</td></tr>
<tr class="memdesc:ga60ee6b28e870c4620b555002afac8c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets IRO - infrared output signal state. <a href="#ga60ee6b28e870c4620b555002afac8c83">More...</a><br/></td></tr>
<tr class="separator:ga60ee6b28e870c4620b555002afac8c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c78774d6c9eead3e051d1a50a2b16d3"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#ga7c78774d6c9eead3e051d1a50a2b16d3">CMT_EnableInterrupts</a> (CMT_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga7c78774d6c9eead3e051d1a50a2b16d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the CMT interrupt. <a href="#ga7c78774d6c9eead3e051d1a50a2b16d3">More...</a><br/></td></tr>
<tr class="separator:ga7c78774d6c9eead3e051d1a50a2b16d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3c96b9600b731f44672c4e061cb0719"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gad3c96b9600b731f44672c4e061cb0719">CMT_DisableInterrupts</a> (CMT_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:gad3c96b9600b731f44672c4e061cb0719"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the CMT interrupt. <a href="#gad3c96b9600b731f44672c4e061cb0719">More...</a><br/></td></tr>
<tr class="separator:gad3c96b9600b731f44672c4e061cb0719"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb8839f8956c575edfc7bb07e439bdb9"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#gafb8839f8956c575edfc7bb07e439bdb9">CMT_GetStatusFlags</a> (CMT_Type *base)</td></tr>
<tr class="memdesc:gafb8839f8956c575edfc7bb07e439bdb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the end of the cycle status flag. <a href="#gafb8839f8956c575edfc7bb07e439bdb9">More...</a><br/></td></tr>
<tr class="separator:gafb8839f8956c575edfc7bb07e439bdb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structcmt__modulate__config__t" id="structcmt__modulate__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct cmt_modulate_config_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:a45d72b0b0c2cc5cb4d9b00cd18537421"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#a45d72b0b0c2cc5cb4d9b00cd18537421">highCount1</a></td></tr>
<tr class="memdesc:a45d72b0b0c2cc5cb4d9b00cd18537421"><td class="mdescLeft">&#160;</td><td class="mdescRight">The high time for carrier generator first register. <a href="#a45d72b0b0c2cc5cb4d9b00cd18537421">More...</a><br/></td></tr>
<tr class="separator:a45d72b0b0c2cc5cb4d9b00cd18537421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a202b0a2ad3e79343d3387ad56c1930c8"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#a202b0a2ad3e79343d3387ad56c1930c8">lowCount1</a></td></tr>
<tr class="memdesc:a202b0a2ad3e79343d3387ad56c1930c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The low time for carrier generator first register. <a href="#a202b0a2ad3e79343d3387ad56c1930c8">More...</a><br/></td></tr>
<tr class="separator:a202b0a2ad3e79343d3387ad56c1930c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d732614134d5d5e8322060395dafd16"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#a2d732614134d5d5e8322060395dafd16">highCount2</a></td></tr>
<tr class="memdesc:a2d732614134d5d5e8322060395dafd16"><td class="mdescLeft">&#160;</td><td class="mdescRight">The high time for carrier generator second register for FSK mode. <a href="#a2d732614134d5d5e8322060395dafd16">More...</a><br/></td></tr>
<tr class="separator:a2d732614134d5d5e8322060395dafd16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6145ac2362d2ea399bf9fbc4b843f19"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#aa6145ac2362d2ea399bf9fbc4b843f19">lowCount2</a></td></tr>
<tr class="memdesc:aa6145ac2362d2ea399bf9fbc4b843f19"><td class="mdescLeft">&#160;</td><td class="mdescRight">The low time for carrier generator second register for FSK mode. <a href="#aa6145ac2362d2ea399bf9fbc4b843f19">More...</a><br/></td></tr>
<tr class="separator:aa6145ac2362d2ea399bf9fbc4b843f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a280091cca15f952799612a8387736328"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#a280091cca15f952799612a8387736328">markCount</a></td></tr>
<tr class="memdesc:a280091cca15f952799612a8387736328"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mark time for the modulator gate. <a href="#a280091cca15f952799612a8387736328">More...</a><br/></td></tr>
<tr class="separator:a280091cca15f952799612a8387736328"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5ca84db5bdb78edde333d1ae047bb35"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#aa5ca84db5bdb78edde333d1ae047bb35">spaceCount</a></td></tr>
<tr class="memdesc:aa5ca84db5bdb78edde333d1ae047bb35"><td class="mdescLeft">&#160;</td><td class="mdescRight">The space time for the modulator gate. <a href="#aa5ca84db5bdb78edde333d1ae047bb35">More...</a><br/></td></tr>
<tr class="separator:aa5ca84db5bdb78edde333d1ae047bb35"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a45d72b0b0c2cc5cb4d9b00cd18537421"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t cmt_modulate_config_t::highCount1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a202b0a2ad3e79343d3387ad56c1930c8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t cmt_modulate_config_t::lowCount1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2d732614134d5d5e8322060395dafd16"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t cmt_modulate_config_t::highCount2</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa6145ac2362d2ea399bf9fbc4b843f19"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t cmt_modulate_config_t::lowCount2</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a280091cca15f952799612a8387736328"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t cmt_modulate_config_t::markCount</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa5ca84db5bdb78edde333d1ae047bb35"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t cmt_modulate_config_t::spaceCount</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structcmt__config__t" id="structcmt__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct cmt_config_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:a553a052d09a402149237b213d2f31191"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#a553a052d09a402149237b213d2f31191">isInterruptEnabled</a></td></tr>
<tr class="memdesc:a553a052d09a402149237b213d2f31191"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer interrupt 0-disable, 1-enable. <a href="#a553a052d09a402149237b213d2f31191">More...</a><br/></td></tr>
<tr class="separator:a553a052d09a402149237b213d2f31191"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2728f2ef6063369177dc61e58df69dd2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#a2728f2ef6063369177dc61e58df69dd2">isIroEnabled</a></td></tr>
<tr class="memdesc:a2728f2ef6063369177dc61e58df69dd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The IRO output 0-disabled, 1-enabled. <a href="#a2728f2ef6063369177dc61e58df69dd2">More...</a><br/></td></tr>
<tr class="separator:a2728f2ef6063369177dc61e58df69dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e86df9e031cd34d95147c7c782182bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__cmt.html#gab520f43757cfdd3d454a4d00e3bb6f96">cmt_infrared_output_polarity_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#a8e86df9e031cd34d95147c7c782182bb">iroPolarity</a></td></tr>
<tr class="memdesc:a8e86df9e031cd34d95147c7c782182bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The IRO polarity. <a href="#a8e86df9e031cd34d95147c7c782182bb">More...</a><br/></td></tr>
<tr class="separator:a8e86df9e031cd34d95147c7c782182bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ea10ba862221c4a49ba1fbbdc982d19"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__cmt.html#gaf87a952c9562d1983954d1bc5374d499">cmt_second_clkdiv_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmt.html#a5ea10ba862221c4a49ba1fbbdc982d19">divider</a></td></tr>
<tr class="memdesc:a5ea10ba862221c4a49ba1fbbdc982d19"><td class="mdescLeft">&#160;</td><td class="mdescRight">The CMT clock divide prescaler. <a href="#a5ea10ba862221c4a49ba1fbbdc982d19">More...</a><br/></td></tr>
<tr class="separator:a5ea10ba862221c4a49ba1fbbdc982d19"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a553a052d09a402149237b213d2f31191"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cmt_config_t::isInterruptEnabled</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2728f2ef6063369177dc61e58df69dd2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cmt_config_t::isIroEnabled</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8e86df9e031cd34d95147c7c782182bb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__cmt.html#gab520f43757cfdd3d454a4d00e3bb6f96">cmt_infrared_output_polarity_t</a> cmt_config_t::iroPolarity</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5ea10ba862221c4a49ba1fbbdc982d19"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__cmt.html#gaf87a952c9562d1983954d1bc5374d499">cmt_second_clkdiv_t</a> cmt_config_t::divider</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga43659014a014b4f25338506a9d97fc77"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_CMT_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="group__flash__driver.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 0, 0))</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga2c5f242ea2f66ef38f246d95735c0c11"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmt.html#ga2c5f242ea2f66ef38f246d95735c0c11">cmt_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="gga2c5f242ea2f66ef38f246d95735c0c11a677f4c4a0ebc322a7af2c31cf6fd7245"></a>kCMT_DirectIROCtl</em>&#160;</td><td class="fielddoc">
<p>Carrier modulator is disabled and the IRO signal is directly in software control. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2c5f242ea2f66ef38f246d95735c0c11a789a9d82e971fef4e02fdb1f82c96348"></a>kCMT_TimeMode</em>&#160;</td><td class="fielddoc">
<p>Carrier modulator is enabled in time mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2c5f242ea2f66ef38f246d95735c0c11a87447b54bf614f7f0535258eda8dd15e"></a>kCMT_FSKMode</em>&#160;</td><td class="fielddoc">
<p>Carrier modulator is enabled in FSK mode. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2c5f242ea2f66ef38f246d95735c0c11a7250169427845a03afbdc20d3b5ccb53"></a>kCMT_BasebandMode</em>&#160;</td><td class="fielddoc">
<p>Carrier modulator is enabled in baseband mode. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga10e6dbb444c934b11f1058506147673e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmt.html#ga10e6dbb444c934b11f1058506147673e">cmt_primary_clkdiv_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The primary clock divider is used to divider the bus clock to get the intermediate frequency to approximately equal to 8 MHZ. When the bus clock is 8 MHZ, set primary prescaler to "kCMT_PrimaryClkDiv1". </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea7f8ccf0f1405ae788aeddbce827ff203"></a>kCMT_PrimaryClkDiv1</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea364268456aafc32f690f728a16154c49"></a>kCMT_PrimaryClkDiv2</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea9eb3978c657a50642a64bbf961dcfbdc"></a>kCMT_PrimaryClkDiv3</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 3. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea9c6904f4ae7082a351c5e7be8a3f35bd"></a>kCMT_PrimaryClkDiv4</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 4. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673eaf31aefd53015424cefc2bc5f7be7611b"></a>kCMT_PrimaryClkDiv5</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 5. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673eab9d5a8ce53e8f44347ca041a683d439e"></a>kCMT_PrimaryClkDiv6</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 6. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea7a8b5587b6912013f857779c4b2c80f7"></a>kCMT_PrimaryClkDiv7</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 7. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea5fc4c21a51aa5a8de80841856c4724e0"></a>kCMT_PrimaryClkDiv8</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 8. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea3c289f9c62a618095254fa6cb38e8e36"></a>kCMT_PrimaryClkDiv9</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 9. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea71bbb117f429c89ebb1fd0bd79eb2897"></a>kCMT_PrimaryClkDiv10</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 10. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea5f1ebd2e9fe706d03c3c869b6a55c814"></a>kCMT_PrimaryClkDiv11</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 11. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea223904470a3ed61c16b055c1e17d01db"></a>kCMT_PrimaryClkDiv12</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 12. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673eabb87b9ed3819bc283ca70a9879e30147"></a>kCMT_PrimaryClkDiv13</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 13. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea084c824f76b7cfbaa692d474a6649ef4"></a>kCMT_PrimaryClkDiv14</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 14. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673ea0b0704690386eee7feef2307573a04c3"></a>kCMT_PrimaryClkDiv15</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 15. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga10e6dbb444c934b11f1058506147673eaba7837db20af5fdbf02ce14439af2c97"></a>kCMT_PrimaryClkDiv16</em>&#160;</td><td class="fielddoc">
<p>The intermediate frequency is the bus clock divided by 16. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gaf87a952c9562d1983954d1bc5374d499"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmt.html#gaf87a952c9562d1983954d1bc5374d499">cmt_second_clkdiv_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The second prescaler can be used to divide the 8 MHZ CMT clock by 1, 2, 4, or 8 according to the specification. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaf87a952c9562d1983954d1bc5374d499a9fc437088c662c367aa5ee1cb168e6c9"></a>kCMT_SecondClkDiv1</em>&#160;</td><td class="fielddoc">
<p>The CMT clock is the intermediate frequency frequency divided by 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaf87a952c9562d1983954d1bc5374d499a319084280668b5266bb32ae1888254b2"></a>kCMT_SecondClkDiv2</em>&#160;</td><td class="fielddoc">
<p>The CMT clock is the intermediate frequency frequency divided by 2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaf87a952c9562d1983954d1bc5374d499a2967b77ca11ccc48801ee6be91921c21"></a>kCMT_SecondClkDiv4</em>&#160;</td><td class="fielddoc">
<p>The CMT clock is the intermediate frequency frequency divided by 4. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaf87a952c9562d1983954d1bc5374d499ab6f6ce73b540f15ec27c45c520d7187e"></a>kCMT_SecondClkDiv8</em>&#160;</td><td class="fielddoc">
<p>The CMT clock is the intermediate frequency frequency divided by 8. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gab520f43757cfdd3d454a4d00e3bb6f96"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmt.html#gab520f43757cfdd3d454a4d00e3bb6f96">cmt_infrared_output_polarity_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="ggab520f43757cfdd3d454a4d00e3bb6f96acb0d99147a469eb6945374a772660de2"></a>kCMT_IROActiveLow</em>&#160;</td><td class="fielddoc">
<p>The CMT infrared output signal polarity is active-low. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab520f43757cfdd3d454a4d00e3bb6f96a6035da297f964a74fb3664d60b797c12"></a>kCMT_IROActiveHigh</em>&#160;</td><td class="fielddoc">
<p>The CMT infrared output signal polarity is active-high. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga2539ae1a596613f062b54e168decf05c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmt.html#ga2539ae1a596613f062b54e168decf05c">cmt_infrared_output_state_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="gga2539ae1a596613f062b54e168decf05ca496c710abfd1d52d7954c81c48b5b4d4"></a>kCMT_IROCtlLow</em>&#160;</td><td class="fielddoc">
<p>The CMT Infrared output signal state is controlled to low. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2539ae1a596613f062b54e168decf05cab02c5a90f7ff543ce6c66c47a320bece"></a>kCMT_IROCtlHigh</em>&#160;</td><td class="fielddoc">
<p>The CMT Infrared output signal state is controlled to high. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga28114fd29c11dd52d1a31bb9c797f72b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmt.html#ga28114fd29c11dd52d1a31bb9c797f72b">_cmt_interrupt_enable</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This structure contains the settings for all of the CMT interrupt configurations. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga28114fd29c11dd52d1a31bb9c797f72ba0703c849705713437dbd9bcad78c55db"></a>kCMT_EndOfCycleInterruptEnable</em>&#160;</td><td class="fielddoc">
<p>CMT end of cycle interrupt. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga83aac8831c386a5073c5cb6cbef1444b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMT_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__cmt.html#structcmt__config__t">cmt_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The purpose of this API is to get the default configuration structure for the <a class="el" href="group__cmt.html#gab067db14196df08dabbafa44939f8ccc" title="Initializes the CMT module. ">CMT_Init()</a>. Use the initialized structure unchanged in <a class="el" href="group__cmt.html#gab067db14196df08dabbafa44939f8ccc" title="Initializes the CMT module. ">CMT_Init()</a>, or modify some fields of the structure before calling the <a class="el" href="group__cmt.html#gab067db14196df08dabbafa44939f8ccc" title="Initializes the CMT module. ">CMT_Init()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>The CMT configuration structure pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab067db14196df08dabbafa44939f8ccc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMT_Init </td>
<td>(</td>
<td class="paramtype">CMT_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__cmt.html#structcmt__config__t">cmt_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>busClock_Hz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function ungates the module clock and sets the CMT internal clock, interrupt, and infrared output signal for the CMT module.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMT peripheral base address. </td></tr>
<tr><td class="paramname">config</td><td>The CMT basic configuration structure. </td></tr>
<tr><td class="paramname">busClock_Hz</td><td>The CMT module input clock - bus clock frequency. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gadb92e7c53f2028fc632b91350349ad37"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMT_Deinit </td>
<td>(</td>
<td class="paramtype">CMT_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function disables CMT modulator, interrupts, and gates the CMT clock control. CMT_Init must be called to use the CMT again.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMT peripheral base address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaec6c05a1cc1e4128b96409540dfde207"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMT_SetMode </td>
<td>(</td>
<td class="paramtype">CMT_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__cmt.html#ga2c5f242ea2f66ef38f246d95735c0c11">cmt_mode_t</a>&#160;</td>
<td class="paramname"><em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__cmt.html#structcmt__modulate__config__t">cmt_modulate_config_t</a> *&#160;</td>
<td class="paramname"><em>modulateConfig</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>CMT peripheral base address. </td></tr>
<tr><td class="paramname">mode</td><td>The CMT feature mode enumeration. See "cmt_mode_t". </td></tr>
<tr><td class="paramname">modulateConfig</td><td>The carrier generation and modulator configuration. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6e1d34079d3ffa8ff362717567231563"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__cmt.html#ga2c5f242ea2f66ef38f246d95735c0c11">cmt_mode_t</a> CMT_GetMode </td>
<td>(</td>
<td class="paramtype">CMT_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>CMT peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The CMT mode. kCMT_DirectIROCtl Carrier modulator is disabled, the IRO signal is directly in software control. kCMT_TimeMode Carrier modulator is enabled in time mode. kCMT_FSKMode Carrier modulator is enabled in FSK mode. kCMT_BasebandMode Carrier modulator is enabled in baseband mode. </dd></dl>
</div>
</div>
<a class="anchor" id="ga8acd671b6d833bda621d00ae527f975b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t CMT_GetCMTFrequency </td>
<td>(</td>
<td class="paramtype">CMT_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>busClock_Hz</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>CMT peripheral base address. </td></tr>
<tr><td class="paramname">busClock_Hz</td><td>CMT module input clock - bus clock frequency. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The CMT clock frequency. </dd></dl>
</div>
</div>
<a class="anchor" id="gabfbdf186741d404ed5f1d63bfba56431"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void CMT_SetCarrirGenerateCountOne </td>
<td>(</td>
<td class="paramtype">CMT_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>highCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>lowCount</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 sets the high time and low time of the primary data set for the CMT carrier generator counter to control the period and the duty cycle of the output carrier signal. If the CMT clock period is Tcmt, The period of the carrier generator signal equals (highCount + lowCount) * Tcmt. The duty cycle equals highCount / (highCount + lowCount).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMT peripheral base address. </td></tr>
<tr><td class="paramname">highCount</td><td>The number of CMT clocks for carrier generator signal high time, integer in the range of 1 ~ 0xFF. </td></tr>
<tr><td class="paramname">lowCount</td><td>The number of CMT clocks for carrier generator signal low time, integer in the range of 1 ~ 0xFF. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab4572a5a685ea02272d269ab1bddfa43"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void CMT_SetCarrirGenerateCountTwo </td>
<td>(</td>
<td class="paramtype">CMT_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>highCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>lowCount</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 is used for FSK mode setting the high time and low time of the secondary data set CMT carrier generator counter to control the period and the duty cycle of the output carrier signal. If the CMT clock period is Tcmt, The period of the carrier generator signal equals (highCount + lowCount) * Tcmt. The duty cycle equals highCount / (highCount + lowCount).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMT peripheral base address. </td></tr>
<tr><td class="paramname">highCount</td><td>The number of CMT clocks for carrier generator signal high time, integer in the range of 1 ~ 0xFF. </td></tr>
<tr><td class="paramname">lowCount</td><td>The number of CMT clocks for carrier generator signal low time, integer in the range of 1 ~ 0xFF. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa151e314e014086b6f47c2150221a7a5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMT_SetModulateMarkSpace </td>
<td>(</td>
<td class="paramtype">CMT_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>markCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>spaceCount</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the mark time period of the CMT modulator counter to control the mark time of the output modulated signal from the carrier generator output signal. If the CMT clock frequency is Fcmt and the carrier out signal frequency is fcg:</p>
<ul>
<li>In Time and Baseband mode: The mark period of the generated signal equals (markCount + 1) / (Fcmt/8). The space period of the generated signal equals spaceCount / (Fcmt/8).</li>
<li>In FSK mode: The mark period of the generated signal equals (markCount + 1)/fcg. The space period of the generated signal equals spaceCount / fcg.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Base address for current CMT instance. </td></tr>
<tr><td class="paramname">markCount</td><td>The number of clock period for CMT modulator signal mark period, in the range of 0 ~ 0xFFFF. </td></tr>
<tr><td class="paramname">spaceCount</td><td>The number of clock period for CMT modulator signal space period, in the range of the 0 ~ 0xFFFF. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga704f5bf72c55fb1d7e9c45c20dc10d21"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void CMT_EnableExtendedSpace </td>
<td>(</td>
<td class="paramtype">CMT_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</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 is used to make the space period longer for time, baseband, and FSK modes.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMT peripheral base address. </td></tr>
<tr><td class="paramname">enable</td><td>True enable the extended space, false disable the extended space. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga60ee6b28e870c4620b555002afac8c83"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMT_SetIroState </td>
<td>(</td>
<td class="paramtype">CMT_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__cmt.html#ga2539ae1a596613f062b54e168decf05c">cmt_infrared_output_state_t</a>&#160;</td>
<td class="paramname"><em>state</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Changes the states of the IRO signal when the kCMT_DirectIROMode mode is set and the IRO signal is enabled.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMT peripheral base address. </td></tr>
<tr><td class="paramname">state</td><td>The control of the IRO signal. See "cmt_infrared_output_state_t" </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7c78774d6c9eead3e051d1a50a2b16d3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void CMT_EnableInterrupts </td>
<td>(</td>
<td class="paramtype">CMT_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">
<p>This function enables the CMT interrupts according to the provided maskIf enabled. The CMT only has the end of the cycle interrupt - an interrupt occurs at the end of the modulator cycle. This interrupt provides a means for the user to reload the new mark/space values into the CMT modulator data registers and verify the modulator mark and space. For example, to enable the end of cycle, do the following: </p>
<div class="fragment"><div class="line"><a class="code" href="group__cmt.html#ga7c78774d6c9eead3e051d1a50a2b16d3">CMT_EnableInterrupts</a>(CMT, <a class="code" href="group__cmt.html#gga28114fd29c11dd52d1a31bb9c797f72ba0703c849705713437dbd9bcad78c55db">kCMT_EndOfCycleInterruptEnable</a>);</div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMT peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>The interrupts to enable. Logical OR of <a class="el" href="group__cmt.html#ga28114fd29c11dd52d1a31bb9c797f72b">_cmt_interrupt_enable</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad3c96b9600b731f44672c4e061cb0719"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void CMT_DisableInterrupts </td>
<td>(</td>
<td class="paramtype">CMT_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">
<p>This function disables the CMT interrupts according to the provided maskIf enabled. The CMT only has the end of the cycle interrupt. For example, to disable the end of cycle, do the following: </p>
<div class="fragment"><div class="line"><a class="code" href="group__cmt.html#gad3c96b9600b731f44672c4e061cb0719">CMT_DisableInterrupts</a>(CMT, <a class="code" href="group__cmt.html#gga28114fd29c11dd52d1a31bb9c797f72ba0703c849705713437dbd9bcad78c55db">kCMT_EndOfCycleInterruptEnable</a>);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMT peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>The interrupts to enable. Logical OR of <a class="el" href="group__cmt.html#ga28114fd29c11dd52d1a31bb9c797f72b">_cmt_interrupt_enable</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gafb8839f8956c575edfc7bb07e439bdb9"></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 CMT_GetStatusFlags </td>
<td>(</td>
<td class="paramtype">CMT_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>The flag is set:</p>
<ul>
<li>When the modulator is not currently active and carrier and modulator are set to start the initial CMT transmission.</li>
<li>At the end of each modulation cycle when the counter is reloaded and the carrier and modulator are enabled. <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMT peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Current status of the end of cycle status flag <ul>
<li>non-zero: End-of-cycle has occurred. </li>
<li>zero: End-of-cycle has not yet occurred since the flag last cleared. </li>
</ul>
</dd></dl>
</li>
</ul>
</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>