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

986 lines
56 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: CMP: Analog Comparator 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__cmp.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">CMP: Analog Comparator Driver</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The KSDK provides a peripheral driver for the Analog Comparator (CMP) module of Kinetis devices.</p>
<h1>Overview</h1>
<p>The CMP driver is a basic comparator with advanced features. The APIs for the basic comparator enable the CMP as a general comparator, which compares the two voltage of the two input channels and creates the output of the comparator result. The APIs for advanced features can be used as the plug-in function based on the basic comparator. They can process the comparator's output with hardware support.</p>
<h1><a class="anchor" id="CMPTpyUC"></a>
Typical use case</h1>
<h2><a class="anchor" id="CMPPolConfig"></a>
Polling Configuration</h2>
<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"> <a class="code" href="group__cmp.html#structcmp__config__t">cmp_config_t</a> mCmpConfigStruct;</div>
<div class="line"> <a class="code" href="group__cmp.html#structcmp__dac__config__t">cmp_dac_config_t</a> mCmpDacConfigStruct;</div>
<div class="line"></div>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line"></div>
<div class="line"> <span class="comment">// Configures the comparator.</span></div>
<div class="line"> <a class="code" href="group__cmp.html#ga6f62245ac63801ce51bfaf9188c9bc99">CMP_Init</a>(DEMO_CMP_INSTANCE);</div>
<div class="line"> <a class="code" href="group__cmp.html#gae3f987e58dece632e66665514c01e109">CMP_GetDefaultConfig</a>(&amp;mCmpConfigStruct);</div>
<div class="line"> CMP_Configure(DEMO_CMP_INSTANCE, &amp;mCmpConfigStruct);</div>
<div class="line"></div>
<div class="line"> <span class="comment">// Configures the DAC channel.</span></div>
<div class="line"> mCmpDacConfigStruct.<a class="code" href="group__cmp.html#a01753d40f590d16345dd45abefb8bbe6">referenceVoltageSource</a> = <a class="code" href="group__cmp.html#gga2f0d85949fd79dbb3b10fa0fde34f329a4debdbdd1f9e6ade8b7ef646332251ca">kCMP_VrefSourceVin2</a>; <span class="comment">// VCC.</span></div>
<div class="line"> mCmpDacConfigStruct.<a class="code" href="group__cmp.html#aa44061486be24d6276a2aae0283c8153">DACValue</a> = 32U; <span class="comment">// Half voltage of logic high level.</span></div>
<div class="line"> <a class="code" href="group__cmp.html#ga61434c1828d7ef35a349eef6ec37d0c2">CMP_SetDACConfig</a>(DEMO_CMP_INSTANCE, &amp;mCmpDacConfigStruct);</div>
<div class="line"> <a class="code" href="group__cmp.html#ga7021cf6a3df2d233781d9763d4562260">CMP_SetInputChannels</a>(DEMO_CMP_INSTANCE, DEMO_CMP_USER_CHANNEL, DEMO_CMP_DAC_CHANNEL);</div>
<div class="line"></div>
<div class="line"> <span class="keywordflow">while</span> (1)</div>
<div class="line"> {</div>
<div class="line"> <span class="keywordflow">if</span> (0U != (<a class="code" href="group__cmp.html#gga948ec869580a67bebaff6f2e0f3e42c8a9b4382c01c2497d4a8510fe8cd009def">kCMP_OutputAssertEventFlag</a> &amp; <a class="code" href="group__cmp.html#ga383d33c2a6b879aabfe2e5edf283ee3a">CMP_GetStatusFlags</a>(DEMO_CMP_INSTANCE)))</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// Do something.</span></div>
<div class="line"> }</div>
<div class="line"> <span class="keywordflow">else</span></div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// Do something.</span></div>
<div class="line"> }</div>
<div class="line"> }</div>
<div class="line">}</div>
</div><!-- fragment --><h2><a class="anchor" id="CMPIntConfig"></a>
Interrupt Configuration</h2>
<div class="fragment"><div class="line"><span class="keyword">volatile</span> uint32_t g_CmpFlags = 0U;</div>
<div class="line"></div>
<div class="line"><span class="comment">// ...</span></div>
<div class="line"></div>
<div class="line"><span class="keywordtype">void</span> DEMO_CMP_IRQ_HANDLER_FUNC(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line"> g_CmpFlags = <a class="code" href="group__cmp.html#ga383d33c2a6b879aabfe2e5edf283ee3a">CMP_GetStatusFlags</a>(DEMO_CMP_INSTANCE);</div>
<div class="line"> <a class="code" href="group__cmp.html#gae9ff11446780bc7a7e76a66660a5072a">CMP_ClearStatusFlags</a>(DEMO_CMP_INSTANCE, <a class="code" href="group__cmp.html#gga948ec869580a67bebaff6f2e0f3e42c8aa646eb5f296db0906e89322ca6ec0da1">kCMP_OutputRisingEventFlag</a> | <a class="code" href="group__cmp.html#gga948ec869580a67bebaff6f2e0f3e42c8a1c9bd8b6e0825ad465a47c60a3dad473">kCMP_OutputFallingEventFlag</a>);</div>
<div class="line"> <span class="keywordflow">if</span> (0U != (g_CmpFlags &amp; <a class="code" href="group__cmp.html#gga948ec869580a67bebaff6f2e0f3e42c8aa646eb5f296db0906e89322ca6ec0da1">kCMP_OutputRisingEventFlag</a>))</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// Do something.</span></div>
<div class="line"> }</div>
<div class="line"> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (0U != (g_CmpFlags &amp; <a class="code" href="group__cmp.html#gga948ec869580a67bebaff6f2e0f3e42c8a1c9bd8b6e0825ad465a47c60a3dad473">kCMP_OutputFallingEventFlag</a>))</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// Do something.</span></div>
<div class="line"> }</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">int</span> main(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line"> <a class="code" href="group__cmp.html#structcmp__config__t">cmp_config_t</a> mCmpConfigStruct;</div>
<div class="line"> <a class="code" href="group__cmp.html#structcmp__dac__config__t">cmp_dac_config_t</a> mCmpDacConfigStruct;</div>
<div class="line"></div>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line"> EnableIRQ(DEMO_CMP_IRQ_ID);</div>
<div class="line"> <span class="comment">// ...</span></div>
<div class="line"></div>
<div class="line"> <span class="comment">// Configures the comparator.</span></div>
<div class="line"> <a class="code" href="group__cmp.html#ga6f62245ac63801ce51bfaf9188c9bc99">CMP_Init</a>(DEMO_CMP_INSTANCE);</div>
<div class="line"> <a class="code" href="group__cmp.html#gae3f987e58dece632e66665514c01e109">CMP_GetDefaultConfig</a>(&amp;mCmpConfigStruct);</div>
<div class="line"> CMP_Configure(DEMO_CMP_INSTANCE, &amp;mCmpConfigStruct);</div>
<div class="line"></div>
<div class="line"> <span class="comment">// Configures the DAC channel.</span></div>
<div class="line"> mCmpDacConfigStruct.<a class="code" href="group__cmp.html#a01753d40f590d16345dd45abefb8bbe6">referenceVoltageSource</a> = <a class="code" href="group__cmp.html#gga2f0d85949fd79dbb3b10fa0fde34f329a4debdbdd1f9e6ade8b7ef646332251ca">kCMP_VrefSourceVin2</a>; <span class="comment">// VCC.</span></div>
<div class="line"> mCmpDacConfigStruct.<a class="code" href="group__cmp.html#aa44061486be24d6276a2aae0283c8153">DACValue</a> = 32U; <span class="comment">// Half voltage of logic high level.</span></div>
<div class="line"> <a class="code" href="group__cmp.html#ga61434c1828d7ef35a349eef6ec37d0c2">CMP_SetDACConfig</a>(DEMO_CMP_INSTANCE, &amp;mCmpDacConfigStruct);</div>
<div class="line"> <a class="code" href="group__cmp.html#ga7021cf6a3df2d233781d9763d4562260">CMP_SetInputChannels</a>(DEMO_CMP_INSTANCE, DEMO_CMP_USER_CHANNEL, DEMO_CMP_DAC_CHANNEL);</div>
<div class="line"></div>
<div class="line"> <span class="comment">// Enables the output rising and falling interrupts.</span></div>
<div class="line"> <a class="code" href="group__cmp.html#ga9e7dc0f35a19a4b10894d0eca547befb">CMP_EnableInterrupts</a>(DEMO_CMP_INSTANCE, <a class="code" href="group__cmp.html#gga985bb411310dc841bb432072599dceb5a0ff51a957f1d4f252f6857731c0b5ca1">kCMP_OutputRisingInterruptEnable</a> | <a class="code" href="group__cmp.html#gga985bb411310dc841bb432072599dceb5a8976b76c2ef49c93106d9f561ca666d2">kCMP_OutputFallingInterruptEnable</a>);</div>
<div class="line"></div>
<div class="line"> <span class="keywordflow">while</span> (1)</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__cmp_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsl__cmp_8h.html">fsl_cmp.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:structcmp__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#structcmp__config__t">cmp_config_t</a></td></tr>
<tr class="memdesc:structcmp__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the comparator. <a href="group__cmp.html#structcmp__config__t">More...</a><br/></td></tr>
<tr class="separator:structcmp__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structcmp__filter__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#structcmp__filter__config__t">cmp_filter_config_t</a></td></tr>
<tr class="memdesc:structcmp__filter__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the filter. <a href="group__cmp.html#structcmp__filter__config__t">More...</a><br/></td></tr>
<tr class="separator:structcmp__filter__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structcmp__dac__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#structcmp__dac__config__t">cmp_dac_config_t</a></td></tr>
<tr class="memdesc:structcmp__dac__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the internal DAC. <a href="group__cmp.html#structcmp__dac__config__t">More...</a><br/></td></tr>
<tr class="separator:structcmp__dac__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:ga985bb411310dc841bb432072599dceb5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga985bb411310dc841bb432072599dceb5">_cmp_interrupt_enable</a> { <br/>
&#160;&#160;<a class="el" href="group__cmp.html#gga985bb411310dc841bb432072599dceb5a0ff51a957f1d4f252f6857731c0b5ca1">kCMP_OutputRisingInterruptEnable</a> = CMP_SCR_IER_MASK,
<br/>
&#160;&#160;<a class="el" href="group__cmp.html#gga985bb411310dc841bb432072599dceb5a8976b76c2ef49c93106d9f561ca666d2">kCMP_OutputFallingInterruptEnable</a> = CMP_SCR_IEF_MASK
<br/>
}</td></tr>
<tr class="memdesc:ga985bb411310dc841bb432072599dceb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt enable/disable mask. <a href="group__cmp.html#ga985bb411310dc841bb432072599dceb5">More...</a><br/></td></tr>
<tr class="separator:ga985bb411310dc841bb432072599dceb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga948ec869580a67bebaff6f2e0f3e42c8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga948ec869580a67bebaff6f2e0f3e42c8">_cmp_status_flags</a> { <br/>
&#160;&#160;<a class="el" href="group__cmp.html#gga948ec869580a67bebaff6f2e0f3e42c8aa646eb5f296db0906e89322ca6ec0da1">kCMP_OutputRisingEventFlag</a> = CMP_SCR_CFR_MASK,
<br/>
&#160;&#160;<a class="el" href="group__cmp.html#gga948ec869580a67bebaff6f2e0f3e42c8a1c9bd8b6e0825ad465a47c60a3dad473">kCMP_OutputFallingEventFlag</a> = CMP_SCR_CFF_MASK,
<br/>
&#160;&#160;<a class="el" href="group__cmp.html#gga948ec869580a67bebaff6f2e0f3e42c8a9b4382c01c2497d4a8510fe8cd009def">kCMP_OutputAssertEventFlag</a> = CMP_SCR_COUT_MASK
<br/>
}</td></tr>
<tr class="memdesc:ga948ec869580a67bebaff6f2e0f3e42c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Status flags' mask. <a href="group__cmp.html#ga948ec869580a67bebaff6f2e0f3e42c8">More...</a><br/></td></tr>
<tr class="separator:ga948ec869580a67bebaff6f2e0f3e42c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab375044e3121d8cf7d56a528f075b4c9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#gab375044e3121d8cf7d56a528f075b4c9">cmp_hysteresis_mode_t</a> { <br/>
&#160;&#160;<a class="el" href="group__cmp.html#ggab375044e3121d8cf7d56a528f075b4c9a204ac01271f075b8f56785c3777b61ba">kCMP_HysteresisLevel0</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__cmp.html#ggab375044e3121d8cf7d56a528f075b4c9a1f34db50168b964cf653f7ee8b8a3afb">kCMP_HysteresisLevel1</a> = 1U,
<br/>
&#160;&#160;<a class="el" href="group__cmp.html#ggab375044e3121d8cf7d56a528f075b4c9a5e86245ea1f88cdcc54482707c7dc2d2">kCMP_HysteresisLevel2</a> = 2U,
<br/>
&#160;&#160;<a class="el" href="group__cmp.html#ggab375044e3121d8cf7d56a528f075b4c9a3923e973b3f6a0f2b6d0ffd271b3735d">kCMP_HysteresisLevel3</a> = 3U
<br/>
}</td></tr>
<tr class="memdesc:gab375044e3121d8cf7d56a528f075b4c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">CMP Hysteresis mode. <a href="group__cmp.html#gab375044e3121d8cf7d56a528f075b4c9">More...</a><br/></td></tr>
<tr class="separator:gab375044e3121d8cf7d56a528f075b4c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f0d85949fd79dbb3b10fa0fde34f329"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga2f0d85949fd79dbb3b10fa0fde34f329">cmp_reference_voltage_source_t</a> { <br/>
&#160;&#160;<a class="el" href="group__cmp.html#gga2f0d85949fd79dbb3b10fa0fde34f329ac567b56a364a1bc2816bfe68a4696b95">kCMP_VrefSourceVin1</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="group__cmp.html#gga2f0d85949fd79dbb3b10fa0fde34f329a4debdbdd1f9e6ade8b7ef646332251ca">kCMP_VrefSourceVin2</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:ga2f0d85949fd79dbb3b10fa0fde34f329"><td class="mdescLeft">&#160;</td><td class="mdescRight">CMP Voltage Reference source. <a href="group__cmp.html#ga2f0d85949fd79dbb3b10fa0fde34f329">More...</a><br/></td></tr>
<tr class="separator:ga2f0d85949fd79dbb3b10fa0fde34f329"><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:ga8b6413b07d768817e75758d8a6ce612b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga8b6413b07d768817e75758d8a6ce612b">FSL_CMP_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:ga8b6413b07d768817e75758d8a6ce612b"><td class="mdescLeft">&#160;</td><td class="mdescRight">CMP driver version 2.0.0. <a href="#ga8b6413b07d768817e75758d8a6ce612b">More...</a><br/></td></tr>
<tr class="separator:ga8b6413b07d768817e75758d8a6ce612b"><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</h2></td></tr>
<tr class="memitem:ga6f62245ac63801ce51bfaf9188c9bc99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga6f62245ac63801ce51bfaf9188c9bc99">CMP_Init</a> (CMP_Type *base, const <a class="el" href="group__cmp.html#structcmp__config__t">cmp_config_t</a> *config)</td></tr>
<tr class="memdesc:ga6f62245ac63801ce51bfaf9188c9bc99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the CMP. <a href="#ga6f62245ac63801ce51bfaf9188c9bc99">More...</a><br/></td></tr>
<tr class="separator:ga6f62245ac63801ce51bfaf9188c9bc99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b6fb1ead2c6dd4b13246b630a91f4d8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga3b6fb1ead2c6dd4b13246b630a91f4d8">CMP_Deinit</a> (CMP_Type *base)</td></tr>
<tr class="memdesc:ga3b6fb1ead2c6dd4b13246b630a91f4d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">De-initializes the CMP module. <a href="#ga3b6fb1ead2c6dd4b13246b630a91f4d8">More...</a><br/></td></tr>
<tr class="separator:ga3b6fb1ead2c6dd4b13246b630a91f4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga265b23b5d173fc389289aeac99f94402"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga265b23b5d173fc389289aeac99f94402">CMP_Enable</a> (CMP_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga265b23b5d173fc389289aeac99f94402"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the CMP module. <a href="#ga265b23b5d173fc389289aeac99f94402">More...</a><br/></td></tr>
<tr class="separator:ga265b23b5d173fc389289aeac99f94402"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae3f987e58dece632e66665514c01e109"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#gae3f987e58dece632e66665514c01e109">CMP_GetDefaultConfig</a> (<a class="el" href="group__cmp.html#structcmp__config__t">cmp_config_t</a> *config)</td></tr>
<tr class="memdesc:gae3f987e58dece632e66665514c01e109"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the CMP user configuration structure. <a href="#gae3f987e58dece632e66665514c01e109">More...</a><br/></td></tr>
<tr class="separator:gae3f987e58dece632e66665514c01e109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7021cf6a3df2d233781d9763d4562260"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga7021cf6a3df2d233781d9763d4562260">CMP_SetInputChannels</a> (CMP_Type *base, uint8_t positiveChannel, uint8_t negativeChannel)</td></tr>
<tr class="memdesc:ga7021cf6a3df2d233781d9763d4562260"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the input channels for the comparator. <a href="#ga7021cf6a3df2d233781d9763d4562260">More...</a><br/></td></tr>
<tr class="separator:ga7021cf6a3df2d233781d9763d4562260"><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>
Advanced Features</h2></td></tr>
<tr class="memitem:ga57bade782c390ef4b805bde6198fa611"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga57bade782c390ef4b805bde6198fa611">CMP_SetFilterConfig</a> (CMP_Type *base, const <a class="el" href="group__cmp.html#structcmp__filter__config__t">cmp_filter_config_t</a> *config)</td></tr>
<tr class="memdesc:ga57bade782c390ef4b805bde6198fa611"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the filter. <a href="#ga57bade782c390ef4b805bde6198fa611">More...</a><br/></td></tr>
<tr class="separator:ga57bade782c390ef4b805bde6198fa611"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61434c1828d7ef35a349eef6ec37d0c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga61434c1828d7ef35a349eef6ec37d0c2">CMP_SetDACConfig</a> (CMP_Type *base, const <a class="el" href="group__cmp.html#structcmp__dac__config__t">cmp_dac_config_t</a> *config)</td></tr>
<tr class="memdesc:ga61434c1828d7ef35a349eef6ec37d0c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures the internal DAC. <a href="#ga61434c1828d7ef35a349eef6ec37d0c2">More...</a><br/></td></tr>
<tr class="separator:ga61434c1828d7ef35a349eef6ec37d0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e7dc0f35a19a4b10894d0eca547befb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga9e7dc0f35a19a4b10894d0eca547befb">CMP_EnableInterrupts</a> (CMP_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga9e7dc0f35a19a4b10894d0eca547befb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the interrupts. <a href="#ga9e7dc0f35a19a4b10894d0eca547befb">More...</a><br/></td></tr>
<tr class="separator:ga9e7dc0f35a19a4b10894d0eca547befb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10b5e9acf21bc30c754b76dc9afd0db6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga10b5e9acf21bc30c754b76dc9afd0db6">CMP_DisableInterrupts</a> (CMP_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga10b5e9acf21bc30c754b76dc9afd0db6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the interrupts. <a href="#ga10b5e9acf21bc30c754b76dc9afd0db6">More...</a><br/></td></tr>
<tr class="separator:ga10b5e9acf21bc30c754b76dc9afd0db6"><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>
Results</h2></td></tr>
<tr class="memitem:ga383d33c2a6b879aabfe2e5edf283ee3a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ga383d33c2a6b879aabfe2e5edf283ee3a">CMP_GetStatusFlags</a> (CMP_Type *base)</td></tr>
<tr class="memdesc:ga383d33c2a6b879aabfe2e5edf283ee3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the status flags. <a href="#ga383d33c2a6b879aabfe2e5edf283ee3a">More...</a><br/></td></tr>
<tr class="separator:ga383d33c2a6b879aabfe2e5edf283ee3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9ff11446780bc7a7e76a66660a5072a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#gae9ff11446780bc7a7e76a66660a5072a">CMP_ClearStatusFlags</a> (CMP_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:gae9ff11446780bc7a7e76a66660a5072a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the status flags. <a href="#gae9ff11446780bc7a7e76a66660a5072a">More...</a><br/></td></tr>
<tr class="separator:gae9ff11446780bc7a7e76a66660a5072a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structcmp__config__t" id="structcmp__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct cmp_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:a87248f8e354fbe0310fa9968d2437db3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#a87248f8e354fbe0310fa9968d2437db3">enableCmp</a></td></tr>
<tr class="memdesc:a87248f8e354fbe0310fa9968d2437db3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable the CMP module. <a href="#a87248f8e354fbe0310fa9968d2437db3">More...</a><br/></td></tr>
<tr class="separator:a87248f8e354fbe0310fa9968d2437db3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4e3d61d0cbbf97ef31d633ea731eb58"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__cmp.html#gab375044e3121d8cf7d56a528f075b4c9">cmp_hysteresis_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#aa4e3d61d0cbbf97ef31d633ea731eb58">hysteresisMode</a></td></tr>
<tr class="memdesc:aa4e3d61d0cbbf97ef31d633ea731eb58"><td class="mdescLeft">&#160;</td><td class="mdescRight">CMP Hysteresis mode. <a href="#aa4e3d61d0cbbf97ef31d633ea731eb58">More...</a><br/></td></tr>
<tr class="separator:aa4e3d61d0cbbf97ef31d633ea731eb58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0449a799c02a2b534609c576509af9ee"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#a0449a799c02a2b534609c576509af9ee">enableHighSpeed</a></td></tr>
<tr class="memdesc:a0449a799c02a2b534609c576509af9ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable High Speed (HS) comparison mode. <a href="#a0449a799c02a2b534609c576509af9ee">More...</a><br/></td></tr>
<tr class="separator:a0449a799c02a2b534609c576509af9ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e1cfbd954c1ce419a47a0f495b011ed"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#a5e1cfbd954c1ce419a47a0f495b011ed">enableInvertOutput</a></td></tr>
<tr class="memdesc:a5e1cfbd954c1ce419a47a0f495b011ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable inverted comparator output. <a href="#a5e1cfbd954c1ce419a47a0f495b011ed">More...</a><br/></td></tr>
<tr class="separator:a5e1cfbd954c1ce419a47a0f495b011ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe5cb349fa86a64a7fa195655d8be65b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#afe5cb349fa86a64a7fa195655d8be65b">useUnfilteredOutput</a></td></tr>
<tr class="memdesc:afe5cb349fa86a64a7fa195655d8be65b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set compare output(COUT) to equal COUTA(true) or COUT(false). <a href="#afe5cb349fa86a64a7fa195655d8be65b">More...</a><br/></td></tr>
<tr class="separator:afe5cb349fa86a64a7fa195655d8be65b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dee30cf50e5df9902360f800d0bbe69"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#a2dee30cf50e5df9902360f800d0bbe69">enablePinOut</a></td></tr>
<tr class="memdesc:a2dee30cf50e5df9902360f800d0bbe69"><td class="mdescLeft">&#160;</td><td class="mdescRight">The comparator output is available on the associated pin. <a href="#a2dee30cf50e5df9902360f800d0bbe69">More...</a><br/></td></tr>
<tr class="separator:a2dee30cf50e5df9902360f800d0bbe69"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a87248f8e354fbe0310fa9968d2437db3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cmp_config_t::enableCmp</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa4e3d61d0cbbf97ef31d633ea731eb58"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__cmp.html#gab375044e3121d8cf7d56a528f075b4c9">cmp_hysteresis_mode_t</a> cmp_config_t::hysteresisMode</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0449a799c02a2b534609c576509af9ee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cmp_config_t::enableHighSpeed</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5e1cfbd954c1ce419a47a0f495b011ed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cmp_config_t::enableInvertOutput</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afe5cb349fa86a64a7fa195655d8be65b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cmp_config_t::useUnfilteredOutput</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2dee30cf50e5df9902360f800d0bbe69"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cmp_config_t::enablePinOut</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="structcmp__filter__config__t" id="structcmp__filter__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct cmp_filter_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:a1ee3e17eae70b6efa023d51367c9d798"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#a1ee3e17eae70b6efa023d51367c9d798">filterCount</a></td></tr>
<tr class="memdesc:a1ee3e17eae70b6efa023d51367c9d798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter Sample Count. <a href="#a1ee3e17eae70b6efa023d51367c9d798">More...</a><br/></td></tr>
<tr class="separator:a1ee3e17eae70b6efa023d51367c9d798"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac56e3c13889d8eee7c595a58718c8964"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#ac56e3c13889d8eee7c595a58718c8964">filterPeriod</a></td></tr>
<tr class="memdesc:ac56e3c13889d8eee7c595a58718c8964"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter Sample Period. <a href="#ac56e3c13889d8eee7c595a58718c8964">More...</a><br/></td></tr>
<tr class="separator:ac56e3c13889d8eee7c595a58718c8964"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a1ee3e17eae70b6efa023d51367c9d798"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t cmp_filter_config_t::filterCount</td>
</tr>
</table>
</div><div class="memdoc">
<p>Available range is 1-7, 0 would cause the filter disabled. </p>
</div>
</div>
<a class="anchor" id="ac56e3c13889d8eee7c595a58718c8964"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t cmp_filter_config_t::filterPeriod</td>
</tr>
</table>
</div><div class="memdoc">
<p>The divider to bus clock. Available range is 0-255. </p>
</div>
</div>
</div>
</div>
<a name="structcmp__dac__config__t" id="structcmp__dac__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct cmp_dac_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:a01753d40f590d16345dd45abefb8bbe6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__cmp.html#ga2f0d85949fd79dbb3b10fa0fde34f329">cmp_reference_voltage_source_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#a01753d40f590d16345dd45abefb8bbe6">referenceVoltageSource</a></td></tr>
<tr class="memdesc:a01753d40f590d16345dd45abefb8bbe6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supply voltage reference source. <a href="#a01753d40f590d16345dd45abefb8bbe6">More...</a><br/></td></tr>
<tr class="separator:a01753d40f590d16345dd45abefb8bbe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa44061486be24d6276a2aae0283c8153"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cmp.html#aa44061486be24d6276a2aae0283c8153">DACValue</a></td></tr>
<tr class="memdesc:aa44061486be24d6276a2aae0283c8153"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value for DAC Output Voltage. <a href="#aa44061486be24d6276a2aae0283c8153">More...</a><br/></td></tr>
<tr class="separator:aa44061486be24d6276a2aae0283c8153"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a01753d40f590d16345dd45abefb8bbe6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__cmp.html#ga2f0d85949fd79dbb3b10fa0fde34f329">cmp_reference_voltage_source_t</a> cmp_dac_config_t::referenceVoltageSource</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa44061486be24d6276a2aae0283c8153"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t cmp_dac_config_t::DACValue</td>
</tr>
</table>
</div><div class="memdoc">
<p>Available range is 0-63. </p>
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga8b6413b07d768817e75758d8a6ce612b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_CMP_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="ga985bb411310dc841bb432072599dceb5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmp.html#ga985bb411310dc841bb432072599dceb5">_cmp_interrupt_enable</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga985bb411310dc841bb432072599dceb5a0ff51a957f1d4f252f6857731c0b5ca1"></a>kCMP_OutputRisingInterruptEnable</em>&#160;</td><td class="fielddoc">
<p>Comparator interrupt enable rising. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga985bb411310dc841bb432072599dceb5a8976b76c2ef49c93106d9f561ca666d2"></a>kCMP_OutputFallingInterruptEnable</em>&#160;</td><td class="fielddoc">
<p>Comparator interrupt enable falling. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga948ec869580a67bebaff6f2e0f3e42c8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmp.html#ga948ec869580a67bebaff6f2e0f3e42c8">_cmp_status_flags</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga948ec869580a67bebaff6f2e0f3e42c8aa646eb5f296db0906e89322ca6ec0da1"></a>kCMP_OutputRisingEventFlag</em>&#160;</td><td class="fielddoc">
<p>Rising-edge on compare output has occurred. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga948ec869580a67bebaff6f2e0f3e42c8a1c9bd8b6e0825ad465a47c60a3dad473"></a>kCMP_OutputFallingEventFlag</em>&#160;</td><td class="fielddoc">
<p>Falling-edge on compare output has occurred. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga948ec869580a67bebaff6f2e0f3e42c8a9b4382c01c2497d4a8510fe8cd009def"></a>kCMP_OutputAssertEventFlag</em>&#160;</td><td class="fielddoc">
<p>Return the current value of the analog comparator output. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gab375044e3121d8cf7d56a528f075b4c9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmp.html#gab375044e3121d8cf7d56a528f075b4c9">cmp_hysteresis_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="ggab375044e3121d8cf7d56a528f075b4c9a204ac01271f075b8f56785c3777b61ba"></a>kCMP_HysteresisLevel0</em>&#160;</td><td class="fielddoc">
<p>Hysteresis level 0. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab375044e3121d8cf7d56a528f075b4c9a1f34db50168b964cf653f7ee8b8a3afb"></a>kCMP_HysteresisLevel1</em>&#160;</td><td class="fielddoc">
<p>Hysteresis level 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab375044e3121d8cf7d56a528f075b4c9a5e86245ea1f88cdcc54482707c7dc2d2"></a>kCMP_HysteresisLevel2</em>&#160;</td><td class="fielddoc">
<p>Hysteresis level 2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggab375044e3121d8cf7d56a528f075b4c9a3923e973b3f6a0f2b6d0ffd271b3735d"></a>kCMP_HysteresisLevel3</em>&#160;</td><td class="fielddoc">
<p>Hysteresis level 3. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga2f0d85949fd79dbb3b10fa0fde34f329"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__cmp.html#ga2f0d85949fd79dbb3b10fa0fde34f329">cmp_reference_voltage_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="gga2f0d85949fd79dbb3b10fa0fde34f329ac567b56a364a1bc2816bfe68a4696b95"></a>kCMP_VrefSourceVin1</em>&#160;</td><td class="fielddoc">
<p>Vin1 is selected as resistor ladder network supply reference Vin. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2f0d85949fd79dbb3b10fa0fde34f329a4debdbdd1f9e6ade8b7ef646332251ca"></a>kCMP_VrefSourceVin2</em>&#160;</td><td class="fielddoc">
<p>Vin2 is selected as resistor ladder network supply reference Vin. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga6f62245ac63801ce51bfaf9188c9bc99"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMP_Init </td>
<td>(</td>
<td class="paramtype">CMP_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__cmp.html#structcmp__config__t">cmp_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">
<p>This function initializes the CMP module. The operations included are:</p>
<ul>
<li>Enabling the clock for CMP module.</li>
<li>Configuring the comparator.</li>
<li>Enabling the CMP module. Note: For some devices, multiple CMP instance share the same clock gate. In this case, to enable the clock for any instance enables all the CMPs. Check the chip reference manual for the clock assignment of the CMP.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMP peripheral base address. </td></tr>
<tr><td class="paramname">config</td><td>Pointer to configuration structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3b6fb1ead2c6dd4b13246b630a91f4d8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMP_Deinit </td>
<td>(</td>
<td class="paramtype">CMP_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function de-initializes the CMP module. The operations included are:</p>
<ul>
<li>Disabling the CMP module.</li>
<li>Disabling the clock for CMP module.</li>
</ul>
<p>This function disables the clock for the CMP. Note: For some devices, multiple CMP instance shares the same clock gate. In this case, before disabling the clock for the CMP, ensure that all the CMP instances are not used.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMP peripheral base address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga265b23b5d173fc389289aeac99f94402"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void CMP_Enable </td>
<td>(</td>
<td class="paramtype">CMP_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">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMP peripheral base address. </td></tr>
<tr><td class="paramname">enable</td><td>Enable the module or not. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae3f987e58dece632e66665514c01e109"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMP_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__cmp.html#structcmp__config__t">cmp_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the user configure structure to these default values: </p>
<div class="fragment"><div class="line">config-&gt;enableCmp = <span class="keyword">true</span>;</div>
<div class="line">config-&gt;hysteresisMode = <a class="code" href="group__cmp.html#ggab375044e3121d8cf7d56a528f075b4c9a204ac01271f075b8f56785c3777b61ba">kCMP_HysteresisLevel0</a>;</div>
<div class="line">config-&gt;enableHighSpeed = <span class="keyword">false</span>;</div>
<div class="line">config-&gt;enableInvertOutput = <span class="keyword">false</span>;</div>
<div class="line">config-&gt;useUnfilteredOutput = <span class="keyword">false</span>;</div>
<div class="line">config-&gt;enablePinOut = <span class="keyword">false</span>;</div>
<div class="line">config-&gt;enableTriggerMode = <span class="keyword">false</span>;</div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to the configuration structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7021cf6a3df2d233781d9763d4562260"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMP_SetInputChannels </td>
<td>(</td>
<td class="paramtype">CMP_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>positiveChannel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>negativeChannel</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the input channels for the comparator. Note that two input channels cannot be set as same in the application. When the user selects the same input from the analog mux to the positive and negative port, the comparator is disabled automatically.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMP peripheral base address. </td></tr>
<tr><td class="paramname">positiveChannel</td><td>Positive side input channel number. Available range is 0-7. </td></tr>
<tr><td class="paramname">negativeChannel</td><td>Negative side input channel number. Available range is 0-7. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga57bade782c390ef4b805bde6198fa611"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMP_SetFilterConfig </td>
<td>(</td>
<td class="paramtype">CMP_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__cmp.html#structcmp__filter__config__t">cmp_filter_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="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMP peripheral base address. </td></tr>
<tr><td class="paramname">config</td><td>Pointer to configuration structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga61434c1828d7ef35a349eef6ec37d0c2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMP_SetDACConfig </td>
<td>(</td>
<td class="paramtype">CMP_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__cmp.html#structcmp__dac__config__t">cmp_dac_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="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>CMP peripheral base address. </td></tr>
<tr><td class="paramname">config</td><td>Pointer to configuration structure. "NULL" is for disabling the feature. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9e7dc0f35a19a4b10894d0eca547befb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMP_EnableInterrupts </td>
<td>(</td>
<td class="paramtype">CMP_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>CMP peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>Mask value for interrupts. See "_cmp_interrupt_enable". </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga10b5e9acf21bc30c754b76dc9afd0db6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMP_DisableInterrupts </td>
<td>(</td>
<td class="paramtype">CMP_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>CMP peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>Mask value for interrupts. See "_cmp_interrupt_enable". </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga383d33c2a6b879aabfe2e5edf283ee3a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t CMP_GetStatusFlags </td>
<td>(</td>
<td class="paramtype">CMP_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>CMP peripheral base address.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Mask value for the asserted flags. See "_cmp_status_flags". </dd></dl>
</div>
</div>
<a class="anchor" id="gae9ff11446780bc7a7e76a66660a5072a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void CMP_ClearStatusFlags </td>
<td>(</td>
<td class="paramtype">CMP_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>CMP peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>Mask value for the flags. See "_cmp_status_flags". </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>