Files
TweinStein/Documentation/html/group___a_d_c.html
2026-06-12 02:55:04 -07:00

825 lines
40 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>RTOS_MSPM0: ADC</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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.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="RobotSensors.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">RTOS_MSPM0
&#160;<span id="projectnumber">1.1</span>
</div>
<div id="projectbrief">ECE445M starter code</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">ADC</div> </div>
</div><!--header-->
<div class="contents">
<p>Analog to digital conversion.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:_a_d_c_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_a_d_c_8h.html">ADC.h</a></td></tr>
<tr class="memdesc:_a_d_c_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC0 and/or ADC1. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:_a_d_c_timer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_a_d_c_timer_8h.html">ADCTimer.h</a></td></tr>
<tr class="memdesc:_a_d_c_timer_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC0. <br /></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="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaca29e70cf7d5f2386de2db4875ce1be7"><td class="memItemLeft" align="right" valign="top"><a id="gaca29e70cf7d5f2386de2db4875ce1be7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gaca29e70cf7d5f2386de2db4875ce1be7">ADCVREF_INT</a>&#160;&#160;&#160;0x200</td></tr>
<tr class="memdesc:gaca29e70cf7d5f2386de2db4875ce1be7"><td class="mdescLeft">&#160;</td><td class="mdescRight">using ADCVREF_INT means choose internal 2.5V reference for accuracy <br /></td></tr>
<tr class="separator:gaca29e70cf7d5f2386de2db4875ce1be7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a05da91d2e9a78c7cc97d9891a7db3a"><td class="memItemLeft" align="right" valign="top"><a id="ga0a05da91d2e9a78c7cc97d9891a7db3a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga0a05da91d2e9a78c7cc97d9891a7db3a">ADCVREF_EXT</a>&#160;&#160;&#160;0x100</td></tr>
<tr class="memdesc:ga0a05da91d2e9a78c7cc97d9891a7db3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">using ADCVREF_EXT means choose external reference not tested <br /></td></tr>
<tr class="separator:ga0a05da91d2e9a78c7cc97d9891a7db3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga205c4d7f564b9d5f50299e259a005b0e"><td class="memItemLeft" align="right" valign="top"><a id="ga205c4d7f564b9d5f50299e259a005b0e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga205c4d7f564b9d5f50299e259a005b0e">ADCVREF_VDDA</a>&#160;&#160;&#160;0x000</td></tr>
<tr class="memdesc:ga205c4d7f564b9d5f50299e259a005b0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">using ADCVREF_VDDA means choose power line 3.3V reference for 0 to 3.3V range <br /></td></tr>
<tr class="separator:ga205c4d7f564b9d5f50299e259a005b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca29e70cf7d5f2386de2db4875ce1be7"><td class="memItemLeft" align="right" valign="top"><a id="gaca29e70cf7d5f2386de2db4875ce1be7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gaca29e70cf7d5f2386de2db4875ce1be7">ADCVREF_INT</a>&#160;&#160;&#160;0x200</td></tr>
<tr class="memdesc:gaca29e70cf7d5f2386de2db4875ce1be7"><td class="mdescLeft">&#160;</td><td class="mdescRight">using ADCVREF_INT means choose internal 2.5V reference for accuracy <br /></td></tr>
<tr class="separator:gaca29e70cf7d5f2386de2db4875ce1be7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a05da91d2e9a78c7cc97d9891a7db3a"><td class="memItemLeft" align="right" valign="top"><a id="ga0a05da91d2e9a78c7cc97d9891a7db3a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga0a05da91d2e9a78c7cc97d9891a7db3a">ADCVREF_EXT</a>&#160;&#160;&#160;0x100</td></tr>
<tr class="memdesc:ga0a05da91d2e9a78c7cc97d9891a7db3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">using ADCVREF_EXT means choose external reference not tested <br /></td></tr>
<tr class="separator:ga0a05da91d2e9a78c7cc97d9891a7db3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga205c4d7f564b9d5f50299e259a005b0e"><td class="memItemLeft" align="right" valign="top"><a id="ga205c4d7f564b9d5f50299e259a005b0e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga205c4d7f564b9d5f50299e259a005b0e">ADCVREF_VDDA</a>&#160;&#160;&#160;0x000</td></tr>
<tr class="memdesc:ga205c4d7f564b9d5f50299e259a005b0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">using ADCVREF_VDDA means choose power line 3.3V reference for 0 to 3.3V range. This is the mode we use in ECE319K <br /></td></tr>
<tr class="separator:ga205c4d7f564b9d5f50299e259a005b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaa2ee4b39fc4e60ee49b2da4e28b30925"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gaa2ee4b39fc4e60ee49b2da4e28b30925">ADC0_Init</a> (uint32_t channel, uint32_t reference)</td></tr>
<tr class="memdesc:gaa2ee4b39fc4e60ee49b2da4e28b30925"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC0. <a href="group___a_d_c.html#gaa2ee4b39fc4e60ee49b2da4e28b30925">More...</a><br /></td></tr>
<tr class="separator:gaa2ee4b39fc4e60ee49b2da4e28b30925"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga75363bb5d11c6dc15b829bf5cf619ebd"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga75363bb5d11c6dc15b829bf5cf619ebd">ADC0_In</a> (void)</td></tr>
<tr class="memdesc:ga75363bb5d11c6dc15b829bf5cf619ebd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trigger ADC measurement and wait for result. <a href="group___a_d_c.html#ga75363bb5d11c6dc15b829bf5cf619ebd">More...</a><br /></td></tr>
<tr class="separator:ga75363bb5d11c6dc15b829bf5cf619ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49340f14952348fe1529710cc0d8a245"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga49340f14952348fe1529710cc0d8a245">ADC1_Init</a> (uint32_t channel, uint32_t reference)</td></tr>
<tr class="memdesc:ga49340f14952348fe1529710cc0d8a245"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC0. <a href="group___a_d_c.html#ga49340f14952348fe1529710cc0d8a245">More...</a><br /></td></tr>
<tr class="separator:ga49340f14952348fe1529710cc0d8a245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef98b62b7e3ce18d5094c28fbf5d6af2"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gaef98b62b7e3ce18d5094c28fbf5d6af2">ADC1_In</a> (void)</td></tr>
<tr class="memdesc:gaef98b62b7e3ce18d5094c28fbf5d6af2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trigger ADC measurement and wait for result. <a href="group___a_d_c.html#gaef98b62b7e3ce18d5094c28fbf5d6af2">More...</a><br /></td></tr>
<tr class="separator:gaef98b62b7e3ce18d5094c28fbf5d6af2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1e0b7cd7493bc9892347b921854eb0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gab1e0b7cd7493bc9892347b921854eb0f">ADC_Init</a> (ADC12_Regs *adc12, uint32_t channel, uint32_t reference)</td></tr>
<tr class="memdesc:gab1e0b7cd7493bc9892347b921854eb0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC0. <a href="group___a_d_c.html#gab1e0b7cd7493bc9892347b921854eb0f">More...</a><br /></td></tr>
<tr class="separator:gab1e0b7cd7493bc9892347b921854eb0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56d134838c921ff75712f794955aa6cc"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga56d134838c921ff75712f794955aa6cc">ADC_In</a> (ADC12_Regs *adc12)</td></tr>
<tr class="memdesc:ga56d134838c921ff75712f794955aa6cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trigger ADC measurement and wait for result. <a href="group___a_d_c.html#ga56d134838c921ff75712f794955aa6cc">More...</a><br /></td></tr>
<tr class="separator:ga56d134838c921ff75712f794955aa6cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga843392fdf2a6133622118d766aacd41d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga843392fdf2a6133622118d766aacd41d">ADC_InitDual</a> (ADC12_Regs *adc12, uint32_t channel1, uint32_t channel2, uint32_t reference)</td></tr>
<tr class="memdesc:ga843392fdf2a6133622118d766aacd41d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC for two channels. <a href="group___a_d_c.html#ga843392fdf2a6133622118d766aacd41d">More...</a><br /></td></tr>
<tr class="separator:ga843392fdf2a6133622118d766aacd41d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1687fa960d01840744d6d5214282a83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gac1687fa960d01840744d6d5214282a83">ADC_InDual</a> (ADC12_Regs *adc12, uint32_t *d1, uint32_t *d2)</td></tr>
<tr class="memdesc:gac1687fa960d01840744d6d5214282a83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trigger two ADC measurements and wait for results. <a href="group___a_d_c.html#gac1687fa960d01840744d6d5214282a83">More...</a><br /></td></tr>
<tr class="separator:gac1687fa960d01840744d6d5214282a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadba0385a82a5ede174e5d515c89fad54"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#gadba0385a82a5ede174e5d515c89fad54">ADC_InitTriple</a> (ADC12_Regs *adc12, uint32_t channel1, uint32_t channel2, uint32_t channel3, uint32_t reference)</td></tr>
<tr class="memdesc:gadba0385a82a5ede174e5d515c89fad54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC for three channels. <a href="group___a_d_c.html#gadba0385a82a5ede174e5d515c89fad54">More...</a><br /></td></tr>
<tr class="separator:gadba0385a82a5ede174e5d515c89fad54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c2371678edcc3f66f38b8856b3ac83c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga9c2371678edcc3f66f38b8856b3ac83c">ADC_InTriple</a> (ADC12_Regs *adc12, uint32_t *d1, uint32_t *d2, uint32_t *d3)</td></tr>
<tr class="memdesc:ga9c2371678edcc3f66f38b8856b3ac83c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trigger three ADC measurements and wait for results. <a href="group___a_d_c.html#ga9c2371678edcc3f66f38b8856b3ac83c">More...</a><br /></td></tr>
<tr class="separator:ga9c2371678edcc3f66f38b8856b3ac83c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e1407c7f4740a7fac89d2b57892e996"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga2e1407c7f4740a7fac89d2b57892e996">ADC0_InitAve</a> (uint32_t channel, uint32_t n)</td></tr>
<tr class="memdesc:ga2e1407c7f4740a7fac89d2b57892e996"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC0 for hardware averaging. <a href="group___a_d_c.html#ga2e1407c7f4740a7fac89d2b57892e996">More...</a><br /></td></tr>
<tr class="separator:ga2e1407c7f4740a7fac89d2b57892e996"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0459ee7a18c66e2900352e5f5a96f6ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga0459ee7a18c66e2900352e5f5a96f6ec">ADC0_TimerG0_Init</a> (uint32_t channel, uint32_t reference, uint16_t period, uint32_t prescale, uint32_t priority)</td></tr>
<tr class="memdesc:ga0459ee7a18c66e2900352e5f5a96f6ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC0. <a href="group___a_d_c.html#ga0459ee7a18c66e2900352e5f5a96f6ec">More...</a><br /></td></tr>
<tr class="separator:ga0459ee7a18c66e2900352e5f5a96f6ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga591195de27898112ee2bfb241b439e30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_d_c.html#ga591195de27898112ee2bfb241b439e30">ADC1_TimerG8_Init</a> (uint32_t channel, uint32_t reference, uint16_t period, uint32_t prescale, uint32_t priority)</td></tr>
<tr class="memdesc:ga591195de27898112ee2bfb241b439e30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize 12-bit ADC1. <a href="group___a_d_c.html#ga591195de27898112ee2bfb241b439e30">More...</a><br /></td></tr>
<tr class="separator:ga591195de27898112ee2bfb241b439e30"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Analog to digital conversion. </p>
<a class="anchor" id="ADCpins"></a>
<table class="doxtable">
<caption>ADC pins on the MSPM0G3507</caption>
<tr>
<th>Pin </th><th>ADC channel</th><th>Sensor </th></tr>
<tr>
<td>PA27 </td><td>ADC0 channel 0 </td><td>J1.8 also MKII light interrupt </td></tr>
<tr>
<td>PA26 </td><td>ADC0 channel 1 </td><td>J1.6 MKII microphone in </td></tr>
<tr>
<td>PA25 </td><td>ADC0 channel 2 </td><td>J1.2 MKII Joystick X </td></tr>
<tr>
<td>PA24 </td><td>ADC0 channel 3 </td><td>J3.27 <em><b>free</b></em> </td></tr>
<tr>
<td>PB25 </td><td>ADC0 channel 4 </td><td>J19.7 (insert 0ohm R74, no U3 OPA2365) </td></tr>
<tr>
<td>PB24 </td><td>ADC0 channel 5 </td><td>J1.5 also MKII joystick select button </td></tr>
<tr>
<td>PB20 </td><td>ADC0 channel 6 </td><td>J4.36 <em><b>free</b></em> </td></tr>
<tr>
<td>PA22 </td><td>ADC0 channel 7 </td><td><p class="starttd">J24 MKII Accelerometer Y</p>
<p class="endtd"></p>
</td></tr>
<tr>
<td>PA15 </td><td>ADC1 channel 0 </td><td>J3.30 (also DACout) </td></tr>
<tr>
<td>PA16 </td><td>ADC1 channel 1 </td><td>J3.29 <em><b>free</b></em> </td></tr>
<tr>
<td>PA17 </td><td>ADC1 channel 2 </td><td>J3.28 <em><b>free</b></em> </td></tr>
<tr>
<td>PA18 </td><td>ADC1 channel 3 </td><td>J3.26 MKII Joystick Y </td></tr>
<tr>
<td>PB17 </td><td>ADC1 channel 4 </td><td>J2.18 <em><b>free</b></em> </td></tr>
<tr>
<td>PB18 </td><td>ADC1 channel 5 </td><td>J3.25 MKII Accelerometer Z </td></tr>
<tr>
<td>PB19 </td><td>ADC1 channel 6 </td><td>J3.23 MKII Accelerometer X </td></tr>
<tr>
<td>PA21 </td><td>ADC1 channel 7 </td><td><p class="starttd">J17.8 (insert R20, remove R3)</p>
<p class="endtd"></p>
</td></tr>
</table>
<a class="anchor" id="ADCpinsT"></a>
<table class="doxtable">
<caption>ADC pins on the MSPM0G3507</caption>
<tr>
<th>Pin </th><th>ADC channel</th><th>Sensor </th></tr>
<tr>
<td>PA27 </td><td>ADC0 channel 0 </td><td>J1.8 also MKII light interrupt </td></tr>
<tr>
<td>PA26 </td><td>ADC0 channel 1 </td><td>J1.6 MKII microphone in </td></tr>
<tr>
<td>PA25 </td><td>ADC0 channel 2 </td><td>J1.2 MKII Joystick X </td></tr>
<tr>
<td>PA24 </td><td>ADC0 channel 3 </td><td>J3.27 <em><b>free</b></em> </td></tr>
<tr>
<td>PB25 </td><td>ADC0 channel 4 </td><td>J19.7 (insert 0ohm R74, no U3 OPA2365) </td></tr>
<tr>
<td>PB24 </td><td>ADC0 channel 5 </td><td>J1.5 also MKII joystick select button </td></tr>
<tr>
<td>PB20 </td><td>ADC0 channel 6 </td><td>J4.36 <em><b>free</b></em> </td></tr>
<tr>
<td>PA22 </td><td>ADC0 channel 7 </td><td>J24 MKII Accelerometer Y </td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga75363bb5d11c6dc15b829bf5cf619ebd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga75363bb5d11c6dc15b829bf5cf619ebd">&#9670;&nbsp;</a></span>ADC0_In()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t ADC0_In </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Trigger ADC measurement and wait for result. </p>
<p>Trigger a single ADC0 measurement, wait for it to complete, and return the 12-bit result as 0 to 4095. The ADC input voltage range is 0 to 3.3V. Busy-wait synchronization used. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>12-bit result </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Assumes ADC0_Init has been called. </dd></dl>
</div>
</div>
<a id="gaa2ee4b39fc4e60ee49b2da4e28b30925"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa2ee4b39fc4e60ee49b2da4e28b30925">&#9670;&nbsp;</a></span>ADC0_Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC0_Init </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>reference</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize 12-bit ADC0. </p>
<p>Initialize 12-bit ADC0 in software-triggered mode to take measurements when the associated function is called. One channel is to be measured </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">channel</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">reference</td><td>is ADCVREF_INT, ADCVREF_EXT, ADCVREF_VDDA </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
</div>
</div>
<a id="ga2e1407c7f4740a7fac89d2b57892e996"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2e1407c7f4740a7fac89d2b57892e996">&#9670;&nbsp;</a></span>ADC0_InitAve()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC0_InitAve </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>n</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize 12-bit ADC0 for hardware averaging. </p>
<p>Initialize 12-bit ADC0 in software-triggered mode to take measurements when the associated function is called. One channel is to be measured 2^n times in average. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">channel</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">n</td><td>0 to 7 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
<dl class="section note"><dt>Note</dt><dd>uses ADCVREF_VDDA, so range is 0 to 3.3V </dd></dl>
</div>
</div>
<a id="ga0459ee7a18c66e2900352e5f5a96f6ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0459ee7a18c66e2900352e5f5a96f6ec">&#9670;&nbsp;</a></span>ADC0_TimerG0_Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC0_TimerG0_Init </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>reference</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>period</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>prescale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>priority</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize 12-bit ADC0. </p>
<p>Initialize ADC0 for Timer G0 triggered sampling<br />
Assuming 80 MHz bus, the sampling is 40MHz/period/prescale<br />
Pin channel<br />
PA27 0 <br />
PA26 1 <br />
PA25 2 <br />
PA24 3 <br />
PB25 4 <br />
PB24 5 <br />
PB20 6 <br />
PA22 7 </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">channel</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">reference</td><td>is ADCVREF_INT, ADCVREF_EXT, ADCVREF_VDDA </td></tr>
<tr><td class="paramname">period</td><td>is 16-bit period in bus cycles on Timer G0 </td></tr>
<tr><td class="paramname">prescale</td><td>is 8-bit prescale in bus cycles on Timer G0 </td></tr>
<tr><td class="paramname">priority</td><td>is 0 to 3 for ADC interrupts </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
<dl class="section note"><dt>Note</dt><dd>uses internal pub/sub channel 1 </dd></dl>
</div>
</div>
<a id="gaef98b62b7e3ce18d5094c28fbf5d6af2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaef98b62b7e3ce18d5094c28fbf5d6af2">&#9670;&nbsp;</a></span>ADC1_In()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t ADC1_In </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Trigger ADC measurement and wait for result. </p>
<p>Trigger a single ADC1 measurement, wait for it to complete, and return the 12-bit result as 0 to 4095. The ADC input voltage range is 0 to 3.3V. Busy-wait synchronization used. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">none</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>12-bit result </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Assumes ADC1_Init has been called. </dd></dl>
</div>
</div>
<a id="ga49340f14952348fe1529710cc0d8a245"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49340f14952348fe1529710cc0d8a245">&#9670;&nbsp;</a></span>ADC1_Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC1_Init </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>reference</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize 12-bit ADC0. </p>
<p>Initialize 12-bit ADC1 in software-triggered mode to take measurements when the associated function is called. One channel is to be measured </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">channel</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">reference</td><td>is ADCVREF_INT, ADCVREF_EXT, ADCVREF_VDDA </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
</div>
</div>
<a id="ga591195de27898112ee2bfb241b439e30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga591195de27898112ee2bfb241b439e30">&#9670;&nbsp;</a></span>ADC1_TimerG8_Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC1_TimerG8_Init </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>reference</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>period</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>prescale</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>priority</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize 12-bit ADC1. </p>
<p>Initialize ADC1 for Timer G8 triggered sampling<br />
Assuming 80 MHz bus, the sampling is 40MHz/period/prescale<br />
Pin channel<br />
PA15 0 <br />
PA16 1 <br />
PA17 2 <br />
PA18 3 <br />
PB17 4 <br />
PB18 5 <br />
PB19 6 <br />
PA21 7 </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">channel</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">reference</td><td>is ADCVREF_INT, ADCVREF_EXT, ADCVREF_VDDA </td></tr>
<tr><td class="paramname">period</td><td>is 16-bit period in bus cycles on Timer G8 </td></tr>
<tr><td class="paramname">prescale</td><td>is 8-bit prescale in bus cycles on Timer G8 </td></tr>
<tr><td class="paramname">priority</td><td>is 0 to 3 for ADC interrupts </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
<dl class="section note"><dt>Note</dt><dd>uses internal pub/sub channel 2 </dd></dl>
</div>
</div>
<a id="ga56d134838c921ff75712f794955aa6cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga56d134838c921ff75712f794955aa6cc">&#9670;&nbsp;</a></span>ADC_In()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t ADC_In </td>
<td>(</td>
<td class="paramtype">ADC12_Regs *&#160;</td>
<td class="paramname"><em>adc12</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Trigger ADC measurement and wait for result. </p>
<p>Trigger a single ADC0 or ADC1 measurement, wait for it to complete, and return the 12-bit result as 0 to 4095. The ADC input voltage range is 0 to 3.3V. Busy-wait synchronization used. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">adc12</td><td>is ADC0 or ADC1 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>12-bit result </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Assumes ADC_Init has been called. </dd></dl>
</div>
</div>
<a id="gac1687fa960d01840744d6d5214282a83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac1687fa960d01840744d6d5214282a83">&#9670;&nbsp;</a></span>ADC_InDual()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC_InDual </td>
<td>(</td>
<td class="paramtype">ADC12_Regs *&#160;</td>
<td class="paramname"><em>adc12</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>d1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>d2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Trigger two ADC measurements and wait for results. </p>
<p>Trigger a dual ADC0 or ADC1 measurement, wait for it to complete, and return the two 12-bit results as 0 to 4095. The ADC input voltage range is 0 to 3.3V. Busy-wait synchronization used. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">adc12</td><td>is ADC0 or ADC1 </td></tr>
<tr><td class="paramname">*d1</td><td>address into which the first ADC sample will be stored </td></tr>
<tr><td class="paramname">*d2</td><td>address into which the second ADC sample will be stored </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Assumes ADC_InitDual has been called. </dd></dl>
</div>
</div>
<a id="gab1e0b7cd7493bc9892347b921854eb0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab1e0b7cd7493bc9892347b921854eb0f">&#9670;&nbsp;</a></span>ADC_Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC_Init </td>
<td>(</td>
<td class="paramtype">ADC12_Regs *&#160;</td>
<td class="paramname"><em>adc12</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>reference</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize 12-bit ADC0. </p>
<p>Initialize 12-bit ADC0 or ADC1 in software-triggered mode to take measurements when the associated function is called. One channel is to be measured </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">adc12</td><td>is ADC0 or ADC1 </td></tr>
<tr><td class="paramname">channel</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">reference</td><td>is ADCVREF_INT, ADCVREF_EXT, ADCVREF_VDDA </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
</div>
</div>
<a id="ga843392fdf2a6133622118d766aacd41d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga843392fdf2a6133622118d766aacd41d">&#9670;&nbsp;</a></span>ADC_InitDual()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC_InitDual </td>
<td>(</td>
<td class="paramtype">ADC12_Regs *&#160;</td>
<td class="paramname"><em>adc12</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>reference</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize 12-bit ADC for two channels. </p>
<p>Initialize 12-bit ADC0 or ADC1 in software-triggered mode to take measurements when the associated function is called. Two channels are to be measured </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">adc12</td><td>is ADC0 or ADC1 </td></tr>
<tr><td class="paramname">channel1</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">channel2</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">reference</td><td>is ADCVREF_INT, ADCVREF_EXT, ADCVREF_VDDA </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
</div>
</div>
<a id="gadba0385a82a5ede174e5d515c89fad54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadba0385a82a5ede174e5d515c89fad54">&#9670;&nbsp;</a></span>ADC_InitTriple()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC_InitTriple </td>
<td>(</td>
<td class="paramtype">ADC12_Regs *&#160;</td>
<td class="paramname"><em>adc12</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>channel3</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>reference</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize 12-bit ADC for three channels. </p>
<p>Initialize 12-bit ADC0 or ADC1 in software-triggered mode to take measurements when the associated function is called. three channels are to be measured </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">adc12</td><td>is ADC0 or ADC1 </td></tr>
<tr><td class="paramname">channel1</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">channel2</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">channel3</td><td>is the 0 to 7 </td></tr>
<tr><td class="paramname">reference</td><td>is ADCVREF_INT, ADCVREF_EXT, ADCVREF_VDDA </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
</div>
</div>
<a id="ga9c2371678edcc3f66f38b8856b3ac83c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9c2371678edcc3f66f38b8856b3ac83c">&#9670;&nbsp;</a></span>ADC_InTriple()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ADC_InTriple </td>
<td>(</td>
<td class="paramtype">ADC12_Regs *&#160;</td>
<td class="paramname"><em>adc12</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>d1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>d2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>d3</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Trigger three ADC measurements and wait for results. </p>
<p>Trigger a triple ADC0 or ADC1 measurement, wait for it to complete, and return the three 12-bit results as 0 to 4095. The ADC input voltage range is 0 to 3.3V. Busy-wait synchronization used. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">adc12</td><td>is ADC0 or ADC1 </td></tr>
<tr><td class="paramname">*d1</td><td>address into which the first ADC sample will be stored </td></tr>
<tr><td class="paramname">*d2</td><td>address into which the second ADC sample will be stored </td></tr>
<tr><td class="paramname">*d3</td><td>address into which the third ADC sample will be stored </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Assumes ADC_InitTriple has been called. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>