diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/MAXREFDES117_Code_Documentation.pdf b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/MAXREFDES117_Code_Documentation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8a3a781d4bd547688da15fc7a9159859a61fec8a Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/MAXREFDES117_Code_Documentation.pdf differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/MainPage.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/MainPage.html new file mode 100644 index 0000000000000000000000000000000000000000..ef34a5b82b681a83ddfe49d1b43db3e9771cd8b0 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/MainPage.html @@ -0,0 +1 @@ +<meta http-equiv="Refresh" content="0; url=html\index.html"> \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/MAXREFDES117_Block_Diagram.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/MAXREFDES117_Block_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..80f3301aa8c2165a625e0edbdc0ced433b1181ac Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/MAXREFDES117_Block_Diagram.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/MAXREFDES117_firmware_Flowchart.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/MAXREFDES117_firmware_Flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..f71455986af0687dbca1a601e0e09f0065b76217 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/MAXREFDES117_firmware_Flowchart.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8cpp.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8cpp.html new file mode 100644 index 0000000000000000000000000000000000000000..0907ba25c0798613689225f3c43948114b161b3a --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8cpp.html @@ -0,0 +1,123 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/Adafruit_NeoPixel.cpp File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_adafruit___neo_pixel_8cpp.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">Adafruit_NeoPixel.cpp File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include "<a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>"</code><br/> +</div> +<p><a href="_adafruit___neo_pixel_8cpp_source.html">Go to the source code of this file.</a></p> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="_adafruit___neo_pixel_8cpp.html">Adafruit_NeoPixel.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8cpp_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8cpp_source.html new file mode 100644 index 0000000000000000000000000000000000000000..536c863d83799ca80ed81349abc6842855cbb501 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8cpp_source.html @@ -0,0 +1,1320 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/Adafruit_NeoPixel.cpp Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_adafruit___neo_pixel_8cpp_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">Adafruit_NeoPixel.cpp</div> </div> +</div><!--header--> +<div class="contents"> +<a href="_adafruit___neo_pixel_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*-------------------------------------------------------------------------</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> Arduino library to control a wide variety of WS2811- and WS2812-based RGB</span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> LED devices such as Adafruit FLORA RGB Smart Pixels and NeoPixel strips.</span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> Currently handles 400 and 800 KHz bitstreams on 8, 12 and 16 MHz ATmega</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> MCUs, with LEDs wired for various color orders. 8 MHz MCUs provide</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> output on PORTB and PORTD, while 16 MHz chips can handle most output pins</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> (possible exception with upper PORT registers on the Arduino Mega).</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"></span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> Written by Phil Burgess / Paint Your Dragon for Adafruit Industries,</span></div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> contributions by PJRC, Michael Miller and other members of the open</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> source community.</span></div> +<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"></span></div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> Adafruit invests time and resources providing this open source code,</span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> please support Adafruit and open-source hardware by purchasing products</span></div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> from Adafruit!</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"></span></div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> -------------------------------------------------------------------------</span></div> +<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> This file is part of the Adafruit NeoPixel library.</span></div> +<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"></span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> NeoPixel is free software: you can redistribute it and/or modify</span></div> +<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> it under the terms of the GNU Lesser General Public License as</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> published by the Free Software Foundation, either version 3 of</span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> the License, or (at your option) any later version.</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"></span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> NeoPixel is distributed in the hope that it will be useful,</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> GNU Lesser General Public License for more details.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"></span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> You should have received a copy of the GNU Lesser General Public</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> License along with NeoPixel. If not, see</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> <http://www.gnu.org/licenses/>.</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> -------------------------------------------------------------------------*/</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="_adafruit___neo_pixel_8h.html">Adafruit_NeoPixel.h</a>"</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// Constructor when length, pin and type are known at compile-time:</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#ac314debe6917c8c9b320b785139c6e58"> 38</a></span> <a class="code" href="class_adafruit___neo_pixel.html#ab1ac0c48cf3fd9185e40308c37f1d320">Adafruit_NeoPixel::Adafruit_NeoPixel</a>(uint16_t n, uint8_t p, <a class="code" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a> t) :</div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  brightness(0), pixels(NULL), endTime(0), begun(<a class="code" href="algorithm_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>)</div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="class_adafruit___neo_pixel.html#a65e59263e0f5a04c7202d4385d3a539b">updateType</a>(t);</div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944">updateLength</a>(n);</div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b">setPin</a>(p);</div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// via Michael Vogt/neophob: empty constructor is used when strand length</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// isn't known at compile-time; situations where program config might be</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// read from internal flash memory or an SD card, or arrive via serial</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// command. If using this constructor, MUST follow up with updateType(),</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// updateLength(), etc. to establish the strand type, length and pin number!</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#ab1ac0c48cf3fd9185e40308c37f1d320"> 51</a></span> <a class="code" href="class_adafruit___neo_pixel.html#ab1ac0c48cf3fd9185e40308c37f1d320">Adafruit_NeoPixel::Adafruit_NeoPixel</a>() :</div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  pin(-1), brightness(0), pixels(NULL), endTime(0), begun(<a class="code" href="algorithm_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  numLEDs(0), numBytes(0), rOffset(1), gOffset(0), bOffset(2), wOffset(1)</div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> #ifdef <a class="code" href="_adafruit___neo_pixel_8h.html#a9c4067fd0cceb0432d1758fc07ede469">NEO_KHZ400</a></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  , is800KHz(<a class="code" href="algorithm_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>)</div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> #endif</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div> +<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#a16d970aa16f9d0128800346f4ca567db"> 60</a></span> <a class="code" href="class_adafruit___neo_pixel.html#a16d970aa16f9d0128800346f4ca567db">Adafruit_NeoPixel::~Adafruit_NeoPixel</a>() {</div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span>(pixels) free(pixels);</div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">if</span>(pin >= 0) pinMode(pin, INPUT);</div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div> +<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#aad78931e44ce43c9b9c460dba7c9bbb7"> 65</a></span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit___neo_pixel.html#aad78931e44ce43c9b9c460dba7c9bbb7">Adafruit_NeoPixel::begin</a>(<span class="keywordtype">void</span>) {</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">if</span>(pin >= 0) {</div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  pinMode(pin, OUTPUT);</div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  digitalWrite(pin, LOW);</div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  begun = <span class="keyword">true</span>;</div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div> +<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944"> 73</a></span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944">Adafruit_NeoPixel::updateLength</a>(uint16_t n) {</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span>(pixels) free(pixels); <span class="comment">// Free existing data (if any)</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">// Allocate new data -- note: ALL PIXELS ARE CLEARED</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  numBytes = n * ((wOffset == rOffset) ? 3 : 4);</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span>((pixels = (uint8_t *)malloc(numBytes))) {</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  memset(pixels, 0, numBytes);</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  numLEDs = n;</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  } <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  numLEDs = numBytes = 0;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div> +<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#a65e59263e0f5a04c7202d4385d3a539b"> 86</a></span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit___neo_pixel.html#a65e59263e0f5a04c7202d4385d3a539b">Adafruit_NeoPixel::updateType</a>(<a class="code" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a> t) {</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">boolean</span> oldThreeBytesPerPixel = (wOffset == rOffset); <span class="comment">// false if RGBW</span></div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  wOffset = (t >> 6) & 0b11; <span class="comment">// See notes in header file</span></div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  rOffset = (t >> 4) & 0b11; <span class="comment">// regarding R/G/B/W offsets</span></div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  gOffset = (t >> 2) & 0b11;</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  bOffset = t & 0b11;</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#ifdef NEO_KHZ400</span></div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span> is800KHz = (t < 256); <span class="comment">// 400 KHz flag is 1<<8</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// If bytes-per-pixel has changed (and pixel data was previously</span></div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// allocated), re-allocate to new size. Will clear any data.</span></div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span>(pixels) {</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordtype">boolean</span> newThreeBytesPerPixel = (wOffset == rOffset);</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span>(newThreeBytesPerPixel != oldThreeBytesPerPixel) <a class="code" href="class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944">updateLength</a>(numLEDs);</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> }</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor">#ifdef ESP8266</span></div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"></span><span class="comment">// ESP8266 show() is external to enforce ICACHE_RAM_ATTR execution</span></div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> <span class="keywordtype">void</span> ICACHE_RAM_ATTR espShow(</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  uint8_t pin, uint8_t *pixels, uint32_t numBytes, uint8_t type);</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor">#endif // ESP8266</span></div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7"> 111</a></span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7">Adafruit_NeoPixel::show</a>(<span class="keywordtype">void</span>) {</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span>(!pixels) <span class="keywordflow">return</span>;</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// Data latch = 50+ microsecond pause in the output stream. Rather than</span></div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">// put a delay at the end of the function, the ending time is noted and</span></div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// the function will simply hold off (if needed) on issuing the</span></div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// subsequent round of data until the latch time has elapsed. This</span></div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">// allows the mainline code to start generating the next frame of data</span></div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// rather than stalling for the latch.</span></div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">while</span>(!<a class="code" href="class_adafruit___neo_pixel.html#ad38ce8112667b70ad7c411a98892af0e">canShow</a>());</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="comment">// endTime is a private member (rather than global var) so that mutliple</span></div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">// instances on different pins can be quickly issued in succession (each</span></div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">// instance doesn't delay the next).</span></div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// In order to make this code runtime-configurable to work with any pin,</span></div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// SBI/CBI instructions are eschewed in favor of full PORT writes via the</span></div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// OUT or ST instructions. It relies on two facts: that peripheral</span></div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// functions (such as PWM) take precedence on output pins, so our PORT-</span></div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// wide writes won't interfere, and that interrupts are globally disabled</span></div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="comment">// while data is being issued to the LEDs, so no other code will be</span></div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="comment">// accessing the PORT. The code takes an initial 'snapshot' of the PORT</span></div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="comment">// state, computes 'pin high' and 'pin low' values, and writes these back</span></div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="comment">// to the PORT register as needed.</span></div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  noInterrupts(); <span class="comment">// Need 100% focus on instruction timing</span></div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor">#ifdef __AVR__</span></div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor"></span><span class="comment">// AVR MCUs -- ATmega & ATtiny (no XMEGA) ---------------------------------</span></div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">volatile</span> uint16_t</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  i = numBytes; <span class="comment">// Loop counter</span></div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">volatile</span> uint8_t</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  *ptr = pixels, <span class="comment">// Pointer to next byte</span></div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  b = *ptr++, <span class="comment">// Current byte value</span></div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  hi, <span class="comment">// PORT w/output bit set high</span></div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  lo; <span class="comment">// PORT w/output bit set low</span></div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="comment">// Hand-tuned assembly code issues data to the LED drivers at a specific</span></div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="comment">// rate. There's separate code for different CPU speeds (8, 12, 16 MHz)</span></div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">// for both the WS2811 (400 KHz) and WS2812 (800 KHz) drivers. The</span></div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="comment">// datastream timing for the LED drivers allows a little wiggle room each</span></div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="comment">// way (listed in the datasheets), so the conditions for compiling each</span></div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// case are set up for a range of frequencies rather than just the exact</span></div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="comment">// 8, 12 or 16 MHz values, permitting use with some close-but-not-spot-on</span></div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="comment">// devices (e.g. 16.5 MHz DigiSpark). The ranges were arrived at based</span></div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="comment">// on the datasheet figures and have not been extensively tested outside</span></div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="comment">// the canonical 8/12/16 MHz speeds; there's no guarantee these will work</span></div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="comment">// close to the extremes (or possibly they could be pushed further).</span></div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="comment">// Keep in mind only one CPU speed case actually gets compiled; the</span></div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// resulting program isn't as massive as it might look from source here.</span></div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// 8 MHz(ish) AVR ---------------------------------------------------------</span></div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor">#if (F_CPU >= 7400000UL) && (F_CPU <= 9500000UL)</span></div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor">#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled</span></div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"></span> <span class="keywordflow">if</span>(is800KHz) {</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">volatile</span> uint8_t n1, n2 = 0; <span class="comment">// First, next bits out</span></div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// Squeezing an 800 KHz stream out of an 8 MHz chip requires code</span></div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// specific to each PORT register. At present this is only written</span></div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// to work with pins on PORTD or PORTB, the most likely use case --</span></div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// this covers all the pins on the Adafruit Flora and the bulk of</span></div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="comment">// digital pins on the Arduino Pro 8 MHz (keep in mind, this code</span></div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">// doesn't even get compiled for 16 MHz boards like the Uno, Mega,</span></div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="comment">// Leonardo, etc., so don't bother extending this out of hand).</span></div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="comment">// Additional PORTs could be added if you really need them, just</span></div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">// duplicate the else and loop and change the PORT. Each add'l</span></div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// PORT will require about 150(ish) bytes of program space.</span></div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">// 10 instruction clocks per bit: HHxxxxxLLL</span></div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="comment">// OUT instructions: ^ ^ ^ (T=0,2,7)</span></div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor">#ifdef PORTD // PORTD isn't present on ATtiny85, etc.</span></div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">if</span>(port == &PORTD) {</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  hi = PORTD | pinMask;</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  lo = PORTD & ~pinMask;</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  n1 = lo;</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">if</span>(b & 0x80) n1 = hi;</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// Dirty trick: RJMPs proceeding to the next instruction are used</span></div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">// to delay two clock cycles in one instruction word (rather than</span></div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="comment">// using two NOPs). This was necessary in order to squeeze the</span></div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">// loop down to exactly 64 words -- the maximum possible for a</span></div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="comment">// relative branch.</span></div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="stringliteral">"headD:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Clk Pseudocode</span></div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">// Bit 7:</span></div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = hi</span></div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="stringliteral">"mov %[n2] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 n2 = lo</span></div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="stringliteral">"out %[port] , %[n1]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = n1</span></div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="stringliteral">"sbrc %[byte] , 6"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x40)</span></div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="stringliteral">"mov %[n2] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 n2 = hi</span></div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo</span></div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// Bit 6:</span></div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = hi</span></div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="stringliteral">"mov %[n1] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 n1 = lo</span></div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="stringliteral">"out %[port] , %[n2]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = n2</span></div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="stringliteral">"sbrc %[byte] , 5"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x20)</span></div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="stringliteral">"mov %[n1] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 n1 = hi</span></div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo</span></div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// Bit 5:</span></div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = hi</span></div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="stringliteral">"mov %[n2] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 n2 = lo</span></div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="stringliteral">"out %[port] , %[n1]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = n1</span></div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="stringliteral">"sbrc %[byte] , 4"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x10)</span></div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="stringliteral">"mov %[n2] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 n2 = hi</span></div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo</span></div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="comment">// Bit 4:</span></div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = hi</span></div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="stringliteral">"mov %[n1] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 n1 = lo</span></div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="stringliteral">"out %[port] , %[n2]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = n2</span></div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="stringliteral">"sbrc %[byte] , 3"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x08)</span></div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="stringliteral">"mov %[n1] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 n1 = hi</span></div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo</span></div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// Bit 3:</span></div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = hi</span></div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="stringliteral">"mov %[n2] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 n2 = lo</span></div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="stringliteral">"out %[port] , %[n1]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = n1</span></div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="stringliteral">"sbrc %[byte] , 2"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x04)</span></div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="stringliteral">"mov %[n2] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 n2 = hi</span></div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo</span></div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">// Bit 2:</span></div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = hi</span></div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="stringliteral">"mov %[n1] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 n1 = lo</span></div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="stringliteral">"out %[port] , %[n2]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = n2</span></div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="stringliteral">"sbrc %[byte] , 1"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x02)</span></div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="stringliteral">"mov %[n1] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 n1 = hi</span></div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo</span></div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="comment">// Bit 1:</span></div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = hi</span></div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="stringliteral">"mov %[n2] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 n2 = lo</span></div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="stringliteral">"out %[port] , %[n1]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = n1</span></div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop</span></div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="stringliteral">"sbrc %[byte] , 0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x01)</span></div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="stringliteral">"mov %[n2] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 n2 = hi</span></div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo</span></div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="stringliteral">"sbiw %[count], 1"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 i-- (don't act on Z flag yet)</span></div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">// Bit 0:</span></div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = hi</span></div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="stringliteral">"mov %[n1] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 n1 = lo</span></div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="stringliteral">"out %[port] , %[n2]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = n2</span></div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="stringliteral">"ld %[byte] , %a[ptr]+"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 b = *ptr++</span></div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="stringliteral">"sbrc %[byte] , 7"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x80)</span></div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="stringliteral">"mov %[n1] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 n1 = hi</span></div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo</span></div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="stringliteral">"brne headD"</span> <span class="stringliteral">"\n"</span> <span class="comment">// 2 while(i) (Z flag set above)</span></div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  : [byte] <span class="stringliteral">"+r"</span> (b),</div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  [n1] <span class="stringliteral">"+r"</span> (n1),</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  [n2] <span class="stringliteral">"+r"</span> (n2),</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  [count] <span class="stringliteral">"+w"</span> (i)</div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  : [port] <span class="stringliteral">"I"</span> (_SFR_IO_ADDR(PORTD)),</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  [ptr] <span class="stringliteral">"e"</span> (ptr),</div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  [hi] <span class="stringliteral">"r"</span> (hi),</div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  [lo] <span class="stringliteral">"r"</span> (lo));</div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(port == &PORTB) {</div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor">#endif // PORTD</span></div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="comment">// Same as above, just switched to PORTB and stripped of comments.</span></div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  hi = PORTB | pinMask;</div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  lo = PORTB & ~pinMask;</div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  n1 = lo;</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">if</span>(b & 0x80) n1 = hi;</div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="stringliteral">"headB:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="stringliteral">"mov %[n2] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="stringliteral">"out %[port] , %[n1]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="stringliteral">"sbrc %[byte] , 6"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="stringliteral">"mov %[n2] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="stringliteral">"mov %[n1] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="stringliteral">"out %[port] , %[n2]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="stringliteral">"sbrc %[byte] , 5"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="stringliteral">"mov %[n1] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="stringliteral">"mov %[n2] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="stringliteral">"out %[port] , %[n1]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="stringliteral">"sbrc %[byte] , 4"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="stringliteral">"mov %[n2] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="stringliteral">"mov %[n1] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="stringliteral">"out %[port] , %[n2]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="stringliteral">"sbrc %[byte] , 3"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="stringliteral">"mov %[n1] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="stringliteral">"mov %[n2] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="stringliteral">"out %[port] , %[n1]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="stringliteral">"sbrc %[byte] , 2"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="stringliteral">"mov %[n2] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="stringliteral">"mov %[n1] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="stringliteral">"out %[port] , %[n2]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="stringliteral">"sbrc %[byte] , 1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="stringliteral">"mov %[n1] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="stringliteral">"mov %[n2] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="stringliteral">"out %[port] , %[n1]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="stringliteral">"sbrc %[byte] , 0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="stringliteral">"mov %[n2] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="stringliteral">"sbiw %[count], 1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="stringliteral">"mov %[n1] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="stringliteral">"out %[port] , %[n2]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="stringliteral">"ld %[byte] , %a[ptr]+"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="stringliteral">"sbrc %[byte] , 7"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="stringliteral">"mov %[n1] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="stringliteral">"brne headB"</span> <span class="stringliteral">"\n"</span></div> +<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  : [byte] <span class="stringliteral">"+r"</span> (b), [n1] <span class="stringliteral">"+r"</span> (n1), [n2] <span class="stringliteral">"+r"</span> (n2), [count] <span class="stringliteral">"+w"</span> (i)</div> +<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  : [port] <span class="stringliteral">"I"</span> (_SFR_IO_ADDR(PORTB)), [ptr] <span class="stringliteral">"e"</span> (ptr), [hi] <span class="stringliteral">"r"</span> (hi),</div> +<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  [lo] <span class="stringliteral">"r"</span> (lo));</div> +<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div> +<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="preprocessor">#ifdef PORTD</span></div> +<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"></span> } <span class="comment">// endif PORTB</span></div> +<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="preprocessor">#ifdef NEO_KHZ400</span></div> +<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="preprocessor"></span> } <span class="keywordflow">else</span> { <span class="comment">// end 800 KHz, do 400 KHz</span></div> +<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div> +<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="comment">// Timing is more relaxed; unrolling the inner loop for each bit is</span></div> +<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="comment">// not necessary. Still using the peculiar RJMPs as 2X NOPs, not out</span></div> +<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="comment">// of need but just to trim the code size down a little.</span></div> +<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="comment">// This 400-KHz-datastream-on-8-MHz-CPU code is not quite identical</span></div> +<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="comment">// to the 800-on-16 code later -- the hi/lo timing between WS2811 and</span></div> +<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="comment">// WS2812 is not simply a 2:1 scale!</span></div> +<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div> +<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="comment">// 20 inst. clocks per bit: HHHHxxxxxxLLLLLLLLLL</span></div> +<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="comment">// ST instructions: ^ ^ ^ (T=0,4,10)</span></div> +<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div> +<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">volatile</span> uint8_t next, bit;</div> +<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div> +<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  hi = *port | pinMask;</div> +<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  lo = *port & ~pinMask;</div> +<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  next = lo;</div> +<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  bit = 8;</div> +<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div> +<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div> +<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="stringliteral">"head20:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Clk Pseudocode (T = 0)</span></div> +<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="stringliteral">"st %a[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = hi (T = 2)</span></div> +<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="stringliteral">"sbrc %[byte] , 7"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 128)</span></div> +<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="stringliteral">"mov %[next], %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 next = hi (T = 4)</span></div> +<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="stringliteral">"st %a[port], %[next]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = next (T = 6)</span></div> +<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="stringliteral">"mov %[next] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 next = lo (T = 7)</span></div> +<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="stringliteral">"dec %[bit]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 bit-- (T = 8)</span></div> +<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="stringliteral">"breq nextbyte20"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(bit == 0)</span></div> +<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="stringliteral">"rol %[byte]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 b <<= 1 (T = 10)</span></div> +<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="stringliteral">"st %a[port], %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = lo (T = 12)</span></div> +<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 14)</span></div> +<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 16)</span></div> +<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 18)</span></div> +<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="stringliteral">"rjmp head20"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 -> head20 (next bit out)</span></div> +<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="stringliteral">"nextbyte20:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// (T = 10)</span></div> +<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="stringliteral">"st %a[port], %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = lo (T = 12)</span></div> +<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 nop (T = 13)</span></div> +<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="stringliteral">"ldi %[bit] , 8"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 bit = 8 (T = 14)</span></div> +<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="stringliteral">"ld %[byte] , %a[ptr]+"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 b = *ptr++ (T = 16)</span></div> +<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="stringliteral">"sbiw %[count], 1"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 i-- (T = 18)</span></div> +<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="stringliteral">"brne head20"</span> <span class="stringliteral">"\n"</span> <span class="comment">// 2 if(i != 0) -> (next byte)</span></div> +<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  : [port] <span class="stringliteral">"+e"</span> (port),</div> +<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  [byte] <span class="stringliteral">"+r"</span> (b),</div> +<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  [bit] <span class="stringliteral">"+r"</span> (bit),</div> +<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  [next] <span class="stringliteral">"+r"</span> (next),</div> +<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  [count] <span class="stringliteral">"+w"</span> (i)</div> +<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  : [hi] <span class="stringliteral">"r"</span> (hi),</div> +<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  [lo] <span class="stringliteral">"r"</span> (lo),</div> +<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  [ptr] <span class="stringliteral">"e"</span> (ptr));</div> +<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div> +<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="preprocessor">#endif // NEO_KHZ400</span></div> +<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="comment">// 12 MHz(ish) AVR --------------------------------------------------------</span></div> +<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="preprocessor">#elif (F_CPU >= 11100000UL) && (F_CPU <= 14300000UL)</span></div> +<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor">#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled</span></div> +<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="preprocessor"></span> <span class="keywordflow">if</span>(is800KHz) {</div> +<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="comment">// In the 12 MHz case, an optimized 800 KHz datastream (no dead time</span></div> +<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="comment">// between bytes) requires a PORT-specific loop similar to the 8 MHz</span></div> +<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="comment">// code (but a little more relaxed in this case).</span></div> +<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div> +<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="comment">// 15 instruction clocks per bit: HHHHxxxxxxLLLLL</span></div> +<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="comment">// OUT instructions: ^ ^ ^ (T=0,4,10)</span></div> +<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div> +<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keyword">volatile</span> uint8_t next;</div> +<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div> +<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor">#ifdef PORTD</span></div> +<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">if</span>(port == &PORTD) {</div> +<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div> +<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  hi = PORTD | pinMask;</div> +<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  lo = PORTD & ~pinMask;</div> +<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  next = lo;</div> +<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">if</span>(b & 0x80) next = hi;</div> +<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div> +<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="comment">// Don't "optimize" the OUT calls into the bitTime subroutine;</span></div> +<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="comment">// we're exploiting the RCALL and RET as 3- and 4-cycle NOPs!</span></div> +<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div> +<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="stringliteral">"headD:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// (T = 0)</span></div> +<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// (T = 1)</span></div> +<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="stringliteral">"rcall bitTimeD"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Bit 7 (T = 15)</span></div> +<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="stringliteral">"rcall bitTimeD"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Bit 6</span></div> +<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="stringliteral">"rcall bitTimeD"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Bit 5</span></div> +<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="stringliteral">"rcall bitTimeD"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Bit 4</span></div> +<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="stringliteral">"rcall bitTimeD"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Bit 3</span></div> +<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="stringliteral">"rcall bitTimeD"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Bit 2</span></div> +<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="stringliteral">"rcall bitTimeD"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Bit 1</span></div> +<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="comment">// Bit 0:</span></div> +<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = hi (T = 1)</span></div> +<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 3)</span></div> +<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="stringliteral">"ld %[byte] , %a[ptr]+"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 b = *ptr++ (T = 5)</span></div> +<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="stringliteral">"out %[port] , %[next]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = next (T = 6)</span></div> +<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="stringliteral">"mov %[next] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 next = lo (T = 7)</span></div> +<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="stringliteral">"sbrc %[byte] , 7"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x80) (T = 8)</span></div> +<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="stringliteral">"mov %[next] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 next = hi (T = 9)</span></div> +<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 (T = 10)</span></div> +<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo (T = 11)</span></div> +<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="stringliteral">"sbiw %[count], 1"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 i-- (T = 13)</span></div> +<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="stringliteral">"brne headD"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 if(i != 0) -> (next byte)</span></div> +<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="stringliteral">"rjmp doneD"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="stringliteral">"bitTimeD:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// nop nop nop (T = 4)</span></div> +<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="stringliteral">"out %[port], %[next]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = next (T = 5)</span></div> +<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="stringliteral">"mov %[next], %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 next = lo (T = 6)</span></div> +<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="stringliteral">"rol %[byte]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 b <<= 1 (T = 7)</span></div> +<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="stringliteral">"sbrc %[byte], 7"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 0x80) (T = 8)</span></div> +<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="stringliteral">"mov %[next], %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 next = hi (T = 9)</span></div> +<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 (T = 10)</span></div> +<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="stringliteral">"out %[port], %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 PORT = lo (T = 11)</span></div> +<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="stringliteral">"ret"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 4 nop nop nop nop (T = 15)</span></div> +<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="stringliteral">"doneD:"</span> <span class="stringliteral">"\n"</span></div> +<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  : [byte] <span class="stringliteral">"+r"</span> (b),</div> +<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  [next] <span class="stringliteral">"+r"</span> (next),</div> +<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  [count] <span class="stringliteral">"+w"</span> (i)</div> +<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  : [port] <span class="stringliteral">"I"</span> (_SFR_IO_ADDR(PORTD)),</div> +<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  [ptr] <span class="stringliteral">"e"</span> (ptr),</div> +<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  [hi] <span class="stringliteral">"r"</span> (hi),</div> +<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  [lo] <span class="stringliteral">"r"</span> (lo));</div> +<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div> +<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(port == &PORTB) {</div> +<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div> +<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor">#endif // PORTD</span></div> +<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  hi = PORTB | pinMask;</div> +<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  lo = PORTB & ~pinMask;</div> +<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  next = lo;</div> +<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">if</span>(b & 0x80) next = hi;</div> +<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div> +<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="comment">// Same as above, just set for PORTB & stripped of comments</span></div> +<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div> +<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="stringliteral">"headB:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="stringliteral">"rcall bitTimeB"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="stringliteral">"rcall bitTimeB"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="stringliteral">"rcall bitTimeB"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="stringliteral">"rcall bitTimeB"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="stringliteral">"rcall bitTimeB"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="stringliteral">"rcall bitTimeB"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="stringliteral">"out %[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="stringliteral">"rcall bitTimeB"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="stringliteral">"out %[port] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="stringliteral">"ld %[byte] , %a[ptr]+"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="stringliteral">"out %[port] , %[next]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="stringliteral">"mov %[next] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="stringliteral">"sbrc %[byte] , 7"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="stringliteral">"mov %[next] , %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="stringliteral">"out %[port] , %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="stringliteral">"sbiw %[count], 1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="stringliteral">"brne headB"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="stringliteral">"rjmp doneB"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="stringliteral">"bitTimeB:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="stringliteral">"out %[port], %[next]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="stringliteral">"mov %[next], %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="stringliteral">"rol %[byte]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="stringliteral">"sbrc %[byte], 7"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="stringliteral">"mov %[next], %[hi]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="stringliteral">"out %[port], %[lo]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="stringliteral">"ret"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="stringliteral">"doneB:"</span> <span class="stringliteral">"\n"</span></div> +<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  : [byte] <span class="stringliteral">"+r"</span> (b), [next] <span class="stringliteral">"+r"</span> (next), [count] <span class="stringliteral">"+w"</span> (i)</div> +<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  : [port] <span class="stringliteral">"I"</span> (_SFR_IO_ADDR(PORTB)), [ptr] <span class="stringliteral">"e"</span> (ptr), [hi] <span class="stringliteral">"r"</span> (hi),</div> +<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  [lo] <span class="stringliteral">"r"</span> (lo));</div> +<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div> +<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="preprocessor">#ifdef PORTD</span></div> +<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="preprocessor"></span> }</div> +<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="preprocessor">#ifdef NEO_KHZ400</span></div> +<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="preprocessor"></span> } <span class="keywordflow">else</span> { <span class="comment">// 400 KHz</span></div> +<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> </div> +<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="comment">// 30 instruction clocks per bit: HHHHHHxxxxxxxxxLLLLLLLLLLLLLLL</span></div> +<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="comment">// ST instructions: ^ ^ ^ (T=0,6,15)</span></div> +<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div> +<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keyword">volatile</span> uint8_t next, bit;</div> +<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div> +<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  hi = *port | pinMask;</div> +<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  lo = *port & ~pinMask;</div> +<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  next = lo;</div> +<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  bit = 8;</div> +<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div> +<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div> +<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="stringliteral">"head30:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Clk Pseudocode (T = 0)</span></div> +<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="stringliteral">"st %a[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = hi (T = 2)</span></div> +<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="stringliteral">"sbrc %[byte] , 7"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 128)</span></div> +<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="stringliteral">"mov %[next], %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 next = hi (T = 4)</span></div> +<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 6)</span></div> +<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="stringliteral">"st %a[port], %[next]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = next (T = 8)</span></div> +<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 10)</span></div> +<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 12)</span></div> +<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 14)</span></div> +<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 nop (T = 15)</span></div> +<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="stringliteral">"st %a[port], %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = lo (T = 17)</span></div> +<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 19)</span></div> +<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="stringliteral">"dec %[bit]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 bit-- (T = 20)</span></div> +<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="stringliteral">"breq nextbyte30"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(bit == 0)</span></div> +<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="stringliteral">"rol %[byte]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 b <<= 1 (T = 22)</span></div> +<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 24)</span></div> +<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 26)</span></div> +<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 28)</span></div> +<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="stringliteral">"rjmp head30"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 -> head30 (next bit out)</span></div> +<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="stringliteral">"nextbyte30:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// (T = 22)</span></div> +<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 nop (T = 23)</span></div> +<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="stringliteral">"ldi %[bit] , 8"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 bit = 8 (T = 24)</span></div> +<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="stringliteral">"ld %[byte] , %a[ptr]+"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 b = *ptr++ (T = 26)</span></div> +<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="stringliteral">"sbiw %[count], 1"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 i-- (T = 28)</span></div> +<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="stringliteral">"brne head30"</span> <span class="stringliteral">"\n"</span> <span class="comment">// 1-2 if(i != 0) -> (next byte)</span></div> +<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  : [port] <span class="stringliteral">"+e"</span> (port),</div> +<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  [byte] <span class="stringliteral">"+r"</span> (b),</div> +<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  [bit] <span class="stringliteral">"+r"</span> (bit),</div> +<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  [next] <span class="stringliteral">"+r"</span> (next),</div> +<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  [count] <span class="stringliteral">"+w"</span> (i)</div> +<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  : [hi] <span class="stringliteral">"r"</span> (hi),</div> +<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  [lo] <span class="stringliteral">"r"</span> (lo),</div> +<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  [ptr] <span class="stringliteral">"e"</span> (ptr));</div> +<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  }</div> +<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor">#endif // NEO_KHZ400</span></div> +<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="comment">// 16 MHz(ish) AVR --------------------------------------------------------</span></div> +<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="preprocessor">#elif (F_CPU >= 15400000UL) && (F_CPU <= 19000000L)</span></div> +<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="preprocessor">#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled</span></div> +<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor"></span> <span class="keywordflow">if</span>(is800KHz) {</div> +<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="comment">// WS2811 and WS2812 have different hi/lo duty cycles; this is</span></div> +<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="comment">// similar but NOT an exact copy of the prior 400-on-8 code.</span></div> +<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> </div> +<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="comment">// 20 inst. clocks per bit: HHHHHxxxxxxxxLLLLLLL</span></div> +<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="comment">// ST instructions: ^ ^ ^ (T=0,5,13)</span></div> +<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> </div> +<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keyword">volatile</span> uint8_t next, bit;</div> +<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div> +<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  hi = *port | pinMask;</div> +<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  lo = *port & ~pinMask;</div> +<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  next = lo;</div> +<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  bit = 8;</div> +<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> </div> +<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div> +<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="stringliteral">"head20:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Clk Pseudocode (T = 0)</span></div> +<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="stringliteral">"st %a[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = hi (T = 2)</span></div> +<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="stringliteral">"sbrc %[byte], 7"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 128)</span></div> +<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="stringliteral">"mov %[next], %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 next = hi (T = 4)</span></div> +<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="stringliteral">"dec %[bit]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 bit-- (T = 5)</span></div> +<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="stringliteral">"st %a[port], %[next]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = next (T = 7)</span></div> +<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="stringliteral">"mov %[next] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 next = lo (T = 8)</span></div> +<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="stringliteral">"breq nextbyte20"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(bit == 0) (from dec above)</span></div> +<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="stringliteral">"rol %[byte]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 b <<= 1 (T = 10)</span></div> +<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 12)</span></div> +<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 nop (T = 13)</span></div> +<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="stringliteral">"st %a[port], %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = lo (T = 15)</span></div> +<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 nop (T = 16)</span></div> +<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 18)</span></div> +<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="stringliteral">"rjmp head20"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 -> head20 (next bit out)</span></div> +<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="stringliteral">"nextbyte20:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// (T = 10)</span></div> +<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="stringliteral">"ldi %[bit] , 8"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 bit = 8 (T = 11)</span></div> +<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="stringliteral">"ld %[byte] , %a[ptr]+"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 b = *ptr++ (T = 13)</span></div> +<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="stringliteral">"st %a[port], %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = lo (T = 15)</span></div> +<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 nop (T = 16)</span></div> +<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="stringliteral">"sbiw %[count], 1"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 i-- (T = 18)</span></div> +<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="stringliteral">"brne head20"</span> <span class="stringliteral">"\n"</span> <span class="comment">// 2 if(i != 0) -> (next byte)</span></div> +<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  : [port] <span class="stringliteral">"+e"</span> (port),</div> +<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  [byte] <span class="stringliteral">"+r"</span> (b),</div> +<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  [bit] <span class="stringliteral">"+r"</span> (bit),</div> +<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  [next] <span class="stringliteral">"+r"</span> (next),</div> +<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  [count] <span class="stringliteral">"+w"</span> (i)</div> +<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  : [ptr] <span class="stringliteral">"e"</span> (ptr),</div> +<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  [hi] <span class="stringliteral">"r"</span> (hi),</div> +<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  [lo] <span class="stringliteral">"r"</span> (lo));</div> +<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> </div> +<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="preprocessor">#ifdef NEO_KHZ400</span></div> +<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="preprocessor"></span> } <span class="keywordflow">else</span> { <span class="comment">// 400 KHz</span></div> +<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div> +<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="comment">// The 400 KHz clock on 16 MHz MCU is the most 'relaxed' version.</span></div> +<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> </div> +<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="comment">// 40 inst. clocks per bit: HHHHHHHHxxxxxxxxxxxxLLLLLLLLLLLLLLLLLLLL</span></div> +<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="comment">// ST instructions: ^ ^ ^ (T=0,8,20)</span></div> +<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div> +<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keyword">volatile</span> uint8_t next, bit;</div> +<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div> +<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  hi = *port | pinMask;</div> +<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  lo = *port & ~pinMask;</div> +<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  next = lo;</div> +<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  bit = 8;</div> +<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> </div> +<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div> +<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="stringliteral">"head40:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// Clk Pseudocode (T = 0)</span></div> +<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  <span class="stringliteral">"st %a[port], %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = hi (T = 2)</span></div> +<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="stringliteral">"sbrc %[byte] , 7"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(b & 128)</span></div> +<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="stringliteral">"mov %[next] , %[hi]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 0-1 next = hi (T = 4)</span></div> +<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 6)</span></div> +<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 8)</span></div> +<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="stringliteral">"st %a[port], %[next]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = next (T = 10)</span></div> +<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 12)</span></div> +<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 14)</span></div> +<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 16)</span></div> +<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 18)</span></div> +<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 20)</span></div> +<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="stringliteral">"st %a[port], %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = lo (T = 22)</span></div> +<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 nop (T = 23)</span></div> +<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="stringliteral">"mov %[next] , %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 next = lo (T = 24)</span></div> +<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="stringliteral">"dec %[bit]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 bit-- (T = 25)</span></div> +<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="stringliteral">"breq nextbyte40"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1-2 if(bit == 0)</span></div> +<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="stringliteral">"rol %[byte]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 b <<= 1 (T = 27)</span></div> +<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 nop (T = 28)</span></div> +<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 30)</span></div> +<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 32)</span></div> +<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 34)</span></div> +<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 36)</span></div> +<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 38)</span></div> +<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="stringliteral">"rjmp head40"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 -> head40 (next bit out)</span></div> +<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="stringliteral">"nextbyte40:"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// (T = 27)</span></div> +<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="stringliteral">"ldi %[bit] , 8"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 1 bit = 8 (T = 28)</span></div> +<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="stringliteral">"ld %[byte] , %a[ptr]+"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 b = *ptr++ (T = 30)</span></div> +<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 32)</span></div> +<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="stringliteral">"st %a[port], %[lo]"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 PORT = lo (T = 34)</span></div> +<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="stringliteral">"rjmp .+0"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 nop nop (T = 36)</span></div> +<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="stringliteral">"sbiw %[count], 1"</span> <span class="stringliteral">"\n\t"</span> <span class="comment">// 2 i-- (T = 38)</span></div> +<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="stringliteral">"brne head40"</span> <span class="stringliteral">"\n"</span> <span class="comment">// 1-2 if(i != 0) -> (next byte)</span></div> +<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  : [port] <span class="stringliteral">"+e"</span> (port),</div> +<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  [byte] <span class="stringliteral">"+r"</span> (b),</div> +<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  [bit] <span class="stringliteral">"+r"</span> (bit),</div> +<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  [next] <span class="stringliteral">"+r"</span> (next),</div> +<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  [count] <span class="stringliteral">"+w"</span> (i)</div> +<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  : [ptr] <span class="stringliteral">"e"</span> (ptr),</div> +<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  [hi] <span class="stringliteral">"r"</span> (hi),</div> +<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  [lo] <span class="stringliteral">"r"</span> (lo));</div> +<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  }</div> +<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="preprocessor">#endif // NEO_KHZ400</span></div> +<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor"></span><span class="preprocessor"> #error "CPU SPEED NOT SUPPORTED"</span></div> +<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"></span><span class="preprocessor">#endif // end F_CPU ifdefs on __AVR__</span></div> +<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="comment">// END AVR ----------------------------------------------------------------</span></div> +<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div> +<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div> +<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor">#elif defined(__arm__)</span></div> +<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="comment">// ARM MCUs -- Teensy 3.0, 3.1, LC, Arduino Due ---------------------------</span></div> +<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div> +<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor">#if defined(__MK20DX128__) || defined(__MK20DX256__) // Teensy 3.0 & 3.1</span></div> +<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="preprocessor"></span><span class="preprocessor">#define CYCLES_800_T0H (F_CPU / 4000000)</span></div> +<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="preprocessor"></span><span class="preprocessor">#define CYCLES_800_T1H (F_CPU / 1250000)</span></div> +<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="preprocessor"></span><span class="preprocessor">#define CYCLES_800 (F_CPU / 800000)</span></div> +<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor"></span><span class="preprocessor">#define CYCLES_400_T0H (F_CPU / 2000000)</span></div> +<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"></span><span class="preprocessor">#define CYCLES_400_T1H (F_CPU / 833333)</span></div> +<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor"></span><span class="preprocessor">#define CYCLES_400 (F_CPU / 400000)</span></div> +<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  uint8_t *p = pixels,</div> +<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  *end = p + numBytes, pix, mask;</div> +<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keyword">volatile</span> uint8_t *<span class="keyword">set</span> = portSetRegister(pin),</div> +<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  *clr = portClearRegister(pin);</div> +<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  uint32_t cyc;</div> +<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> </div> +<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  ARM_DEMCR |= ARM_DEMCR_TRCENA;</div> +<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  ARM_DWT_CTRL |= ARM_DWT_CTRL_CYCCNTENA;</div> +<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div> +<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="preprocessor">#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled</span></div> +<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="preprocessor"></span> <span class="keywordflow">if</span>(is800KHz) {</div> +<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor"></span> cyc = ARM_DWT_CYCCNT + CYCLES_800;</div> +<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">while</span>(p < end) {</div> +<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  pix = *p++;</div> +<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">for</span>(mask = 0x80; mask; mask >>= 1) {</div> +<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keywordflow">while</span>(ARM_DWT_CYCCNT - cyc < CYCLES_800);</div> +<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  cyc = ARM_DWT_CYCCNT;</div> +<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  *<span class="keyword">set</span> = 1;</div> +<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">if</span>(pix & mask) {</div> +<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordflow">while</span>(ARM_DWT_CYCCNT - cyc < CYCLES_800_T1H);</div> +<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  } <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">while</span>(ARM_DWT_CYCCNT - cyc < CYCLES_800_T0H);</div> +<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  }</div> +<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  *clr = 1;</div> +<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  }</div> +<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div> +<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">while</span>(ARM_DWT_CYCCNT - cyc < CYCLES_800);</div> +<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="preprocessor">#ifdef NEO_KHZ400</span></div> +<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"></span> } <span class="keywordflow">else</span> { <span class="comment">// 400 kHz bitstream</span></div> +<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  cyc = ARM_DWT_CYCCNT + CYCLES_400;</div> +<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <span class="keywordflow">while</span>(p < end) {</div> +<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  pix = *p++;</div> +<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">for</span>(mask = 0x80; mask; mask >>= 1) {</div> +<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordflow">while</span>(ARM_DWT_CYCCNT - cyc < CYCLES_400);</div> +<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  cyc = ARM_DWT_CYCCNT;</div> +<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  *<span class="keyword">set</span> = 1;</div> +<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">if</span>(pix & mask) {</div> +<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keywordflow">while</span>(ARM_DWT_CYCCNT - cyc < CYCLES_400_T1H);</div> +<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  } <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">while</span>(ARM_DWT_CYCCNT - cyc < CYCLES_400_T0H);</div> +<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  }</div> +<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  *clr = 1;</div> +<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  }</div> +<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  }</div> +<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">while</span>(ARM_DWT_CYCCNT - cyc < CYCLES_400);</div> +<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  }</div> +<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="preprocessor">#endif // NEO_KHZ400</span></div> +<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor">#elif defined(__MKL26Z64__) // Teensy-LC</span></div> +<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="preprocessor">#if F_CPU == 48000000</span></div> +<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="preprocessor"></span> uint8_t *p = pixels,</div> +<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  pix, count, dly,</div> +<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  bitmask = digitalPinToBitMask(pin);</div> +<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keyword">volatile</span> uint8_t *reg = portSetRegister(pin);</div> +<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  uint32_t num = numBytes;</div> +<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div> +<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="stringliteral">"L%=_begin:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="stringliteral">"ldrb %[pix], [%[p], #0]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <span class="stringliteral">"lsl %[pix], #24"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="stringliteral">"movs %[count], #7"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="stringliteral">"L%=_loop:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="stringliteral">"lsl %[pix], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="stringliteral">"bcs L%=_loop_one"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="stringliteral">"L%=_loop_zero:"</span></div> +<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="stringliteral">"strb %[bitmask], [%[reg], #0]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="stringliteral">"movs %[dly], #4"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="stringliteral">"L%=_loop_delay_T0H:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="stringliteral">"sub %[dly], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="stringliteral">"bne L%=_loop_delay_T0H"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="stringliteral">"strb %[bitmask], [%[reg], #4]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="stringliteral">"movs %[dly], #13"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="stringliteral">"L%=_loop_delay_T0L:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <span class="stringliteral">"sub %[dly], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="stringliteral">"bne L%=_loop_delay_T0L"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="stringliteral">"b L%=_next"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="stringliteral">"L%=_loop_one:"</span></div> +<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="stringliteral">"strb %[bitmask], [%[reg], #0]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="stringliteral">"movs %[dly], #13"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="stringliteral">"L%=_loop_delay_T1H:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="stringliteral">"sub %[dly], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="stringliteral">"bne L%=_loop_delay_T1H"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="stringliteral">"strb %[bitmask], [%[reg], #4]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="stringliteral">"movs %[dly], #4"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="stringliteral">"L%=_loop_delay_T1L:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="stringliteral">"sub %[dly], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="stringliteral">"bne L%=_loop_delay_T1L"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="stringliteral">"L%=_next:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <span class="stringliteral">"sub %[count], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="stringliteral">"bne L%=_loop"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="stringliteral">"lsl %[pix], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="stringliteral">"bcs L%=_last_one"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="stringliteral">"L%=_last_zero:"</span></div> +<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="stringliteral">"strb %[bitmask], [%[reg], #0]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="stringliteral">"movs %[dly], #4"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="stringliteral">"L%=_last_delay_T0H:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="stringliteral">"sub %[dly], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="stringliteral">"bne L%=_last_delay_T0H"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="stringliteral">"strb %[bitmask], [%[reg], #4]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="stringliteral">"movs %[dly], #10"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="stringliteral">"L%=_last_delay_T0L:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="stringliteral">"sub %[dly], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="stringliteral">"bne L%=_last_delay_T0L"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="stringliteral">"b L%=_repeat"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="stringliteral">"L%=_last_one:"</span></div> +<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="stringliteral">"strb %[bitmask], [%[reg], #0]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="stringliteral">"movs %[dly], #13"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="stringliteral">"L%=_last_delay_T1H:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  <span class="stringliteral">"sub %[dly], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="stringliteral">"bne L%=_last_delay_T1H"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="stringliteral">"strb %[bitmask], [%[reg], #4]"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="stringliteral">"movs %[dly], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="stringliteral">"L%=_last_delay_T1L:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="stringliteral">"sub %[dly], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="stringliteral">"bne L%=_last_delay_T1L"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="stringliteral">"nop"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="stringliteral">"L%=_repeat:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="stringliteral">"add %[p], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="stringliteral">"sub %[num], #1"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="stringliteral">"bne L%=_begin"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="stringliteral">"L%=_done:"</span> <span class="stringliteral">"\n\t"</span></div> +<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  : [p] <span class="stringliteral">"+r"</span> (p),</div> +<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  [pix] <span class="stringliteral">"=&r"</span> (pix),</div> +<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  [count] <span class="stringliteral">"=&r"</span> (count),</div> +<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  [dly] <span class="stringliteral">"=&r"</span> (dly),</div> +<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  [num] <span class="stringliteral">"+r"</span> (num)</div> +<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  : [bitmask] <span class="stringliteral">"r"</span> (bitmask),</div> +<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  [reg] <span class="stringliteral">"r"</span> (reg)</div> +<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  );</div> +<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="preprocessor"></span><span class="preprocessor">#error "Sorry, only 48 MHz is supported, please set Tools > CPU Speed to 48 MHz"</span></div> +<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> <span class="preprocessor"></span><span class="preprocessor">#endif // F_CPU == 48000000</span></div> +<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="preprocessor">#elif defined(__SAMD21G18A__) // Arduino Zero</span></div> +<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="comment">// Tried this with a timer/counter, couldn't quite get adequate</span></div> +<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="comment">// resolution. So yay, you get a load of goofball NOPs...</span></div> +<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> </div> +<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  uint8_t *ptr, *end, p, bitMask, portNum;</div> +<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  uint32_t pinMask;</div> +<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> </div> +<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  portNum = g_APinDescription[pin].ulPort;</div> +<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  pinMask = 1ul << g_APinDescription[pin].ulPin;</div> +<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  ptr = pixels;</div> +<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  end = ptr + numBytes;</div> +<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  p = *ptr++;</div> +<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  bitMask = 0x80;</div> +<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> </div> +<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keyword">volatile</span> uint32_t *<span class="keyword">set</span> = &(PORT->Group[portNum].OUTSET.reg),</div> +<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  *clr = &(PORT->Group[portNum].OUTCLR.reg);</div> +<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> </div> +<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> <span class="preprocessor">#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled</span></div> +<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="preprocessor"></span> <span class="keywordflow">if</span>(is800KHz) {</div> +<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="preprocessor"></span> <span class="keywordflow">for</span>(;;) {</div> +<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  *<span class="keyword">set</span> = pinMask;</div> +<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keyword">asm</span>(<span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span>);</div> +<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="keywordflow">if</span>(p & bitMask) {</div> +<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keyword">asm</span>(<span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <span class="stringliteral">"nop; nop; nop; nop;"</span>);</div> +<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  *clr = pinMask;</div> +<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  } <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  *clr = pinMask;</div> +<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <span class="keyword">asm</span>(<span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  <span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <span class="stringliteral">"nop; nop; nop; nop;"</span>);</div> +<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  }</div> +<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <span class="keywordflow">if</span>(bitMask >>= 1) {</div> +<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keyword">asm</span>(<span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop; nop;"</span>);</div> +<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  } <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keywordflow">if</span>(ptr >= end) <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  p = *ptr++;</div> +<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  bitMask = 0x80;</div> +<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  }</div> +<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  }</div> +<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="preprocessor">#ifdef NEO_KHZ400</span></div> +<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="preprocessor"></span> } <span class="keywordflow">else</span> { <span class="comment">// 400 KHz bitstream</span></div> +<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keywordflow">for</span>(;;) {</div> +<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  *<span class="keyword">set</span> = pinMask;</div> +<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="keyword">asm</span>(<span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop;"</span>);</div> +<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keywordflow">if</span>(p & bitMask) {</div> +<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keyword">asm</span>(<span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="stringliteral">"nop; nop; nop;"</span>);</div> +<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  *clr = pinMask;</div> +<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  } <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  *clr = pinMask;</div> +<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <span class="keyword">asm</span>(<span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="stringliteral">"nop; nop; nop;"</span>);</div> +<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  }</div> +<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keyword">asm</span>(<span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span></div> +<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop; nop;"</span>);</div> +<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keywordflow">if</span>(bitMask >>= 1) {</div> +<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keyword">asm</span>(<span class="stringliteral">"nop; nop; nop; nop; nop; nop; nop;"</span>);</div> +<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  } <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <span class="keywordflow">if</span>(ptr >= end) <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  p = *ptr++;</div> +<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  bitMask = 0x80;</div> +<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  }</div> +<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  }</div> +<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  }</div> +<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> </div> +<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="preprocessor">#else // Other ARM architecture -- Presumed Arduino Due</span></div> +<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="preprocessor"> #define SCALE VARIANT_MCK / 2UL / 1000000UL</span></div> +<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="preprocessor"></span><span class="preprocessor"> #define INST (2UL * F_CPU / VARIANT_MCK)</span></div> +<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="preprocessor"></span><span class="preprocessor"> #define TIME_800_0 ((int)(0.40 * SCALE + 0.5) - (5 * INST))</span></div> +<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="preprocessor"></span><span class="preprocessor"> #define TIME_800_1 ((int)(0.80 * SCALE + 0.5) - (5 * INST))</span></div> +<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> <span class="preprocessor"></span><span class="preprocessor"> #define PERIOD_800 ((int)(1.25 * SCALE + 0.5) - (5 * INST))</span></div> +<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <span class="preprocessor"></span><span class="preprocessor"> #define TIME_400_0 ((int)(0.50 * SCALE + 0.5) - (5 * INST))</span></div> +<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="preprocessor"></span><span class="preprocessor"> #define TIME_400_1 ((int)(1.20 * SCALE + 0.5) - (5 * INST))</span></div> +<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="preprocessor"></span><span class="preprocessor"> #define PERIOD_400 ((int)(2.50 * SCALE + 0.5) - (5 * INST))</span></div> +<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordtype">int</span> pinMask, time0, time1, period, t;</div> +<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  Pio *port;</div> +<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="keyword">volatile</span> WoReg *portSet, *portClear, *timeValue, *timeReset;</div> +<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  uint8_t *p, *end, pix, mask;</div> +<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> </div> +<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  pmc_set_writeprotect(<span class="keyword">false</span>);</div> +<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  pmc_enable_periph_clk((uint32_t)TC3_IRQn);</div> +<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  TC_Configure(TC1, 0,</div> +<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  TC_CMR_WAVE | TC_CMR_WAVSEL_UP | TC_CMR_TCCLKS_TIMER_CLOCK1);</div> +<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  TC_Start(TC1, 0);</div> +<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> </div> +<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  pinMask = g_APinDescription[pin].ulPin; <span class="comment">// Don't 'optimize' these into</span></div> +<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  port = g_APinDescription[pin].pPort; <span class="comment">// declarations above. Want to</span></div> +<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  portSet = &(port->PIO_SODR); <span class="comment">// burn a few cycles after</span></div> +<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  portClear = &(port->PIO_CODR); <span class="comment">// starting timer to minimize</span></div> +<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  timeValue = &(TC1->TC_CHANNEL[0].TC_CV); <span class="comment">// the initial 'while'.</span></div> +<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  timeReset = &(TC1->TC_CHANNEL[0].TC_CCR);</div> +<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  p = pixels;</div> +<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  end = p + numBytes;</div> +<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  pix = *p++;</div> +<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  mask = 0x80;</div> +<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> </div> +<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <span class="preprocessor">#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled</span></div> +<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="preprocessor"></span> <span class="keywordflow">if</span>(is800KHz) {</div> +<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> <span class="preprocessor"></span> time0 = TIME_800_0;</div> +<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  time1 = TIME_800_1;</div> +<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  period = PERIOD_800;</div> +<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> <span class="preprocessor">#ifdef NEO_KHZ400</span></div> +<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="preprocessor"></span> } <span class="keywordflow">else</span> { <span class="comment">// 400 KHz bitstream</span></div> +<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  time0 = TIME_400_0;</div> +<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  time1 = TIME_400_1;</div> +<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  period = PERIOD_400;</div> +<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  }</div> +<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">for</span>(t = time0;; t = time0) {</div> +<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="keywordflow">if</span>(pix & mask) t = time1;</div> +<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keywordflow">while</span>(*timeValue < period);</div> +<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  *portSet = pinMask;</div> +<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  *timeReset = TC_CCR_CLKEN | TC_CCR_SWTRG;</div> +<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="keywordflow">while</span>(*timeValue < t);</div> +<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  *portClear = pinMask;</div> +<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">if</span>(!(mask >>= 1)) { <span class="comment">// This 'inside-out' loop logic utilizes</span></div> +<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keywordflow">if</span>(p >= end) <span class="keywordflow">break</span>; <span class="comment">// idle time to minimize inter-byte delays.</span></div> +<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  pix = *p++;</div> +<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  mask = 0x80;</div> +<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  }</div> +<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  }</div> +<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordflow">while</span>(*timeValue < period); <span class="comment">// Wait for last bit</span></div> +<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  TC_Stop(TC1, 0);</div> +<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> </div> +<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="preprocessor">#endif // end Due</span></div> +<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment">// END ARM ----------------------------------------------------------------</span></div> +<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> </div> +<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> </div> +<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="preprocessor">#elif defined(ESP8266)</span></div> +<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment">// ESP8266 ----------------------------------------------------------------</span></div> +<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> </div> +<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="comment">// ESP8266 show() is external to enforce ICACHE_RAM_ATTR execution</span></div> +<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  espShow(pin, pixels, numBytes, is800KHz);</div> +<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> </div> +<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="preprocessor">#endif // ESP8266</span></div> +<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> </div> +<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="comment">// END ARCHITECTURE SELECT ------------------------------------------------</span></div> +<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> </div> +<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> </div> +<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  interrupts();</div> +<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  endTime = micros(); <span class="comment">// Save EOD time for latch on next call</span></div> +<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> }</div> +<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> </div> +<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment">// Set the output pin number</span></div> +<div class="line"><a name="l01031"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b"> 1031</a></span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b">Adafruit_NeoPixel::setPin</a>(uint8_t p) {</div> +<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  <span class="keywordflow">if</span>(begun && (pin >= 0)) pinMode(pin, INPUT);</div> +<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keywordflow">if</span>(p >= 0) {</div> +<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  pin = p;</div> +<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <span class="keywordflow">if</span>(begun) {</div> +<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  pinMode(p, OUTPUT);</div> +<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  digitalWrite(p, LOW);</div> +<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  }</div> +<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="preprocessor">#ifdef __AVR__</span></div> +<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="preprocessor"></span> port = portOutputRegister(digitalPinToPort(p));</div> +<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  pinMask = digitalPinToBitMask(p);</div> +<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="preprocessor"></span> }</div> +<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> }</div> +<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> </div> +<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment">// Set pixel color from separate R,G,B components:</span></div> +<div class="line"><a name="l01047"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1"> 1047</a></span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1">Adafruit_NeoPixel::setPixelColor</a>(</div> +<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  uint16_t n, uint8_t r, uint8_t g, uint8_t b) {</div> +<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> </div> +<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="keywordflow">if</span>(n < numLEDs) {</div> +<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keywordflow">if</span>(brightness) { <span class="comment">// See notes in setBrightness()</span></div> +<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  r = (r * brightness) >> 8;</div> +<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  g = (g * brightness) >> 8;</div> +<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  b = (b * brightness) >> 8;</div> +<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  }</div> +<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  uint8_t *p;</div> +<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">if</span>(wOffset == rOffset) { <span class="comment">// Is an RGB-type strip</span></div> +<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  p = &pixels[n * 3]; <span class="comment">// 3 bytes per pixel</span></div> +<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  } <span class="keywordflow">else</span> { <span class="comment">// Is a WRGB-type strip</span></div> +<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  p = &pixels[n * 4]; <span class="comment">// 4 bytes per pixel</span></div> +<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  p[wOffset] = 0; <span class="comment">// But only R,G,B passed -- set W to 0</span></div> +<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  }</div> +<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  p[rOffset] = r; <span class="comment">// R,G,B always stored</span></div> +<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  p[gOffset] = g;</div> +<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  p[bOffset] = b;</div> +<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  }</div> +<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> }</div> +<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> </div> +<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment">// Set pixel color from 'packed' 32-bit RGB color:</span></div> +<div class="line"><a name="l01070"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#abbf243cce591dc37be507cf173485bc8"> 1070</a></span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1">Adafruit_NeoPixel::setPixelColor</a>(uint16_t n, uint32_t c) {</div> +<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <span class="keywordflow">if</span>(n < numLEDs) {</div> +<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  uint8_t *p,</div> +<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  r = (uint8_t)(c >> 16),</div> +<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  g = (uint8_t)(c >> 8),</div> +<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  b = (uint8_t)c;</div> +<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <span class="keywordflow">if</span>(brightness) { <span class="comment">// See notes in setBrightness()</span></div> +<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  r = (r * brightness) >> 8;</div> +<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  g = (g * brightness) >> 8;</div> +<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  b = (b * brightness) >> 8;</div> +<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  }</div> +<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">if</span>(wOffset == rOffset) {</div> +<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  p = &pixels[n * 3];</div> +<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  } <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  p = &pixels[n * 4];</div> +<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  uint8_t w = (uint8_t)(c >> 24);</div> +<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  p[wOffset] = brightness ? ((w * brightness) >> 8) : w;</div> +<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  }</div> +<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  p[rOffset] = r;</div> +<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  p[gOffset] = g;</div> +<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  p[bOffset] = b;</div> +<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  }</div> +<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> }</div> +<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> </div> +<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment">// Convert separate R,G,B into packed 32-bit RGB color.</span></div> +<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">// Packed format is always RGB, regardless of LED strand color order.</span></div> +<div class="line"><a name="l01096"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec"> 1096</a></span> uint32_t <a class="code" href="class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec">Adafruit_NeoPixel::Color</a>(uint8_t r, uint8_t g, uint8_t b) {</div> +<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <span class="keywordflow">return</span> ((uint32_t)r << 16) | ((uint32_t)g << 8) | b;</div> +<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> }</div> +<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> </div> +<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment">// Convert separate R,G,B,W into packed 32-bit WRGB color.</span></div> +<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment">// Packed format is always WRGB, regardless of LED strand color order.</span></div> +<div class="line"><a name="l01102"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#a9846704aaabd4e102beba5a5484d5738"> 1102</a></span> uint32_t <a class="code" href="class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec">Adafruit_NeoPixel::Color</a>(uint8_t r, uint8_t g, uint8_t b, uint8_t w) {</div> +<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  <span class="keywordflow">return</span> ((uint32_t)w << 24) | ((uint32_t)r << 16) | ((uint32_t)g << 8) | b;</div> +<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> }</div> +<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> </div> +<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment">// Query color from previously-set pixel (returns packed 32-bit RGB value)</span></div> +<div class="line"><a name="l01107"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#a10a836ddc4ebd3e26b1e71a5875764fa"> 1107</a></span> uint32_t <a class="code" href="class_adafruit___neo_pixel.html#a10a836ddc4ebd3e26b1e71a5875764fa">Adafruit_NeoPixel::getPixelColor</a>(uint16_t n)<span class="keyword"> const </span>{</div> +<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  <span class="keywordflow">if</span>(n >= numLEDs) <span class="keywordflow">return</span> 0; <span class="comment">// Out of bounds, return no color.</span></div> +<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> </div> +<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  uint8_t *p;</div> +<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> </div> +<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  <span class="keywordflow">if</span>(wOffset == rOffset) { <span class="comment">// Is RGB-type device</span></div> +<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  p = &pixels[n * 3];</div> +<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  <span class="keywordflow">if</span>(brightness) {</div> +<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  <span class="comment">// Stored color was decimated by setBrightness(). Returned value</span></div> +<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  <span class="comment">// attempts to scale back to an approximation of the original 24-bit</span></div> +<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="comment">// value used when setting the pixel color, but there will always be</span></div> +<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="comment">// some error -- those bits are simply gone. Issue is most</span></div> +<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  <span class="comment">// pronounced at low brightness levels.</span></div> +<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <span class="keywordflow">return</span> (((uint32_t)(p[rOffset] << 8) / brightness) << 16) |</div> +<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  (((uint32_t)(p[gOffset] << 8) / brightness) << 8) |</div> +<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  ( (uint32_t)(p[bOffset] << 8) / brightness );</div> +<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  } <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  <span class="comment">// No brightness adjustment has been made -- return 'raw' color</span></div> +<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  <span class="keywordflow">return</span> ((uint32_t)p[rOffset] << 16) |</div> +<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  ((uint32_t)p[gOffset] << 8) |</div> +<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  (uint32_t)p[bOffset];</div> +<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  }</div> +<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  } <span class="keywordflow">else</span> { <span class="comment">// Is RGBW-type device</span></div> +<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  p = &pixels[n * 4];</div> +<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <span class="keywordflow">if</span>(brightness) { <span class="comment">// Return scaled color</span></div> +<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  <span class="keywordflow">return</span> (((uint32_t)(p[wOffset] << 8) / brightness) << 24) |</div> +<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  (((uint32_t)(p[rOffset] << 8) / brightness) << 16) |</div> +<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  (((uint32_t)(p[gOffset] << 8) / brightness) << 8) |</div> +<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  ( (uint32_t)(p[bOffset] << 8) / brightness );</div> +<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  } <span class="keywordflow">else</span> { <span class="comment">// Return raw color</span></div> +<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="keywordflow">return</span> ((uint32_t)p[wOffset] << 24) |</div> +<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  ((uint32_t)p[rOffset] << 16) |</div> +<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  ((uint32_t)p[gOffset] << 8) |</div> +<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  (uint32_t)p[bOffset];</div> +<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  }</div> +<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  }</div> +<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> }</div> +<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> </div> +<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment">// Returns pointer to pixels[] array. Pixel data is stored in device-</span></div> +<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment">// native format and is not translated here. Application will need to be</span></div> +<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment">// aware of specific pixel data format and handle colors appropriately.</span></div> +<div class="line"><a name="l01148"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#a18bc91d2bad52cf603814d4df6f33067"> 1148</a></span> uint8_t *<a class="code" href="class_adafruit___neo_pixel.html#a18bc91d2bad52cf603814d4df6f33067">Adafruit_NeoPixel::getPixels</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{</div> +<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  <span class="keywordflow">return</span> pixels;</div> +<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> }</div> +<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> </div> +<div class="line"><a name="l01152"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#ac893a5c07c41604539022af84665c04b"> 1152</a></span> uint16_t <a class="code" href="class_adafruit___neo_pixel.html#ac893a5c07c41604539022af84665c04b">Adafruit_NeoPixel::numPixels</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{</div> +<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keywordflow">return</span> numLEDs;</div> +<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> }</div> +<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> </div> +<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment">// Adjust output brightness; 0=darkest (off), 255=brightest. This does</span></div> +<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment">// NOT immediately affect what's currently displayed on the LEDs. The</span></div> +<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="comment">// next call to show() will refresh the LEDs at this level. However,</span></div> +<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment">// this process is potentially "lossy," especially when increasing</span></div> +<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment">// brightness. The tight timing in the WS2811/WS2812 code means there</span></div> +<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">// aren't enough free cycles to perform this scaling on the fly as data</span></div> +<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment">// is issued. So we make a pass through the existing color data in RAM</span></div> +<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment">// and scale it (subsequent graphics commands also work at this</span></div> +<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment">// brightness level). If there's a significant step up in brightness,</span></div> +<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment">// the limited number of steps (quantization) in the old data will be</span></div> +<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment">// quite visible in the re-scaled version. For a non-destructive</span></div> +<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">// change, you'll need to re-render the full strip data. C'est la vie.</span></div> +<div class="line"><a name="l01168"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#afa1740af1d8eec971eada06d53901c53"> 1168</a></span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit___neo_pixel.html#afa1740af1d8eec971eada06d53901c53">Adafruit_NeoPixel::setBrightness</a>(uint8_t b) {</div> +<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>  <span class="comment">// Stored brightness value is different than what's passed.</span></div> +<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  <span class="comment">// This simplifies the actual scaling math later, allowing a fast</span></div> +<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>  <span class="comment">// 8x8-bit multiply and taking the MSB. 'brightness' is a uint8_t,</span></div> +<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>  <span class="comment">// adding 1 here may (intentionally) roll over...so 0 = max brightness</span></div> +<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  <span class="comment">// (color values are interpreted literally; no scaling), 1 = min</span></div> +<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  <span class="comment">// brightness (off), 255 = just below max brightness.</span></div> +<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  uint8_t newBrightness = b + 1;</div> +<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  <span class="keywordflow">if</span>(newBrightness != brightness) { <span class="comment">// Compare against prior value</span></div> +<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  <span class="comment">// Brightness has changed -- re-scale existing data in RAM</span></div> +<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  uint8_t c,</div> +<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  *ptr = pixels,</div> +<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>  oldBrightness = brightness - 1; <span class="comment">// De-wrap old brightness value</span></div> +<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>  uint16_t scale;</div> +<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>  <span class="keywordflow">if</span>(oldBrightness == 0) scale = 0; <span class="comment">// Avoid /0</span></div> +<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(b == 255) scale = 65535 / oldBrightness;</div> +<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  <span class="keywordflow">else</span> scale = (((uint16_t)newBrightness << 8) - 1) / oldBrightness;</div> +<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <span class="keywordflow">for</span>(uint16_t i=0; i<numBytes; i++) {</div> +<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  c = *ptr;</div> +<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  *ptr++ = (c * scale) >> 8;</div> +<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  }</div> +<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  brightness = newBrightness;</div> +<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  }</div> +<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> }</div> +<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> </div> +<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">//Return the brightness value</span></div> +<div class="line"><a name="l01194"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#a553bf1a0513094c73cb54a235f74ac7f"> 1194</a></span> uint8_t <a class="code" href="class_adafruit___neo_pixel.html#a553bf1a0513094c73cb54a235f74ac7f">Adafruit_NeoPixel::getBrightness</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{</div> +<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  <span class="keywordflow">return</span> brightness - 1;</div> +<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> }</div> +<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> </div> +<div class="line"><a name="l01198"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#ac8bb3912a3ce86b15842e79d0b421204"> 1198</a></span> <span class="keywordtype">void</span> <a class="code" href="class_adafruit___neo_pixel.html#ac8bb3912a3ce86b15842e79d0b421204">Adafruit_NeoPixel::clear</a>() {</div> +<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  memset(pixels, 0, numBytes);</div> +<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="_adafruit___neo_pixel_8cpp.html">Adafruit_NeoPixel.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8h.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..e2da5f83b0a280336babd1df8b4ca6c38a49d296 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8h.html @@ -0,0 +1,670 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/Adafruit_NeoPixel.h File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_adafruit___neo_pixel_8h.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Pages</a></div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<iframe src="javascript:void(0)" frameborder="0" + name="MSearchResults" id="MSearchResults"> +</iframe> +</div> + +<div class="header"> + <div class="summary"> +<a href="#nested-classes">Data Structures</a> | +<a href="#define-members">Macros</a> | +<a href="#typedef-members">Typedefs</a> </div> + <div class="headertitle"> +<div class="title">Adafruit_NeoPixel.h File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include <WProgram.h></code><br/> +<code>#include <pins_arduino.h></code><br/> +</div> +<p><a href="_adafruit___neo_pixel_8h_source.html">Go to the source code of this file.</a></p> +<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:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html">Adafruit_NeoPixel</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </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:aa4f80df5ab240d93359f40956462f758"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#aa4f80df5ab240d93359f40956462f758">NEO_RGB</a>   ((0 << 6) | (0 << 4) | (1 << 2) | (2))</td></tr> +<tr class="separator:aa4f80df5ab240d93359f40956462f758"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a7d6aaa56c8e2603312cba8dbdf9c5661"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a7d6aaa56c8e2603312cba8dbdf9c5661">NEO_RBG</a>   ((0 << 6) | (0 << 4) | (2 << 2) | (1))</td></tr> +<tr class="separator:a7d6aaa56c8e2603312cba8dbdf9c5661"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a95d0d6b0a1f52bc72d9dcea2b3a48e3f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a95d0d6b0a1f52bc72d9dcea2b3a48e3f">NEO_GRB</a>   ((1 << 6) | (1 << 4) | (0 << 2) | (2))</td></tr> +<tr class="separator:a95d0d6b0a1f52bc72d9dcea2b3a48e3f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abca04ce54125372080f2fbf2afdcf027"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#abca04ce54125372080f2fbf2afdcf027">NEO_GBR</a>   ((2 << 6) | (2 << 4) | (0 << 2) | (1))</td></tr> +<tr class="separator:abca04ce54125372080f2fbf2afdcf027"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:afde6ec00a4ec8fad0267ae1a6689379e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#afde6ec00a4ec8fad0267ae1a6689379e">NEO_BRG</a>   ((1 << 6) | (1 << 4) | (2 << 2) | (0))</td></tr> +<tr class="separator:afde6ec00a4ec8fad0267ae1a6689379e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9129664a08911b56227dd641116f105f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a9129664a08911b56227dd641116f105f">NEO_BGR</a>   ((2 << 6) | (2 << 4) | (1 << 2) | (0))</td></tr> +<tr class="separator:a9129664a08911b56227dd641116f105f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4ee056fd3d7b09538908b35643a2508a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a4ee056fd3d7b09538908b35643a2508a">NEO_WRGB</a>   ((0 << 6) | (1 << 4) | (2 << 2) | (3))</td></tr> +<tr class="separator:a4ee056fd3d7b09538908b35643a2508a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a266a08af576ed4331db48b16bf572d29"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a266a08af576ed4331db48b16bf572d29">NEO_WRBG</a>   ((0 << 6) | (1 << 4) | (3 << 2) | (2))</td></tr> +<tr class="separator:a266a08af576ed4331db48b16bf572d29"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a59561d96a0f8a526ee3448e7b104d8b3"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a59561d96a0f8a526ee3448e7b104d8b3">NEO_WGRB</a>   ((0 << 6) | (2 << 4) | (1 << 2) | (3))</td></tr> +<tr class="separator:a59561d96a0f8a526ee3448e7b104d8b3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af722c80d41894df25c363b9ebf371b4e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#af722c80d41894df25c363b9ebf371b4e">NEO_WGBR</a>   ((0 << 6) | (3 << 4) | (1 << 2) | (2))</td></tr> +<tr class="separator:af722c80d41894df25c363b9ebf371b4e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3eed3aeba511a2478a1ee8c17516732b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a3eed3aeba511a2478a1ee8c17516732b">NEO_WBRG</a>   ((0 << 6) | (2 << 4) | (3 << 2) | (1))</td></tr> +<tr class="separator:a3eed3aeba511a2478a1ee8c17516732b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a015eeccbf1bd19907c34d7b39b63bb84"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a015eeccbf1bd19907c34d7b39b63bb84">NEO_WBGR</a>   ((0 << 6) | (3 << 4) | (2 << 2) | (1))</td></tr> +<tr class="separator:a015eeccbf1bd19907c34d7b39b63bb84"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a122c6bb3e44525d2f975dcd89b094267"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a122c6bb3e44525d2f975dcd89b094267">NEO_RWGB</a>   ((1 << 6) | (0 << 4) | (2 << 2) | (3))</td></tr> +<tr class="separator:a122c6bb3e44525d2f975dcd89b094267"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9254ebc9367c071457d0321f64c9d5fa"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a9254ebc9367c071457d0321f64c9d5fa">NEO_RWBG</a>   ((1 << 6) | (0 << 4) | (3 << 2) | (2))</td></tr> +<tr class="separator:a9254ebc9367c071457d0321f64c9d5fa"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abcce73b2eafdf1bb331a8f02fba95d10"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#abcce73b2eafdf1bb331a8f02fba95d10">NEO_RGWB</a>   ((2 << 6) | (0 << 4) | (1 << 2) | (3))</td></tr> +<tr class="separator:abcce73b2eafdf1bb331a8f02fba95d10"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a71f7c6e45f4c63fceca6b5b73c7a7c9d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a71f7c6e45f4c63fceca6b5b73c7a7c9d">NEO_RGBW</a>   ((3 << 6) | (0 << 4) | (1 << 2) | (2))</td></tr> +<tr class="separator:a71f7c6e45f4c63fceca6b5b73c7a7c9d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a7b6b551a990b498bed36aadba4a498d5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a7b6b551a990b498bed36aadba4a498d5">NEO_RBWG</a>   ((2 << 6) | (0 << 4) | (3 << 2) | (1))</td></tr> +<tr class="separator:a7b6b551a990b498bed36aadba4a498d5"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a198dc192119c166c544efc3e89fdd1cd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a198dc192119c166c544efc3e89fdd1cd">NEO_RBGW</a>   ((3 << 6) | (0 << 4) | (2 << 2) | (1))</td></tr> +<tr class="separator:a198dc192119c166c544efc3e89fdd1cd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa29b3544b4257e851de2e214894d1236"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#aa29b3544b4257e851de2e214894d1236">NEO_GWRB</a>   ((1 << 6) | (2 << 4) | (0 << 2) | (3))</td></tr> +<tr class="separator:aa29b3544b4257e851de2e214894d1236"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aaaaa406f36f1c596526579944ca7043d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#aaaaa406f36f1c596526579944ca7043d">NEO_GWBR</a>   ((1 << 6) | (3 << 4) | (0 << 2) | (2))</td></tr> +<tr class="separator:aaaaa406f36f1c596526579944ca7043d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a35a185ff488486a74745e9094892558c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a35a185ff488486a74745e9094892558c">NEO_GRWB</a>   ((2 << 6) | (1 << 4) | (0 << 2) | (3))</td></tr> +<tr class="separator:a35a185ff488486a74745e9094892558c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a722066abc60b560235b3b22082c2e68e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a722066abc60b560235b3b22082c2e68e">NEO_GRBW</a>   ((3 << 6) | (1 << 4) | (0 << 2) | (2))</td></tr> +<tr class="separator:a722066abc60b560235b3b22082c2e68e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a20be9abdf372b9c71d9fdacc3e6a9d1a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a20be9abdf372b9c71d9fdacc3e6a9d1a">NEO_GBWR</a>   ((2 << 6) | (3 << 4) | (0 << 2) | (1))</td></tr> +<tr class="separator:a20be9abdf372b9c71d9fdacc3e6a9d1a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af60d024b8f8954960e59056c57520080"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#af60d024b8f8954960e59056c57520080">NEO_GBRW</a>   ((3 << 6) | (2 << 4) | (0 << 2) | (1))</td></tr> +<tr class="separator:af60d024b8f8954960e59056c57520080"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aaf438f131d0fa8a0be6791a553145860"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#aaf438f131d0fa8a0be6791a553145860">NEO_BWRG</a>   ((1 << 6) | (2 << 4) | (3 << 2) | (0))</td></tr> +<tr class="separator:aaf438f131d0fa8a0be6791a553145860"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2595b8689ce5bd39634d017620ae57b8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a2595b8689ce5bd39634d017620ae57b8">NEO_BWGR</a>   ((1 << 6) | (3 << 4) | (2 << 2) | (0))</td></tr> +<tr class="separator:a2595b8689ce5bd39634d017620ae57b8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4b4571bfc0a3ebfb4720ce4e5fbe9acf"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a4b4571bfc0a3ebfb4720ce4e5fbe9acf">NEO_BRWG</a>   ((2 << 6) | (1 << 4) | (3 << 2) | (0))</td></tr> +<tr class="separator:a4b4571bfc0a3ebfb4720ce4e5fbe9acf"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aad617c46d4a64cd4ec8d0ed1a0f30073"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#aad617c46d4a64cd4ec8d0ed1a0f30073">NEO_BRGW</a>   ((3 << 6) | (1 << 4) | (2 << 2) | (0))</td></tr> +<tr class="separator:aad617c46d4a64cd4ec8d0ed1a0f30073"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a143de1c7084e1f833beecbdae00b321c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a143de1c7084e1f833beecbdae00b321c">NEO_BGWR</a>   ((2 << 6) | (3 << 4) | (1 << 2) | (0))</td></tr> +<tr class="separator:a143de1c7084e1f833beecbdae00b321c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5b49f89982b6e60d20f7aaab79030d54"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a5b49f89982b6e60d20f7aaab79030d54">NEO_BGRW</a>   ((3 << 6) | (2 << 4) | (1 << 2) | (0))</td></tr> +<tr class="separator:a5b49f89982b6e60d20f7aaab79030d54"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a475fef7028a743310aa4311a97899d5d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a475fef7028a743310aa4311a97899d5d">NEO_KHZ800</a>   0x0000</td></tr> +<tr class="separator:a475fef7028a743310aa4311a97899d5d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9c4067fd0cceb0432d1758fc07ede469"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a9c4067fd0cceb0432d1758fc07ede469">NEO_KHZ400</a>   0x0100</td></tr> +<tr class="separator:a9c4067fd0cceb0432d1758fc07ede469"><td class="memSeparator" colspan="2"> </td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> +Typedefs</h2></td></tr> +<tr class="memitem:a6ff31bc7214a3ae338a80ed6142d69ff"><td class="memItemLeft" align="right" valign="top">typedef uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a></td></tr> +<tr class="separator:a6ff31bc7214a3ae338a80ed6142d69ff"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<h2 class="groupheader">Macro Definition Documentation</h2> +<a class="anchor" id="a9129664a08911b56227dd641116f105f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_BGR   ((2 << 6) | (2 << 4) | (1 << 2) | (0))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00059">59</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a5b49f89982b6e60d20f7aaab79030d54"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_BGRW   ((3 << 6) | (2 << 4) | (1 << 2) | (0))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00089">89</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a143de1c7084e1f833beecbdae00b321c"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_BGWR   ((2 << 6) | (3 << 4) | (1 << 2) | (0))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00088">88</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="afde6ec00a4ec8fad0267ae1a6689379e"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_BRG   ((1 << 6) | (1 << 4) | (2 << 2) | (0))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00058">58</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="aad617c46d4a64cd4ec8d0ed1a0f30073"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_BRGW   ((3 << 6) | (1 << 4) | (2 << 2) | (0))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00087">87</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a4b4571bfc0a3ebfb4720ce4e5fbe9acf"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_BRWG   ((2 << 6) | (1 << 4) | (3 << 2) | (0))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00086">86</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a2595b8689ce5bd39634d017620ae57b8"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_BWGR   ((1 << 6) | (3 << 4) | (2 << 2) | (0))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00085">85</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="aaf438f131d0fa8a0be6791a553145860"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_BWRG   ((1 << 6) | (2 << 4) | (3 << 2) | (0))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00084">84</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="abca04ce54125372080f2fbf2afdcf027"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_GBR   ((2 << 6) | (2 << 4) | (0 << 2) | (1))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00057">57</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="af60d024b8f8954960e59056c57520080"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_GBRW   ((3 << 6) | (2 << 4) | (0 << 2) | (1))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00082">82</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a20be9abdf372b9c71d9fdacc3e6a9d1a"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_GBWR   ((2 << 6) | (3 << 4) | (0 << 2) | (1))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00081">81</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a95d0d6b0a1f52bc72d9dcea2b3a48e3f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_GRB   ((1 << 6) | (1 << 4) | (0 << 2) | (2))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00056">56</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a722066abc60b560235b3b22082c2e68e"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_GRBW   ((3 << 6) | (1 << 4) | (0 << 2) | (2))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00080">80</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a35a185ff488486a74745e9094892558c"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_GRWB   ((2 << 6) | (1 << 4) | (0 << 2) | (3))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00079">79</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="aaaaa406f36f1c596526579944ca7043d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_GWBR   ((1 << 6) | (3 << 4) | (0 << 2) | (2))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00078">78</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="aa29b3544b4257e851de2e214894d1236"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_GWRB   ((1 << 6) | (2 << 4) | (0 << 2) | (3))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00077">77</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a9c4067fd0cceb0432d1758fc07ede469"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_KHZ400   0x0100</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00102">102</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a475fef7028a743310aa4311a97899d5d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_KHZ800   0x0000</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00100">100</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a7d6aaa56c8e2603312cba8dbdf9c5661"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_RBG   ((0 << 6) | (0 << 4) | (2 << 2) | (1))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00055">55</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a198dc192119c166c544efc3e89fdd1cd"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_RBGW   ((3 << 6) | (0 << 4) | (2 << 2) | (1))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00075">75</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a7b6b551a990b498bed36aadba4a498d5"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_RBWG   ((2 << 6) | (0 << 4) | (3 << 2) | (1))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00074">74</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="aa4f80df5ab240d93359f40956462f758"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_RGB   ((0 << 6) | (0 << 4) | (1 << 2) | (2))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00054">54</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a71f7c6e45f4c63fceca6b5b73c7a7c9d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_RGBW   ((3 << 6) | (0 << 4) | (1 << 2) | (2))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00073">73</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="abcce73b2eafdf1bb331a8f02fba95d10"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_RGWB   ((2 << 6) | (0 << 4) | (1 << 2) | (3))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00072">72</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a9254ebc9367c071457d0321f64c9d5fa"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_RWBG   ((1 << 6) | (0 << 4) | (3 << 2) | (2))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00071">71</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a122c6bb3e44525d2f975dcd89b094267"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_RWGB   ((1 << 6) | (0 << 4) | (2 << 2) | (3))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00070">70</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a015eeccbf1bd19907c34d7b39b63bb84"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_WBGR   ((0 << 6) | (3 << 4) | (2 << 2) | (1))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00068">68</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a3eed3aeba511a2478a1ee8c17516732b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_WBRG   ((0 << 6) | (2 << 4) | (3 << 2) | (1))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00067">67</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="af722c80d41894df25c363b9ebf371b4e"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_WGBR   ((0 << 6) | (3 << 4) | (1 << 2) | (2))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00066">66</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a59561d96a0f8a526ee3448e7b104d8b3"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_WGRB   ((0 << 6) | (2 << 4) | (1 << 2) | (3))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00065">65</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a266a08af576ed4331db48b16bf572d29"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_WRBG   ((0 << 6) | (1 << 4) | (3 << 2) | (2))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00064">64</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a4ee056fd3d7b09538908b35643a2508a"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define NEO_WRGB   ((0 << 6) | (1 << 4) | (2 << 2) | (3))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00063">63</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<h2 class="groupheader">Typedef Documentation</h2> +<a class="anchor" id="a6ff31bc7214a3ae338a80ed6142d69ff"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">typedef uint8_t <a class="el" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00111">111</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="_adafruit___neo_pixel_8h.html">Adafruit_NeoPixel.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8h.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..ee5a3ab29dae3d3ba52bc7219fd20892d71dfb23 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8h.js @@ -0,0 +1,37 @@ +var _adafruit___neo_pixel_8h = +[ + [ "Adafruit_NeoPixel", "class_adafruit___neo_pixel.html", "class_adafruit___neo_pixel" ], + [ "NEO_BGR", "_adafruit___neo_pixel_8h.html#a9129664a08911b56227dd641116f105f", null ], + [ "NEO_BGRW", "_adafruit___neo_pixel_8h.html#a5b49f89982b6e60d20f7aaab79030d54", null ], + [ "NEO_BGWR", "_adafruit___neo_pixel_8h.html#a143de1c7084e1f833beecbdae00b321c", null ], + [ "NEO_BRG", "_adafruit___neo_pixel_8h.html#afde6ec00a4ec8fad0267ae1a6689379e", null ], + [ "NEO_BRGW", "_adafruit___neo_pixel_8h.html#aad617c46d4a64cd4ec8d0ed1a0f30073", null ], + [ "NEO_BRWG", "_adafruit___neo_pixel_8h.html#a4b4571bfc0a3ebfb4720ce4e5fbe9acf", null ], + [ "NEO_BWGR", "_adafruit___neo_pixel_8h.html#a2595b8689ce5bd39634d017620ae57b8", null ], + [ "NEO_BWRG", "_adafruit___neo_pixel_8h.html#aaf438f131d0fa8a0be6791a553145860", null ], + [ "NEO_GBR", "_adafruit___neo_pixel_8h.html#abca04ce54125372080f2fbf2afdcf027", null ], + [ "NEO_GBRW", "_adafruit___neo_pixel_8h.html#af60d024b8f8954960e59056c57520080", null ], + [ "NEO_GBWR", "_adafruit___neo_pixel_8h.html#a20be9abdf372b9c71d9fdacc3e6a9d1a", null ], + [ "NEO_GRB", "_adafruit___neo_pixel_8h.html#a95d0d6b0a1f52bc72d9dcea2b3a48e3f", null ], + [ "NEO_GRBW", "_adafruit___neo_pixel_8h.html#a722066abc60b560235b3b22082c2e68e", null ], + [ "NEO_GRWB", "_adafruit___neo_pixel_8h.html#a35a185ff488486a74745e9094892558c", null ], + [ "NEO_GWBR", "_adafruit___neo_pixel_8h.html#aaaaa406f36f1c596526579944ca7043d", null ], + [ "NEO_GWRB", "_adafruit___neo_pixel_8h.html#aa29b3544b4257e851de2e214894d1236", null ], + [ "NEO_KHZ400", "_adafruit___neo_pixel_8h.html#a9c4067fd0cceb0432d1758fc07ede469", null ], + [ "NEO_KHZ800", "_adafruit___neo_pixel_8h.html#a475fef7028a743310aa4311a97899d5d", null ], + [ "NEO_RBG", "_adafruit___neo_pixel_8h.html#a7d6aaa56c8e2603312cba8dbdf9c5661", null ], + [ "NEO_RBGW", "_adafruit___neo_pixel_8h.html#a198dc192119c166c544efc3e89fdd1cd", null ], + [ "NEO_RBWG", "_adafruit___neo_pixel_8h.html#a7b6b551a990b498bed36aadba4a498d5", null ], + [ "NEO_RGB", "_adafruit___neo_pixel_8h.html#aa4f80df5ab240d93359f40956462f758", null ], + [ "NEO_RGBW", "_adafruit___neo_pixel_8h.html#a71f7c6e45f4c63fceca6b5b73c7a7c9d", null ], + [ "NEO_RGWB", "_adafruit___neo_pixel_8h.html#abcce73b2eafdf1bb331a8f02fba95d10", null ], + [ "NEO_RWBG", "_adafruit___neo_pixel_8h.html#a9254ebc9367c071457d0321f64c9d5fa", null ], + [ "NEO_RWGB", "_adafruit___neo_pixel_8h.html#a122c6bb3e44525d2f975dcd89b094267", null ], + [ "NEO_WBGR", "_adafruit___neo_pixel_8h.html#a015eeccbf1bd19907c34d7b39b63bb84", null ], + [ "NEO_WBRG", "_adafruit___neo_pixel_8h.html#a3eed3aeba511a2478a1ee8c17516732b", null ], + [ "NEO_WGBR", "_adafruit___neo_pixel_8h.html#af722c80d41894df25c363b9ebf371b4e", null ], + [ "NEO_WGRB", "_adafruit___neo_pixel_8h.html#a59561d96a0f8a526ee3448e7b104d8b3", null ], + [ "NEO_WRBG", "_adafruit___neo_pixel_8h.html#a266a08af576ed4331db48b16bf572d29", null ], + [ "NEO_WRGB", "_adafruit___neo_pixel_8h.html#a4ee056fd3d7b09538908b35643a2508a", null ], + [ "neoPixelType", "_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8h_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..d42bfc4d260013b381b07a86844219a6b49991c5 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_adafruit___neo_pixel_8h_source.html @@ -0,0 +1,299 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/Adafruit_NeoPixel.h Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_adafruit___neo_pixel_8h_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">Adafruit_NeoPixel.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="_adafruit___neo_pixel_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*--------------------------------------------------------------------</span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> This file is part of the Adafruit NeoPixel library.</span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"></span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> NeoPixel is free software: you can redistribute it and/or modify</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> it under the terms of the GNU Lesser General Public License as</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> published by the Free Software Foundation, either version 3 of</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> the License, or (at your option) any later version.</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"></span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> NeoPixel is distributed in the hope that it will be useful,</span></div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div> +<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> GNU Lesser General Public License for more details.</span></div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"></span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> You should have received a copy of the GNU Lesser General Public</span></div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> License along with NeoPixel. If not, see</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> <http://www.gnu.org/licenses/>.</span></div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> --------------------------------------------------------------------*/</span></div> +<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div> +<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef ADAFRUIT_NEOPIXEL_H</span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor"></span><span class="preprocessor">#define ADAFRUIT_NEOPIXEL_H</span></div> +<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#if (ARDUINO >= 100)</span></div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"></span><span class="preprocessor"> #include <Arduino.h></span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span><span class="preprocessor"> #include <WProgram.h></span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"> #include <pins_arduino.h></span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// The order of primary colors in the NeoPixel data stream can vary</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// among device types, manufacturers and even different revisions of</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// the same item. The third parameter to the Adafruit_NeoPixel</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// constructor encodes the per-pixel byte offsets of the red, green</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// and blue primaries (plus white, if present) in the data stream --</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// the following #defines provide an easier-to-use named version for</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// each permutation. e.g. NEO_GRB indicates a NeoPixel-compatible</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// device expecting three bytes per pixel, with the first byte</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// containing the green value, second containing red and third</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// containing blue. The in-memory representation of a chain of</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// NeoPixels is the same as the data-stream order; no re-ordering of</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// bytes is required when issuing data to the chain.</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// Bits 5,4 of this value are the offset (0-3) from the first byte of</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// a pixel to the location of the red color byte. Bits 3,2 are the</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// green offset and 1,0 are the blue offset. If it is an RGBW-type</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// device (supporting a white primary in addition to R,G,B), bits 7,6</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// are the offset to the white byte...otherwise, bits 7,6 are set to</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// the same value as 5,4 (red) to indicate an RGB (not RGBW) device.</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// i.e. binary representation:</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// 0bWWRRGGBB for RGBW devices</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// 0bRRRRGGBB for RGB</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// RGB NeoPixel permutations; white and red offsets are always same</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// Offset: W R G B</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#aa4f80df5ab240d93359f40956462f758"> 54</a></span> <span class="preprocessor">#define NEO_RGB ((0 << 6) | (0 << 4) | (1 << 2) | (2))</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a7d6aaa56c8e2603312cba8dbdf9c5661"> 55</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_RBG ((0 << 6) | (0 << 4) | (2 << 2) | (1))</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a95d0d6b0a1f52bc72d9dcea2b3a48e3f"> 56</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_GRB ((1 << 6) | (1 << 4) | (0 << 2) | (2))</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#abca04ce54125372080f2fbf2afdcf027"> 57</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_GBR ((2 << 6) | (2 << 4) | (0 << 2) | (1))</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#afde6ec00a4ec8fad0267ae1a6689379e"> 58</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_BRG ((1 << 6) | (1 << 4) | (2 << 2) | (0))</span></div> +<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a9129664a08911b56227dd641116f105f"> 59</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_BGR ((2 << 6) | (2 << 4) | (1 << 2) | (0))</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// RGBW NeoPixel permutations; all 4 offsets are distinct</span></div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Offset: W R G B</span></div> +<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a4ee056fd3d7b09538908b35643a2508a"> 63</a></span> <span class="preprocessor">#define NEO_WRGB ((0 << 6) | (1 << 4) | (2 << 2) | (3))</span></div> +<div class="line"><a name="l00064"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a266a08af576ed4331db48b16bf572d29"> 64</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_WRBG ((0 << 6) | (1 << 4) | (3 << 2) | (2))</span></div> +<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a59561d96a0f8a526ee3448e7b104d8b3"> 65</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_WGRB ((0 << 6) | (2 << 4) | (1 << 2) | (3))</span></div> +<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#af722c80d41894df25c363b9ebf371b4e"> 66</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_WGBR ((0 << 6) | (3 << 4) | (1 << 2) | (2))</span></div> +<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a3eed3aeba511a2478a1ee8c17516732b"> 67</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_WBRG ((0 << 6) | (2 << 4) | (3 << 2) | (1))</span></div> +<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a015eeccbf1bd19907c34d7b39b63bb84"> 68</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_WBGR ((0 << 6) | (3 << 4) | (2 << 2) | (1))</span></div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a122c6bb3e44525d2f975dcd89b094267"> 70</a></span> <span class="preprocessor">#define NEO_RWGB ((1 << 6) | (0 << 4) | (2 << 2) | (3))</span></div> +<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a9254ebc9367c071457d0321f64c9d5fa"> 71</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_RWBG ((1 << 6) | (0 << 4) | (3 << 2) | (2))</span></div> +<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#abcce73b2eafdf1bb331a8f02fba95d10"> 72</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_RGWB ((2 << 6) | (0 << 4) | (1 << 2) | (3))</span></div> +<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a71f7c6e45f4c63fceca6b5b73c7a7c9d"> 73</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_RGBW ((3 << 6) | (0 << 4) | (1 << 2) | (2))</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a7b6b551a990b498bed36aadba4a498d5"> 74</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_RBWG ((2 << 6) | (0 << 4) | (3 << 2) | (1))</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a198dc192119c166c544efc3e89fdd1cd"> 75</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_RBGW ((3 << 6) | (0 << 4) | (2 << 2) | (1))</span></div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#aa29b3544b4257e851de2e214894d1236"> 77</a></span> <span class="preprocessor">#define NEO_GWRB ((1 << 6) | (2 << 4) | (0 << 2) | (3))</span></div> +<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#aaaaa406f36f1c596526579944ca7043d"> 78</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_GWBR ((1 << 6) | (3 << 4) | (0 << 2) | (2))</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a35a185ff488486a74745e9094892558c"> 79</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_GRWB ((2 << 6) | (1 << 4) | (0 << 2) | (3))</span></div> +<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a722066abc60b560235b3b22082c2e68e"> 80</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_GRBW ((3 << 6) | (1 << 4) | (0 << 2) | (2))</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a20be9abdf372b9c71d9fdacc3e6a9d1a"> 81</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_GBWR ((2 << 6) | (3 << 4) | (0 << 2) | (1))</span></div> +<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#af60d024b8f8954960e59056c57520080"> 82</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_GBRW ((3 << 6) | (2 << 4) | (0 << 2) | (1))</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#aaf438f131d0fa8a0be6791a553145860"> 84</a></span> <span class="preprocessor">#define NEO_BWRG ((1 << 6) | (2 << 4) | (3 << 2) | (0))</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a2595b8689ce5bd39634d017620ae57b8"> 85</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_BWGR ((1 << 6) | (3 << 4) | (2 << 2) | (0))</span></div> +<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a4b4571bfc0a3ebfb4720ce4e5fbe9acf"> 86</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_BRWG ((2 << 6) | (1 << 4) | (3 << 2) | (0))</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#aad617c46d4a64cd4ec8d0ed1a0f30073"> 87</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_BRGW ((3 << 6) | (1 << 4) | (2 << 2) | (0))</span></div> +<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a143de1c7084e1f833beecbdae00b321c"> 88</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_BGWR ((2 << 6) | (3 << 4) | (1 << 2) | (0))</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a5b49f89982b6e60d20f7aaab79030d54"> 89</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_BGRW ((3 << 6) | (2 << 4) | (1 << 2) | (0))</span></div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// Add NEO_KHZ400 to the color order value to indicate a 400 KHz</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// device. All but the earliest v1 NeoPixels expect an 800 KHz data</span></div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">// stream, this is the default if unspecified. Because flash space</span></div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// is very limited on ATtiny devices (e.g. Trinket, Gemma), v1</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">// NeoPixels aren't handled by default on those chips, though it can</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// be enabled by removing the ifndef/endif below -- but code will be</span></div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// bigger. Conversely, can disable the NEO_KHZ400 line on other MCUs</span></div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// to remove v1 support and save a little space.</span></div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div> +<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a475fef7028a743310aa4311a97899d5d"> 100</a></span> <span class="preprocessor">#define NEO_KHZ800 0x0000 // 800 KHz datastream</span></div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"></span><span class="preprocessor">#ifndef __AVR_ATtiny85__</span></div> +<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a9c4067fd0cceb0432d1758fc07ede469"> 102</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NEO_KHZ400 0x0100 // 400 KHz datastream</span></div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// If 400 KHz support is enabled, the third parameter to the constructor</span></div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// requires a 16-bit value (in order to select 400 vs 800 KHz speed).</span></div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// If only 800 KHz is enabled (as is default on ATtiny), an 8-bit value</span></div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// is sufficient to encode pixel color order, saving some space.</span></div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#ifdef NEO_KHZ400</span></div> +<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff"> 111</a></span> <span class="preprocessor"></span><span class="keyword">typedef</span> uint8_t <a class="code" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a>;</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"></span><span class="keyword">typedef</span> uint16_t <a class="code" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a>;</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html"> 116</a></span> <span class="keyword">class </span><a class="code" href="class_adafruit___neo_pixel.html">Adafruit_NeoPixel</a> {</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">public</span>:</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// Constructor: number of LEDs, pin number, LED type</span></div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="class_adafruit___neo_pixel.html#ab1ac0c48cf3fd9185e40308c37f1d320">Adafruit_NeoPixel</a>(uint16_t n, uint8_t p=6, <a class="code" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a> t=<a class="code" href="_adafruit___neo_pixel_8h.html#a95d0d6b0a1f52bc72d9dcea2b3a48e3f">NEO_GRB</a> + <a class="code" href="_adafruit___neo_pixel_8h.html#a475fef7028a743310aa4311a97899d5d">NEO_KHZ800</a>);</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="class_adafruit___neo_pixel.html#ab1ac0c48cf3fd9185e40308c37f1d320">Adafruit_NeoPixel</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="class_adafruit___neo_pixel.html#a16d970aa16f9d0128800346f4ca567db">~Adafruit_NeoPixel</a>();</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordtype">void</span></div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="class_adafruit___neo_pixel.html#aad78931e44ce43c9b9c460dba7c9bbb7">begin</a>(<span class="keywordtype">void</span>),</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7">show</a>(<span class="keywordtype">void</span>),</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b">setPin</a>(uint8_t p),</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1">setPixelColor</a>(uint16_t n, uint8_t r, uint8_t g, uint8_t b),</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1">setPixelColor</a>(uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w),</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1">setPixelColor</a>(uint16_t n, uint32_t c),</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="class_adafruit___neo_pixel.html#afa1740af1d8eec971eada06d53901c53">setBrightness</a>(uint8_t),</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="class_adafruit___neo_pixel.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a>(),</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944">updateLength</a>(uint16_t n),</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="class_adafruit___neo_pixel.html#a65e59263e0f5a04c7202d4385d3a539b">updateType</a>(<a class="code" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a> t);</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  uint8_t</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  *<a class="code" href="class_adafruit___neo_pixel.html#a18bc91d2bad52cf603814d4df6f33067">getPixels</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>,</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="class_adafruit___neo_pixel.html#a553bf1a0513094c73cb54a235f74ac7f">getBrightness</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  uint16_t</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="class_adafruit___neo_pixel.html#ac893a5c07c41604539022af84665c04b">numPixels</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">static</span> uint32_t</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec">Color</a>(uint8_t r, uint8_t g, uint8_t b),</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec">Color</a>(uint8_t r, uint8_t g, uint8_t b, uint8_t w);</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  uint32_t</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="class_adafruit___neo_pixel.html#a10a836ddc4ebd3e26b1e71a5875764fa">getPixelColor</a>(uint16_t n) <span class="keyword">const</span>;</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span></div> +<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="class_adafruit___neo_pixel.html#ad38ce8112667b70ad7c411a98892af0e"> 147</a></span>  <a class="code" href="class_adafruit___neo_pixel.html#ad38ce8112667b70ad7c411a98892af0e">canShow</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> (micros() - endTime) >= 50L; }</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">private</span>:</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">boolean</span></div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor">#ifdef NEO_KHZ400 // If 400 KHz NeoPixel support enabled...</span></div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor"></span> is800KHz, <span class="comment">// ...true if 800 KHz pixels</span></div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"></span> begun; <span class="comment">// true if begin() previously called</span></div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  uint16_t</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  numLEDs, <span class="comment">// Number of RGB LEDs in strip</span></div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  numBytes; <span class="comment">// Size of 'pixels' buffer below (3 or 4 bytes/pixel)</span></div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  int8_t</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  pin; <span class="comment">// Output pin number (-1 if not yet set)</span></div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  uint8_t</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  brightness,</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  *pixels, <span class="comment">// Holds LED color values (3 or 4 bytes each)</span></div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  rOffset, <span class="comment">// Index of red byte within each 3- or 4-byte pixel</span></div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  gOffset, <span class="comment">// Index of green byte</span></div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  bOffset, <span class="comment">// Index of blue byte</span></div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  wOffset; <span class="comment">// Index of white byte (same as rOffset if no white)</span></div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  uint32_t</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  endTime; <span class="comment">// Latch timing reference</span></div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor">#ifdef __AVR__</span></div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"></span> <span class="keyword">volatile</span> uint8_t</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  *port; <span class="comment">// Output PORT register</span></div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  uint8_t</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  pinMask; <span class="comment">// Output PORT bitmask</span></div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> };</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor">#endif // ADAFRUIT_NEOPIXEL_H</span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="_adafruit___neo_pixel_8h.html">Adafruit_NeoPixel.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8cpp.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8cpp.html new file mode 100644 index 0000000000000000000000000000000000000000..fa65439080ea4f4bd4be8ebbdeb83b3790660d8a --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8cpp.html @@ -0,0 +1,377 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/MAX30102/MAX30102.cpp File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_m_a_x30102_8cpp.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">MAX30102.cpp File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include "mbed.h"</code><br/> +<code>#include "<a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>"</code><br/> +</div> +<p><a href="_m_a_x30102_8cpp_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:ae3e7ab47cd5395225bf7c67b8ee84976"><td class="memItemLeft" align="right" valign="top">I2C </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">i2c</a> (I2C_SDA, I2C_SCL)</td></tr> +<tr class="separator:ae3e7ab47cd5395225bf7c67b8ee84976"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6">maxim_max30102_write_reg</a> (uint8_t uch_addr, uint8_t uch_data)</td></tr> +<tr class="memdesc:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="mdescLeft"> </td><td class="mdescRight">Write a value to a MAX30102 register. <a href="#a4c2ec1539c1ec8354cdaefe2c3bf48d6"></a><br/></td></tr> +<tr class="separator:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0cd2c5a58e57ebbe8c9361384798331f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f">maxim_max30102_read_reg</a> (uint8_t uch_addr, uint8_t *puch_data)</td></tr> +<tr class="memdesc:a0cd2c5a58e57ebbe8c9361384798331f"><td class="mdescLeft"> </td><td class="mdescRight">Read a MAX30102 register. <a href="#a0cd2c5a58e57ebbe8c9361384798331f"></a><br/></td></tr> +<tr class="separator:a0cd2c5a58e57ebbe8c9361384798331f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4113aeee76935425d8a557a79a4193df"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df">maxim_max30102_init</a> ()</td></tr> +<tr class="memdesc:a4113aeee76935425d8a557a79a4193df"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the MAX30102. <a href="#a4113aeee76935425d8a557a79a4193df"></a><br/></td></tr> +<tr class="separator:a4113aeee76935425d8a557a79a4193df"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968">maxim_max30102_read_fifo</a> (uint32_t *pun_red_led, uint32_t *pun_ir_led)</td></tr> +<tr class="memdesc:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="mdescLeft"> </td><td class="mdescRight">Read a set of samples from the MAX30102 FIFO register. <a href="#a483073cbc9dbb7a5a2495ce2ae4fb968"></a><br/></td></tr> +<tr class="separator:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1df3bb178b66379a2975c56395c47d9b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b">maxim_max30102_reset</a> ()</td></tr> +<tr class="memdesc:a1df3bb178b66379a2975c56395c47d9b"><td class="mdescLeft"> </td><td class="mdescRight">Reset the MAX30102. <a href="#a1df3bb178b66379a2975c56395c47d9b"></a><br/></td></tr> +<tr class="separator:a1df3bb178b66379a2975c56395c47d9b"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><hr/> +<p>Project: MAXREFDES117# Filename: <a class="el" href="_m_a_x30102_8cpp.html">max30102.cpp</a> Description: This module is an embedded controller driver for the MAX30102 <hr/> +<p>This code follows the following naming conventions:</p> +<p>char ch_pmod_value char (array) s_pmod_s_string[16] float f_pmod_value int32_t n_pmod_value int32_t (array) an_pmod_value[16] int16_t w_pmod_value int16_t (array) aw_pmod_value[16] uint16_t uw_pmod_value uint16_t (array) auw_pmod_value[16] uint8_t uch_pmod_value uint8_t (array) auch_pmod_buffer[16] uint32_t un_pmod_value int32_t * pn_pmod_value <hr/> + +<p>Definition in file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="ae3e7ab47cd5395225bf7c67b8ee84976"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">I2C i2c </td> + <td>(</td> + <td class="paramtype">I2C_SDA </td> + <td class="paramname">, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">I2C_SCL </td> + <td class="paramname"> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +</div> +</div> +<a class="anchor" id="a4113aeee76935425d8a557a79a4193df"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_init </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Initialize the MAX30102. </p> +<dl class="section user"><dt>Details</dt><dd>This function initializes the MAX30102</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00115">115</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a483073cbc9dbb7a5a2495ce2ae4fb968"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_read_fifo </td> + <td>(</td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_red_led</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_ir_led</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Read a set of samples from the MAX30102 FIFO register. </p> +<dl class="section user"><dt>Details</dt><dd>This function reads a set of samples from the MAX30102 FIFO register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[out]</td><td class="paramname">*pun_red_led</td><td>- pointer that stores the red LED reading data </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pun_ir_led</td><td>- pointer that stores the IR LED reading data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00152">152</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a0cd2c5a58e57ebbe8c9361384798331f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_read_reg </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_addr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>puch_data</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Read a MAX30102 register. </p> +<dl class="section user"><dt>Details</dt><dd>This function reads a MAX30102 register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_addr</td><td>- register address </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">puch_data</td><td>- pointer that stores the register data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00090">90</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a1df3bb178b66379a2975c56395c47d9b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_reset </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Reset the MAX30102. </p> +<dl class="section user"><dt>Details</dt><dd>This function resets the MAX30102</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00205">205</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a4c2ec1539c1ec8354cdaefe2c3bf48d6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_write_reg </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_addr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_data</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Write a value to a MAX30102 register. </p> +<dl class="section user"><dt>Details</dt><dd>This function writes a value to a MAX30102 register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_addr</td><td>- register address </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_data</td><td>- register data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00068">68</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_d4a9a7556cca61907ce453116086a23a.html">MAX30102</a></li><li class="navelem"><a class="el" href="_m_a_x30102_8cpp.html">MAX30102.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8cpp.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8cpp.js new file mode 100644 index 0000000000000000000000000000000000000000..16c93c0968ca725ac1e8ecc03d936be156659b0b --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8cpp.js @@ -0,0 +1,9 @@ +var _m_a_x30102_8cpp = +[ + [ "i2c", "_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976", null ], + [ "maxim_max30102_init", "_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df", null ], + [ "maxim_max30102_read_fifo", "_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968", null ], + [ "maxim_max30102_read_reg", "_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f", null ], + [ "maxim_max30102_reset", "_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b", null ], + [ "maxim_max30102_write_reg", "_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8cpp_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8cpp_source.html new file mode 100644 index 0000000000000000000000000000000000000000..da5160050291873897a8886aa7f1e65f8b9142c0 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8cpp_source.html @@ -0,0 +1,266 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/MAX30102/MAX30102.cpp Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_m_a_x30102_8cpp_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">MAX30102.cpp</div> </div> +</div><!--header--> +<div class="contents"> +<a href="_m_a_x30102_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">/*******************************************************************************</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">*</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">* Permission is hereby granted, free of charge, to any person obtaining a</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">* copy of this software and associated documentation files (the "Software"),</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">* to deal in the Software without restriction, including without limitation</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">* the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">* and/or sell copies of the Software, and to permit persons to whom the</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">* Software is furnished to do so, subject to the following conditions:</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">*</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">* The above copyright notice and this permission notice shall be included</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">* in all copies or substantial portions of the Software.</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">*</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* OTHER DEALINGS IN THE SOFTWARE.</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">*</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">* Except as contained in this notice, the name of Maxim Integrated</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">* Products, Inc. shall not be used except as stated in the Maxim Integrated</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">* Products, Inc. Branding Policy.</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">*</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">* The mere transfer of this software does not imply any licenses</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">* of trade secrets, proprietary technology, copyrights, patents,</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">* trademarks, maskwork rights, or any other form of intellectual</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">* property whatsoever. Maxim Integrated Products, Inc. retains all</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">* ownership rights.</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">*******************************************************************************</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">*/</span></div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include "mbed.h"</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include "<a class="code" href="_m_a_x30102_8h.html">MAX30102.h</a>"</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#ifdef TARGET_MAX32600MBED</span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span>I2C <a class="code" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">i2c</a>(I2C1_SDA, I2C1_SCL);</div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span>I2C <a class="code" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">i2c</a>(I2C_SDA, I2C_SCL);</div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6"> 68</a></span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(uint8_t uch_addr, uint8_t uch_data)</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> {</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordtype">char</span> ach_i2c_data[2];</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  ach_i2c_data[0]=uch_addr;</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  ach_i2c_data[1]=uch_data;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span>(<a class="code" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">i2c</a>.write(<a class="code" href="_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">I2C_WRITE_ADDR</a>, ach_i2c_data, 2, <span class="keyword">false</span>)==0)</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> }</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div> +<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f"> 90</a></span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(uint8_t uch_addr, uint8_t *puch_data)</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> {</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordtype">char</span> ch_i2c_data;</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  ch_i2c_data=uch_addr;</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span>(<a class="code" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">i2c</a>.write(<a class="code" href="_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">I2C_WRITE_ADDR</a>, &ch_i2c_data, 1, <span class="keyword">true</span>)!=0)</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span>(<a class="code" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">i2c</a>.read(<a class="code" href="_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37">I2C_READ_ADDR</a>, &ch_i2c_data, 1, <span class="keyword">false</span>)==0)</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  *puch_data=(uint8_t) ch_i2c_data;</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div> +<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a4113aeee76935425d8a557a79a4193df"> 115</a></span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df" title="Initialize the MAX30102.">maxim_max30102_init</a>()</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> {</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d">REG_INTR_ENABLE_1</a>,0xc0)) <span class="comment">// INTR setting</span></div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1">REG_INTR_ENABLE_2</a>,0x00))</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#aba8c69cb46224fb35783f5b60e75b115">REG_FIFO_WR_PTR</a>,0x00)) <span class="comment">//FIFO_WR_PTR[4:0]</span></div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707">REG_OVF_COUNTER</a>,0x00)) <span class="comment">//OVF_COUNTER[4:0]</span></div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f">REG_FIFO_RD_PTR</a>,0x00)) <span class="comment">//FIFO_RD_PTR[4:0]</span></div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca">REG_FIFO_CONFIG</a>,0x0f)) <span class="comment">//sample avg = 1, fifo rollover=false, fifo almost full = 17</span></div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f">REG_MODE_CONFIG</a>,0x03)) <span class="comment">//0x02 for Red only, 0x03 for SpO2 mode 0x07 multimode LED</span></div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#a38546015e987a72b8c9eb13228237dd0">REG_SPO2_CONFIG</a>,0x27)) <span class="comment">// SPO2_ADC range = 4096nA, SPO2 sample rate (100 Hz), LED pulseWidth (400uS)</span></div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b">REG_LED1_PA</a>,0x24)) <span class="comment">//Choose value for ~ 7mA for LED1</span></div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21">REG_LED2_PA</a>,0x24)) <span class="comment">// Choose value for ~ 7mA for LED2</span></div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#a371750304ec49457d3d38f60428f8ff1">REG_PILOT_PA</a>,0x7f)) <span class="comment">// Choose value for ~ 25mA for Pilot LED</span></div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>; </div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div> +<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968"> 152</a></span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>(uint32_t *pun_red_led, uint32_t *pun_ir_led)</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> {</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  uint32_t un_temp;</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> uch_temp;</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  *pun_red_led=0;</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  *pun_ir_led=0;</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordtype">char</span> ach_i2c_data[6];</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">//read and clear status register</span></div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(<a class="code" href="_m_a_x30102_8h.html#a7d161a2394a67a2176d549edb94f4191">REG_INTR_STATUS_1</a>, &uch_temp);</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(<a class="code" href="_m_a_x30102_8h.html#a61d809a1e313a2787b23e96de9554c4a">REG_INTR_STATUS_2</a>, &uch_temp);</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  ach_i2c_data[0]=<a class="code" href="_m_a_x30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd">REG_FIFO_DATA</a>;</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span>(<a class="code" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">i2c</a>.write(<a class="code" href="_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">I2C_WRITE_ADDR</a>, ach_i2c_data, 1, <span class="keyword">true</span>)!=0)</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span>(<a class="code" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">i2c</a>.read(<a class="code" href="_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37">I2C_READ_ADDR</a>, ach_i2c_data, 6, <span class="keyword">false</span>)!=0)</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  {</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  un_temp=(<span class="keywordtype">unsigned</span> char) ach_i2c_data[0];</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  un_temp<<=16;</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  *pun_red_led+=un_temp;</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  un_temp=(<span class="keywordtype">unsigned</span> char) ach_i2c_data[1];</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  un_temp<<=8;</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  *pun_red_led+=un_temp;</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  un_temp=(<span class="keywordtype">unsigned</span> char) ach_i2c_data[2];</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  *pun_red_led+=un_temp;</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  </div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  un_temp=(<span class="keywordtype">unsigned</span> char) ach_i2c_data[3];</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  un_temp<<=16;</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  *pun_ir_led+=un_temp;</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  un_temp=(<span class="keywordtype">unsigned</span> char) ach_i2c_data[4];</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  un_temp<<=8;</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  *pun_ir_led+=un_temp;</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  un_temp=(<span class="keywordtype">unsigned</span> char) ach_i2c_data[5];</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  *pun_ir_led+=un_temp;</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  *pun_red_led&=0x03FFFF; <span class="comment">//Mask MSB [23:18]</span></div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  *pun_ir_led&=0x03FFFF; <span class="comment">//Mask MSB [23:18]</span></div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> }</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div> +<div class="line"><a name="l00205"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd"> 205</a></span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b" title="Reset the MAX30102.">maxim_max30102_reset</a>()</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> {</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">if</span>(!<a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f">REG_MODE_CONFIG</a>,0x40))</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>; </div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> }</div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_d4a9a7556cca61907ce453116086a23a.html">MAX30102</a></li><li class="navelem"><a class="el" href="_m_a_x30102_8cpp.html">MAX30102.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8h.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..e568cf7d134bac81f60757e32424e8695ef8d396 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8h.html @@ -0,0 +1,737 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/MAX30102/MAX30102.h File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_m_a_x30102_8h.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">MAX30102.h File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include "mbed.h"</code><br/> +</div> +<p><a href="_m_a_x30102_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:a7978167075eb8954c1090fc7ce9647c6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">I2C_WRITE_ADDR</a>   0xAE</td></tr> +<tr class="separator:a7978167075eb8954c1090fc7ce9647c6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a11a0148c64950f3315f38d957cd43d37"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37">I2C_READ_ADDR</a>   0xAF</td></tr> +<tr class="separator:a11a0148c64950f3315f38d957cd43d37"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a7d161a2394a67a2176d549edb94f4191"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a7d161a2394a67a2176d549edb94f4191">REG_INTR_STATUS_1</a>   0x00</td></tr> +<tr class="separator:a7d161a2394a67a2176d549edb94f4191"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a61d809a1e313a2787b23e96de9554c4a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a61d809a1e313a2787b23e96de9554c4a">REG_INTR_STATUS_2</a>   0x01</td></tr> +<tr class="separator:a61d809a1e313a2787b23e96de9554c4a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae07f3c26106a0a37b6eddd8d2653137d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d">REG_INTR_ENABLE_1</a>   0x02</td></tr> +<tr class="separator:ae07f3c26106a0a37b6eddd8d2653137d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab8d58d945ad576d492f669c7b9affbf1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1">REG_INTR_ENABLE_2</a>   0x03</td></tr> +<tr class="separator:ab8d58d945ad576d492f669c7b9affbf1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aba8c69cb46224fb35783f5b60e75b115"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#aba8c69cb46224fb35783f5b60e75b115">REG_FIFO_WR_PTR</a>   0x04</td></tr> +<tr class="separator:aba8c69cb46224fb35783f5b60e75b115"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af9c8026aa9a22fad4c22ee6b10613707"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707">REG_OVF_COUNTER</a>   0x05</td></tr> +<tr class="separator:af9c8026aa9a22fad4c22ee6b10613707"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3b9d75d4ac3cb579e8b46dea27f4303f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f">REG_FIFO_RD_PTR</a>   0x06</td></tr> +<tr class="separator:a3b9d75d4ac3cb579e8b46dea27f4303f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a05bf6ede83fa400eac4dd65788d996fd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd">REG_FIFO_DATA</a>   0x07</td></tr> +<tr class="separator:a05bf6ede83fa400eac4dd65788d996fd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad1b1bbfe23c9461e0ae75b71b9f805ca"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca">REG_FIFO_CONFIG</a>   0x08</td></tr> +<tr class="separator:ad1b1bbfe23c9461e0ae75b71b9f805ca"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:accdea52b28f1bd3f4cd63d05ab12887f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f">REG_MODE_CONFIG</a>   0x09</td></tr> +<tr class="separator:accdea52b28f1bd3f4cd63d05ab12887f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a38546015e987a72b8c9eb13228237dd0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a38546015e987a72b8c9eb13228237dd0">REG_SPO2_CONFIG</a>   0x0A</td></tr> +<tr class="separator:a38546015e987a72b8c9eb13228237dd0"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f3a6641b201203d41ed3d23b638a96b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b">REG_LED1_PA</a>   0x0C</td></tr> +<tr class="separator:a5f3a6641b201203d41ed3d23b638a96b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a7df43b0f854c9caf2fe04ccdebb18d21"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21">REG_LED2_PA</a>   0x0D</td></tr> +<tr class="separator:a7df43b0f854c9caf2fe04ccdebb18d21"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a371750304ec49457d3d38f60428f8ff1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a371750304ec49457d3d38f60428f8ff1">REG_PILOT_PA</a>   0x10</td></tr> +<tr class="separator:a371750304ec49457d3d38f60428f8ff1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9d333cff4d002cb1d09a319e6917bc5c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c">REG_MULTI_LED_CTRL1</a>   0x11</td></tr> +<tr class="separator:a9d333cff4d002cb1d09a319e6917bc5c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a05ed274928d49bb6ddd6def6e45fac10"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10">REG_MULTI_LED_CTRL2</a>   0x12</td></tr> +<tr class="separator:a05ed274928d49bb6ddd6def6e45fac10"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a579a9e43d89bdda85d9ccb206339d681"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a579a9e43d89bdda85d9ccb206339d681">REG_TEMP_INTR</a>   0x1F</td></tr> +<tr class="separator:a579a9e43d89bdda85d9ccb206339d681"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5321d8a33f1225ab437032e0e8ecbb3d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d">REG_TEMP_FRAC</a>   0x20</td></tr> +<tr class="separator:a5321d8a33f1225ab437032e0e8ecbb3d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad16bc92e2f92e516ca396214861a6379"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#ad16bc92e2f92e516ca396214861a6379">REG_TEMP_CONFIG</a>   0x21</td></tr> +<tr class="separator:ad16bc92e2f92e516ca396214861a6379"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3d80b09e301a0155949b7c337ce5f5ab"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab">REG_PROX_INT_THRESH</a>   0x30</td></tr> +<tr class="separator:a3d80b09e301a0155949b7c337ce5f5ab"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a16f4b970762f7e8aa1f5c7a780a48c23"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23">REG_REV_ID</a>   0xFE</td></tr> +<tr class="separator:a16f4b970762f7e8aa1f5c7a780a48c23"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a46083d1b6d3e1d5f89b0f1598dc6d163"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163">REG_PART_ID</a>   0xFF</td></tr> +<tr class="separator:a46083d1b6d3e1d5f89b0f1598dc6d163"><td class="memSeparator" colspan="2"> </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:a4113aeee76935425d8a557a79a4193df"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a4113aeee76935425d8a557a79a4193df">maxim_max30102_init</a> ()</td></tr> +<tr class="memdesc:a4113aeee76935425d8a557a79a4193df"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the MAX30102. <a href="#a4113aeee76935425d8a557a79a4193df"></a><br/></td></tr> +<tr class="separator:a4113aeee76935425d8a557a79a4193df"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968">maxim_max30102_read_fifo</a> (uint32_t *pun_red_led, uint32_t *pun_ir_led)</td></tr> +<tr class="memdesc:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="mdescLeft"> </td><td class="mdescRight">Read a set of samples from the MAX30102 FIFO register. <a href="#a483073cbc9dbb7a5a2495ce2ae4fb968"></a><br/></td></tr> +<tr class="separator:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6">maxim_max30102_write_reg</a> (uint8_t uch_addr, uint8_t uch_data)</td></tr> +<tr class="memdesc:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="mdescLeft"> </td><td class="mdescRight">Write a value to a MAX30102 register. <a href="#a4c2ec1539c1ec8354cdaefe2c3bf48d6"></a><br/></td></tr> +<tr class="separator:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0cd2c5a58e57ebbe8c9361384798331f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f">maxim_max30102_read_reg</a> (uint8_t uch_addr, uint8_t *puch_data)</td></tr> +<tr class="memdesc:a0cd2c5a58e57ebbe8c9361384798331f"><td class="mdescLeft"> </td><td class="mdescRight">Read a MAX30102 register. <a href="#a0cd2c5a58e57ebbe8c9361384798331f"></a><br/></td></tr> +<tr class="separator:a0cd2c5a58e57ebbe8c9361384798331f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a94ab5935f6ce28aa5ce31aa842eb83dd"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd">maxim_max30102_reset</a> (void)</td></tr> +<tr class="memdesc:a94ab5935f6ce28aa5ce31aa842eb83dd"><td class="mdescLeft"> </td><td class="mdescRight">Reset the MAX30102. <a href="#a94ab5935f6ce28aa5ce31aa842eb83dd"></a><br/></td></tr> +<tr class="separator:a94ab5935f6ce28aa5ce31aa842eb83dd"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><hr/> +<p>Project: MAXREFDES117# Filename: <a class="el" href="_m_a_x30102_8h.html">max30102.h</a> Description: This module is an embedded controller driver header file for MAX30102 <hr/> +<p>This code follows the following naming conventions:</p> +<p>char ch_pmod_value char (array) s_pmod_s_string[16] float f_pmod_value int32_t n_pmod_value int32_t (array) an_pmod_value[16] int16_t w_pmod_value int16_t (array) aw_pmod_value[16] uint16_t uw_pmod_value uint16_t (array) auw_pmod_value[16] uint8_t uch_pmod_value uint8_t (array) auch_pmod_buffer[16] uint32_t un_pmod_value int32_t * pn_pmod_value <hr/> + +<p>Definition in file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> +</div><h2 class="groupheader">Macro Definition Documentation</h2> +<a class="anchor" id="a11a0148c64950f3315f38d957cd43d37"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_READ_ADDR   0xAF</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00065">65</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a7978167075eb8954c1090fc7ce9647c6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_WRITE_ADDR   0xAE</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00064">64</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ad1b1bbfe23c9461e0ae75b71b9f805ca"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_FIFO_CONFIG   0x08</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00076">76</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a05bf6ede83fa400eac4dd65788d996fd"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_FIFO_DATA   0x07</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00075">75</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a3b9d75d4ac3cb579e8b46dea27f4303f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_FIFO_RD_PTR   0x06</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00074">74</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="aba8c69cb46224fb35783f5b60e75b115"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_FIFO_WR_PTR   0x04</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00072">72</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ae07f3c26106a0a37b6eddd8d2653137d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_INTR_ENABLE_1   0x02</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00070">70</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ab8d58d945ad576d492f669c7b9affbf1"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_INTR_ENABLE_2   0x03</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00071">71</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a7d161a2394a67a2176d549edb94f4191"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_INTR_STATUS_1   0x00</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00068">68</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a61d809a1e313a2787b23e96de9554c4a"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_INTR_STATUS_2   0x01</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00069">69</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a5f3a6641b201203d41ed3d23b638a96b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_LED1_PA   0x0C</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00079">79</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a7df43b0f854c9caf2fe04ccdebb18d21"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_LED2_PA   0x0D</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00080">80</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="accdea52b28f1bd3f4cd63d05ab12887f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_MODE_CONFIG   0x09</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00077">77</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a9d333cff4d002cb1d09a319e6917bc5c"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_MULTI_LED_CTRL1   0x11</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00082">82</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a05ed274928d49bb6ddd6def6e45fac10"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_MULTI_LED_CTRL2   0x12</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00083">83</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="af9c8026aa9a22fad4c22ee6b10613707"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_OVF_COUNTER   0x05</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00073">73</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a46083d1b6d3e1d5f89b0f1598dc6d163"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_PART_ID   0xFF</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00089">89</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a371750304ec49457d3d38f60428f8ff1"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_PILOT_PA   0x10</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00081">81</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a3d80b09e301a0155949b7c337ce5f5ab"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_PROX_INT_THRESH   0x30</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00087">87</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a16f4b970762f7e8aa1f5c7a780a48c23"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_REV_ID   0xFE</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00088">88</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a38546015e987a72b8c9eb13228237dd0"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_SPO2_CONFIG   0x0A</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00078">78</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ad16bc92e2f92e516ca396214861a6379"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_TEMP_CONFIG   0x21</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00086">86</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a5321d8a33f1225ab437032e0e8ecbb3d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_TEMP_FRAC   0x20</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00085">85</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a579a9e43d89bdda85d9ccb206339d681"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_TEMP_INTR   0x1F</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_m_a_x30102_8h_source.html#l00084">84</a> of file <a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>.</p> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="a4113aeee76935425d8a557a79a4193df"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_init </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Initialize the MAX30102. </p> +<dl class="section user"><dt>Details</dt><dd>This function initializes the MAX30102</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00115">115</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a483073cbc9dbb7a5a2495ce2ae4fb968"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_read_fifo </td> + <td>(</td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_red_led</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_ir_led</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Read a set of samples from the MAX30102 FIFO register. </p> +<dl class="section user"><dt>Details</dt><dd>This function reads a set of samples from the MAX30102 FIFO register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[out]</td><td class="paramname">*pun_red_led</td><td>- pointer that stores the red LED reading data </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pun_ir_led</td><td>- pointer that stores the IR LED reading data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00152">152</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a0cd2c5a58e57ebbe8c9361384798331f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_read_reg </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_addr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>puch_data</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Read a MAX30102 register. </p> +<dl class="section user"><dt>Details</dt><dd>This function reads a MAX30102 register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_addr</td><td>- register address </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">puch_data</td><td>- pointer that stores the register data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00090">90</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a94ab5935f6ce28aa5ce31aa842eb83dd"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_reset </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Reset the MAX30102. </p> +<dl class="section user"><dt>Details</dt><dd>This function resets the MAX30102</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00205">205</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a4c2ec1539c1ec8354cdaefe2c3bf48d6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_write_reg </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_addr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_data</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Write a value to a MAX30102 register. </p> +<dl class="section user"><dt>Details</dt><dd>This function writes a value to a MAX30102 register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_addr</td><td>- register address </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_data</td><td>- register data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="_m_a_x30102_8cpp_source.html#l00068">68</a> of file <a class="el" href="_m_a_x30102_8cpp_source.html">MAX30102.cpp</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_d4a9a7556cca61907ce453116086a23a.html">MAX30102</a></li><li class="navelem"><a class="el" href="_m_a_x30102_8h.html">MAX30102.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8h.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..064f9661bb6050f35c6a82a426481e5f83b908c3 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8h.js @@ -0,0 +1,32 @@ +var _m_a_x30102_8h = +[ + [ "I2C_READ_ADDR", "_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37", null ], + [ "I2C_WRITE_ADDR", "_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6", null ], + [ "REG_FIFO_CONFIG", "_m_a_x30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca", null ], + [ "REG_FIFO_DATA", "_m_a_x30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd", null ], + [ "REG_FIFO_RD_PTR", "_m_a_x30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f", null ], + [ "REG_FIFO_WR_PTR", "_m_a_x30102_8h.html#aba8c69cb46224fb35783f5b60e75b115", null ], + [ "REG_INTR_ENABLE_1", "_m_a_x30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d", null ], + [ "REG_INTR_ENABLE_2", "_m_a_x30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1", null ], + [ "REG_INTR_STATUS_1", "_m_a_x30102_8h.html#a7d161a2394a67a2176d549edb94f4191", null ], + [ "REG_INTR_STATUS_2", "_m_a_x30102_8h.html#a61d809a1e313a2787b23e96de9554c4a", null ], + [ "REG_LED1_PA", "_m_a_x30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b", null ], + [ "REG_LED2_PA", "_m_a_x30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21", null ], + [ "REG_MODE_CONFIG", "_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f", null ], + [ "REG_MULTI_LED_CTRL1", "_m_a_x30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c", null ], + [ "REG_MULTI_LED_CTRL2", "_m_a_x30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10", null ], + [ "REG_OVF_COUNTER", "_m_a_x30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707", null ], + [ "REG_PART_ID", "_m_a_x30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163", null ], + [ "REG_PILOT_PA", "_m_a_x30102_8h.html#a371750304ec49457d3d38f60428f8ff1", null ], + [ "REG_PROX_INT_THRESH", "_m_a_x30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab", null ], + [ "REG_REV_ID", "_m_a_x30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23", null ], + [ "REG_SPO2_CONFIG", "_m_a_x30102_8h.html#a38546015e987a72b8c9eb13228237dd0", null ], + [ "REG_TEMP_CONFIG", "_m_a_x30102_8h.html#ad16bc92e2f92e516ca396214861a6379", null ], + [ "REG_TEMP_FRAC", "_m_a_x30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d", null ], + [ "REG_TEMP_INTR", "_m_a_x30102_8h.html#a579a9e43d89bdda85d9ccb206339d681", null ], + [ "maxim_max30102_init", "_m_a_x30102_8h.html#a4113aeee76935425d8a557a79a4193df", null ], + [ "maxim_max30102_read_fifo", "_m_a_x30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968", null ], + [ "maxim_max30102_read_reg", "_m_a_x30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f", null ], + [ "maxim_max30102_reset", "_m_a_x30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd", null ], + [ "maxim_max30102_write_reg", "_m_a_x30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8h_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..eb9ec8d29a36d18263cc5744e5152127cb155473 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_m_a_x30102_8h_source.html @@ -0,0 +1,191 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/MAX30102/MAX30102.h Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_m_a_x30102_8h_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">MAX30102.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="_m_a_x30102_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">/*******************************************************************************</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">*</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">* Permission is hereby granted, free of charge, to any person obtaining a</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">* copy of this software and associated documentation files (the "Software"),</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">* to deal in the Software without restriction, including without limitation</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">* the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">* and/or sell copies of the Software, and to permit persons to whom the</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">* Software is furnished to do so, subject to the following conditions:</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">*</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">* The above copyright notice and this permission notice shall be included</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">* in all copies or substantial portions of the Software.</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">*</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* OTHER DEALINGS IN THE SOFTWARE.</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">*</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">* Except as contained in this notice, the name of Maxim Integrated</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">* Products, Inc. shall not be used except as stated in the Maxim Integrated</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">* Products, Inc. Branding Policy.</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">*</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">* The mere transfer of this software does not imply any licenses</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">* of trade secrets, proprietary technology, copyrights, patents,</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">* trademarks, maskwork rights, or any other form of intellectual</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">* property whatsoever. Maxim Integrated Products, Inc. retains all</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">* ownership rights.</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">*******************************************************************************</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">*/</span></div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#ifndef MAX30102_H_</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span><span class="preprocessor">#define MAX30102_H_</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include "mbed.h"</span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div> +<div class="line"><a name="l00064"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6"> 64</a></span> <span class="preprocessor">#define I2C_WRITE_ADDR 0xAE</span></div> +<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37"> 65</a></span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_READ_ADDR 0xAF</span></div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">//register addresses</span></div> +<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a7d161a2394a67a2176d549edb94f4191"> 68</a></span> <span class="preprocessor">#define REG_INTR_STATUS_1 0x00</span></div> +<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a61d809a1e313a2787b23e96de9554c4a"> 69</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_INTR_STATUS_2 0x01</span></div> +<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d"> 70</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_INTR_ENABLE_1 0x02</span></div> +<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1"> 71</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_INTR_ENABLE_2 0x03</span></div> +<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#aba8c69cb46224fb35783f5b60e75b115"> 72</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_FIFO_WR_PTR 0x04</span></div> +<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707"> 73</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_OVF_COUNTER 0x05</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f"> 74</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_FIFO_RD_PTR 0x06</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd"> 75</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_FIFO_DATA 0x07</span></div> +<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca"> 76</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_FIFO_CONFIG 0x08</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f"> 77</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_MODE_CONFIG 0x09</span></div> +<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a38546015e987a72b8c9eb13228237dd0"> 78</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_SPO2_CONFIG 0x0A</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b"> 79</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_LED1_PA 0x0C</span></div> +<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21"> 80</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_LED2_PA 0x0D</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a371750304ec49457d3d38f60428f8ff1"> 81</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_PILOT_PA 0x10</span></div> +<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c"> 82</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_MULTI_LED_CTRL1 0x11</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10"> 83</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_MULTI_LED_CTRL2 0x12</span></div> +<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a579a9e43d89bdda85d9ccb206339d681"> 84</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_TEMP_INTR 0x1F</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d"> 85</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_TEMP_FRAC 0x20</span></div> +<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#ad16bc92e2f92e516ca396214861a6379"> 86</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_TEMP_CONFIG 0x21</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab"> 87</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_PROX_INT_THRESH 0x30</span></div> +<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23"> 88</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_REV_ID 0xFE</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="_m_a_x30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163"> 89</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_PART_ID 0xFF</span></div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df" title="Initialize the MAX30102.">maxim_max30102_init</a>();</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>(uint32_t *pun_red_led, uint32_t *pun_ir_led);</div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(uint8_t uch_addr, uint8_t uch_data);</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(uint8_t uch_addr, uint8_t *puch_data);</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">bool</span> <a class="code" href="_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b" title="Reset the MAX30102.">maxim_max30102_reset</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor">#endif </span><span class="comment">/* MAX30102_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_d4a9a7556cca61907ce453116086a23a.html">MAX30102</a></li><li class="navelem"><a class="el" href="_m_a_x30102_8h.html">MAX30102.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_r_d117___a_r_d_u_i_n_o_8ino.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_r_d117___a_r_d_u_i_n_o_8ino.html new file mode 100644 index 0000000000000000000000000000000000000000..27f63e70a08440ec331dc8282f176655a39e4578 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_r_d117___a_r_d_u_i_n_o_8ino.html @@ -0,0 +1,324 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/RD117_ARDUINO.ino File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_r_d117___a_r_d_u_i_n_o_8ino.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> | +<a href="#var-members">Variables</a> </div> + <div class="headertitle"> +<div class="title">RD117_ARDUINO.ino File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include <Arduino.h></code><br/> +<code>#include "<a class="el" href="algorithm_8h_source.html">algorithm.h</a>"</code><br/> +<code>#include "<a class="el" href="max30102_8h_source.html">max30102.h</a>"</code><br/> +</div> +<p><a href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:a2134a5a06f0865c945543a1f07eba387"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>   255</td></tr> +<tr class="separator:a2134a5a06f0865c945543a1f07eba387"><td class="memSeparator" colspan="2"> </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:a4fc01d736fe50cf5b977f755b675f11d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a4fc01d736fe50cf5b977f755b675f11d">setup</a> ()</td></tr> +<tr class="separator:a4fc01d736fe50cf5b977f755b675f11d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:afe461d27b9c48d5921c00d521181f12f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#afe461d27b9c48d5921c00d521181f12f">loop</a> ()</td></tr> +<tr class="separator:afe461d27b9c48d5921c00d521181f12f"><td class="memSeparator" colspan="2"> </td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> +Variables</h2></td></tr> +<tr class="memitem:a602d2fccfb9f55d84f81b0c4d6f01589"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a> [100]</td></tr> +<tr class="separator:a602d2fccfb9f55d84f81b0c4d6f01589"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aac1c23af668ef1d6750bfd4a5f6422fe"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a> [100]</td></tr> +<tr class="separator:aac1c23af668ef1d6750bfd4a5f6422fe"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac16b6dd0e762f0ccc30e7102f97260d6"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a></td></tr> +<tr class="separator:ac16b6dd0e762f0ccc30e7102f97260d6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a54d8056bd9812e0b8f73f911dcc21dfd"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a54d8056bd9812e0b8f73f911dcc21dfd">n_spo2</a></td></tr> +<tr class="separator:a54d8056bd9812e0b8f73f911dcc21dfd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2518324dce002f592cf6d7f0b1ad9024"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a></td></tr> +<tr class="separator:a2518324dce002f592cf6d7f0b1ad9024"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3171c70bfa71c3a4f960bf3e8203d13f"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a></td></tr> +<tr class="separator:a3171c70bfa71c3a4f960bf3e8203d13f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a43fb8ea97a26647405ca359095323280"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a></td></tr> +<tr class="separator:a43fb8ea97a26647405ca359095323280"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac5e493da8cbdd1414d56e8f08282fcc2"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac5e493da8cbdd1414d56e8f08282fcc2">uch_dummy</a></td></tr> +<tr class="separator:ac5e493da8cbdd1414d56e8f08282fcc2"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<h2 class="groupheader">Macro Definition Documentation</h2> +<a class="anchor" id="a2134a5a06f0865c945543a1f07eba387"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define MAX_BRIGHTNESS   255</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00088">88</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="afe461d27b9c48d5921c00d521181f12f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void loop </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00144">144</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<a class="anchor" id="a4fc01d736fe50cf5b977f755b675f11d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void setup </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00108">108</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<h2 class="groupheader">Variable Documentation</h2> +<a class="anchor" id="a602d2fccfb9f55d84f81b0c4d6f01589"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint32_t aun_ir_buffer[100]</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00096">96</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<a class="anchor" id="aac1c23af668ef1d6750bfd4a5f6422fe"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint32_t aun_red_buffer[100]</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00097">97</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<a class="anchor" id="a43fb8ea97a26647405ca359095323280"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t ch_hr_valid</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00103">103</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<a class="anchor" id="a2518324dce002f592cf6d7f0b1ad9024"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t ch_spo2_valid</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00101">101</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<a class="anchor" id="a3171c70bfa71c3a4f960bf3e8203d13f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int32_t n_heart_rate</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00102">102</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<a class="anchor" id="ac16b6dd0e762f0ccc30e7102f97260d6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int32_t n_ir_buffer_length</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00099">99</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<a class="anchor" id="a54d8056bd9812e0b8f73f911dcc21dfd"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int32_t n_spo2</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00100">100</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +<a class="anchor" id="ac5e493da8cbdd1414d56e8f08282fcc2"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t uch_dummy</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html#l00104">104</a> of file <a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">RD117_ARDUINO.ino</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html">RD117_ARDUINO.ino</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_r_d117___a_r_d_u_i_n_o_8ino.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_r_d117___a_r_d_u_i_n_o_8ino.js new file mode 100644 index 0000000000000000000000000000000000000000..0c3b4a8a19c9ee7ef1b58aa9890f7853b9cb5369 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_r_d117___a_r_d_u_i_n_o_8ino.js @@ -0,0 +1,14 @@ +var _r_d117___a_r_d_u_i_n_o_8ino = +[ + [ "MAX_BRIGHTNESS", "_r_d117___a_r_d_u_i_n_o_8ino.html#a2134a5a06f0865c945543a1f07eba387", null ], + [ "loop", "_r_d117___a_r_d_u_i_n_o_8ino.html#afe461d27b9c48d5921c00d521181f12f", null ], + [ "setup", "_r_d117___a_r_d_u_i_n_o_8ino.html#a4fc01d736fe50cf5b977f755b675f11d", null ], + [ "aun_ir_buffer", "_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589", null ], + [ "aun_red_buffer", "_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe", null ], + [ "ch_hr_valid", "_r_d117___a_r_d_u_i_n_o_8ino.html#a43fb8ea97a26647405ca359095323280", null ], + [ "ch_spo2_valid", "_r_d117___a_r_d_u_i_n_o_8ino.html#a2518324dce002f592cf6d7f0b1ad9024", null ], + [ "n_heart_rate", "_r_d117___a_r_d_u_i_n_o_8ino.html#a3171c70bfa71c3a4f960bf3e8203d13f", null ], + [ "n_ir_buffer_length", "_r_d117___a_r_d_u_i_n_o_8ino.html#ac16b6dd0e762f0ccc30e7102f97260d6", null ], + [ "n_spo2", "_r_d117___a_r_d_u_i_n_o_8ino.html#a54d8056bd9812e0b8f73f911dcc21dfd", null ], + [ "uch_dummy", "_r_d117___a_r_d_u_i_n_o_8ino.html#ac5e493da8cbdd1414d56e8f08282fcc2", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_r_d117___a_r_d_u_i_n_o_8ino_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_r_d117___a_r_d_u_i_n_o_8ino_source.html new file mode 100644 index 0000000000000000000000000000000000000000..bb557886f9f23c300a2aaa6b4470a744ead7e329 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_r_d117___a_r_d_u_i_n_o_8ino_source.html @@ -0,0 +1,330 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/RD117_ARDUINO.ino Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_r_d117___a_r_d_u_i_n_o_8ino_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">RD117_ARDUINO.ino</div> </div> +</div><!--header--> +<div class="contents"> +<a href="_r_d117___a_r_d_u_i_n_o_8ino.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">/*******************************************************************************</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">*</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">* Permission is hereby granted, free of charge, to any person obtaining a</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">* copy of this software and associated documentation files (the "Software"),</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">* to deal in the Software without restriction, including without limitation</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">* the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">* and/or sell copies of the Software, and to permit persons to whom the</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">* Software is furnished to do so, subject to the following conditions:</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">*</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">* The above copyright notice and this permission notice shall be included</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">* in all copies or substantial portions of the Software.</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">*</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">* OTHER DEALINGS IN THE SOFTWARE.</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">*</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">* Except as contained in this notice, the name of Maxim Integrated</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">* Products, Inc. shall not be used except as stated in the Maxim Integrated</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">* Products, Inc. Branding Policy.</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">*</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">* The mere transfer of this software does not imply any licenses</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">* of trade secrets, proprietary technology, copyrights, patents,</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">* trademarks, maskwork rights, or any other form of intellectual</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">* property whatsoever. Maxim Integrated Products, Inc. retains all</span></div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">* ownership rights.</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">*******************************************************************************</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">*/</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#include <Arduino.h></span></div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "<a class="code" href="algorithm_8h.html">algorithm.h</a>"</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "<a class="code" href="max30102_8h.html">max30102.h</a>"</span></div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">//if Adafruit Flora development board is chosen, include NeoPixel library and define an NeoPixel object</span></div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor">#if defined(ARDUINO_AVR_FLORA8)</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="_adafruit___neo_pixel_8h.html">adafruit_neopixel.h</a>"</span></div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#define BRIGHTNESS_DIVISOR 8 //to lower the max brightness of the neopixel LED</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"></span><a class="code" href="class_adafruit___neo_pixel.html">Adafruit_NeoPixel</a> LED = <a class="code" href="class_adafruit___neo_pixel.html">Adafruit_NeoPixel</a>(1, 8, <a class="code" href="_adafruit___neo_pixel_8h.html#a95d0d6b0a1f52bc72d9dcea2b3a48e3f">NEO_GRB</a> + <a class="code" href="_adafruit___neo_pixel_8h.html#a475fef7028a743310aa4311a97899d5d">NEO_KHZ800</a>);</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2134a5a06f0865c945543a1f07eba387"> 88</a></span> <span class="preprocessor">#define MAX_BRIGHTNESS 255</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#if defined(ARDUINO_AVR_UNO)</span></div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"></span><span class="comment">//Arduino Uno doesn't have enough SRAM to store 100 samples of IR led data and red led data in 32-bit format</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">//To solve this problem, 16-bit MSB of the sampled data will be truncated. Samples become 16-bit data.</span></div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> uint16_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>[100]; <span class="comment">//infrared LED sensor data</span></div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> uint16_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[100]; <span class="comment">//red LED sensor data</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589"> 96</a></span> <span class="preprocessor"></span>uint32_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>[100]; <span class="comment">//infrared LED sensor data</span></div> +<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe"> 97</a></span> uint32_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[100]; <span class="comment">//red LED sensor data</span></div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac16b6dd0e762f0ccc30e7102f97260d6"> 99</a></span> <span class="preprocessor"></span>int32_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>; <span class="comment">//data length</span></div> +<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a54d8056bd9812e0b8f73f911dcc21dfd"> 100</a></span> int32_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a54d8056bd9812e0b8f73f911dcc21dfd">n_spo2</a>; <span class="comment">//SPO2 value</span></div> +<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2518324dce002f592cf6d7f0b1ad9024"> 101</a></span> int8_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a>; <span class="comment">//indicator to show if the SPO2 calculation is valid</span></div> +<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a3171c70bfa71c3a4f960bf3e8203d13f"> 102</a></span> int32_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a>; <span class="comment">//heart rate value</span></div> +<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a43fb8ea97a26647405ca359095323280"> 103</a></span> int8_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a>; <span class="comment">//indicator to show if the heart rate calculation is valid</span></div> +<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac5e493da8cbdd1414d56e8f08282fcc2"> 104</a></span> uint8_t <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac5e493da8cbdd1414d56e8f08282fcc2">uch_dummy</a>;</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// the setup routine runs once when you press reset:</span></div> +<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a4fc01d736fe50cf5b977f755b675f11d"> 108</a></span> <span class="keywordtype">void</span> <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a4fc01d736fe50cf5b977f755b675f11d">setup</a>() {</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#if defined(ARDUINO_AVR_LILYPAD_USB) </span></div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"></span> pinMode(13, OUTPUT); <span class="comment">//LED output pin on Lilypad</span></div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#if defined(ARDUINO_AVR_FLORA8)</span></div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="preprocessor"></span> <span class="comment">//Initialize the LED</span></div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  LED.<a class="code" href="class_adafruit___neo_pixel.html#aad78931e44ce43c9b9c460dba7c9bbb7">begin</a>();</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  LED.<a class="code" href="class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7">show</a>();</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="max30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b" title="Reset the MAX30102.">maxim_max30102_reset</a>(); <span class="comment">//resets the MAX30102</span></div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">// initialize serial communication at 115200 bits per second:</span></div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  Serial.begin(115200);</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  pinMode(10, INPUT); <span class="comment">//pin D10 connects to the interrupt output pin of the MAX30102</span></div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  delay(1000);</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="max30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(<a class="code" href="max30102_8h.html#a7d161a2394a67a2176d549edb94f4191">REG_INTR_STATUS_1</a>,&<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac5e493da8cbdd1414d56e8f08282fcc2">uch_dummy</a>); <span class="comment">//Reads/clears the interrupt status register</span></div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">while</span>(Serial.available()==0) <span class="comment">//wait until user presses a key</span></div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  Serial.write(27); <span class="comment">// ESC command</span></div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  Serial.print(F(<span class="stringliteral">"[2J"</span>)); <span class="comment">// clear screen command</span></div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#if defined(ARDUINO_AVR_LILYPAD_USB) </span></div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"></span> Serial.println(F(<span class="stringliteral">"Lilypad"</span>));</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"></span><span class="preprocessor">#if defined(ARDUINO_AVR_FLORA8)</span></div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"></span> Serial.println(F(<span class="stringliteral">"Adafruit Flora"</span>));</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"></span> Serial.println(F(<span class="stringliteral">"Press any key to start conversion"</span>));</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  delay(1000);</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac5e493da8cbdd1414d56e8f08282fcc2">uch_dummy</a>=Serial.read();</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="max30102_8cpp.html#a4113aeee76935425d8a557a79a4193df" title="Initialize the MAX30102.">maxim_max30102_init</a>(); <span class="comment">//initialize the MAX30102</span></div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// the loop routine runs over and over again forever:</span></div> +<div class="line"><a name="l00144"></a><span class="lineno"><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#afe461d27b9c48d5921c00d521181f12f"> 144</a></span> <span class="keywordtype">void</span> <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#afe461d27b9c48d5921c00d521181f12f">loop</a>() {</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  uint32_t un_min, un_max, un_prev_data, un_brightness; <span class="comment">//variables to calculate the on-board LED brightness that reflects the heartbeats</span></div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  int32_t i;</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordtype">float</span> f_temp;</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  </div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  un_brightness=0;</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  un_min=0x3FFFF;</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  un_max=0;</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>=100; <span class="comment">//buffer length of 100 stores 4 seconds of samples running at 25sps</span></div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">//read the first 100 samples, and determine the signal range</span></div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">for</span>(i=0;i<<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>;i++)</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">while</span>(digitalRead(10)==1); <span class="comment">//wait until the interrupt pin asserts</span></div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="max30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>((<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>+i), (<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>+i)); <span class="comment">//read from MAX30102 FIFO</span></div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span>(un_min><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i])</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  un_min=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i]; <span class="comment">//update signal min</span></div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span>(un_max<<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i])</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  un_max=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i]; <span class="comment">//update signal max</span></div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  Serial.print(F(<span class="stringliteral">"red="</span>));</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  Serial.print(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i], DEC);</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  Serial.print(F(<span class="stringliteral">", ir="</span>));</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  Serial.println(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>[i], DEC);</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  un_prev_data=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">//calculate heart rate and SpO2 after first 100 samples (first 4 seconds of samples)</span></div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6" title="Calculate the heart rate and SpO2 level.">maxim_heart_rate_and_oxygen_saturation</a>(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>, n_ir_buffer_length, <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>, &<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a54d8056bd9812e0b8f73f911dcc21dfd">n_spo2</a>, &<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a>, &<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a>, &<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a>); </div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">//Continuously taking samples from MAX30102. Heart rate and SpO2 are calculated every 1 second</span></div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">while</span>(1)</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  {</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  i=0;</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  un_min=0x3FFFF;</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  un_max=0;</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">//dumping the first 25 sets of samples in the memory and shift the last 75 sets of samples to the top</span></div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">for</span>(i=25;i<100;i++)</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i-25]=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>[i-25]=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>[i];</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="comment">//update the signal min and max</span></div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">if</span>(un_min><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i])</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  un_min=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span>(un_max<<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i])</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  un_max=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">//take 25 sets of samples before calculating the heart rate.</span></div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">for</span>(i=75;i<100;i++)</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  un_prev_data=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i-1];</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">while</span>(digitalRead(10)==1);</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  digitalWrite(9, !digitalRead(9));</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="max30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>((<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>+i), (<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>+i));</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">//calculate the brightness of the LED</span></div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span>(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i]>un_prev_data)</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  f_temp=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i]-un_prev_data;</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  f_temp/=(un_max-un_min);</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  f_temp*=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>;</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  f_temp=un_brightness-f_temp;</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span>(f_temp<0)</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  un_brightness=0;</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  un_brightness=(int)f_temp;</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  {</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  f_temp=un_prev_data-<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  f_temp/=(un_max-un_min);</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  f_temp*=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>;</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  un_brightness+=(int)f_temp;</div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">if</span>(un_brightness><a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>)</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  un_brightness=<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>;</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  }</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor">#if defined(ARDUINO_AVR_LILYPAD_USB) </span></div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor"></span> analogWrite(13, un_brightness);</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor">#if defined(ARDUINO_AVR_FLORA8)</span></div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"></span> LED.<a class="code" href="class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1">setPixelColor</a>(0, un_brightness/BRIGHTNESS_DIVISOR, 0, 0);</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  LED.<a class="code" href="class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7">show</a>();</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="comment">//send samples and calculation result to terminal program through UART</span></div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  Serial.print(F(<span class="stringliteral">"red="</span>));</div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  Serial.print(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>[i], DEC);</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  Serial.print(F(<span class="stringliteral">", ir="</span>));</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  Serial.print(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>[i], DEC);</div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  Serial.print(F(<span class="stringliteral">", HR="</span>));</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  Serial.print(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a>, DEC);</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  </div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  Serial.print(F(<span class="stringliteral">", HRvalid="</span>));</div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  Serial.print(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a>, DEC);</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  Serial.print(F(<span class="stringliteral">", SPO2="</span>));</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  Serial.print(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a54d8056bd9812e0b8f73f911dcc21dfd">n_spo2</a>, DEC);</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  Serial.print(F(<span class="stringliteral">", SPO2Valid="</span>));</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  Serial.println(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a>, DEC);</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6" title="Calculate the heart rate and SpO2 level.">maxim_heart_rate_and_oxygen_saturation</a>(<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a602d2fccfb9f55d84f81b0c4d6f01589">aun_ir_buffer</a>, n_ir_buffer_length, <a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#aac1c23af668ef1d6750bfd4a5f6422fe">aun_red_buffer</a>, &<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a54d8056bd9812e0b8f73f911dcc21dfd">n_spo2</a>, &<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a>, &<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a>, &<a class="code" href="_r_d117___a_r_d_u_i_n_o_8ino.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a>); </div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> }</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html">RD117_ARDUINO.ino</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_soft_i2_c_master_8h.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_soft_i2_c_master_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..7ac8bbe70f1c2287e1f34192a7f71ca1d9d1f92a --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_soft_i2_c_master_8h.html @@ -0,0 +1,654 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/SoftI2CMaster.h File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_soft_i2_c_master_8h.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">SoftI2CMaster.h File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include <avr/io.h></code><br/> +<code>#include <Arduino.h></code><br/> +</div> +<p><a href="_soft_i2_c_master_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:ae00bf2b1fa56ce97ea467dc60682022c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#ae00bf2b1fa56ce97ea467dc60682022c">SOFTI2DMASTER_H_</a></td></tr> +<tr class="separator:ae00bf2b1fa56ce97ea467dc60682022c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:afa3215f0aa766367f5d34bee80929152"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#afa3215f0aa766367f5d34bee80929152">I2C_TIMEOUT</a>   100</td></tr> +<tr class="separator:afa3215f0aa766367f5d34bee80929152"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a206ca6aa556565db88a5302050eb3936"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a206ca6aa556565db88a5302050eb3936">I2C_NOINTERRUPT</a>   0</td></tr> +<tr class="separator:a206ca6aa556565db88a5302050eb3936"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0e1c9e6ca00fe824f98e8b7310589f5f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a0e1c9e6ca00fe824f98e8b7310589f5f">I2C_SLOWMODE</a>   1</td></tr> +<tr class="separator:a0e1c9e6ca00fe824f98e8b7310589f5f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8c3c7226e23b36189d1ec6b7d3504499"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a8c3c7226e23b36189d1ec6b7d3504499">FAC</a>   1</td></tr> +<tr class="separator:a8c3c7226e23b36189d1ec6b7d3504499"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9e64b8013968d3d107154c4044643481"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a9e64b8013968d3d107154c4044643481">I2C_CPUFREQ</a>   (F_CPU/<a class="el" href="_soft_i2_c_master_8h.html#a8c3c7226e23b36189d1ec6b7d3504499">FAC</a>)</td></tr> +<tr class="separator:a9e64b8013968d3d107154c4044643481"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3bf497cc1d59d184775241e80a21085e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a3bf497cc1d59d184775241e80a21085e">_SOFTI2C_H</a>   1</td></tr> +<tr class="separator:a3bf497cc1d59d184775241e80a21085e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a954e80e3d9812f381eb05af7e7081cc2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a954e80e3d9812f381eb05af7e7081cc2">I2C_FASTMODE</a>   0</td></tr> +<tr class="separator:a954e80e3d9812f381eb05af7e7081cc2"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae704dfa4c0384f5d618fbfd14e0dec80"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#ae704dfa4c0384f5d618fbfd14e0dec80">I2C_TIMEOUT_DELAY_LOOPS</a>   (<a class="el" href="_soft_i2_c_master_8h.html#a9e64b8013968d3d107154c4044643481">I2C_CPUFREQ</a>/1000UL)*I2C_TIMEOUT/4000UL</td></tr> +<tr class="separator:ae704dfa4c0384f5d618fbfd14e0dec80"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a970e76c45294e29445ecbf139e6c386a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a970e76c45294e29445ecbf139e6c386a">I2C_MAX_STRETCH</a>   1</td></tr> +<tr class="separator:a970e76c45294e29445ecbf139e6c386a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2af652afc14dc884cb2b42683d45c8df"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a>   (((<a class="el" href="_soft_i2_c_master_8h.html#a9e64b8013968d3d107154c4044643481">I2C_CPUFREQ</a>/25000L)/2-19)/3)</td></tr> +<tr class="separator:a2af652afc14dc884cb2b42683d45c8df"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab5c0fbe837494c5f9130a5914854250d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#ab5c0fbe837494c5f9130a5914854250d">I2C_READ</a>   1</td></tr> +<tr class="separator:ab5c0fbe837494c5f9130a5914854250d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9536bf85bced4f4e549a82fb18eb6140"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a9536bf85bced4f4e549a82fb18eb6140">I2C_WRITE</a>   0</td></tr> +<tr class="separator:a9536bf85bced4f4e549a82fb18eb6140"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a16bb6708250d17ee2118d29e4865a653"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653">SDA_DDR</a>   (_SFR_IO_ADDR(SDA_PORT) - 1)</td></tr> +<tr class="separator:a16bb6708250d17ee2118d29e4865a653"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5020a160f5b8f0a1697cfadbe778424b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b">SCL_DDR</a>   (_SFR_IO_ADDR(SCL_PORT) - 1)</td></tr> +<tr class="separator:a5020a160f5b8f0a1697cfadbe778424b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae154abbe60d159b6f4951ade68cc5fae"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#ae154abbe60d159b6f4951ade68cc5fae">SDA_OUT</a>   _SFR_IO_ADDR(SDA_PORT)</td></tr> +<tr class="separator:ae154abbe60d159b6f4951ade68cc5fae"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a07204a69a1872edbb272cde4d0c1e23f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a07204a69a1872edbb272cde4d0c1e23f">SCL_OUT</a>   _SFR_IO_ADDR(SCL_PORT)</td></tr> +<tr class="separator:a07204a69a1872edbb272cde4d0c1e23f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac4b553fc156d15aeeeaaf6cfe7695c83"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#ac4b553fc156d15aeeeaaf6cfe7695c83">SDA_IN</a>   (_SFR_IO_ADDR(SDA_PORT) - 2)</td></tr> +<tr class="separator:ac4b553fc156d15aeeeaaf6cfe7695c83"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a10c618a025b8bdb8ea596fdc24197f49"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>   (_SFR_IO_ADDR(SCL_PORT) - 2)</td></tr> +<tr class="separator:a10c618a025b8bdb8ea596fdc24197f49"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0e6fc492b674d6ccceccb06e3bbf907b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a0e6fc492b674d6ccceccb06e3bbf907b">__tmp_reg__</a>   0</td></tr> +<tr class="separator:a0e6fc492b674d6ccceccb06e3bbf907b"><td class="memSeparator" colspan="2"> </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:a342f1dd5ca489cfb78fffa200fcee9d9"><td class="memItemLeft" align="right" valign="top">boolean </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="el" href="_soft_i2_c_master_8h.html#ad5dc48c57198db1ee444a61405d2ea3d">i2c_init</a>(void)</td></tr> +<tr class="separator:a342f1dd5ca489cfb78fffa200fcee9d9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2ccdf1a08647bd236d7988a794dc403c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a2ccdf1a08647bd236d7988a794dc403c">i2c_delay_half</a> (void)</td></tr> +<tr class="separator:a2ccdf1a08647bd236d7988a794dc403c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a55c46a9ce2c4eaec0c5878436a4a6b5b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a55c46a9ce2c4eaec0c5878436a4a6b5b">i2c_wait_scl_high</a> (void)</td></tr> +<tr class="separator:a55c46a9ce2c4eaec0c5878436a4a6b5b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad5dc48c57198db1ee444a61405d2ea3d"><td class="memItemLeft" align="right" valign="top">boolean </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#ad5dc48c57198db1ee444a61405d2ea3d">i2c_init</a> (void)</td></tr> +<tr class="separator:ad5dc48c57198db1ee444a61405d2ea3d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a876a5d83cf8b5fa662b04a81657d8d30"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a876a5d83cf8b5fa662b04a81657d8d30">i2c_start</a> (uint8_t addr)</td></tr> +<tr class="separator:a876a5d83cf8b5fa662b04a81657d8d30"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a68105c3bb259544bcc000c21b8e5d355"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a68105c3bb259544bcc000c21b8e5d355">i2c_rep_start</a> (uint8_t addr)</td></tr> +<tr class="separator:a68105c3bb259544bcc000c21b8e5d355"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5e2e89e9b3cb2a075d3d46bb148a42e9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a5e2e89e9b3cb2a075d3d46bb148a42e9">i2c_start_wait</a> (uint8_t addr)</td></tr> +<tr class="separator:a5e2e89e9b3cb2a075d3d46bb148a42e9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad35d4e4f52ca74b503d5e5e1e0a3f5f3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#ad35d4e4f52ca74b503d5e5e1e0a3f5f3">i2c_stop</a> (void)</td></tr> +<tr class="separator:ad35d4e4f52ca74b503d5e5e1e0a3f5f3"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5abe73d680cae254aafa5227e6d87a13"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a5abe73d680cae254aafa5227e6d87a13">i2c_write</a> (uint8_t value)</td></tr> +<tr class="separator:a5abe73d680cae254aafa5227e6d87a13"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a717c8440b070832a7d3375cfd5a526ef"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a> (bool last)</td></tr> +<tr class="separator:a717c8440b070832a7d3375cfd5a526ef"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<h2 class="groupheader">Macro Definition Documentation</h2> +<a class="anchor" id="a0e6fc492b674d6ccceccb06e3bbf907b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define __tmp_reg__   0</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00199">199</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a3bf497cc1d59d184775241e80a21085e"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define _SOFTI2C_H   1</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00085">85</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a8c3c7226e23b36189d1ec6b7d3504499"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define FAC   1</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00081">81</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a9e64b8013968d3d107154c4044643481"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_CPUFREQ   (F_CPU/<a class="el" href="_soft_i2_c_master_8h.html#a8c3c7226e23b36189d1ec6b7d3504499">FAC</a>)</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00082">82</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a2af652afc14dc884cb2b42683d45c8df"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_DELAY_COUNTER   (((<a class="el" href="_soft_i2_c_master_8h.html#a9e64b8013968d3d107154c4044643481">I2C_CPUFREQ</a>/25000L)/2-19)/3)</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00174">174</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a954e80e3d9812f381eb05af7e7081cc2"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_FASTMODE   0</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00129">129</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a970e76c45294e29445ecbf139e6c386a"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_MAX_STRETCH   1</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00161">161</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a206ca6aa556565db88a5302050eb3936"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_NOINTERRUPT   0</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00079">79</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ab5c0fbe837494c5f9130a5914854250d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_READ   1</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00187">187</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a0e1c9e6ca00fe824f98e8b7310589f5f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_SLOWMODE   1</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00080">80</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="afa3215f0aa766367f5d34bee80929152"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_TIMEOUT   100</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00078">78</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ae704dfa4c0384f5d618fbfd14e0dec80"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_TIMEOUT_DELAY_LOOPS   (<a class="el" href="_soft_i2_c_master_8h.html#a9e64b8013968d3d107154c4044643481">I2C_CPUFREQ</a>/1000UL)*I2C_TIMEOUT/4000UL</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00159">159</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a9536bf85bced4f4e549a82fb18eb6140"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_WRITE   0</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00188">188</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a5020a160f5b8f0a1697cfadbe778424b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define SCL_DDR   (_SFR_IO_ADDR(SCL_PORT) - 1)</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00192">192</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a10c618a025b8bdb8ea596fdc24197f49"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define SCL_IN   (_SFR_IO_ADDR(SCL_PORT) - 2)</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00196">196</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a07204a69a1872edbb272cde4d0c1e23f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define SCL_OUT   _SFR_IO_ADDR(SCL_PORT)</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00194">194</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a16bb6708250d17ee2118d29e4865a653"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define SDA_DDR   (_SFR_IO_ADDR(SDA_PORT) - 1)</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00191">191</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ac4b553fc156d15aeeeaaf6cfe7695c83"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define SDA_IN   (_SFR_IO_ADDR(SDA_PORT) - 2)</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00195">195</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ae154abbe60d159b6f4951ade68cc5fae"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define SDA_OUT   _SFR_IO_ADDR(SDA_PORT)</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00193">193</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ae00bf2b1fa56ce97ea467dc60682022c"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define SOFTI2DMASTER_H_</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00059">59</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="a342f1dd5ca489cfb78fffa200fcee9d9"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void __attribute__ </td> + <td>(</td> + <td class="paramtype">(noinline) </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +</div> +</div> +<a class="anchor" id="a2ccdf1a08647bd236d7988a794dc403c"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void i2c_delay_half </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00207">207</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ad5dc48c57198db1ee444a61405d2ea3d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">boolean i2c_init </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00272">272</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a717c8440b070832a7d3375cfd5a526ef"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t i2c_read </td> + <td>(</td> + <td class="paramtype">bool </td> + <td class="paramname"><em>last</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00462">462</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a68105c3bb259544bcc000c21b8e5d355"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool i2c_rep_start </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>addr</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00313">313</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a876a5d83cf8b5fa662b04a81657d8d30"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool i2c_start </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>addr</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00295">295</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a5e2e89e9b3cb2a075d3d46bb148a42e9"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void i2c_start_wait </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>addr</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00338">338</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ad35d4e4f52ca74b503d5e5e1e0a3f5f3"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void i2c_stop </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00365">365</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a55c46a9ce2c4eaec0c5878436a4a6b5b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void i2c_wait_scl_high </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00225">225</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a5abe73d680cae254aafa5227e6d87a13"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool i2c_write </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>value</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_soft_i2_c_master_8h_source.html#l00385">385</a> of file <a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="_soft_i2_c_master_8h.html">SoftI2CMaster.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_soft_i2_c_master_8h.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_soft_i2_c_master_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..bc44398ce5c83a1104c0e091eb10fc139bb2d7d6 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_soft_i2_c_master_8h.js @@ -0,0 +1,33 @@ +var _soft_i2_c_master_8h = +[ + [ "__tmp_reg__", "_soft_i2_c_master_8h.html#a0e6fc492b674d6ccceccb06e3bbf907b", null ], + [ "_SOFTI2C_H", "_soft_i2_c_master_8h.html#a3bf497cc1d59d184775241e80a21085e", null ], + [ "FAC", "_soft_i2_c_master_8h.html#a8c3c7226e23b36189d1ec6b7d3504499", null ], + [ "I2C_CPUFREQ", "_soft_i2_c_master_8h.html#a9e64b8013968d3d107154c4044643481", null ], + [ "I2C_DELAY_COUNTER", "_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df", null ], + [ "I2C_FASTMODE", "_soft_i2_c_master_8h.html#a954e80e3d9812f381eb05af7e7081cc2", null ], + [ "I2C_MAX_STRETCH", "_soft_i2_c_master_8h.html#a970e76c45294e29445ecbf139e6c386a", null ], + [ "I2C_NOINTERRUPT", "_soft_i2_c_master_8h.html#a206ca6aa556565db88a5302050eb3936", null ], + [ "I2C_READ", "_soft_i2_c_master_8h.html#ab5c0fbe837494c5f9130a5914854250d", null ], + [ "I2C_SLOWMODE", "_soft_i2_c_master_8h.html#a0e1c9e6ca00fe824f98e8b7310589f5f", null ], + [ "I2C_TIMEOUT", "_soft_i2_c_master_8h.html#afa3215f0aa766367f5d34bee80929152", null ], + [ "I2C_TIMEOUT_DELAY_LOOPS", "_soft_i2_c_master_8h.html#ae704dfa4c0384f5d618fbfd14e0dec80", null ], + [ "I2C_WRITE", "_soft_i2_c_master_8h.html#a9536bf85bced4f4e549a82fb18eb6140", null ], + [ "SCL_DDR", "_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b", null ], + [ "SCL_IN", "_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49", null ], + [ "SCL_OUT", "_soft_i2_c_master_8h.html#a07204a69a1872edbb272cde4d0c1e23f", null ], + [ "SDA_DDR", "_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653", null ], + [ "SDA_IN", "_soft_i2_c_master_8h.html#ac4b553fc156d15aeeeaaf6cfe7695c83", null ], + [ "SDA_OUT", "_soft_i2_c_master_8h.html#ae154abbe60d159b6f4951ade68cc5fae", null ], + [ "SOFTI2DMASTER_H_", "_soft_i2_c_master_8h.html#ae00bf2b1fa56ce97ea467dc60682022c", null ], + [ "__attribute__", "_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9", null ], + [ "i2c_delay_half", "_soft_i2_c_master_8h.html#a2ccdf1a08647bd236d7988a794dc403c", null ], + [ "i2c_init", "_soft_i2_c_master_8h.html#ad5dc48c57198db1ee444a61405d2ea3d", null ], + [ "i2c_read", "_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef", null ], + [ "i2c_rep_start", "_soft_i2_c_master_8h.html#a68105c3bb259544bcc000c21b8e5d355", null ], + [ "i2c_start", "_soft_i2_c_master_8h.html#a876a5d83cf8b5fa662b04a81657d8d30", null ], + [ "i2c_start_wait", "_soft_i2_c_master_8h.html#a5e2e89e9b3cb2a075d3d46bb148a42e9", null ], + [ "i2c_stop", "_soft_i2_c_master_8h.html#ad35d4e4f52ca74b503d5e5e1e0a3f5f3", null ], + [ "i2c_wait_scl_high", "_soft_i2_c_master_8h.html#a55c46a9ce2c4eaec0c5878436a4a6b5b", null ], + [ "i2c_write", "_soft_i2_c_master_8h.html#a5abe73d680cae254aafa5227e6d87a13", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_soft_i2_c_master_8h_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_soft_i2_c_master_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..c7e7c80fb9c9955430cc6dd2219cfcf11a5f402c --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/_soft_i2_c_master_8h_source.html @@ -0,0 +1,655 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/SoftI2CMaster.h Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('_soft_i2_c_master_8h_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">SoftI2CMaster.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="_soft_i2_c_master_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* Arduino SoftI2C library. </span></div> +<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * This is a very fast and very light-weight software I2C-master library </span></div> +<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * written in assembler. It is based on Peter Fleury's I2C software</span></div> +<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * library: http://homepage.hispeed.ch/peterfleury/avr-software.html</span></div> +<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * This Library is free software: you can redistribute it and/or modify</span></div> +<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * it under the terms of the GNU General Public License as published by</span></div> +<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * the Free Software Foundation, either version 3 of the License, or</span></div> +<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * (at your option) any later version.</span></div> +<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * This Library is distributed in the hope that it will be useful,</span></div> +<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div> +<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div> +<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * GNU General Public License for more details.</span></div> +<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * You should have received a copy of the GNU General Public License</span></div> +<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * along with the Arduino I2cMaster Library. If not, see</span></div> +<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * <http://www.gnu.org/licenses/>.</span></div> +<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div> +<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/* In order to use the library, you need to define SDA_PIN, SCL_PIN,</span></div> +<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SDA_PORT and SCL_PORT before including this file. Have a look at</span></div> +<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * http://www.arduino.cc/en/Reference/PortManipulation for finding out</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * which values to use. For example, if you use digital pin 3 (corresponding </span></div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * to PD3) for SDA and digital pin 13 (corresponding to PB5)</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * for SCL on a standard Arduino,</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * you have to use the following definitions: </span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * #define SDA_PIN 3 </span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * #define SDA_PORT PORTD</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * #define SCL_PIN 5</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> * #define SCL_PORT PORTB</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> *</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> * You can also define the following constants (see also below):</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * - I2C_CPUFREQ, when changing CPU clock frequency dynamically</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * - I2C_FASTMODE = 1 meaning that the I2C bus allows speeds up to 400 kHz</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> * - I2C_SLOWMODE = 1 meaning that the I2C bus will allow only up to 25 kHz </span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment"> * - I2C_NOINTERRUPT = 1 in order to prohibit interrupts while </span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> * communicating (see below). This can be useful if you use the library </span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> * for communicationg with SMbus devices, which have timeouts.</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> * Note, however, that interrupts are disabled from issuing a start condition</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> * until issuing a stop condition. So use this option with care!</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * - I2C_TIMEOUT = 0..10000 mssec in order to return from the I2C functions</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> * in case of a I2C bus lockup (i.e., SCL constantly low). 0 means no timeout</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">/* Changelog:</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> * Version 1.1: </span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"> * - removed I2C_CLOCK_STRETCHING</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"> * - added I2C_TIMEOUT time in msec (0..10000) until timeout or 0 if no timeout</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> * - changed i2c_init to return true iff both SDA and SCL are high</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> * - changed interrupt disabling so that the previous IRQ state is restored</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> * Version 1.0: basic functionality</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> */</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#ifndef SOFTI2CMASTER_H_</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#ae00bf2b1fa56ce97ea467dc60682022c"> 59</a></span> <span class="preprocessor">#define SOFTI2DMASTER_H_</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include <avr/io.h></span></div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include <Arduino.h></span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#if defined(ARDUINO_AVR_FLORA8) || defined(ARDUINO_AVR_LILYPAD_USB)</span></div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"></span><span class="preprocessor">#define SDA_PORT PORTD</span></div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"></span><span class="preprocessor">#define SDA_PIN 1</span></div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span><span class="preprocessor">#define SCL_PORT PORTD</span></div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"></span><span class="preprocessor">#define SCL_PIN 0</span></div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#ifdef ARDUINO_AVR_UNO</span></div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"></span><span class="preprocessor">#define SDA_PORT PORTC</span></div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span><span class="preprocessor">#define SDA_PIN 4</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"></span><span class="preprocessor">#define SCL_PORT PORTC</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"></span><span class="preprocessor">#define SCL_PIN 5</span></div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#afa3215f0aa766367f5d34bee80929152"> 78</a></span> <span class="preprocessor">#define I2C_TIMEOUT 100</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a206ca6aa556565db88a5302050eb3936"> 79</a></span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_NOINTERRUPT 0</span></div> +<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a0e1c9e6ca00fe824f98e8b7310589f5f"> 80</a></span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_SLOWMODE 1</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a8c3c7226e23b36189d1ec6b7d3504499"> 81</a></span> <span class="preprocessor"></span><span class="preprocessor">#define FAC 1</span></div> +<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a9e64b8013968d3d107154c4044643481"> 82</a></span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_CPUFREQ (F_CPU/FAC)</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#ifndef _SOFTI2C_H</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a3bf497cc1d59d184775241e80a21085e"> 85</a></span> <span class="preprocessor"></span><span class="preprocessor">#define _SOFTI2C_H 1</span></div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// Init function. Needs to be called once in the beginning.</span></div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// Returns false if SDA or SCL are low, which probably means </span></div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// a I2C bus lockup or that the lines are not pulled up.</span></div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keywordtype">boolean</span> <a class="code" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="code" href="_soft_i2_c_master_8h.html#ad5dc48c57198db1ee444a61405d2ea3d">i2c_init</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Start transfer function: <addr> is the 8-bit I2C address (including the R/W</span></div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">// bit). </span></div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Return: true if the slave replies with an "acknowledge", false otherwise</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">bool</span> <a class="code" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="code" href="_soft_i2_c_master_8h.html#a876a5d83cf8b5fa662b04a81657d8d30">i2c_start</a>(uint8_t addr); </div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// Similar to start function, but wait for an ACK! Be careful, this can </span></div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// result in an infinite loop!</span></div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">void</span> <a class="code" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="code" href="_soft_i2_c_master_8h.html#a5e2e89e9b3cb2a075d3d46bb148a42e9">i2c_start_wait</a>(uint8_t addr);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// Repeated start function: After having claimed the bus with a start condition,</span></div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// you can address another or the same chip again without an intervening </span></div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// stop condition.</span></div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// Return: true if the slave replies with an "acknowledge", false otherwise</span></div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">bool</span> <a class="code" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="code" href="_soft_i2_c_master_8h.html#a68105c3bb259544bcc000c21b8e5d355">i2c_rep_start</a>(uint8_t addr);</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// Issue a stop condition, freeing the bus.</span></div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keywordtype">void</span> <a class="code" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="code" href="_soft_i2_c_master_8h.html#ad35d4e4f52ca74b503d5e5e1e0a3f5f3">i2c_stop</a>(<span class="keywordtype">void</span>) asm("ass_i2c_stop");</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// Write one byte to the slave chip that had been addressed</span></div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// by the previous start call. <value> is the byte to be sent.</span></div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// Return: true if the slave replies with an "acknowledge", false otherwise</span></div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keywordtype">bool</span> <a class="code" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="code" href="_soft_i2_c_master_8h.html#a5abe73d680cae254aafa5227e6d87a13">i2c_write</a>(uint8_t value) asm("ass_i2c_write");</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">// Read one byte. If <last> is true, we send a NAK after having received </span></div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// the byte in order to terminate the read sequence. </span></div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> uint8_t <a class="code" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a>(<span class="keywordtype">bool</span> last);</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// You can set I2C_CPUFREQ independently of F_CPU if you </span></div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// change the CPU frequency on the fly. If you do not define it,</span></div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// it will use the value of F_CPU</span></div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor">#ifndef I2C_CPUFREQ</span></div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_CPUFREQ F_CPU</span></div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// If I2C_FASTMODE is set to 1, then the highest possible frequency below 400kHz</span></div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// is selected. Be aware that not all slave chips may be able to deal with that!</span></div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor">#ifndef I2C_FASTMODE</span></div> +<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a954e80e3d9812f381eb05af7e7081cc2"> 129</a></span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_FASTMODE 0</span></div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// If I2C_FASTMODE is not defined or defined to be 0, then you can set</span></div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// I2C_SLOWMODE to 1. In this case, the I2C frequency will not be higher </span></div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// than 25KHz. This could be useful for problematic buses.</span></div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#ifndef I2C_SLOWMODE</span></div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_SLOWMODE 0</span></div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// if I2C_NOINTERRUPT is 1, then the I2C routines are not interruptable.</span></div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">// This is most probably only necessary if you are using a 1MHz system clock,</span></div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// you are communicating with a SMBus device, and you want to avoid timeouts.</span></div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// Be aware that the interrupt bit is enabled after each call. So the</span></div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// I2C functions should not be called in interrupt routines or critical regions.</span></div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#ifndef I2C_NOINTERRUPT</span></div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_NOINTERRUPT 0</span></div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// I2C_TIMEOUT can be set to a value between 1 and 10000.</span></div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">// If it is defined and nonzero, it leads to a timeout if the</span></div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// SCL is low longer than I2C_TIMEOUT milliseconds, i.e., max timeout is 10 sec</span></div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#ifndef I2C_TIMEOUT</span></div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_TIMEOUT 0</span></div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor"></span><span class="preprocessor">#else </span></div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor"></span><span class="preprocessor">#if I2C_TIMEOUT > 10000</span></div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"></span><span class="preprocessor">#error I2C_TIMEOUT is too large</span></div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#ae704dfa4c0384f5d618fbfd14e0dec80"> 159</a></span> <span class="preprocessor">#define I2C_TIMEOUT_DELAY_LOOPS (I2C_CPUFREQ/1000UL)*I2C_TIMEOUT/4000UL</span></div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor"></span><span class="preprocessor">#if I2C_TIMEOUT_DELAY_LOOPS < 1</span></div> +<div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a970e76c45294e29445ecbf139e6c386a"> 161</a></span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_MAX_STRETCH 1</span></div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"></span><span class="preprocessor">#if I2C_TIMEOUT_DELAY_LOOPS > 60000UL</span></div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_MAX_STRETCH 60000UL</span></div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_MAX_STRETCH I2C_TIMEOUT_DELAY_LOOPS</span></div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="preprocessor">#if I2C_FASTMODE</span></div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/400000L)/2-19)/3)</span></div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"></span><span class="preprocessor">#if I2C_SLOWMODE</span></div> +<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df"> 174</a></span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/25000L)/2-19)/3)</span></div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_DELAY_COUNTER (((I2C_CPUFREQ/100000L)/2-19)/3)</span></div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// Table of I2C bus speed in kbit/sec:</span></div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// CPU clock: 1MHz 2MHz 4MHz 8MHz 16MHz 20MHz</span></div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// Fast I2C mode 40 80 150 300 400 400</span></div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// Standard I2C mode 40 80 100 100 100 100</span></div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// Slow I2C mode 25 25 25 25 25 25 </span></div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// constants for reading & writing</span></div> +<div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#ab5c0fbe837494c5f9130a5914854250d"> 187</a></span> <span class="preprocessor">#define I2C_READ 1</span></div> +<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a9536bf85bced4f4e549a82fb18eb6140"> 188</a></span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_WRITE 0</span></div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// map the IO register back into the IO address space</span></div> +<div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653"> 191</a></span> <span class="preprocessor">#define SDA_DDR (_SFR_IO_ADDR(SDA_PORT) - 1)</span></div> +<div class="line"><a name="l00192"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b"> 192</a></span> <span class="preprocessor"></span><span class="preprocessor">#define SCL_DDR (_SFR_IO_ADDR(SCL_PORT) - 1)</span></div> +<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#ae154abbe60d159b6f4951ade68cc5fae"> 193</a></span> <span class="preprocessor"></span><span class="preprocessor">#define SDA_OUT _SFR_IO_ADDR(SDA_PORT)</span></div> +<div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a07204a69a1872edbb272cde4d0c1e23f"> 194</a></span> <span class="preprocessor"></span><span class="preprocessor">#define SCL_OUT _SFR_IO_ADDR(SCL_PORT)</span></div> +<div class="line"><a name="l00195"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#ac4b553fc156d15aeeeaaf6cfe7695c83"> 195</a></span> <span class="preprocessor"></span><span class="preprocessor">#define SDA_IN (_SFR_IO_ADDR(SDA_PORT) - 2)</span></div> +<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49"> 196</a></span> <span class="preprocessor"></span><span class="preprocessor">#define SCL_IN (_SFR_IO_ADDR(SCL_PORT) - 2)</span></div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="preprocessor">#ifndef __tmp_reg__</span></div> +<div class="line"><a name="l00199"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a0e6fc492b674d6ccceccb06e3bbf907b"> 199</a></span> <span class="preprocessor"></span><span class="preprocessor">#define __tmp_reg__ 0</span></div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment">// Internal delay functions.</span></div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keywordtype">void</span> <a class="code" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="code" href="_soft_i2_c_master_8h.html#a2ccdf1a08647bd236d7988a794dc403c">i2c_delay_half</a>(<span class="keywordtype">void</span>) asm("ass_i2c_delay_half");</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">void</span> <a class="code" href="_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9">__attribute__</a> ((noinline)) <a class="code" href="_soft_i2_c_master_8h.html#a55c46a9ce2c4eaec0c5878436a4a6b5b">i2c_wait_scl_high</a>(<span class="keywordtype">void</span>) asm("ass_i2c_wait_scl_high");</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div> +<div class="line"><a name="l00207"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a2ccdf1a08647bd236d7988a794dc403c"> 207</a></span> <span class="keywordtype">void</span> <a class="code" href="_soft_i2_c_master_8h.html#a2ccdf1a08647bd236d7988a794dc403c">i2c_delay_half</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> { <span class="comment">// function call 3 cycles => 3C</span></div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="preprocessor">#if I2C_DELAY_COUNTER < 1</span></div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor"></span> __asm__ __volatile__ (<span class="stringliteral">" ret"</span>);</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// 7 cycles for call and return</span></div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor"></span> __asm__ __volatile__ </div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  (</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="stringliteral">" ldi r25, %[DELAY] ;load delay constant ;; 4C \n\t"</span></div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="stringliteral">"_Lidelay: \n\t"</span></div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="stringliteral">" dec r25 ;decrement counter ;; 4C+xC \n\t"</span></div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="stringliteral">" brne _Lidelay ;;5C+(x-1)2C+xC\n\t"</span></div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="stringliteral">" ret ;; 9C+(x-1)2C+xC = 7C+xC"</span> </div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  : : [DELAY] <span class="stringliteral">"M"</span> <a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a> : <span class="stringliteral">"r25"</span>);</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="comment">// 7 cycles + 3 times x cycles</span></div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="preprocessor"></span>}</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div> +<div class="line"><a name="l00225"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a55c46a9ce2c4eaec0c5878436a4a6b5b"> 225</a></span> <span class="keywordtype">void</span> <a class="code" href="_soft_i2_c_master_8h.html#a55c46a9ce2c4eaec0c5878436a4a6b5b">i2c_wait_scl_high</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> {</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor">#if I2C_TIMEOUT <= 0</span></div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="preprocessor"></span> __asm__ __volatile__ </div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  (<span class="stringliteral">"_Li2c_wait_stretch: \n\t"</span></div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="stringliteral">" sbis %[SCLIN],%[SCLPIN] ;wait for SCL high \n\t"</span> </div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="stringliteral">" rjmp _Li2c_wait_stretch \n\t"</span></div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="stringliteral">" cln ;signal: no timeout \n\t"</span></div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="stringliteral">" ret "</span></div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  : : [SCLIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>), [SCLPIN] <span class="stringliteral">"I"</span> (SCL_PIN));</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor"></span> __asm__ __volatile__ </div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  ( <span class="stringliteral">" ldi r27, %[HISTRETCH] ;load delay counter \n\t"</span></div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="stringliteral">" ldi r26, %[LOSTRETCH] \n\t"</span></div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="stringliteral">"_Lwait_stretch: \n\t"</span></div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="stringliteral">" clr __tmp_reg__ ;do next loop 255 times \n\t"</span></div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="stringliteral">"_Lwait_stretch_inner_loop: \n\t"</span></div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="stringliteral">" rcall _Lcheck_scl_level ;call check function ;; 12C \n\t"</span></div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="stringliteral">" brpl _Lstretch_done ;done if N=0 ;; +1 = 13C\n\t"</span></div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="stringliteral">" dec __tmp_reg__ ;dec inner loop counter;; +1 = 14C\n\t"</span></div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="stringliteral">" brne _Lwait_stretch_inner_loop ;; +2 = 16C\n\t"</span></div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="stringliteral">" sbiw r26,1 ;dec outer loop counter \n\t"</span></div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="stringliteral">" brne _Lwait_stretch ;continue with outer loop \n\t"</span></div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="stringliteral">" sen ;timeout -> set N-bit=1 \n\t"</span></div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="stringliteral">" rjmp _Lwait_return ;and return with N=1\n\t"</span></div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="stringliteral">"_Lstretch_done: ;SCL=1 sensed \n\t"</span> </div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="stringliteral">" cln ;OK -> clear N-bit \n\t"</span></div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="stringliteral">" rjmp _Lwait_return ; and return with N=0 \n\t"</span></div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="stringliteral">"_Lcheck_scl_level: ;; call = 3C\n\t"</span></div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="stringliteral">" cln ;; +1C = 4C \n\t"</span></div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="stringliteral">" sbic %[SCLIN],%[SCLPIN] ;skip if SCL still low ;; +2C = 6C \n\t"</span></div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="stringliteral">" rjmp _Lscl_high ;; +0C = 6C \n\t"</span></div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="stringliteral">" sen ;; +1 = 7C\n\t "</span></div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="stringliteral">"_Lscl_high: "</span></div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="stringliteral">" nop ;; +1C = 8C \n\t"</span></div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="stringliteral">" ret ;return N-Bit=1 if low ;; +4 = 12C\n\t"</span></div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="stringliteral">"_Lwait_return:"</span></div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  : : [SCLIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>), [SCLPIN] <span class="stringliteral">"I"</span> (SCL_PIN), </div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  [HISTRETCH] <span class="stringliteral">"M"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a970e76c45294e29445ecbf139e6c386a">I2C_MAX_STRETCH</a>>>8), </div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  [LOSTRETCH] <span class="stringliteral">"M"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a970e76c45294e29445ecbf139e6c386a">I2C_MAX_STRETCH</a>&0xFF)</div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  : <span class="stringliteral">"r26"</span>, <span class="stringliteral">"r27"</span>);</div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"></span>}</div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div> +<div class="line"><a name="l00272"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#ad5dc48c57198db1ee444a61405d2ea3d"> 272</a></span> <span class="keywordtype">boolean</span> <a class="code" href="_soft_i2_c_master_8h.html#ad5dc48c57198db1ee444a61405d2ea3d">i2c_init</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> {</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  __asm__ __volatile__ </div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  (<span class="stringliteral">" cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"</span> </div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="stringliteral">" cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t"</span> </div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="stringliteral">" cbi %[SDAOUT],%[SDAPIN] ;clear SDA output value \n\t"</span> </div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="stringliteral">" cbi %[SCLOUT],%[SCLPIN] ;clear SCL output value \n\t"</span> </div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="stringliteral">" clr r24 ;set return value to false \n\t"</span></div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="stringliteral">" clr r25 ;set return value to false \n\t"</span></div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="stringliteral">" sbis %[SDAIN],%[SDAPIN] ;check for SDA high\n\t"</span></div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="stringliteral">" ret ;if low return with false \n\t"</span> </div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="stringliteral">" sbis %[SCLIN],%[SCLPIN] ;check for SCL high \n\t"</span></div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="stringliteral">" ret ;if low return with false \n\t"</span> </div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="stringliteral">" ldi r24,1 ;set return value to true \n\t"</span></div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="stringliteral">" ret "</span></div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  : :</div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  [SCLDDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b">SCL_DDR</a>), [SCLPIN] <span class="stringliteral">"I"</span> (SCL_PIN), </div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  [SCLIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>), [SCLOUT] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a07204a69a1872edbb272cde4d0c1e23f">SCL_OUT</a>),</div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  [SDADDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653">SDA_DDR</a>), [SDAPIN] <span class="stringliteral">"I"</span> (SDA_PIN), </div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  [SDAIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#ac4b553fc156d15aeeeaaf6cfe7695c83">SDA_IN</a>), [SDAOUT] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#ae154abbe60d159b6f4951ade68cc5fae">SDA_OUT</a>)); </div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> }</div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div> +<div class="line"><a name="l00295"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a876a5d83cf8b5fa662b04a81657d8d30"> 295</a></span> <span class="keywordtype">bool</span> <a class="code" href="_soft_i2_c_master_8h.html#a876a5d83cf8b5fa662b04a81657d8d30">i2c_start</a>(uint8_t addr)</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> {</div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  __asm__ __volatile__ </div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  (</div> +<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a206ca6aa556565db88a5302050eb3936">I2C_NOINTERRUPT</a></div> +<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="stringliteral">" cli ;clear IRQ bit \n\t"</span></div> +<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> #endif</div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="stringliteral">" sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"</span></div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="stringliteral">" rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"</span> </div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="stringliteral">" sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"</span> </div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;wait T/2 \n\t"</span></div> +<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="stringliteral">" rcall ass_i2c_write ;now write address \n\t"</span></div> +<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="stringliteral">" ret"</span></div> +<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  : : [SDADDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653">SDA_DDR</a>), [SDAPIN] <span class="stringliteral">"I"</span> (SDA_PIN),</div> +<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  [SCLIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>),[SCLPIN] <span class="stringliteral">"I"</span> (SCL_PIN)); </div> +<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// we never return here!</span></div> +<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> }</div> +<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div> +<div class="line"><a name="l00313"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a68105c3bb259544bcc000c21b8e5d355"> 313</a></span> <span class="keywordtype">bool</span> <a class="code" href="_soft_i2_c_master_8h.html#a68105c3bb259544bcc000c21b8e5d355">i2c_rep_start</a>(uint8_t addr)</div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> {</div> +<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  __asm__ __volatile__ </div> +<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div> +<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  (</div> +<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a206ca6aa556565db88a5302050eb3936">I2C_NOINTERRUPT</a></div> +<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="stringliteral">" cli \n\t"</span></div> +<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> #endif</div> +<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="stringliteral">" sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t"</span> </div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 \n\t"</span> </div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="stringliteral">" cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"</span> </div> +<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 \n\t"</span> </div> +<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="stringliteral">" cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t"</span> </div> +<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 \n\t"</span> </div> +<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="stringliteral">" sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"</span></div> +<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="stringliteral">" rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"</span> </div> +<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="stringliteral">" sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"</span> </div> +<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 \n\t"</span> </div> +<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="stringliteral">" rcall ass_i2c_write \n\t"</span></div> +<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="stringliteral">" ret"</span></div> +<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  : : [SCLDDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b">SCL_DDR</a>), [SCLPIN] <span class="stringliteral">"I"</span> (SCL_PIN),[SCLIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>),</div> +<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  [SDADDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653">SDA_DDR</a>), [SDAPIN] <span class="stringliteral">"I"</span> (SDA_PIN)); </div> +<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// just to fool the compiler</span></div> +<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> }</div> +<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div> +<div class="line"><a name="l00338"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a5e2e89e9b3cb2a075d3d46bb148a42e9"> 338</a></span> <span class="keywordtype">void</span> <a class="code" href="_soft_i2_c_master_8h.html#a5e2e89e9b3cb2a075d3d46bb148a42e9">i2c_start_wait</a>(uint8_t addr)</div> +<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> {</div> +<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  __asm__ __volatile__ </div> +<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  (</div> +<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="stringliteral">" push r24 ;save original parameter \n\t"</span></div> +<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="stringliteral">"_Li2c_start_wait1: \n\t"</span></div> +<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="stringliteral">" pop r24 ;restore original parameter\n\t"</span></div> +<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="stringliteral">" push r24 ;and save again \n\t"</span></div> +<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a206ca6aa556565db88a5302050eb3936">I2C_NOINTERRUPT</a></div> +<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="stringliteral">" cli ;disable interrupts \n\t"</span></div> +<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> #endif</div> +<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="stringliteral">" sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"</span></div> +<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="stringliteral">" rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"</span> </div> +<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="stringliteral">" sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"</span> </div> +<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 \n\t"</span> </div> +<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="stringliteral">" rcall ass_i2c_write ;write address \n\t"</span> </div> +<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="stringliteral">" tst r24 ;if device not busy -> done \n\t"</span> </div> +<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="stringliteral">" brne _Li2c_start_wait_done \n\t"</span> </div> +<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="stringliteral">" rcall ass_i2c_stop ;terminate write & enable IRQ \n\t"</span> </div> +<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="stringliteral">" rjmp _Li2c_start_wait1 ;device busy, poll ack again \n\t"</span> </div> +<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="stringliteral">"_Li2c_start_wait_done: \n\t"</span></div> +<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="stringliteral">" pop __tmp_reg__ ;pop off orig argument \n\t"</span></div> +<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="stringliteral">" ret "</span></div> +<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  : : [SDADDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653">SDA_DDR</a>), [SDAPIN] <span class="stringliteral">"I"</span> (SDA_PIN),</div> +<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  [SCLIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>),[SCLPIN] <span class="stringliteral">"I"</span> (SCL_PIN)); </div> +<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> }</div> +<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div> +<div class="line"><a name="l00365"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#ad35d4e4f52ca74b503d5e5e1e0a3f5f3"> 365</a></span> <span class="keywordtype">void</span> <a class="code" href="_soft_i2_c_master_8h.html#ad35d4e4f52ca74b503d5e5e1e0a3f5f3">i2c_stop</a>(<span class="keywordtype">void</span>)</div> +<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> {</div> +<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  __asm__ __volatile__ </div> +<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  (</div> +<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="stringliteral">" sbi %[SCLDDR],%[SCLPIN] ;force SCL low \n\t"</span> </div> +<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="stringliteral">" sbi %[SDADDR],%[SDAPIN] ;force SDA low \n\t"</span> </div> +<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;T/2 delay \n\t"</span></div> +<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="stringliteral">" cbi %[SCLDDR],%[SCLPIN] ;release SCL \n\t"</span> </div> +<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;T/2 delay \n\t"</span></div> +<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="stringliteral">" sbis %[SCLIN],%[SCLPIN] ;check for clock stretching slave\n\t"</span></div> +<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="stringliteral">" rcall ass_i2c_wait_scl_high ;wait until SCL=H\n\t"</span> </div> +<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="stringliteral">" cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"</span> </div> +<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="stringliteral">" rcall ass_i2c_delay_half \n\t"</span></div> +<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a206ca6aa556565db88a5302050eb3936">I2C_NOINTERRUPT</a></div> +<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="stringliteral">" sei ;enable interrupts again!\n\t"</span></div> +<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> #endif</div> +<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  : : [SCLDDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b">SCL_DDR</a>), [SCLPIN] <span class="stringliteral">"I"</span> (SCL_PIN), [SCLIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>),</div> +<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  [SDADDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653">SDA_DDR</a>), [SDAPIN] <span class="stringliteral">"I"</span> (SDA_PIN)); </div> +<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> }</div> +<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div> +<div class="line"><a name="l00385"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a5abe73d680cae254aafa5227e6d87a13"> 385</a></span> <span class="keywordtype">bool</span> <a class="code" href="_soft_i2_c_master_8h.html#a5abe73d680cae254aafa5227e6d87a13">i2c_write</a>(uint8_t value)</div> +<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> {</div> +<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  __asm__ __volatile__ </div> +<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  (</div> +<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="stringliteral">" sec ;set carry flag \n\t"</span></div> +<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="stringliteral">" rol r24 ;shift in carry and shift out MSB \n\t"</span></div> +<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="stringliteral">" rjmp _Li2c_write_first \n\t"</span></div> +<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="stringliteral">"_Li2c_write_bit:\n\t"</span></div> +<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="stringliteral">" lsl r24 ;left shift into carry ;; 1C\n\t"</span></div> +<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="stringliteral">"_Li2c_write_first:\n\t"</span></div> +<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="stringliteral">" breq _Li2c_get_ack ;jump if TXreg is empty;; +1 = 2C \n\t"</span></div> +<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="stringliteral">" sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 4C \n\t"</span></div> +<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="stringliteral">" brcc _Li2c_write_low ;;+1/+2=5/6C\n\t"</span></div> +<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="stringliteral">" nop ;; +1 = 7C \n\t"</span></div> +<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="stringliteral">" cbi %[SDADDR],%[SDAPIN] ;release SDA ;; +2 = 9C \n\t"</span></div> +<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="stringliteral">" rjmp _Li2c_write_high ;; +2 = 11C \n\t"</span></div> +<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="stringliteral">"_Li2c_write_low: \n\t"</span></div> +<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="stringliteral">" sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; +2 = 9C \n\t"</span></div> +<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="stringliteral">" rjmp _Li2c_write_high ;;+2 = 11C \n\t"</span></div> +<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="stringliteral">"_Li2c_write_high: \n\t"</span></div> +<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a> >= 1</div> +<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 ;;+X = 11C+X\n\t"</span></div> +<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> #endif</div> +<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="stringliteral">" cbi %[SCLDDR],%[SCLPIN] ;release SCL ;;+2 = 13C+X\n\t"</span></div> +<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="stringliteral">" cln ;clear N-bit ;;+1 = 14C+X\n\t"</span></div> +<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="stringliteral">" sbis %[SCLIN],%[SCLPIN] ;check for SCL high ;;+2 = 16C+X\n\t"</span></div> +<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="stringliteral">" rcall ass_i2c_wait_scl_high \n\t"</span></div> +<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="stringliteral">" brpl _Ldelay_scl_high ;;+2 = 18C+X\n\t"</span></div> +<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="stringliteral">"_Li2c_write_return_false: \n\t"</span></div> +<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="stringliteral">" clr r24 ; return false because of timeout \n\t"</span></div> +<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="stringliteral">" rjmp _Li2c_write_return \n\t"</span></div> +<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="stringliteral">"_Ldelay_scl_high: \n\t"</span></div> +<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a> >= 1</div> +<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 ;;+X= 18C+2X\n\t"</span></div> +<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> #endif</div> +<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="stringliteral">" rjmp _Li2c_write_bit \n\t"</span></div> +<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="stringliteral">" ;; +2 = 20C +2X for one bit-loop \n\t"</span></div> +<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="stringliteral">"_Li2c_get_ack: \n\t"</span></div> +<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="stringliteral">" sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; +2 = 5C \n\t"</span></div> +<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="stringliteral">" cbi %[SDADDR],%[SDAPIN] ;release SDA ;;+2 = 7C \n\t"</span></div> +<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a> >= 1</div> +<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 ;; +X = 7C+X \n\t"</span></div> +<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> #endif</div> +<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="stringliteral">" clr r25 ;; 17C+2X \n\t"</span></div> +<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="stringliteral">" clr r24 ;return 0 ;; 14C + X \n\t"</span></div> +<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="stringliteral">" cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; +2 = 9C+X\n\t"</span></div> +<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="stringliteral">"_Li2c_ack_wait: \n\t"</span></div> +<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="stringliteral">" cln ; clear N-bit ;; 10C + X\n\t"</span> </div> +<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="stringliteral">" sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X \n\t"</span></div> +<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="stringliteral">" rcall ass_i2c_wait_scl_high \n\t"</span></div> +<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="stringliteral">" brmi _Li2c_write_return_false ;; 13C + X \n\t "</span></div> +<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="stringliteral">" sbis %[SDAIN],%[SDAPIN] ;if SDA hi -> return 0 ;; 15C + X \n\t"</span></div> +<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="stringliteral">" ldi r24,1 ;return true ;; 16C + X \n\t"</span></div> +<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a> >= 1</div> +<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 ;; 16C + 2X \n\t"</span></div> +<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> #endif</div> +<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="stringliteral">"_Li2c_write_return: \n\t"</span></div> +<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="stringliteral">" sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t"</span></div> +<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="stringliteral">" ret \n\t"</span></div> +<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="stringliteral">" ;; + 4 = 17C + 2X for acknowldge bit"</span></div> +<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  ::</div> +<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  [SCLDDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b">SCL_DDR</a>), [SCLPIN] <span class="stringliteral">"I"</span> (SCL_PIN), [SCLIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>),</div> +<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  [SDADDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653">SDA_DDR</a>), [SDAPIN] <span class="stringliteral">"I"</span> (SDA_PIN), [SDAIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#ac4b553fc156d15aeeeaaf6cfe7695c83">SDA_IN</a>)); </div> +<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// fooling the compiler</span></div> +<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> }</div> +<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div> +<div class="line"><a name="l00462"></a><span class="lineno"><a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef"> 462</a></span> uint8_t <a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a>(<span class="keywordtype">bool</span> last)</div> +<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> {</div> +<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  __asm__ __volatile__ </div> +<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  (</div> +<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="stringliteral">" ldi r23,0x01 \n\t"</span></div> +<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="stringliteral">"_Li2c_read_bit: \n\t"</span></div> +<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="stringliteral">" sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t"</span> </div> +<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="stringliteral">" cbi %[SDADDR],%[SDAPIN] ;release SDA(prev. ACK);; 4C \n\t"</span> </div> +<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="stringliteral">" nop \n\t"</span></div> +<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a> >= 1</div> +<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 ;; 4C+X \n\t"</span> </div> +<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> #endif</div> +<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="stringliteral">" cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 6C + X \n\t"</span> </div> +<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a> >= 1</div> +<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 ;; 6C + 2X \n\t"</span> </div> +<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> #endif</div> +<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="stringliteral">" cln ; clear N-bit ;; 7C + 2X \n\t"</span></div> +<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="stringliteral">" sbis %[SCLIN], %[SCLPIN] ;check for SCL high ;; 9C +2X \n\t"</span> </div> +<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="stringliteral">" rcall ass_i2c_wait_scl_high \n\t"</span></div> +<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="stringliteral">" brmi _Li2c_read_return ;return if timeout ;; 10C + 2X\n\t"</span></div> +<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="stringliteral">" clc ;clear carry flag ;; 11C + 2X\n\t"</span> </div> +<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="stringliteral">" sbic %[SDAIN],%[SDAPIN] ;if SDA is high ;; 11C + 2X\n\t"</span> </div> +<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="stringliteral">" sec ;set carry flag ;; 12C + 2X\n\t"</span> </div> +<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="stringliteral">" rol r23 ;store bit ;; 13C + 2X\n\t"</span> </div> +<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="stringliteral">" brcc _Li2c_read_bit ;while receiv reg not full \n\t"</span></div> +<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="stringliteral">" ;; 15C + 2X for one bit loop \n\t"</span> </div> +<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div> +<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="stringliteral">"_Li2c_put_ack: \n\t"</span> </div> +<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="stringliteral">" sbi %[SCLDDR],%[SCLPIN] ;force SCL low ;; 2C \n\t"</span> </div> +<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="stringliteral">" cpi r24,0 ;; 3C \n\t"</span> </div> +<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="stringliteral">" breq _Li2c_put_ack_low ;if (ack=0) ;; 5C \n\t"</span> </div> +<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="stringliteral">" cbi %[SDADDR],%[SDAPIN] ;release SDA \n\t"</span> </div> +<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="stringliteral">" rjmp _Li2c_put_ack_high \n\t"</span> </div> +<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="stringliteral">"_Li2c_put_ack_low: ;else \n\t"</span> </div> +<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="stringliteral">" sbi %[SDADDR],%[SDAPIN] ;force SDA low ;; 7C \n\t"</span> </div> +<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="stringliteral">"_Li2c_put_ack_high: \n\t"</span> </div> +<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a> >= 1</div> +<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 ;; 7C + X \n\t"</span> </div> +<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> #endif</div> +<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="stringliteral">" cbi %[SCLDDR],%[SCLPIN] ;release SCL ;; 9C +X \n\t"</span> </div> +<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="stringliteral">" cln ;clear N ;; +1 = 10C\n\t"</span></div> +<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="stringliteral">" sbis %[SCLIN],%[SCLPIN] ;wait SCL high ;; 12C + X\n\t"</span> </div> +<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="stringliteral">" rcall ass_i2c_wait_scl_high \n\t"</span></div> +<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> #<span class="keywordflow">if</span> <a class="code" href="_soft_i2_c_master_8h.html#a2af652afc14dc884cb2b42683d45c8df">I2C_DELAY_COUNTER</a> >= 1</div> +<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="stringliteral">" rcall ass_i2c_delay_half ;delay T/2 ;; 11C + 2X\n\t"</span> </div> +<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> #endif</div> +<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="stringliteral">"_Li2c_read_return: \n\t"</span></div> +<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="stringliteral">" nop \n\t "</span></div> +<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="stringliteral">"sbi %[SCLDDR],%[SCLPIN] ;force SCL low so SCL=H is short\n\t"</span></div> +<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="stringliteral">" mov r24,r23 ;; 12C + 2X \n\t"</span></div> +<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="stringliteral">" clr r25 ;; 13 C + 2X\n\t"</span></div> +<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="stringliteral">" ret ;; 17C + X"</span></div> +<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  ::</div> +<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  [SCLDDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b">SCL_DDR</a>), [SCLPIN] <span class="stringliteral">"I"</span> (SCL_PIN), [SCLIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49">SCL_IN</a>),</div> +<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  [SDADDR] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653">SDA_DDR</a>), [SDAPIN] <span class="stringliteral">"I"</span> (SDA_PIN), [SDAIN] <span class="stringliteral">"I"</span> (<a class="code" href="_soft_i2_c_master_8h.html#ac4b553fc156d15aeeeaaf6cfe7695c83">SDA_IN</a>) </div> +<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  ); </div> +<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">return</span> <span class="charliteral">' '</span>; <span class="comment">// fool the compiler!</span></div> +<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> }</div> +<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div> +<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> </div> +<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="preprocessor">#endif</span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="_soft_i2_c_master_8h.html">SoftI2CMaster.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8cpp.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8cpp.html new file mode 100644 index 0000000000000000000000000000000000000000..aa358edcdf99f0f32108a8d562c85eedb11a9f68 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8cpp.html @@ -0,0 +1,485 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/algorithm/algorithm.cpp File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('algorithm_8cpp.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">algorithm.cpp File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include "<a class="el" href="algorithm_8h_source.html">algorithm.h</a>"</code><br/> +<code>#include "mbed.h"</code><br/> +</div> +<p><a href="algorithm_8cpp_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a62050365673e666cd0d661a3664c26e6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6">maxim_heart_rate_and_oxygen_saturation</a> (uint32_t *pun_ir_buffer, int32_t <a class="el" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid, int32_t *pn_heart_rate, int8_t *pch_hr_valid)</td></tr> +<tr class="memdesc:a62050365673e666cd0d661a3664c26e6"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the heart rate and SpO2 level. <a href="#a62050365673e666cd0d661a3664c26e6"></a><br/></td></tr> +<tr class="separator:a62050365673e666cd0d661a3664c26e6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2a4e5ddbe0e04c48b166f2ff176667a9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9">maxim_find_peaks</a> (int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num)</td></tr> +<tr class="memdesc:a2a4e5ddbe0e04c48b166f2ff176667a9"><td class="mdescLeft"> </td><td class="mdescRight">Find peaks. <a href="#a2a4e5ddbe0e04c48b166f2ff176667a9"></a><br/></td></tr> +<tr class="separator:a2a4e5ddbe0e04c48b166f2ff176667a9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aab95338e44281c269f0b9b0f529741bf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf">maxim_peaks_above_min_height</a> (int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height)</td></tr> +<tr class="memdesc:aab95338e44281c269f0b9b0f529741bf"><td class="mdescLeft"> </td><td class="mdescRight">Find peaks above n_min_height. <a href="#aab95338e44281c269f0b9b0f529741bf"></a><br/></td></tr> +<tr class="separator:aab95338e44281c269f0b9b0f529741bf"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:adc6be68be81530d67a25c1a9905bec3a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a">maxim_remove_close_peaks</a> (int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance)</td></tr> +<tr class="memdesc:adc6be68be81530d67a25c1a9905bec3a"><td class="mdescLeft"> </td><td class="mdescRight">Remove peaks. <a href="#adc6be68be81530d67a25c1a9905bec3a"></a><br/></td></tr> +<tr class="separator:adc6be68be81530d67a25c1a9905bec3a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a6cae46e51640b712afc2ebeefd2d51ff"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff">maxim_sort_ascend</a> (int32_t *pn_x, int32_t n_size)</td></tr> +<tr class="memdesc:a6cae46e51640b712afc2ebeefd2d51ff"><td class="mdescLeft"> </td><td class="mdescRight">Sort array. <a href="#a6cae46e51640b712afc2ebeefd2d51ff"></a><br/></td></tr> +<tr class="separator:a6cae46e51640b712afc2ebeefd2d51ff"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a44b6312f81810d4deb64071d12ab0060"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060">maxim_sort_indices_descend</a> (int32_t *pn_x, int32_t *pn_indx, int32_t n_size)</td></tr> +<tr class="memdesc:a44b6312f81810d4deb64071d12ab0060"><td class="mdescLeft"> </td><td class="mdescRight">Sort indices. <a href="#a44b6312f81810d4deb64071d12ab0060"></a><br/></td></tr> +<tr class="separator:a44b6312f81810d4deb64071d12ab0060"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><hr/> +<p>Project: MAXREFDES117# Filename: <a class="el" href="algorithm_8cpp.html">algorithm.cpp</a> Description: This module calculates the heart rate/SpO2 level <hr/> +<p>This code follows the following naming conventions:</p> +<p>char ch_pmod_value char (array) s_pmod_s_string[16] float f_pmod_value int32_t n_pmod_value int32_t (array) an_pmod_value[16] int16_t w_pmod_value int16_t (array) aw_pmod_value[16] uint16_t uw_pmod_value uint16_t (array) auw_pmod_value[16] uint8_t uch_pmod_value uint8_t (array) auch_pmod_buffer[16] uint32_t un_pmod_value int32_t * pn_pmod_value <hr/> + +<p>Definition in file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="a2a4e5ddbe0e04c48b166f2ff176667a9"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_find_peaks </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_locs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_npks</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_min_height</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_min_distance</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_max_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Find peaks. </p> +<dl class="section user"><dt>Details</dt><dd>Find at most MAX_NUM peaks above MIN_HEIGHT separated by at least MIN_DISTANCE</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00254">254</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a62050365673e666cd0d661a3664c26e6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_heart_rate_and_oxygen_saturation </td> + <td>(</td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_ir_buffer</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_ir_buffer_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_red_buffer</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_spo2</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int8_t * </td> + <td class="paramname"><em>pch_spo2_valid</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_heart_rate</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int8_t * </td> + <td class="paramname"><em>pch_hr_valid</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the heart rate and SpO2 level. </p> +<dl class="section user"><dt>Details</dt><dd>By detecting peaks of PPG cycle and corresponding AC/DC of red/infra-red signal, the ratio for the SPO2 is computed. Since this algorithm is aiming for Arm M0/M3. formaula for SPO2 did not achieve the accuracy due to register overflow. Thus, accurate SPO2 is precalculated and save longo uch_spo2_table[] per each ratio.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">*pun_ir_buffer</td><td>- IR sensor data buffer </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n_ir_buffer_length</td><td>- IR sensor data buffer length </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">*pun_red_buffer</td><td>- Red sensor data buffer </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pn_spo2</td><td>- Calculated SpO2 value </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pch_spo2_valid</td><td>- 1 if the calculated SpO2 value is valid </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pn_heart_rate</td><td>- Calculated heart rate value </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pch_hr_valid</td><td>- 1 if the calculated heart rate value is valid</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00062">62</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="aab95338e44281c269f0b9b0f529741bf"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_peaks_above_min_height </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_locs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_npks</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_min_height</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Find peaks above n_min_height. </p> +<dl class="section user"><dt>Details</dt><dd>Find all peaks above MIN_HEIGHT</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00268">268</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="adc6be68be81530d67a25c1a9905bec3a"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_remove_close_peaks </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_locs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_npks</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_min_distance</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Remove peaks. </p> +<dl class="section user"><dt>Details</dt><dd>Remove peaks separated by less than MIN_DISTANCE</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00299">299</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a6cae46e51640b712afc2ebeefd2d51ff"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_sort_ascend </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_size</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sort array. </p> +<dl class="section user"><dt>Details</dt><dd>Sort array in ascending order (insertion sort algorithm)</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00328">328</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a44b6312f81810d4deb64071d12ab0060"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_sort_indices_descend </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_indx</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_size</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sort indices. </p> +<dl class="section user"><dt>Details</dt><dd>Sort indices according to descending order (insertion sort algorithm)</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00346">346</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_19b53f07f52837a342947cc20e6d978f.html">algorithm</a></li><li class="navelem"><a class="el" href="algorithm_8cpp.html">algorithm.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8cpp.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8cpp.js new file mode 100644 index 0000000000000000000000000000000000000000..75ef92fa18e54ff44084f1a7e4fed5cfb01f1678 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8cpp.js @@ -0,0 +1,9 @@ +var algorithm_8cpp = +[ + [ "maxim_find_peaks", "algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9", null ], + [ "maxim_heart_rate_and_oxygen_saturation", "algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6", null ], + [ "maxim_peaks_above_min_height", "algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf", null ], + [ "maxim_remove_close_peaks", "algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a", null ], + [ "maxim_sort_ascend", "algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff", null ], + [ "maxim_sort_indices_descend", "algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8cpp_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8cpp_source.html new file mode 100644 index 0000000000000000000000000000000000000000..14c4cce0fef1c417b340a94641b01d213e9567ff --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8cpp_source.html @@ -0,0 +1,406 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/algorithm/algorithm.cpp Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('algorithm_8cpp_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">algorithm.cpp</div> </div> +</div><!--header--> +<div class="contents"> +<a href="algorithm_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">/*******************************************************************************</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">*</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">* Permission is hereby granted, free of charge, to any person obtaining a</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">* copy of this software and associated documentation files (the "Software"),</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">* to deal in the Software without restriction, including without limitation</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">* the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">* and/or sell copies of the Software, and to permit persons to whom the</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">* Software is furnished to do so, subject to the following conditions:</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">*</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">* The above copyright notice and this permission notice shall be included</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">* in all copies or substantial portions of the Software.</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">*</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* OTHER DEALINGS IN THE SOFTWARE.</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">*</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">* Except as contained in this notice, the name of Maxim Integrated</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">* Products, Inc. shall not be used except as stated in the Maxim Integrated</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">* Products, Inc. Branding Policy.</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">*</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">* The mere transfer of this software does not imply any licenses</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">* of trade secrets, proprietary technology, copyrights, patents,</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">* trademarks, maskwork rights, or any other form of intellectual</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">* property whatsoever. Maxim Integrated Products, Inc. retains all</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">* ownership rights.</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">*******************************************************************************</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">*/</span></div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include "<a class="code" href="algorithm_8h.html">algorithm.h</a>"</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include "mbed.h"</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div> +<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a62050365673e666cd0d661a3664c26e6"> 62</a></span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6" title="Calculate the heart rate and SpO2 level.">maxim_heart_rate_and_oxygen_saturation</a>(uint32_t *pun_ir_buffer, int32_t <a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid, </div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  int32_t *pn_heart_rate, int8_t *pch_hr_valid)</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  uint32_t un_ir_mean ,un_only_once ;</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  int32_t k ,n_i_ratio_count;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  int32_t i, s, m, n_exact_ir_valley_locs_count ,n_middle_idx;</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  int32_t n_th1, n_npks,n_c_min; </div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  int32_t an_ir_valley_locs[15] ;</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  int32_t an_exact_ir_valley_locs[15] ;</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  int32_t an_dx_peak_locs[15] ;</div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  int32_t n_peak_interval_sum;</div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  int32_t n_y_ac, n_x_ac;</div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  int32_t n_spo2_calc; </div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  int32_t n_y_dc_max, n_x_dc_max; </div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  int32_t n_y_dc_max_idx, n_x_dc_max_idx; </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  int32_t an_ratio[5],n_ratio_average; </div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  int32_t n_nume, n_denom ;</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// remove DC of ir signal </span></div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  un_ir_mean =0; </div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">for</span> (k=0 ; k<<a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a> ; k++ ) un_ir_mean += pun_ir_buffer[k] ;</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  un_ir_mean =un_ir_mean/<a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a> ;</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">for</span> (k=0 ; k<<a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a> ; k++ ) an_x[k] = pun_ir_buffer[k] - un_ir_mean ; </div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">// 4 pt Moving Average</span></div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">for</span>(k=0; k< <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-<a class="code" href="algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae">MA4_SIZE</a>; k++){</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  n_denom= ( an_x[k]+an_x[k+1]+ an_x[k+2]+ an_x[k+3]);</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  an_x[k]= n_denom/(int32_t)4; </div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">// get difference of smoothed IR signal</span></div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">for</span>( k=0; k<<a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-MA4_SIZE-1; k++)</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  an_dx[k]= (an_x[k+1]- an_x[k]);</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// 2-pt Moving Average to an_dx</span></div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">for</span>(k=0; k< <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-MA4_SIZE-2; k++){</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  an_dx[k] = ( an_dx[k]+an_dx[k+1])/2 ;</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  </div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">// hamming window</span></div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// flip wave form so that we can detect valley with peak detector</span></div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">for</span> ( i=0 ; i<<a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-<a class="code" href="algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8">HAMMING_SIZE</a>-MA4_SIZE-2 ;i++){</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  s= 0;</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">for</span>( k=i; k<i+ <a class="code" href="algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8">HAMMING_SIZE</a> ;k++){</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  s -= an_dx[k] *<a class="code" href="algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929">auw_hamm</a>[k-i] ; </div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  an_dx[i]= s/ (int32_t)1146; <span class="comment">// divide by sum of auw_hamm </span></div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  n_th1=0; <span class="comment">// threshold calculation</span></div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">for</span> ( k=0 ; k<<a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-<a class="code" href="algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8">HAMMING_SIZE</a> ;k++){</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  n_th1 += ((an_dx[k]>0)? an_dx[k] : ((int32_t)0-an_dx[k])) ;</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  n_th1= n_th1/ ( <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-<a class="code" href="algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8">HAMMING_SIZE</a>);</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// peak location is acutally index for sharpest location of raw signal since we flipped the signal </span></div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9" title="Find peaks.">maxim_find_peaks</a>( an_dx_peak_locs, &n_npks, an_dx, <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-HAMMING_SIZE, n_th1, 8, 5 );<span class="comment">//peak_height, peak_distance, max_num_peaks </span></div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  n_peak_interval_sum =0;</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (n_npks>=2){</div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">for</span> (k=1; k<n_npks; k++)</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  n_peak_interval_sum += (an_dx_peak_locs[k]-an_dx_peak_locs[k -1]);</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  n_peak_interval_sum=n_peak_interval_sum/(n_npks-1);</div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  *pn_heart_rate=(int32_t)(6000/n_peak_interval_sum);<span class="comment">// beats per minutes</span></div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  *pch_hr_valid = 1;</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">else</span> {</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  *pn_heart_rate = -999;</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  *pch_hr_valid = 0;</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">for</span> ( k=0 ; k<n_npks ;k++)</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  an_ir_valley_locs[k]=an_dx_peak_locs[k]+HAMMING_SIZE/2; </div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// raw value : RED(=y) and IR(=X)</span></div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="comment">// we need to assess DC and AC value of ir and red PPG. </span></div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">for</span> (k=0 ; k<<a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a> ; k++ ) {</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  an_x[k] = pun_ir_buffer[k] ; </div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  an_y[k] = pun_red_buffer[k] ; </div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// find precise min near an_ir_valley_locs</span></div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  n_exact_ir_valley_locs_count =0; </div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span>(k=0 ; k<n_npks ;k++){</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  un_only_once =1;</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  m=an_ir_valley_locs[k];</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  n_c_min= 16777216;<span class="comment">//2^24;</span></div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">if</span> (m+5 < <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-HAMMING_SIZE && m-5 >0){</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">for</span>(i= m-5;i<m+5; i++)</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">if</span> (an_x[i]<n_c_min){</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (un_only_once >0){</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  un_only_once =0;</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  } </div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  n_c_min= an_x[i] ;</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  an_exact_ir_valley_locs[k]=i;</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (un_only_once ==0)</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  n_exact_ir_valley_locs_count ++ ;</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">if</span> (n_exact_ir_valley_locs_count <2 ){</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  *pn_spo2 = -999 ; <span class="comment">// do not use SPO2 since signal ratio is out of range</span></div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  *pch_spo2_valid = 0; </div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span>;</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// 4 pt MA</span></div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">for</span>(k=0; k< <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-<a class="code" href="algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae">MA4_SIZE</a>; k++){</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  an_x[k]=( an_x[k]+an_x[k+1]+ an_x[k+2]+ an_x[k+3])/(int32_t)4;</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  an_y[k]=( an_y[k]+an_y[k+1]+ an_y[k+2]+ an_y[k+3])/(int32_t)4;</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">//using an_exact_ir_valley_locs , find ir-red DC andir-red AC for SPO2 calibration ratio</span></div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">//finding AC/DC maximum of raw ir * red between two valley locations</span></div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  n_ratio_average =0; </div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  n_i_ratio_count =0; </div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">for</span>(k=0; k< 5; k++) an_ratio[k]=0;</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">for</span> (k=0; k< n_exact_ir_valley_locs_count; k++){</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">if</span> (an_exact_ir_valley_locs[k] > <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a> ){ </div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  *pn_spo2 = -999 ; <span class="comment">// do not use SPO2 since valley loc is out of range</span></div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  *pch_spo2_valid = 0; </div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">return</span>;</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">// find max between two valley locations </span></div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// and use ratio betwen AC compoent of Ir & Red and DC compoent of Ir & Red for SPO2 </span></div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">for</span> (k=0; k< n_exact_ir_valley_locs_count-1; k++){</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  n_y_dc_max= -16777216 ; </div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  n_x_dc_max= - 16777216; </div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span> (an_exact_ir_valley_locs[k+1]-an_exact_ir_valley_locs[k] >10){</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">for</span> (i=an_exact_ir_valley_locs[k]; i< an_exact_ir_valley_locs[k+1]; i++){</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">if</span> (an_x[i]> n_x_dc_max) {n_x_dc_max =an_x[i];n_x_dc_max_idx =i; }</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">if</span> (an_y[i]> n_y_dc_max) {n_y_dc_max =an_y[i];n_y_dc_max_idx=i;}</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  n_y_ac= (an_y[an_exact_ir_valley_locs[k+1]] - an_y[an_exact_ir_valley_locs[k] ] )*(n_y_dc_max_idx -an_exact_ir_valley_locs[k]); <span class="comment">//red</span></div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  n_y_ac= an_y[an_exact_ir_valley_locs[k]] + n_y_ac/ (an_exact_ir_valley_locs[k+1] - an_exact_ir_valley_locs[k]) ; </div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div> +<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  n_y_ac= an_y[n_y_dc_max_idx] - n_y_ac; <span class="comment">// subracting linear DC compoenents from raw </span></div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  n_x_ac= (an_x[an_exact_ir_valley_locs[k+1]] - an_x[an_exact_ir_valley_locs[k] ] )*(n_x_dc_max_idx -an_exact_ir_valley_locs[k]); <span class="comment">// ir</span></div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  n_x_ac= an_x[an_exact_ir_valley_locs[k]] + n_x_ac/ (an_exact_ir_valley_locs[k+1] - an_exact_ir_valley_locs[k]); </div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  n_x_ac= an_x[n_y_dc_max_idx] - n_x_ac; <span class="comment">// subracting linear DC compoenents from raw </span></div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  n_nume=( n_y_ac *n_x_dc_max)>>7 ; <span class="comment">//prepare X100 to preserve floating value</span></div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  n_denom= ( n_x_ac *n_y_dc_max)>>7;</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">if</span> (n_denom>0 && n_i_ratio_count <5 && n_nume != 0)</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  { </div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  an_ratio[n_i_ratio_count]= (n_nume*100)/n_denom ; <span class="comment">//formular is ( n_y_ac *n_x_dc_max) / ( n_x_ac *n_y_dc_max) ;</span></div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  n_i_ratio_count++;</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff" title="Sort array.">maxim_sort_ascend</a>(an_ratio, n_i_ratio_count);</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  n_middle_idx= n_i_ratio_count/2;</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">if</span> (n_middle_idx >1)</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  n_ratio_average =( an_ratio[n_middle_idx-1] +an_ratio[n_middle_idx])/2; <span class="comment">// use median</span></div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  n_ratio_average = an_ratio[n_middle_idx ];</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">if</span>( n_ratio_average>2 && n_ratio_average <184){</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  n_spo2_calc= <a class="code" href="algorithm_8h.html#adfeeb6b08271807492803acc50347108">uch_spo2_table</a>[n_ratio_average] ;</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  *pn_spo2 = n_spo2_calc ;</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  *pch_spo2_valid = 1;<span class="comment">// float_SPO2 = -45.060*n_ratio_average* n_ratio_average/10000 + 30.354 *n_ratio_average/100 + 94.845 ; // for comparison with table</span></div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">else</span>{</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  *pn_spo2 = -999 ; <span class="comment">// do not use SPO2 since signal ratio is out of range</span></div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  *pch_spo2_valid = 0; </div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> }</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div> +<div class="line"><a name="l00254"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a2a4e5ddbe0e04c48b166f2ff176667a9"> 254</a></span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9" title="Find peaks.">maxim_find_peaks</a>(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num)</div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> {</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf" title="Find peaks above n_min_height.">maxim_peaks_above_min_height</a>( pn_locs, pn_npks, pn_x, n_size, n_min_height );</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a" title="Remove peaks.">maxim_remove_close_peaks</a>( pn_locs, pn_npks, pn_x, n_min_distance );</div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  *pn_npks = <a class="code" href="algorithm_8h.html#abb702d8b501669a23aa0ab3b281b9384">min</a>( *pn_npks, n_max_num );</div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> }</div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div> +<div class="line"><a name="l00268"></a><span class="lineno"><a class="code" href="algorithm_8h.html#aab95338e44281c269f0b9b0f529741bf"> 268</a></span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf" title="Find peaks above n_min_height.">maxim_peaks_above_min_height</a>(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height)</div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> {</div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  int32_t i = 1, n_width;</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  *pn_npks = 0;</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">while</span> (i < n_size-1){</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">if</span> (pn_x[i] > n_min_height && pn_x[i] > pn_x[i-1]){ <span class="comment">// find left edge of potential peaks</span></div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  n_width = 1;</div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">while</span> (i+n_width < n_size && pn_x[i] == pn_x[i+n_width]) <span class="comment">// find flat peaks</span></div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  n_width++;</div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">if</span> (pn_x[i] > pn_x[i+n_width] && (*pn_npks) < 15 ){ <span class="comment">// find right edge of peaks</span></div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  pn_locs[(*pn_npks)++] = i; </div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="comment">// for flat peaks, peak location is left edge</span></div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  i += n_width+1;</div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  i += n_width;</div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  i++;</div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> }</div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div> +<div class="line"><a name="l00299"></a><span class="lineno"><a class="code" href="algorithm_8h.html#adc6be68be81530d67a25c1a9905bec3a"> 299</a></span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a" title="Remove peaks.">maxim_remove_close_peaks</a>(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance)</div> +<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> {</div> +<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div> +<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  int32_t i, j, n_old_npks, n_dist;</div> +<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div> +<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">/* Order peaks from large to small */</span></div> +<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060" title="Sort indices.">maxim_sort_indices_descend</a>( pn_x, pn_locs, *pn_npks );</div> +<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">for</span> ( i = -1; i < *pn_npks; i++ ){</div> +<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  n_old_npks = *pn_npks;</div> +<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  *pn_npks = i+1;</div> +<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">for</span> ( j = i+1; j < n_old_npks; j++ ){</div> +<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  n_dist = pn_locs[j] - ( i == -1 ? -1 : pn_locs[i] ); <span class="comment">// lag-zero peak of autocorr is at index -1</span></div> +<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">if</span> ( n_dist > n_min_distance || n_dist < -n_min_distance )</div> +<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  pn_locs[(*pn_npks)++] = pn_locs[j];</div> +<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div> +<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// Resort indices longo ascending order</span></div> +<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff" title="Sort array.">maxim_sort_ascend</a>( pn_locs, *pn_npks );</div> +<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> }</div> +<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div> +<div class="line"><a name="l00328"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a6cae46e51640b712afc2ebeefd2d51ff"> 328</a></span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff" title="Sort array.">maxim_sort_ascend</a>(int32_t *pn_x,int32_t n_size) </div> +<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div> +<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> {</div> +<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  int32_t i, j, n_temp;</div> +<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">for</span> (i = 1; i < n_size; i++) {</div> +<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  n_temp = pn_x[i];</div> +<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">for</span> (j = i; j > 0 && n_temp < pn_x[j-1]; j--)</div> +<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  pn_x[j] = pn_x[j-1];</div> +<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  pn_x[j] = n_temp;</div> +<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  }</div> +<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> }</div> +<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div> +<div class="line"><a name="l00346"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a44b6312f81810d4deb64071d12ab0060"> 346</a></span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060" title="Sort indices.">maxim_sort_indices_descend</a>(int32_t *pn_x, int32_t *pn_indx, int32_t n_size)</div> +<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> {</div> +<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  int32_t i, j, n_temp;</div> +<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">for</span> (i = 1; i < n_size; i++) {</div> +<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  n_temp = pn_indx[i];</div> +<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">for</span> (j = i; j > 0 && pn_x[n_temp] > pn_x[pn_indx[j-1]]; j--)</div> +<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  pn_indx[j] = pn_indx[j-1];</div> +<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  pn_indx[j] = n_temp;</div> +<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div> +<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> }</div> +<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_19b53f07f52837a342947cc20e6d978f.html">algorithm</a></li><li class="navelem"><a class="el" href="algorithm_8cpp.html">algorithm.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8h.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..1d4d38cdbc7799eb12941f6d3cdba692b4b0c852 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8h.html @@ -0,0 +1,694 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/algorithm/algorithm.h File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('algorithm_8h.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> | +<a href="#var-members">Variables</a> </div> + <div class="headertitle"> +<div class="title">algorithm.h File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include "mbed.h"</code><br/> +</div> +<p><a href="algorithm_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:a41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>   1</td></tr> +<tr class="separator:a41f9c5fb8b08eb5dc3edce4dcb37fee7"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a65e9886d74aaee76545e83dd09011727"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>   0</td></tr> +<tr class="separator:a65e9886d74aaee76545e83dd09011727"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a30588c5eca7c9cb6ebba02a0236f0119"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119">FS</a>   100</td></tr> +<tr class="separator:a30588c5eca7c9cb6ebba02a0236f0119"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a6b20d41d6252e9871430c242cb1a56e7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>   (<a class="el" href="algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119">FS</a>* 5)</td></tr> +<tr class="separator:a6b20d41d6252e9871430c242cb1a56e7"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aa03906cc2e2d27ef4f3fa4db4312b524"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#aa03906cc2e2d27ef4f3fa4db4312b524">HR_FIFO_SIZE</a>   7</td></tr> +<tr class="separator:aa03906cc2e2d27ef4f3fa4db4312b524"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af8c3cbac49a22022b17cc7b34d42cbae"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae">MA4_SIZE</a>   4</td></tr> +<tr class="separator:af8c3cbac49a22022b17cc7b34d42cbae"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a35be9e52c9110f5d91a4064e2f7b73c8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8">HAMMING_SIZE</a>   5</td></tr> +<tr class="separator:a35be9e52c9110f5d91a4064e2f7b73c8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abb702d8b501669a23aa0ab3b281b9384"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#abb702d8b501669a23aa0ab3b281b9384">min</a>(x, y)   ((x) < (y) ? (x) : (y))</td></tr> +<tr class="separator:abb702d8b501669a23aa0ab3b281b9384"><td class="memSeparator" colspan="2"> </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:a62050365673e666cd0d661a3664c26e6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a62050365673e666cd0d661a3664c26e6">maxim_heart_rate_and_oxygen_saturation</a> (uint32_t *pun_ir_buffer, int32_t <a class="el" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid, int32_t *pn_heart_rate, int8_t *pch_hr_valid)</td></tr> +<tr class="memdesc:a62050365673e666cd0d661a3664c26e6"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the heart rate and SpO2 level. <a href="#a62050365673e666cd0d661a3664c26e6"></a><br/></td></tr> +<tr class="separator:a62050365673e666cd0d661a3664c26e6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2a4e5ddbe0e04c48b166f2ff176667a9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a2a4e5ddbe0e04c48b166f2ff176667a9">maxim_find_peaks</a> (int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num)</td></tr> +<tr class="memdesc:a2a4e5ddbe0e04c48b166f2ff176667a9"><td class="mdescLeft"> </td><td class="mdescRight">Find peaks. <a href="#a2a4e5ddbe0e04c48b166f2ff176667a9"></a><br/></td></tr> +<tr class="separator:a2a4e5ddbe0e04c48b166f2ff176667a9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aab95338e44281c269f0b9b0f529741bf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#aab95338e44281c269f0b9b0f529741bf">maxim_peaks_above_min_height</a> (int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height)</td></tr> +<tr class="memdesc:aab95338e44281c269f0b9b0f529741bf"><td class="mdescLeft"> </td><td class="mdescRight">Find peaks above n_min_height. <a href="#aab95338e44281c269f0b9b0f529741bf"></a><br/></td></tr> +<tr class="separator:aab95338e44281c269f0b9b0f529741bf"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:adc6be68be81530d67a25c1a9905bec3a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#adc6be68be81530d67a25c1a9905bec3a">maxim_remove_close_peaks</a> (int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance)</td></tr> +<tr class="memdesc:adc6be68be81530d67a25c1a9905bec3a"><td class="mdescLeft"> </td><td class="mdescRight">Remove peaks. <a href="#adc6be68be81530d67a25c1a9905bec3a"></a><br/></td></tr> +<tr class="separator:adc6be68be81530d67a25c1a9905bec3a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a6cae46e51640b712afc2ebeefd2d51ff"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a6cae46e51640b712afc2ebeefd2d51ff">maxim_sort_ascend</a> (int32_t *pn_x, int32_t n_size)</td></tr> +<tr class="memdesc:a6cae46e51640b712afc2ebeefd2d51ff"><td class="mdescLeft"> </td><td class="mdescRight">Sort array. <a href="#a6cae46e51640b712afc2ebeefd2d51ff"></a><br/></td></tr> +<tr class="separator:a6cae46e51640b712afc2ebeefd2d51ff"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a44b6312f81810d4deb64071d12ab0060"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a44b6312f81810d4deb64071d12ab0060">maxim_sort_indices_descend</a> (int32_t *pn_x, int32_t *pn_indx, int32_t n_size)</td></tr> +<tr class="memdesc:a44b6312f81810d4deb64071d12ab0060"><td class="mdescLeft"> </td><td class="mdescRight">Sort indices. <a href="#a44b6312f81810d4deb64071d12ab0060"></a><br/></td></tr> +<tr class="separator:a44b6312f81810d4deb64071d12ab0060"><td class="memSeparator" colspan="2"> </td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> +Variables</h2></td></tr> +<tr class="memitem:a1c25ffb675bce0db6a32fbf6ad514929"><td class="memItemLeft" align="right" valign="top">const uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929">auw_hamm</a> [31] ={ 41, 276, 512, 276, 41 }</td></tr> +<tr class="separator:a1c25ffb675bce0db6a32fbf6ad514929"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:adfeeb6b08271807492803acc50347108"><td class="memItemLeft" align="right" valign="top">const uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html#adfeeb6b08271807492803acc50347108">uch_spo2_table</a> [184]</td></tr> +<tr class="separator:adfeeb6b08271807492803acc50347108"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><pre class="fragment">****************************************************** +</pre><p>Project: MAXREFDES117# Filename: <a class="el" href="algorithm_8h.html">algorithm.h</a> Description: This module is the heart rate/SpO2 calculation algorithm header file</p> +<p>Revision History: <br/> + 1-18-2016 Rev 01.00 SK Initial release. <br/> + <hr/> +<p>This code follows the following naming conventions:</p> +<p><br/> + char ch_pmod_value <br/> + char (array) s_pmod_s_string[16] <br/> + float f_pmod_value <br/> + int32_t n_pmod_value <br/> + int32_t (array) an_pmod_value[16] <br/> + int16_t w_pmod_value <br/> + int16_t (array) aw_pmod_value[16] <br/> + uint16_t uw_pmod_value <br/> + uint16_t (array) auw_pmod_value[16] <br/> + uint8_t uch_pmod_value <br/> + uint8_t (array) auch_pmod_buffer[16] <br/> + uint32_t un_pmod_value <br/> + int32_t * pn_pmod_value <hr/> + +<p>Definition in file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> +</div><h2 class="groupheader">Macro Definition Documentation</h2> +<a class="anchor" id="a6b20d41d6252e9871430c242cb1a56e7"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define BUFFER_SIZE   (<a class="el" href="algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119">FS</a>* 5)</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00070">70</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a65e9886d74aaee76545e83dd09011727"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define false   0</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00068">68</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a30588c5eca7c9cb6ebba02a0236f0119"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define FS   100</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00069">69</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a35be9e52c9110f5d91a4064e2f7b73c8"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define HAMMING_SIZE   5</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00073">73</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +<a class="anchor" id="aa03906cc2e2d27ef4f3fa4db4312b524"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define HR_FIFO_SIZE   7</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00071">71</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +<a class="anchor" id="af8c3cbac49a22022b17cc7b34d42cbae"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define MA4_SIZE   4</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00072">72</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +<a class="anchor" id="abb702d8b501669a23aa0ab3b281b9384"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define min</td> + <td>(</td> + <td class="paramtype"> </td> + <td class="paramname">x, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"> </td> + <td class="paramname">y </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td>   ((x) < (y) ? (x) : (y))</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00074">74</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a41f9c5fb8b08eb5dc3edce4dcb37fee7"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define true   1</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00067">67</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="a2a4e5ddbe0e04c48b166f2ff176667a9"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_find_peaks </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_locs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_npks</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_min_height</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_min_distance</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_max_num</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Find peaks. </p> +<dl class="section user"><dt>Details</dt><dd>Find at most MAX_NUM peaks above MIN_HEIGHT separated by at least MIN_DISTANCE</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00254">254</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a62050365673e666cd0d661a3664c26e6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_heart_rate_and_oxygen_saturation </td> + <td>(</td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_ir_buffer</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_ir_buffer_length</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_red_buffer</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_spo2</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int8_t * </td> + <td class="paramname"><em>pch_spo2_valid</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_heart_rate</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int8_t * </td> + <td class="paramname"><em>pch_hr_valid</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Calculate the heart rate and SpO2 level. </p> +<dl class="section user"><dt>Details</dt><dd>By detecting peaks of PPG cycle and corresponding AC/DC of red/infra-red signal, the ratio for the SPO2 is computed. Since this algorithm is aiming for Arm M0/M3. formaula for SPO2 did not achieve the accuracy due to register overflow. Thus, accurate SPO2 is precalculated and save longo uch_spo2_table[] per each ratio.</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">*pun_ir_buffer</td><td>- IR sensor data buffer </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">n_ir_buffer_length</td><td>- IR sensor data buffer length </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">*pun_red_buffer</td><td>- Red sensor data buffer </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pn_spo2</td><td>- Calculated SpO2 value </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pch_spo2_valid</td><td>- 1 if the calculated SpO2 value is valid </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pn_heart_rate</td><td>- Calculated heart rate value </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pch_hr_valid</td><td>- 1 if the calculated heart rate value is valid</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00062">62</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="aab95338e44281c269f0b9b0f529741bf"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_peaks_above_min_height </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_locs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_npks</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_size</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_min_height</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Find peaks above n_min_height. </p> +<dl class="section user"><dt>Details</dt><dd>Find all peaks above MIN_HEIGHT</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00268">268</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="adc6be68be81530d67a25c1a9905bec3a"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_remove_close_peaks </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_locs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_npks</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_min_distance</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Remove peaks. </p> +<dl class="section user"><dt>Details</dt><dd>Remove peaks separated by less than MIN_DISTANCE</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00299">299</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a6cae46e51640b712afc2ebeefd2d51ff"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_sort_ascend </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_size</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sort array. </p> +<dl class="section user"><dt>Details</dt><dd>Sort array in ascending order (insertion sort algorithm)</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00328">328</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a44b6312f81810d4deb64071d12ab0060"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void maxim_sort_indices_descend </td> + <td>(</td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t * </td> + <td class="paramname"><em>pn_indx</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int32_t </td> + <td class="paramname"><em>n_size</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sort indices. </p> +<dl class="section user"><dt>Details</dt><dd>Sort indices according to descending order (insertion sort algorithm)</dd></dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="algorithm_8cpp_source.html#l00346">346</a> of file <a class="el" href="algorithm_8cpp_source.html">algorithm.cpp</a>.</p> + +</div> +</div> +<h2 class="groupheader">Variable Documentation</h2> +<a class="anchor" id="a1c25ffb675bce0db6a32fbf6ad514929"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">const uint16_t auw_hamm[31] ={ 41, 276, 512, 276, 41 }</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00076">76</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +<a class="anchor" id="adfeeb6b08271807492803acc50347108"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">const uint8_t uch_spo2_table[184]</td> + </tr> + </table> +</div><div class="memdoc"> +<b>Initial value:</b><div class="fragment"><div class="line">={ 95, 95, 95, 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 99, 99, 99, 99, </div> +<div class="line"> 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, </div> +<div class="line"> 100, 100, 100, 100, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98, 98, 97, 97, </div> +<div class="line"> 97, 97, 96, 96, 96, 96, 95, 95, 95, 94, 94, 94, 93, 93, 93, 92, 92, 92, 91, 91, </div> +<div class="line"> 90, 90, 89, 89, 89, 88, 88, 87, 87, 86, 86, 85, 85, 84, 84, 83, 82, 82, 81, 81, </div> +<div class="line"> 80, 80, 79, 78, 78, 77, 76, 76, 75, 74, 74, 73, 72, 72, 71, 70, 69, 69, 68, 67, </div> +<div class="line"> 66, 66, 65, 64, 63, 62, 62, 61, 60, 59, 58, 57, 56, 56, 55, 54, 53, 52, 51, 50, </div> +<div class="line"> 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 31, 30, 29, </div> +<div class="line"> 28, 27, 26, 25, 23, 22, 21, 20, 19, 17, 16, 15, 14, 12, 11, 10, 9, 7, 6, 5, </div> +<div class="line"> 3, 2, 1 }</div> +</div><!-- fragment --> +<p>Definition at line <a class="el" href="algorithm_8h_source.html#l00078">78</a> of file <a class="el" href="algorithm_8h_source.html">algorithm.h</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_19b53f07f52837a342947cc20e6d978f.html">algorithm</a></li><li class="navelem"><a class="el" href="algorithm_8h.html">algorithm.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8h.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..44c96bb301d40fce98ffecdd9fd538bb0c8ef44a --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8h.js @@ -0,0 +1,22 @@ +var algorithm_8h = +[ + [ "BUFFER_SIZE", "algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7", null ], + [ "false", "algorithm_8h.html#a65e9886d74aaee76545e83dd09011727", null ], + [ "FS", "algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119", null ], + [ "HAMMING_SIZE", "algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8", null ], + [ "HR_FIFO_SIZE", "algorithm_8h.html#aa03906cc2e2d27ef4f3fa4db4312b524", null ], + [ "MA4_SIZE", "algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae", null ], + [ "min", "algorithm_8h.html#abb702d8b501669a23aa0ab3b281b9384", null ], + [ "true", "algorithm_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7", null ], + [ "maxim_find_peaks", "algorithm_8h.html#a2a4e5ddbe0e04c48b166f2ff176667a9", null ], + [ "maxim_heart_rate_and_oxygen_saturation", "algorithm_8h.html#a62050365673e666cd0d661a3664c26e6", null ], + [ "maxim_peaks_above_min_height", "algorithm_8h.html#aab95338e44281c269f0b9b0f529741bf", null ], + [ "maxim_remove_close_peaks", "algorithm_8h.html#adc6be68be81530d67a25c1a9905bec3a", null ], + [ "maxim_sort_ascend", "algorithm_8h.html#a6cae46e51640b712afc2ebeefd2d51ff", null ], + [ "maxim_sort_indices_descend", "algorithm_8h.html#a44b6312f81810d4deb64071d12ab0060", null ], + [ "an_dx", "algorithm_8h.html#aea73b3b76ec2f4743e97452ee93c9cd2", null ], + [ "an_x", "algorithm_8h.html#a7d4e0b0915b58092f3b4bb2fbd252f3f", null ], + [ "an_y", "algorithm_8h.html#a72c76142c07186ae6d7200ec3c9a4f76", null ], + [ "auw_hamm", "algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929", null ], + [ "uch_spo2_table", "algorithm_8h.html#adfeeb6b08271807492803acc50347108", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8h_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..1d98e0c3ac7db64ec59940aff17b0d929063fab4 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/algorithm_8h_source.html @@ -0,0 +1,191 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/algorithm/algorithm.h Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('algorithm_8h_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">algorithm.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="algorithm_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">/*******************************************************************************</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">* Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">*</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">* Permission is hereby granted, free of charge, to any person obtaining a</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">* copy of this software and associated documentation files (the "Software"),</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">* to deal in the Software without restriction, including without limitation</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">* the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">* and/or sell copies of the Software, and to permit persons to whom the</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">* Software is furnished to do so, subject to the following conditions:</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">*</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">* The above copyright notice and this permission notice shall be included</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">* in all copies or substantial portions of the Software.</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">*</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">* OTHER DEALINGS IN THE SOFTWARE.</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">*</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">* Except as contained in this notice, the name of Maxim Integrated</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">* Products, Inc. shall not be used except as stated in the Maxim Integrated</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">* Products, Inc. Branding Policy.</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">*</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">* The mere transfer of this software does not imply any licenses</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">* of trade secrets, proprietary technology, copyrights, patents,</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">* trademarks, maskwork rights, or any other form of intellectual</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">* property whatsoever. Maxim Integrated Products, Inc. retains all</span></div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">* ownership rights.</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">*******************************************************************************</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">*/</span></div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#ifndef ALGORITHM_H_</span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span><span class="preprocessor">#define ALGORITHM_H_</span></div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include "mbed.h"</span></div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div> +<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7"> 67</a></span> <span class="preprocessor">#define true 1</span></div> +<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a65e9886d74aaee76545e83dd09011727"> 68</a></span> <span class="preprocessor"></span><span class="preprocessor">#define false 0</span></div> +<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119"> 69</a></span> <span class="preprocessor"></span><span class="preprocessor">#define FS 100</span></div> +<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7"> 70</a></span> <span class="preprocessor"></span><span class="preprocessor">#define BUFFER_SIZE (FS* 5) </span></div> +<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="algorithm_8h.html#aa03906cc2e2d27ef4f3fa4db4312b524"> 71</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HR_FIFO_SIZE 7</span></div> +<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae"> 72</a></span> <span class="preprocessor"></span><span class="preprocessor">#define MA4_SIZE 4 // DO NOT CHANGE</span></div> +<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8"> 73</a></span> <span class="preprocessor"></span><span class="preprocessor">#define HAMMING_SIZE 5// DO NOT CHANGE</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="algorithm_8h.html#abb702d8b501669a23aa0ab3b281b9384"> 74</a></span> <span class="preprocessor"></span><span class="preprocessor">#define min(x,y) ((x) < (y) ? (x) : (y))</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929"> 76</a></span> <span class="keyword">const</span> uint16_t <a class="code" href="algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929">auw_hamm</a>[31]={ 41, 276, 512, 276, 41 }; <span class="comment">//Hamm= long16(512* hamming(5)');</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">//uch_spo2_table is computed as -45.060*ratioAverage* ratioAverage + 30.354 *ratioAverage + 94.845 ;</span></div> +<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="algorithm_8h.html#adfeeb6b08271807492803acc50347108"> 78</a></span> <span class="keyword">const</span> uint8_t <a class="code" href="algorithm_8h.html#adfeeb6b08271807492803acc50347108">uch_spo2_table</a>[184]={ 95, 95, 95, 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 99, 99, 99, 99, </div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  100, 100, 100, 100, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98, 98, 97, 97, </div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  97, 97, 96, 96, 96, 96, 95, 95, 95, 94, 94, 94, 93, 93, 93, 92, 92, 92, 91, 91, </div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  90, 90, 89, 89, 89, 88, 88, 87, 87, 86, 86, 85, 85, 84, 84, 83, 82, 82, 81, 81, </div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  80, 80, 79, 78, 78, 77, 76, 76, 75, 74, 74, 73, 72, 72, 71, 70, 69, 69, 68, 67, </div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  66, 66, 65, 64, 63, 62, 62, 61, 60, 59, 58, 57, 56, 56, 55, 54, 53, 52, 51, 50, </div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 31, 30, 29, </div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  28, 27, 26, 25, 23, 22, 21, 20, 19, 17, 16, 15, 14, 12, 11, 10, 9, 7, 6, 5, </div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  3, 2, 1 } ;</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">static</span> int32_t an_dx[ <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>-<a class="code" href="algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae">MA4_SIZE</a>]; <span class="comment">// delta</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">static</span> int32_t an_x[ <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>]; <span class="comment">//ir</span></div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">static</span> int32_t an_y[ <a class="code" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">BUFFER_SIZE</a>]; <span class="comment">//red</span></div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6" title="Calculate the heart rate and SpO2 level.">maxim_heart_rate_and_oxygen_saturation</a>(uint32_t *pun_ir_buffer , int32_t <a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>, uint32_t *pun_red_buffer , int32_t *pn_spo2, int8_t *pch_spo2_valid , int32_t *pn_heart_rate , int8_t *pch_hr_valid);</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9" title="Find peaks.">maxim_find_peaks</a>( int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num );</div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf" title="Find peaks above n_min_height.">maxim_peaks_above_min_height</a>( int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height );</div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a" title="Remove peaks.">maxim_remove_close_peaks</a>( int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance );</div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff" title="Sort array.">maxim_sort_ascend</a>( int32_t *pn_x, int32_t n_size );</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">void</span> <a class="code" href="algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060" title="Sort indices.">maxim_sort_indices_descend</a>( int32_t *pn_x, int32_t *pn_indx, int32_t n_size);</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#endif </span><span class="comment">/* ALGORITHM_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_19b53f07f52837a342947cc20e6d978f.html">algorithm</a></li><li class="navelem"><a class="el" href="algorithm_8h.html">algorithm.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/annotated.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/annotated.html new file mode 100644 index 0000000000000000000000000000000000000000..8c8bbce7fdf9b7a9d92137af810196141670d276 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/annotated.html @@ -0,0 +1,125 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Data Structures</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="functions.html"><span>Data Fields</span></a></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('annotated.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">Data Structures</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory"> +<table class="directory"> +<tr id="row_0_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_adafruit___neo_pixel.html" target="_self">Adafruit_NeoPixel</a></td><td class="desc"></td></tr> +</table> +</div><!-- directory --> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/annotated.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/annotated.js new file mode 100644 index 0000000000000000000000000000000000000000..a2cf5a0fd0e560127393a5cd4b5b439280b9b2bc --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/annotated.js @@ -0,0 +1,4 @@ +var annotated = +[ + [ "Adafruit_NeoPixel", "class_adafruit___neo_pixel.html", "class_adafruit___neo_pixel" ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/bc_s.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..6da883dbb2fc7d439acc68a313049a8ee8cb6461 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/bc_s.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/bdwn.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..4aa5b3ecd3a1548be883d8a5e8c53588936578bf Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/bdwn.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/class_adafruit___neo_pixel.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/class_adafruit___neo_pixel.html new file mode 100644 index 0000000000000000000000000000000000000000..2e17a0010e0c018693b5d685d64e09a096b2a566 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/class_adafruit___neo_pixel.html @@ -0,0 +1,668 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Adafruit_NeoPixel Class Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="functions.html"><span>Data Fields</span></a></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('class_adafruit___neo_pixel.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="#pub-methods">Public Member Functions</a> | +<a href="#pub-static-methods">Static Public Member Functions</a> </div> + <div class="headertitle"> +<div class="title">Adafruit_NeoPixel Class Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p><code>#include <<a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>></code></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> +Public Member Functions</h2></td></tr> +<tr class="memitem:ac314debe6917c8c9b320b785139c6e58"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#ac314debe6917c8c9b320b785139c6e58">Adafruit_NeoPixel</a> (uint16_t n, uint8_t p=6, <a class="el" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a> t=<a class="el" href="_adafruit___neo_pixel_8h.html#a95d0d6b0a1f52bc72d9dcea2b3a48e3f">NEO_GRB</a>+<a class="el" href="_adafruit___neo_pixel_8h.html#a475fef7028a743310aa4311a97899d5d">NEO_KHZ800</a>)</td></tr> +<tr class="separator:ac314debe6917c8c9b320b785139c6e58"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab1ac0c48cf3fd9185e40308c37f1d320"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#ab1ac0c48cf3fd9185e40308c37f1d320">Adafruit_NeoPixel</a> (void)</td></tr> +<tr class="separator:ab1ac0c48cf3fd9185e40308c37f1d320"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a16d970aa16f9d0128800346f4ca567db"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a16d970aa16f9d0128800346f4ca567db">~Adafruit_NeoPixel</a> ()</td></tr> +<tr class="separator:a16d970aa16f9d0128800346f4ca567db"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aad78931e44ce43c9b9c460dba7c9bbb7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#aad78931e44ce43c9b9c460dba7c9bbb7">begin</a> (void)</td></tr> +<tr class="separator:aad78931e44ce43c9b9c460dba7c9bbb7"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae335a7c214036a6c1734969f2bc3f4f7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7">show</a> (void)</td></tr> +<tr class="separator:ae335a7c214036a6c1734969f2bc3f4f7"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a345b7a6f550461926ed5187b2df42d6b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b">setPin</a> (uint8_t p)</td></tr> +<tr class="separator:a345b7a6f550461926ed5187b2df42d6b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0ec91c90f337e806cd98956514257cf1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1">setPixelColor</a> (uint16_t n, uint8_t r, uint8_t g, uint8_t b)</td></tr> +<tr class="separator:a0ec91c90f337e806cd98956514257cf1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a35eda2252e3ed976a11d35cb8f4b2e41"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a35eda2252e3ed976a11d35cb8f4b2e41">setPixelColor</a> (uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w)</td></tr> +<tr class="separator:a35eda2252e3ed976a11d35cb8f4b2e41"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abbf243cce591dc37be507cf173485bc8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#abbf243cce591dc37be507cf173485bc8">setPixelColor</a> (uint16_t n, uint32_t c)</td></tr> +<tr class="separator:abbf243cce591dc37be507cf173485bc8"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:afa1740af1d8eec971eada06d53901c53"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#afa1740af1d8eec971eada06d53901c53">setBrightness</a> (uint8_t)</td></tr> +<tr class="separator:afa1740af1d8eec971eada06d53901c53"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr> +<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a05542d574f1a9a73f9e3547990321944"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944">updateLength</a> (uint16_t n)</td></tr> +<tr class="separator:a05542d574f1a9a73f9e3547990321944"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a65e59263e0f5a04c7202d4385d3a539b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a65e59263e0f5a04c7202d4385d3a539b">updateType</a> (<a class="el" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a> t)</td></tr> +<tr class="separator:a65e59263e0f5a04c7202d4385d3a539b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a18bc91d2bad52cf603814d4df6f33067"><td class="memItemLeft" align="right" valign="top">uint8_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a18bc91d2bad52cf603814d4df6f33067">getPixels</a> (void) const </td></tr> +<tr class="separator:a18bc91d2bad52cf603814d4df6f33067"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a553bf1a0513094c73cb54a235f74ac7f"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a553bf1a0513094c73cb54a235f74ac7f">getBrightness</a> (void) const </td></tr> +<tr class="separator:a553bf1a0513094c73cb54a235f74ac7f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac893a5c07c41604539022af84665c04b"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#ac893a5c07c41604539022af84665c04b">numPixels</a> (void) const </td></tr> +<tr class="separator:ac893a5c07c41604539022af84665c04b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9846704aaabd4e102beba5a5484d5738"><td class="memItemLeft" align="right" valign="top">static uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a9846704aaabd4e102beba5a5484d5738">Color</a> (uint8_t r, uint8_t g, uint8_t b, uint8_t w)</td></tr> +<tr class="separator:a9846704aaabd4e102beba5a5484d5738"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a10a836ddc4ebd3e26b1e71a5875764fa"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#a10a836ddc4ebd3e26b1e71a5875764fa">getPixelColor</a> (uint16_t n) const </td></tr> +<tr class="separator:a10a836ddc4ebd3e26b1e71a5875764fa"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad38ce8112667b70ad7c411a98892af0e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#ad38ce8112667b70ad7c411a98892af0e">canShow</a> (void)</td></tr> +<tr class="separator:ad38ce8112667b70ad7c411a98892af0e"><td class="memSeparator" colspan="2"> </td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a> +Static Public Member Functions</h2></td></tr> +<tr class="memitem:ae3e6c2fabbee89d19487424acd8d9fec"><td class="memItemLeft" align="right" valign="top">static uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec">Color</a> (uint8_t r, uint8_t g, uint8_t b)</td></tr> +<tr class="separator:ae3e6c2fabbee89d19487424acd8d9fec"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"> +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00116">116</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> +</div><h2 class="groupheader">Constructor & Destructor Documentation</h2> +<a class="anchor" id="ac314debe6917c8c9b320b785139c6e58"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="class_adafruit___neo_pixel.html">Adafruit_NeoPixel</a> </td> + <td>(</td> + <td class="paramtype">uint16_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>p</em> = <code>6</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a> </td> + <td class="paramname"><em>t</em> = <code><a class="el" href="_adafruit___neo_pixel_8h.html#a95d0d6b0a1f52bc72d9dcea2b3a48e3f">NEO_GRB</a> + <a class="el" href="_adafruit___neo_pixel_8h.html#a475fef7028a743310aa4311a97899d5d">NEO_KHZ800</a></code> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l00038">38</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="ab1ac0c48cf3fd9185e40308c37f1d320"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="class_adafruit___neo_pixel.html">Adafruit_NeoPixel</a> </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l00051">51</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a16d970aa16f9d0128800346f4ca567db"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">~<a class="el" href="class_adafruit___neo_pixel.html">Adafruit_NeoPixel</a> </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l00060">60</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<h2 class="groupheader">Member Function Documentation</h2> +<a class="anchor" id="aad78931e44ce43c9b9c460dba7c9bbb7"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void begin </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l00065">65</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="ad38ce8112667b70ad7c411a98892af0e"></a> +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">bool canShow </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">inline</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8h_source.html#l00147">147</a> of file <a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void clear </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01198">1198</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="ae3e6c2fabbee89d19487424acd8d9fec"></a> +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">uint32_t Color </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>r</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>g</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01096">1096</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a9846704aaabd4e102beba5a5484d5738"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint32_t Color </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>r</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>g</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>w</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01102">1102</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a553bf1a0513094c73cb54a235f74ac7f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t getBrightness </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td> const</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01194">1194</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a10a836ddc4ebd3e26b1e71a5875764fa"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint32_t getPixelColor </td> + <td>(</td> + <td class="paramtype">uint16_t </td> + <td class="paramname"><em>n</em></td><td>)</td> + <td> const</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01107">1107</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a18bc91d2bad52cf603814d4df6f33067"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t * getPixels </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td> const</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01148">1148</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="ac893a5c07c41604539022af84665c04b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint16_t numPixels </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td> const</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01152">1152</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="afa1740af1d8eec971eada06d53901c53"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void setBrightness </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01168">1168</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a345b7a6f550461926ed5187b2df42d6b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void setPin </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>p</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01031">1031</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a0ec91c90f337e806cd98956514257cf1"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void setPixelColor </td> + <td>(</td> + <td class="paramtype">uint16_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>r</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>g</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01047">1047</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a35eda2252e3ed976a11d35cb8f4b2e41"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void setPixelColor </td> + <td>(</td> + <td class="paramtype">uint16_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>r</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>g</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>b</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>w</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +</div> +</div> +<a class="anchor" id="abbf243cce591dc37be507cf173485bc8"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void setPixelColor </td> + <td>(</td> + <td class="paramtype">uint16_t </td> + <td class="paramname"><em>n</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>c</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l01070">1070</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="ae335a7c214036a6c1734969f2bc3f4f7"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void show </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l00111">111</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a05542d574f1a9a73f9e3547990321944"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void updateLength </td> + <td>(</td> + <td class="paramtype">uint16_t </td> + <td class="paramname"><em>n</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l00073">73</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a65e59263e0f5a04c7202d4385d3a539b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void updateType </td> + <td>(</td> + <td class="paramtype"><a class="el" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">neoPixelType</a> </td> + <td class="paramname"><em>t</em></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="_adafruit___neo_pixel_8cpp_source.html#l00086">86</a> of file <a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a>.</p> + +</div> +</div> +<hr/>The documentation for this class was generated from the following files:<ul> +<li>RD117_ARDUINO/<a class="el" href="_adafruit___neo_pixel_8h_source.html">Adafruit_NeoPixel.h</a></li> +<li>RD117_ARDUINO/<a class="el" href="_adafruit___neo_pixel_8cpp_source.html">Adafruit_NeoPixel.cpp</a></li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="class_adafruit___neo_pixel.html">Adafruit_NeoPixel</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/class_adafruit___neo_pixel.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/class_adafruit___neo_pixel.js new file mode 100644 index 0000000000000000000000000000000000000000..521850e40e2eb3d941a8631d464269c12fca1b49 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/class_adafruit___neo_pixel.js @@ -0,0 +1,23 @@ +var class_adafruit___neo_pixel = +[ + [ "Adafruit_NeoPixel", "class_adafruit___neo_pixel.html#ac314debe6917c8c9b320b785139c6e58", null ], + [ "Adafruit_NeoPixel", "class_adafruit___neo_pixel.html#ab1ac0c48cf3fd9185e40308c37f1d320", null ], + [ "~Adafruit_NeoPixel", "class_adafruit___neo_pixel.html#a16d970aa16f9d0128800346f4ca567db", null ], + [ "begin", "class_adafruit___neo_pixel.html#aad78931e44ce43c9b9c460dba7c9bbb7", null ], + [ "canShow", "class_adafruit___neo_pixel.html#ad38ce8112667b70ad7c411a98892af0e", null ], + [ "clear", "class_adafruit___neo_pixel.html#ac8bb3912a3ce86b15842e79d0b421204", null ], + [ "Color", "class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec", null ], + [ "Color", "class_adafruit___neo_pixel.html#a9846704aaabd4e102beba5a5484d5738", null ], + [ "getBrightness", "class_adafruit___neo_pixel.html#a553bf1a0513094c73cb54a235f74ac7f", null ], + [ "getPixelColor", "class_adafruit___neo_pixel.html#a10a836ddc4ebd3e26b1e71a5875764fa", null ], + [ "getPixels", "class_adafruit___neo_pixel.html#a18bc91d2bad52cf603814d4df6f33067", null ], + [ "numPixels", "class_adafruit___neo_pixel.html#ac893a5c07c41604539022af84665c04b", null ], + [ "setBrightness", "class_adafruit___neo_pixel.html#afa1740af1d8eec971eada06d53901c53", null ], + [ "setPin", "class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b", null ], + [ "setPixelColor", "class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1", null ], + [ "setPixelColor", "class_adafruit___neo_pixel.html#a35eda2252e3ed976a11d35cb8f4b2e41", null ], + [ "setPixelColor", "class_adafruit___neo_pixel.html#abbf243cce591dc37be507cf173485bc8", null ], + [ "show", "class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7", null ], + [ "updateLength", "class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944", null ], + [ "updateType", "class_adafruit___neo_pixel.html#a65e59263e0f5a04c7202d4385d3a539b", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/classes.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/classes.html new file mode 100644 index 0000000000000000000000000000000000000000..4ccf6040c0f0a52d29d1d44cc4e318f123879de0 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/classes.html @@ -0,0 +1,129 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Data Structure Index</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="classes.html"><span>Data Structure Index</span></a></li> + <li><a href="functions.html"><span>Data Fields</span></a></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('classes.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">Data Structure Index</div> </div> +</div><!--header--> +<div class="contents"> +<div class="qindex"><a class="qindex" href="#letter_A">A</a></div> +<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0"> +<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  A  </div></td></tr></table> +</td><td></td></tr> +<tr><td></td></tr> +<tr><td valign="top"><a class="el" href="class_adafruit___neo_pixel.html">Adafruit_NeoPixel</a>   </td><td></td></tr> +<tr><td></td><td></td></tr> +</table> +<div class="qindex"><a class="qindex" href="#letter_A">A</a></div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/closed.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..ea7139c41d9c1c05f5a466f99cec8d705066ba4b Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/closed.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_1496e1f9c0637ae9073f7370a2521bf1.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_1496e1f9c0637ae9073f7370a2521bf1.html new file mode 100644 index 0000000000000000000000000000000000000000..e591b400c942f971c67fd8e38751ead762f718ba --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_1496e1f9c0637ae9073f7370a2521bf1.html @@ -0,0 +1,134 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO Directory Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</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('dir_1496e1f9c0637ae9073f7370a2521bf1.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">RD117_ARDUINO Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:_adafruit___neo_pixel_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8cpp.html">Adafruit_NeoPixel.cpp</a> <a href="_adafruit___neo_pixel_8cpp_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:_adafruit___neo_pixel_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="_adafruit___neo_pixel_8h.html">Adafruit_NeoPixel.h</a> <a href="_adafruit___neo_pixel_8h_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:algorithm_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8cpp.html">algorithm.cpp</a> <a href="algorithm_8cpp_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:algorithm_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html">algorithm.h</a> <a href="algorithm_8h_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:max30102_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8cpp.html">max30102.cpp</a> <a href="max30102_8cpp_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:max30102_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html">max30102.h</a> <a href="max30102_8h_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:_r_d117___a_r_d_u_i_n_o_8ino"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="_r_d117___a_r_d_u_i_n_o_8ino.html">RD117_ARDUINO.ino</a> <a href="_r_d117___a_r_d_u_i_n_o_8ino_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:_soft_i2_c_master_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="_soft_i2_c_master_8h.html">SoftI2CMaster.h</a> <a href="_soft_i2_c_master_8h_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_1496e1f9c0637ae9073f7370a2521bf1.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_1496e1f9c0637ae9073f7370a2521bf1.js new file mode 100644 index 0000000000000000000000000000000000000000..ea015b1af4ddd4f8d5cbc8438972641e97c18237 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_1496e1f9c0637ae9073f7370a2521bf1.js @@ -0,0 +1,11 @@ +var dir_1496e1f9c0637ae9073f7370a2521bf1 = +[ + [ "Adafruit_NeoPixel.cpp", "_adafruit___neo_pixel_8cpp.html", null ], + [ "Adafruit_NeoPixel.h", "_adafruit___neo_pixel_8h.html", "_adafruit___neo_pixel_8h" ], + [ "algorithm.cpp", "algorithm_8cpp.html", "algorithm_8cpp" ], + [ "algorithm.h", "algorithm_8h.html", "algorithm_8h" ], + [ "max30102.cpp", "max30102_8cpp.html", "max30102_8cpp" ], + [ "max30102.h", "max30102_8h.html", "max30102_8h" ], + [ "RD117_ARDUINO.ino", "_r_d117___a_r_d_u_i_n_o_8ino.html", "_r_d117___a_r_d_u_i_n_o_8ino" ], + [ "SoftI2CMaster.h", "_soft_i2_c_master_8h.html", "_soft_i2_c_master_8h" ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_19b53f07f52837a342947cc20e6d978f.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_19b53f07f52837a342947cc20e6d978f.html new file mode 100644 index 0000000000000000000000000000000000000000..013cb4fa89f878705e6c91fefd4ec28598b3a79f --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_19b53f07f52837a342947cc20e6d978f.html @@ -0,0 +1,121 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/algorithm Directory Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="files.html"><span>Files</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('dir_19b53f07f52837a342947cc20e6d978f.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">algorithm Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:algorithm_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8cpp.html">algorithm.cpp</a> <a href="algorithm_8cpp_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:algorithm_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="algorithm_8h.html">algorithm.h</a> <a href="algorithm_8h_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_19b53f07f52837a342947cc20e6d978f.html">algorithm</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_19b53f07f52837a342947cc20e6d978f.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_19b53f07f52837a342947cc20e6d978f.js new file mode 100644 index 0000000000000000000000000000000000000000..1f23c8ffa1bafd9c1d45929edcc689a3345f0922 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_19b53f07f52837a342947cc20e6d978f.js @@ -0,0 +1,5 @@ +var dir_19b53f07f52837a342947cc20e6d978f = +[ + [ "algorithm.cpp", "algorithm_8cpp.html", "algorithm_8cpp" ], + [ "algorithm.h", "algorithm_8h.html", "algorithm_8h" ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_70c5cd4c8bba287fe799894cc0903ca4.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_70c5cd4c8bba287fe799894cc0903ca4.html new file mode 100644 index 0000000000000000000000000000000000000000..d05f997d7e97df18abae0eb17a6821117cbffbf1 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_70c5cd4c8bba287fe799894cc0903ca4.html @@ -0,0 +1,126 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED Directory Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="files.html"><span>Files</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('dir_70c5cd4c8bba287fe799894cc0903ca4.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">RD117_MBED Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a> +Directories</h2></td></tr> +<tr class="memitem:dir_19b53f07f52837a342947cc20e6d978f"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_19b53f07f52837a342947cc20e6d978f.html">algorithm</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:dir_d4a9a7556cca61907ce453116086a23a"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_d4a9a7556cca61907ce453116086a23a.html">MAX30102</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:main_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html">main.cpp</a> <a href="main_8cpp_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_70c5cd4c8bba287fe799894cc0903ca4.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_70c5cd4c8bba287fe799894cc0903ca4.js new file mode 100644 index 0000000000000000000000000000000000000000..893afb2a36f77b0755116b71b9f8098efec44af7 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_70c5cd4c8bba287fe799894cc0903ca4.js @@ -0,0 +1,6 @@ +var dir_70c5cd4c8bba287fe799894cc0903ca4 = +[ + [ "algorithm", "dir_19b53f07f52837a342947cc20e6d978f.html", "dir_19b53f07f52837a342947cc20e6d978f" ], + [ "MAX30102", "dir_d4a9a7556cca61907ce453116086a23a.html", "dir_d4a9a7556cca61907ce453116086a23a" ], + [ "main.cpp", "main_8cpp.html", "main_8cpp" ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_d4a9a7556cca61907ce453116086a23a.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_d4a9a7556cca61907ce453116086a23a.html new file mode 100644 index 0000000000000000000000000000000000000000..ef5be600162397b8a047987b8d1a48ff2c6637c6 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_d4a9a7556cca61907ce453116086a23a.html @@ -0,0 +1,121 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/MAX30102 Directory Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="files.html"><span>Files</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('dir_d4a9a7556cca61907ce453116086a23a.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">MAX30102 Directory Reference</div> </div> +</div><!--header--> +<div class="contents"> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a> +Files</h2></td></tr> +<tr class="memitem:_m_a_x30102_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8cpp.html">MAX30102.cpp</a> <a href="_m_a_x30102_8cpp_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:_m_a_x30102_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="_m_a_x30102_8h.html">MAX30102.h</a> <a href="_m_a_x30102_8h_source.html">[code]</a></td></tr> +<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> +</table> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="dir_d4a9a7556cca61907ce453116086a23a.html">MAX30102</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_d4a9a7556cca61907ce453116086a23a.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_d4a9a7556cca61907ce453116086a23a.js new file mode 100644 index 0000000000000000000000000000000000000000..4c09eec2b5d6b416212c5c58ae6767eea9e3e74c --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dir_d4a9a7556cca61907ce453116086a23a.js @@ -0,0 +1,5 @@ +var dir_d4a9a7556cca61907ce453116086a23a = +[ + [ "MAX30102.cpp", "_m_a_x30102_8cpp.html", "_m_a_x30102_8cpp" ], + [ "MAX30102.h", "_m_a_x30102_8h.html", "_m_a_x30102_8h" ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/doxygen.css b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/doxygen.css new file mode 100644 index 0000000000000000000000000000000000000000..2df37ac8dee7a2bdc7aca490e5b7dff5ef6c0d40 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/doxygen.css @@ -0,0 +1,1172 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font: 400 14px/19px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #94D0CD; + color: #3D8C88; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EEF7F7; + border: 1px solid #ADDBD9; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #449D99; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4FB2AD; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #A7D8D6; + color: #ffffff; + border: 1px double #93CFCC; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px; + margin: 4px; + background-color: #FCFDFD; + border: 1px solid #CBE8E7; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EEF7F7; + font-weight: bold; + border: 1px solid #CBE8E7; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EEF7F7; + border: 1px solid #CBE8E7; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #F0F8F8; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F8FCFB; + border-left: 2px solid #A7D8D6; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #ADDBD9; +} + +th.dirtab { + background: #EEF7F7; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #56B5B0; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FAFCFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4FB2AD; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4FB2AD; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EEF7F7; + border: 1px solid #ADDBD9; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #B2DDDB; + border-left: 1px solid #B2DDDB; + border-right: 1px solid #B2DDDB; + padding: 6px 0px 6px 0px; + color: #2C6663; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E6F4F3; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #B2DDDB; + border-left: 1px solid #B2DDDB; + border-right: 1px solid #B2DDDB; + padding: 6px 10px 2px 10px; + background-color: #FCFDFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #80C7C4; + border-top:1px solid #63BBB6; + border-left:1px solid #63BBB6; + border-right:1px solid #CBE8E7; + border-bottom:1px solid #CBE8E7; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F8FCFB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #449D99; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #32736F; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #347975; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #3F918C; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #B2DDDB; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #B2DDDB; + border-bottom: 1px solid #B2DDDB; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #B2DDDB; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E6F4F3; + font-size: 90%; + color: #2C6663; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #B2DDDB; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#96D1CE; + border:solid 1px #C9E7E6; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#3E8E8A; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #306E6B; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#77C3BF; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#3E8E8A; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #FAFCFC; + margin: 0px; + border-bottom: 1px solid #CBE8E7; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #63BBB6; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #9CD3D1; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#3A8683; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F6FBFA; + border: 1px solid #DDF0EF; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4FB2AD; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/doxygen.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..b47584814dd4fd0b9b4978d1e74c3c0ae8dceb40 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/doxygen.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dynsections.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dynsections.js new file mode 100644 index 0000000000000000000000000000000000000000..116542f181ad2a1c09bfbdf59d8a50d58cf9c7d6 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/dynsections.js @@ -0,0 +1,78 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l<level+1) { + i.attr('src','ftv2folderopen.png'); + a.attr('src','ftv2mnode.png'); + $(this).show(); + } else if (l==level+1) { + i.attr('src','ftv2folderclosed.png'); + a.attr('src','ftv2pnode.png'); + $(this).show(); + } else { + $(this).hide(); + } + }); + updateStripes(); +} +function toggleFolder(id) +{ + var n = $('[id^=row_'+id+']'); + var i = $('[id^=img_'+id+']'); + var a = $('[id^=arr_'+id+']'); + var c = n.slice(1); + if (c.filter(':first').is(':visible')===true) { + i.attr('src','ftv2folderclosed.png'); + a.attr('src','ftv2pnode.png'); + c.hide(); + } else { + i.attr('src','ftv2folderopen.png'); + a.attr('src','ftv2mnode.png'); + c.show(); + } + updateStripes(); +} + +function toggleInherit(id) +{ + var rows = $('tr.inherit.'+id); + var img = $('tr.inherit_header.'+id+' img'); + var src = $(img).attr('src'); + if (rows.filter(':first').is(':visible')===true) { + rows.css('display','none'); + $(img).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + rows.css('display','table-row'); // using show() causes jump in firefox + $(img).attr('src',src.substring(0,src.length-10)+'open.png'); + } +} + diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/files.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/files.html new file mode 100644 index 0000000000000000000000000000000000000000..ddca97aee9d27e37dcf829c16b2859d4445f0e2f --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/files.html @@ -0,0 +1,130 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: File List</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li class="current"><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('files.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">File List</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory"> +<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory"> +<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('0_')"/><img id="img_0_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_')"/><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html" target="_self">RD117_MBED</a></td><td class="desc"></td></tr> +<tr id="row_0_0_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img id="arr_0_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_0_')"/><img id="img_0_0_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_0_')"/><a class="el" href="dir_19b53f07f52837a342947cc20e6d978f.html" target="_self">algorithm</a></td><td class="desc"></td></tr> +<tr id="row_0_0_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="algorithm_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="algorithm_8cpp.html" target="_self">algorithm.cpp</a></td><td class="desc"></td></tr> +<tr id="row_0_0_1_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="algorithm_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="algorithm_8h.html" target="_self">algorithm.h</a></td><td class="desc"></td></tr> +<tr id="row_0_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img id="arr_0_1_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_1_')"/><img id="img_0_1_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_1_')"/><a class="el" href="dir_d4a9a7556cca61907ce453116086a23a.html" target="_self">MAX30102</a></td><td class="desc"></td></tr> +<tr id="row_0_1_0_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="_m_a_x30102_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="_m_a_x30102_8cpp.html" target="_self">MAX30102.cpp</a></td><td class="desc"></td></tr> +<tr id="row_0_1_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="_m_a_x30102_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="_m_a_x30102_8h.html" target="_self">MAX30102.h</a></td><td class="desc"></td></tr> +<tr id="row_0_2_"><td class="entry"><img src="ftv2blank.png" alt=" " width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="main_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="main_8cpp.html" target="_self">main.cpp</a></td><td class="desc"></td></tr> +</table> +</div><!-- directory --> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/files.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/files.js new file mode 100644 index 0000000000000000000000000000000000000000..0b50c07c557a14b9fab49ba81c90706721989b44 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/files.js @@ -0,0 +1,4 @@ +var files = +[ + [ "RD117_MBED", "dir_70c5cd4c8bba287fe799894cc0903ca4.html", "dir_70c5cd4c8bba287fe799894cc0903ca4" ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2blank.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2blank.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2blank.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2cl.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2cl.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc4fdbf6f8b775f3742d1175be5049388a0a68c Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2cl.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2doc.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5e6c1631f064d0a1942010874a3047be703a37 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2doc.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2folderclosed.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..1dea9569a3cc4a3856a3270f82d1e706cc71580d Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2folderclosed.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2folderopen.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..45ef3e2e68b6c14ec6474049fe1d19e8081c42b3 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2folderopen.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2lastnode.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2lastnode.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2link.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2link.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5e6c1631f064d0a1942010874a3047be703a37 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2link.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2mlastnode.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0599622a5d11ab58f3a6d81f08176522f10f26b3 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2mlastnode.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2mnode.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0599622a5d11ab58f3a6d81f08176522f10f26b3 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2mnode.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2mo.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2mo.png new file mode 100644 index 0000000000000000000000000000000000000000..2cb8cd206f118cb2383574b661d5ca560c7ab1d7 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2mo.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2node.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2node.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2node.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2ns.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2ns.png new file mode 100644 index 0000000000000000000000000000000000000000..1b65524618818dfc650ee3b833ed6568115838ce Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2ns.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2plastnode.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2plastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..f35d64c4b69adc64a0f61b1ec1808e04e5116bc0 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2plastnode.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2pnode.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..f35d64c4b69adc64a0f61b1ec1808e04e5116bc0 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2pnode.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2splitbar.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..412a7a64a0cb8b4281d893eecd4447fe0b00c9a8 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2splitbar.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2vertline.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/ftv2vertline.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/functions.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/functions.html new file mode 100644 index 0000000000000000000000000000000000000000..52b6db98d6f8162ad890317ce24e180559385482 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/functions.html @@ -0,0 +1,172 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Data Fields</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li class="current"><a href="functions.html"><span>Data Fields</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li class="current"><a href="functions.html"><span>All</span></a></li> + <li><a href="functions_func.html"><span>Functions</span></a></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('functions.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="contents"> +<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div><ul> +<li>Adafruit_NeoPixel() +: <a class="el" href="class_adafruit___neo_pixel.html#ac314debe6917c8c9b320b785139c6e58">Adafruit_NeoPixel</a> +</li> +<li>begin() +: <a class="el" href="class_adafruit___neo_pixel.html#aad78931e44ce43c9b9c460dba7c9bbb7">Adafruit_NeoPixel</a> +</li> +<li>canShow() +: <a class="el" href="class_adafruit___neo_pixel.html#ad38ce8112667b70ad7c411a98892af0e">Adafruit_NeoPixel</a> +</li> +<li>clear() +: <a class="el" href="class_adafruit___neo_pixel.html#ac8bb3912a3ce86b15842e79d0b421204">Adafruit_NeoPixel</a> +</li> +<li>Color() +: <a class="el" href="class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec">Adafruit_NeoPixel</a> +</li> +<li>getBrightness() +: <a class="el" href="class_adafruit___neo_pixel.html#a553bf1a0513094c73cb54a235f74ac7f">Adafruit_NeoPixel</a> +</li> +<li>getPixelColor() +: <a class="el" href="class_adafruit___neo_pixel.html#a10a836ddc4ebd3e26b1e71a5875764fa">Adafruit_NeoPixel</a> +</li> +<li>getPixels() +: <a class="el" href="class_adafruit___neo_pixel.html#a18bc91d2bad52cf603814d4df6f33067">Adafruit_NeoPixel</a> +</li> +<li>numPixels() +: <a class="el" href="class_adafruit___neo_pixel.html#ac893a5c07c41604539022af84665c04b">Adafruit_NeoPixel</a> +</li> +<li>setBrightness() +: <a class="el" href="class_adafruit___neo_pixel.html#afa1740af1d8eec971eada06d53901c53">Adafruit_NeoPixel</a> +</li> +<li>setPin() +: <a class="el" href="class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b">Adafruit_NeoPixel</a> +</li> +<li>setPixelColor() +: <a class="el" href="class_adafruit___neo_pixel.html#abbf243cce591dc37be507cf173485bc8">Adafruit_NeoPixel</a> +</li> +<li>show() +: <a class="el" href="class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7">Adafruit_NeoPixel</a> +</li> +<li>updateLength() +: <a class="el" href="class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944">Adafruit_NeoPixel</a> +</li> +<li>updateType() +: <a class="el" href="class_adafruit___neo_pixel.html#a65e59263e0f5a04c7202d4385d3a539b">Adafruit_NeoPixel</a> +</li> +<li>~Adafruit_NeoPixel() +: <a class="el" href="class_adafruit___neo_pixel.html#a16d970aa16f9d0128800346f4ca567db">Adafruit_NeoPixel</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/functions_func.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/functions_func.html new file mode 100644 index 0000000000000000000000000000000000000000..bb6045f8c031f2aa58b6166d6529cec815c9fae9 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/functions_func.html @@ -0,0 +1,172 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Data Fields - Functions</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="classes.html"><span>Data Structure Index</span></a></li> + <li class="current"><a href="functions.html"><span>Data Fields</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="functions.html"><span>All</span></a></li> + <li class="current"><a href="functions_func.html"><span>Functions</span></a></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('functions_func.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="contents"> + <ul> +<li>Adafruit_NeoPixel() +: <a class="el" href="class_adafruit___neo_pixel.html#ac314debe6917c8c9b320b785139c6e58">Adafruit_NeoPixel</a> +</li> +<li>begin() +: <a class="el" href="class_adafruit___neo_pixel.html#aad78931e44ce43c9b9c460dba7c9bbb7">Adafruit_NeoPixel</a> +</li> +<li>canShow() +: <a class="el" href="class_adafruit___neo_pixel.html#ad38ce8112667b70ad7c411a98892af0e">Adafruit_NeoPixel</a> +</li> +<li>clear() +: <a class="el" href="class_adafruit___neo_pixel.html#ac8bb3912a3ce86b15842e79d0b421204">Adafruit_NeoPixel</a> +</li> +<li>Color() +: <a class="el" href="class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec">Adafruit_NeoPixel</a> +</li> +<li>getBrightness() +: <a class="el" href="class_adafruit___neo_pixel.html#a553bf1a0513094c73cb54a235f74ac7f">Adafruit_NeoPixel</a> +</li> +<li>getPixelColor() +: <a class="el" href="class_adafruit___neo_pixel.html#a10a836ddc4ebd3e26b1e71a5875764fa">Adafruit_NeoPixel</a> +</li> +<li>getPixels() +: <a class="el" href="class_adafruit___neo_pixel.html#a18bc91d2bad52cf603814d4df6f33067">Adafruit_NeoPixel</a> +</li> +<li>numPixels() +: <a class="el" href="class_adafruit___neo_pixel.html#ac893a5c07c41604539022af84665c04b">Adafruit_NeoPixel</a> +</li> +<li>setBrightness() +: <a class="el" href="class_adafruit___neo_pixel.html#afa1740af1d8eec971eada06d53901c53">Adafruit_NeoPixel</a> +</li> +<li>setPin() +: <a class="el" href="class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b">Adafruit_NeoPixel</a> +</li> +<li>setPixelColor() +: <a class="el" href="class_adafruit___neo_pixel.html#abbf243cce591dc37be507cf173485bc8">Adafruit_NeoPixel</a> +</li> +<li>show() +: <a class="el" href="class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7">Adafruit_NeoPixel</a> +</li> +<li>updateLength() +: <a class="el" href="class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944">Adafruit_NeoPixel</a> +</li> +<li>updateType() +: <a class="el" href="class_adafruit___neo_pixel.html#a65e59263e0f5a04c7202d4385d3a539b">Adafruit_NeoPixel</a> +</li> +<li>~Adafruit_NeoPixel() +: <a class="el" href="class_adafruit___neo_pixel.html#a16d970aa16f9d0128800346f4ca567db">Adafruit_NeoPixel</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals.html new file mode 100644 index 0000000000000000000000000000000000000000..4821639f1964044c0b6307f50940a95ca812c940 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals.html @@ -0,0 +1,368 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Globals</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li class="current"><a href="globals.html"><span>All</span></a></li> + <li><a href="globals_func.html"><span>Functions</span></a></li> + <li><a href="globals_vars.html"><span>Variables</span></a></li> + <li><a href="globals_defs.html"><span>Macros</span></a></li> + </ul> + </div> + <div id="navrow4" class="tabs3"> + <ul class="tablist"> + <li><a href="#index_a"><span>a</span></a></li> + <li><a href="#index_b"><span>b</span></a></li> + <li><a href="#index_c"><span>c</span></a></li> + <li><a href="#index_f"><span>f</span></a></li> + <li><a href="#index_h"><span>h</span></a></li> + <li><a href="#index_i"><span>i</span></a></li> + <li><a href="#index_m"><span>m</span></a></li> + <li><a href="#index_n"><span>n</span></a></li> + <li><a href="#index_p"><span>p</span></a></li> + <li><a href="#index_r"><span>r</span></a></li> + <li><a href="#index_t"><span>t</span></a></li> + <li><a href="#index_u"><span>u</span></a></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('globals.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="contents"> +<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div> + +<h3><a class="anchor" id="index_a"></a>- a -</h3><ul> +<li>aun_ir_buffer +: <a class="el" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">main.cpp</a> +</li> +<li>aun_red_buffer +: <a class="el" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">main.cpp</a> +</li> +<li>auw_hamm +: <a class="el" href="algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_b"></a>- b -</h3><ul> +<li>BUFFER_SIZE +: <a class="el" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_c"></a>- c -</h3><ul> +<li>ch_hr_valid +: <a class="el" href="main_8cpp.html#a43fb8ea97a26647405ca359095323280">main.cpp</a> +</li> +<li>ch_spo2_valid +: <a class="el" href="main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024">main.cpp</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_f"></a>- f -</h3><ul> +<li>false +: <a class="el" href="algorithm_8h.html#a65e9886d74aaee76545e83dd09011727">algorithm.h</a> +</li> +<li>FS +: <a class="el" href="algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_h"></a>- h -</h3><ul> +<li>HAMMING_SIZE +: <a class="el" href="algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8">algorithm.h</a> +</li> +<li>HR_FIFO_SIZE +: <a class="el" href="algorithm_8h.html#aa03906cc2e2d27ef4f3fa4db4312b524">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_i"></a>- i -</h3><ul> +<li>i2c() +: <a class="el" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">MAX30102.cpp</a> +</li> +<li>I2C_READ_ADDR +: <a class="el" href="_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37">MAX30102.h</a> +</li> +<li>I2C_WRITE_ADDR +: <a class="el" href="_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">MAX30102.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_m"></a>- m -</h3><ul> +<li>MA4_SIZE +: <a class="el" href="algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae">algorithm.h</a> +</li> +<li>main() +: <a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main.cpp</a> +</li> +<li>MAX_BRIGHTNESS +: <a class="el" href="main_8cpp.html#a2134a5a06f0865c945543a1f07eba387">main.cpp</a> +</li> +<li>maxim_find_peaks() +: <a class="el" href="algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9">algorithm.cpp</a> +, <a class="el" href="algorithm_8h.html#a2a4e5ddbe0e04c48b166f2ff176667a9">algorithm.h</a> +</li> +<li>maxim_heart_rate_and_oxygen_saturation() +: <a class="el" href="algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6">algorithm.cpp</a> +, <a class="el" href="algorithm_8h.html#a62050365673e666cd0d661a3664c26e6">algorithm.h</a> +</li> +<li>maxim_max30102_init() +: <a class="el" href="_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df">MAX30102.cpp</a> +, <a class="el" href="_m_a_x30102_8h.html#a4113aeee76935425d8a557a79a4193df">MAX30102.h</a> +</li> +<li>maxim_max30102_read_fifo() +: <a class="el" href="_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968">MAX30102.cpp</a> +, <a class="el" href="_m_a_x30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968">MAX30102.h</a> +</li> +<li>maxim_max30102_read_reg() +: <a class="el" href="_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f">MAX30102.cpp</a> +, <a class="el" href="_m_a_x30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f">MAX30102.h</a> +</li> +<li>maxim_max30102_reset() +: <a class="el" href="_m_a_x30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd">MAX30102.h</a> +, <a class="el" href="_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b">MAX30102.cpp</a> +</li> +<li>maxim_max30102_write_reg() +: <a class="el" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6">MAX30102.cpp</a> +, <a class="el" href="_m_a_x30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6">MAX30102.h</a> +</li> +<li>maxim_peaks_above_min_height() +: <a class="el" href="algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf">algorithm.cpp</a> +, <a class="el" href="algorithm_8h.html#aab95338e44281c269f0b9b0f529741bf">algorithm.h</a> +</li> +<li>maxim_remove_close_peaks() +: <a class="el" href="algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a">algorithm.cpp</a> +, <a class="el" href="algorithm_8h.html#adc6be68be81530d67a25c1a9905bec3a">algorithm.h</a> +</li> +<li>maxim_sort_ascend() +: <a class="el" href="algorithm_8h.html#a6cae46e51640b712afc2ebeefd2d51ff">algorithm.h</a> +, <a class="el" href="algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff">algorithm.cpp</a> +</li> +<li>maxim_sort_indices_descend() +: <a class="el" href="algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060">algorithm.cpp</a> +, <a class="el" href="algorithm_8h.html#a44b6312f81810d4deb64071d12ab0060">algorithm.h</a> +</li> +<li>min +: <a class="el" href="algorithm_8h.html#abb702d8b501669a23aa0ab3b281b9384">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_n"></a>- n -</h3><ul> +<li>n_heart_rate +: <a class="el" href="main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f">main.cpp</a> +</li> +<li>n_ir_buffer_length +: <a class="el" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">main.cpp</a> +</li> +<li>n_sp02 +: <a class="el" href="main_8cpp.html#a786e6c57c793d9af51360154ef90eb93">main.cpp</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_p"></a>- p -</h3><ul> +<li>pc() +: <a class="el" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">main.cpp</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_r"></a>- r -</h3><ul> +<li>REG_FIFO_CONFIG +: <a class="el" href="_m_a_x30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca">MAX30102.h</a> +</li> +<li>REG_FIFO_DATA +: <a class="el" href="_m_a_x30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd">MAX30102.h</a> +</li> +<li>REG_FIFO_RD_PTR +: <a class="el" href="_m_a_x30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f">MAX30102.h</a> +</li> +<li>REG_FIFO_WR_PTR +: <a class="el" href="_m_a_x30102_8h.html#aba8c69cb46224fb35783f5b60e75b115">MAX30102.h</a> +</li> +<li>REG_INTR_ENABLE_1 +: <a class="el" href="_m_a_x30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d">MAX30102.h</a> +</li> +<li>REG_INTR_ENABLE_2 +: <a class="el" href="_m_a_x30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1">MAX30102.h</a> +</li> +<li>REG_INTR_STATUS_1 +: <a class="el" href="_m_a_x30102_8h.html#a7d161a2394a67a2176d549edb94f4191">MAX30102.h</a> +</li> +<li>REG_INTR_STATUS_2 +: <a class="el" href="_m_a_x30102_8h.html#a61d809a1e313a2787b23e96de9554c4a">MAX30102.h</a> +</li> +<li>REG_LED1_PA +: <a class="el" href="_m_a_x30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b">MAX30102.h</a> +</li> +<li>REG_LED2_PA +: <a class="el" href="_m_a_x30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21">MAX30102.h</a> +</li> +<li>REG_MODE_CONFIG +: <a class="el" href="_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f">MAX30102.h</a> +</li> +<li>REG_MULTI_LED_CTRL1 +: <a class="el" href="_m_a_x30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c">MAX30102.h</a> +</li> +<li>REG_MULTI_LED_CTRL2 +: <a class="el" href="_m_a_x30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10">MAX30102.h</a> +</li> +<li>REG_OVF_COUNTER +: <a class="el" href="_m_a_x30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707">MAX30102.h</a> +</li> +<li>REG_PART_ID +: <a class="el" href="_m_a_x30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163">MAX30102.h</a> +</li> +<li>REG_PILOT_PA +: <a class="el" href="_m_a_x30102_8h.html#a371750304ec49457d3d38f60428f8ff1">MAX30102.h</a> +</li> +<li>REG_PROX_INT_THRESH +: <a class="el" href="_m_a_x30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab">MAX30102.h</a> +</li> +<li>REG_REV_ID +: <a class="el" href="_m_a_x30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23">MAX30102.h</a> +</li> +<li>REG_SPO2_CONFIG +: <a class="el" href="_m_a_x30102_8h.html#a38546015e987a72b8c9eb13228237dd0">MAX30102.h</a> +</li> +<li>REG_TEMP_CONFIG +: <a class="el" href="_m_a_x30102_8h.html#ad16bc92e2f92e516ca396214861a6379">MAX30102.h</a> +</li> +<li>REG_TEMP_FRAC +: <a class="el" href="_m_a_x30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d">MAX30102.h</a> +</li> +<li>REG_TEMP_INTR +: <a class="el" href="_m_a_x30102_8h.html#a579a9e43d89bdda85d9ccb206339d681">MAX30102.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_t"></a>- t -</h3><ul> +<li>true +: <a class="el" href="algorithm_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_u"></a>- u -</h3><ul> +<li>uch_dummy +: <a class="el" href="main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2">main.cpp</a> +</li> +<li>uch_spo2_table +: <a class="el" href="algorithm_8h.html#adfeeb6b08271807492803acc50347108">algorithm.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_defs.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_defs.html new file mode 100644 index 0000000000000000000000000000000000000000..06240b814609445f845d01f057def6369f8ba3c9 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_defs.html @@ -0,0 +1,260 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Globals</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="globals.html"><span>All</span></a></li> + <li><a href="globals_func.html"><span>Functions</span></a></li> + <li><a href="globals_vars.html"><span>Variables</span></a></li> + <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li> + </ul> + </div> + <div id="navrow4" class="tabs3"> + <ul class="tablist"> + <li><a href="#index_b"><span>b</span></a></li> + <li><a href="#index_f"><span>f</span></a></li> + <li><a href="#index_h"><span>h</span></a></li> + <li><a href="#index_i"><span>i</span></a></li> + <li><a href="#index_m"><span>m</span></a></li> + <li><a href="#index_r"><span>r</span></a></li> + <li><a href="#index_t"><span>t</span></a></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('globals_defs.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="contents"> +  + +<h3><a class="anchor" id="index_b"></a>- b -</h3><ul> +<li>BUFFER_SIZE +: <a class="el" href="algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_f"></a>- f -</h3><ul> +<li>false +: <a class="el" href="algorithm_8h.html#a65e9886d74aaee76545e83dd09011727">algorithm.h</a> +</li> +<li>FS +: <a class="el" href="algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_h"></a>- h -</h3><ul> +<li>HAMMING_SIZE +: <a class="el" href="algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8">algorithm.h</a> +</li> +<li>HR_FIFO_SIZE +: <a class="el" href="algorithm_8h.html#aa03906cc2e2d27ef4f3fa4db4312b524">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_i"></a>- i -</h3><ul> +<li>I2C_READ_ADDR +: <a class="el" href="_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37">MAX30102.h</a> +</li> +<li>I2C_WRITE_ADDR +: <a class="el" href="_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">MAX30102.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_m"></a>- m -</h3><ul> +<li>MA4_SIZE +: <a class="el" href="algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae">algorithm.h</a> +</li> +<li>MAX_BRIGHTNESS +: <a class="el" href="main_8cpp.html#a2134a5a06f0865c945543a1f07eba387">main.cpp</a> +</li> +<li>min +: <a class="el" href="algorithm_8h.html#abb702d8b501669a23aa0ab3b281b9384">algorithm.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_r"></a>- r -</h3><ul> +<li>REG_FIFO_CONFIG +: <a class="el" href="_m_a_x30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca">MAX30102.h</a> +</li> +<li>REG_FIFO_DATA +: <a class="el" href="_m_a_x30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd">MAX30102.h</a> +</li> +<li>REG_FIFO_RD_PTR +: <a class="el" href="_m_a_x30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f">MAX30102.h</a> +</li> +<li>REG_FIFO_WR_PTR +: <a class="el" href="_m_a_x30102_8h.html#aba8c69cb46224fb35783f5b60e75b115">MAX30102.h</a> +</li> +<li>REG_INTR_ENABLE_1 +: <a class="el" href="_m_a_x30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d">MAX30102.h</a> +</li> +<li>REG_INTR_ENABLE_2 +: <a class="el" href="_m_a_x30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1">MAX30102.h</a> +</li> +<li>REG_INTR_STATUS_1 +: <a class="el" href="_m_a_x30102_8h.html#a7d161a2394a67a2176d549edb94f4191">MAX30102.h</a> +</li> +<li>REG_INTR_STATUS_2 +: <a class="el" href="_m_a_x30102_8h.html#a61d809a1e313a2787b23e96de9554c4a">MAX30102.h</a> +</li> +<li>REG_LED1_PA +: <a class="el" href="_m_a_x30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b">MAX30102.h</a> +</li> +<li>REG_LED2_PA +: <a class="el" href="_m_a_x30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21">MAX30102.h</a> +</li> +<li>REG_MODE_CONFIG +: <a class="el" href="_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f">MAX30102.h</a> +</li> +<li>REG_MULTI_LED_CTRL1 +: <a class="el" href="_m_a_x30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c">MAX30102.h</a> +</li> +<li>REG_MULTI_LED_CTRL2 +: <a class="el" href="_m_a_x30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10">MAX30102.h</a> +</li> +<li>REG_OVF_COUNTER +: <a class="el" href="_m_a_x30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707">MAX30102.h</a> +</li> +<li>REG_PART_ID +: <a class="el" href="_m_a_x30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163">MAX30102.h</a> +</li> +<li>REG_PILOT_PA +: <a class="el" href="_m_a_x30102_8h.html#a371750304ec49457d3d38f60428f8ff1">MAX30102.h</a> +</li> +<li>REG_PROX_INT_THRESH +: <a class="el" href="_m_a_x30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab">MAX30102.h</a> +</li> +<li>REG_REV_ID +: <a class="el" href="_m_a_x30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23">MAX30102.h</a> +</li> +<li>REG_SPO2_CONFIG +: <a class="el" href="_m_a_x30102_8h.html#a38546015e987a72b8c9eb13228237dd0">MAX30102.h</a> +</li> +<li>REG_TEMP_CONFIG +: <a class="el" href="_m_a_x30102_8h.html#ad16bc92e2f92e516ca396214861a6379">MAX30102.h</a> +</li> +<li>REG_TEMP_FRAC +: <a class="el" href="_m_a_x30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d">MAX30102.h</a> +</li> +<li>REG_TEMP_INTR +: <a class="el" href="_m_a_x30102_8h.html#a579a9e43d89bdda85d9ccb206339d681">MAX30102.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_t"></a>- t -</h3><ul> +<li>true +: <a class="el" href="algorithm_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">algorithm.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_func.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_func.html new file mode 100644 index 0000000000000000000000000000000000000000..e6ac928f362ba224a0421ea845d1a96997f859d1 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_func.html @@ -0,0 +1,177 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Globals</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="globals.html"><span>All</span></a></li> + <li class="current"><a href="globals_func.html"><span>Functions</span></a></li> + <li><a href="globals_vars.html"><span>Variables</span></a></li> + <li><a href="globals_defs.html"><span>Macros</span></a></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('globals_func.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="contents"> + <ul> +<li>i2c() +: <a class="el" href="_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976">MAX30102.cpp</a> +</li> +<li>main() +: <a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main.cpp</a> +</li> +<li>maxim_find_peaks() +: <a class="el" href="algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9">algorithm.cpp</a> +, <a class="el" href="algorithm_8h.html#a2a4e5ddbe0e04c48b166f2ff176667a9">algorithm.h</a> +</li> +<li>maxim_heart_rate_and_oxygen_saturation() +: <a class="el" href="algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6">algorithm.cpp</a> +, <a class="el" href="algorithm_8h.html#a62050365673e666cd0d661a3664c26e6">algorithm.h</a> +</li> +<li>maxim_max30102_init() +: <a class="el" href="_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df">MAX30102.cpp</a> +, <a class="el" href="_m_a_x30102_8h.html#a4113aeee76935425d8a557a79a4193df">MAX30102.h</a> +</li> +<li>maxim_max30102_read_fifo() +: <a class="el" href="_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968">MAX30102.cpp</a> +, <a class="el" href="_m_a_x30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968">MAX30102.h</a> +</li> +<li>maxim_max30102_read_reg() +: <a class="el" href="_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f">MAX30102.cpp</a> +, <a class="el" href="_m_a_x30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f">MAX30102.h</a> +</li> +<li>maxim_max30102_reset() +: <a class="el" href="_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b">MAX30102.cpp</a> +, <a class="el" href="_m_a_x30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd">MAX30102.h</a> +</li> +<li>maxim_max30102_write_reg() +: <a class="el" href="_m_a_x30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6">MAX30102.h</a> +, <a class="el" href="_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6">MAX30102.cpp</a> +</li> +<li>maxim_peaks_above_min_height() +: <a class="el" href="algorithm_8h.html#aab95338e44281c269f0b9b0f529741bf">algorithm.h</a> +, <a class="el" href="algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf">algorithm.cpp</a> +</li> +<li>maxim_remove_close_peaks() +: <a class="el" href="algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a">algorithm.cpp</a> +, <a class="el" href="algorithm_8h.html#adc6be68be81530d67a25c1a9905bec3a">algorithm.h</a> +</li> +<li>maxim_sort_ascend() +: <a class="el" href="algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff">algorithm.cpp</a> +, <a class="el" href="algorithm_8h.html#a6cae46e51640b712afc2ebeefd2d51ff">algorithm.h</a> +</li> +<li>maxim_sort_indices_descend() +: <a class="el" href="algorithm_8h.html#a44b6312f81810d4deb64071d12ab0060">algorithm.h</a> +, <a class="el" href="algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060">algorithm.cpp</a> +</li> +<li>pc() +: <a class="el" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">main.cpp</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_type.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_type.html new file mode 100644 index 0000000000000000000000000000000000000000..9534022753f25c0001100a145bd943ff31859df8 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_type.html @@ -0,0 +1,129 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Globals</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="globals.html"><span>All</span></a></li> + <li><a href="globals_func.html"><span>Functions</span></a></li> + <li><a href="globals_vars.html"><span>Variables</span></a></li> + <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li> + <li><a href="globals_defs.html"><span>Macros</span></a></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('globals_type.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="contents"> + <ul> +<li>neoPixelType +: <a class="el" href="_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff">Adafruit_NeoPixel.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_vars.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_vars.html new file mode 100644 index 0000000000000000000000000000000000000000..9e5173c39d779cc00433cab41eeae81498937a8c --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/globals_vars.html @@ -0,0 +1,154 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Globals</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="globals.html"><span>All</span></a></li> + <li><a href="globals_func.html"><span>Functions</span></a></li> + <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li> + <li><a href="globals_defs.html"><span>Macros</span></a></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('globals_vars.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="contents"> + <ul> +<li>aun_ir_buffer +: <a class="el" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">main.cpp</a> +</li> +<li>aun_red_buffer +: <a class="el" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">main.cpp</a> +</li> +<li>auw_hamm +: <a class="el" href="algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929">algorithm.h</a> +</li> +<li>ch_hr_valid +: <a class="el" href="main_8cpp.html#a43fb8ea97a26647405ca359095323280">main.cpp</a> +</li> +<li>ch_spo2_valid +: <a class="el" href="main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024">main.cpp</a> +</li> +<li>n_heart_rate +: <a class="el" href="main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f">main.cpp</a> +</li> +<li>n_ir_buffer_length +: <a class="el" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">main.cpp</a> +</li> +<li>n_sp02 +: <a class="el" href="main_8cpp.html#a786e6c57c793d9af51360154ef90eb93">main.cpp</a> +</li> +<li>uch_dummy +: <a class="el" href="main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2">main.cpp</a> +</li> +<li>uch_spo2_table +: <a class="el" href="algorithm_8h.html#adfeeb6b08271807492803acc50347108">algorithm.h</a> +</li> +</ul> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/index.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/index.html new file mode 100644 index 0000000000000000000000000000000000000000..de51293c70c81905709d747ae7af8eae06ae0826 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/index.html @@ -0,0 +1,125 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: Main Page</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<script type="text/javascript"> +var searchBox = new SearchBox("searchBox", "search",false,'Search'); +</script> + <div id="navrow1" class="tabs"> + <ul class="tablist"> + <li class="current"><a href="index.html"><span>Main Page</span></a></li> + <li><a href="files.html"><span>Files</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('index.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">Main Page </div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><h1><a class="anchor" id="intro_sec"></a> +Introduction</h1> +<p>This is the code documentation for the MAXREFDES117# subsystem reference design.</p> +<p>The Files page contains the File List page and the Globals page.</p> +<p>The Globals page contains the Functions, Variables, and Macros sub-pages.</p> +<div class="image"> +<img src="MAXREFDES117_Block_Diagram.png" alt="MAXREFDES117_Block_Diagram.png"/> +<div class="caption"> +MAXREFDES117# System Block Diagram</div></div> + <div class="image"> +<img src="MAXREFDES117_firmware_Flowchart.png" alt="MAXREFDES117_firmware_Flowchart.png"/> +<div class="caption"> +MAXREFDES117# Firmware Flowchart</div></div> +</div></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/jquery.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/jquery.js new file mode 100644 index 0000000000000000000000000000000000000000..78ad0bdffa52e6ecd92f10fe1a32e552e8eb4053 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/jquery.js @@ -0,0 +1,77 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function() +{g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d +&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")), +f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c) +{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); +/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,b){function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;if(!b.href||!g||f.nodeName.toLowerCase()!=="map")return!1;h=a("img[usemap=#"+g+"]")[0];return!!h&&d(h)}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}a.ui=a.ui||{};a.ui.version||(a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)});return c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){if(c===b)return g["inner"+d].call(this);return this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){if(typeof b!="number")return g["outer"+d].call(this,b);return this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;if(b[d]>0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}}))})(jQuery); +/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}});return d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e;if(f&&e.charAt(0)==="_")return h;f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b){h=f;return!1}}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))});return h}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}this._setOptions(e);return this},_setOptions:function(b){var c=this;a.each(b,function(a,b){c._setOption(a,b)});return this},_setOption:function(a,b){this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b);return this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);this.element.trigger(c,d);return!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery); +/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent")){a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation();return!1}}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(b){if(!c){this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted){b.preventDefault();return!0}}!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0;return!0}},_mouseMove:function(b){if(a.browser.msie&&!(document.documentMode>=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery); +/* + * jQuery UI Resizable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e<d.length;e++){var f=a.trim(d[e]),g="ui-resizable-"+f,h=a('<div class="ui-resizable-handle '+g+'"></div>');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),e<h.maxWidth&&(h.maxWidth=e),g<h.maxHeight&&(h.maxHeight=g);this._vBoundaries=h},_updateCache:function(a){var b=this.options;this.offset=this.helper.offset(),d(a.left)&&(this.position.left=a.left),d(a.top)&&(this.position.top=a.top),d(a.height)&&(this.size.height=a.height),d(a.width)&&(this.size.width=a.width)},_updateRatio:function(a,b){var c=this.options,e=this.position,f=this.size,g=this.axis;d(a.height)?a.width=a.height*this.aspectRatio:d(a.width)&&(a.height=a.width/this.aspectRatio),g=="sw"&&(a.left=e.left+(f.width-a.width),a.top=null),g=="nw"&&(a.top=e.top+(f.height-a.height),a.left=e.left+(f.width-a.width));return a},_respectSize:function(a,b){var c=this.helper,e=this._vBoundaries,f=this._aspectRatio||b.shiftKey,g=this.axis,h=d(a.width)&&e.maxWidth&&e.maxWidth<a.width,i=d(a.height)&&e.maxHeight&&e.maxHeight<a.height,j=d(a.width)&&e.minWidth&&e.minWidth>a.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d<this._proportionallyResizeElements.length;d++){var e=this._proportionallyResizeElements[d];if(!this.borderDif){var f=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],g=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];this.borderDif=a.map(f,function(a,b){var c=parseInt(a,10)||0,d=parseInt(g[b],10)||0;return c+d})}if(a.browser.msie&&(!!a(c).is(":hidden")||!!a(c).parents(":hidden").length))continue;e.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.18"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p +&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery); +/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this); +/** + * jQuery.ScrollTo - Easy element scrolling using jQuery. + * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Dual licensed under MIT and GPL. + * Date: 5/25/2009 + * @author Ariel Flesler + * @version 1.4.2 + * + * http://flesler.blogspot.com/2007/10/jqueryscrollto.html + */ +;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/main_8cpp.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/main_8cpp.html new file mode 100644 index 0000000000000000000000000000000000000000..82750057954aae245e4b48f9765531ff8d043bb5 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/main_8cpp.html @@ -0,0 +1,339 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/main.cpp File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('main_8cpp.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> | +<a href="#var-members">Variables</a> </div> + <div class="headertitle"> +<div class="title">main.cpp File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include "mbed.h"</code><br/> +<code>#include "<a class="el" href="algorithm_8h_source.html">algorithm.h</a>"</code><br/> +<code>#include "<a class="el" href="_m_a_x30102_8h_source.html">MAX30102.h</a>"</code><br/> +</div> +<p><a href="main_8cpp_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:a2134a5a06f0865c945543a1f07eba387"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>   255</td></tr> +<tr class="separator:a2134a5a06f0865c945543a1f07eba387"><td class="memSeparator" colspan="2"> </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:a81e0624d7e9f10f8f7e52a569ba24753"><td class="memItemLeft" align="right" valign="top">Serial </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a> (USBTX, USBRX)</td></tr> +<tr class="separator:a81e0624d7e9f10f8f7e52a569ba24753"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr> +<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2"> </td></tr> +</table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> +Variables</h2></td></tr> +<tr class="memitem:a07a24850120a56110cc2838d0afcafcf"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a> [500]</td></tr> +<tr class="separator:a07a24850120a56110cc2838d0afcafcf"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac16b6dd0e762f0ccc30e7102f97260d6"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a></td></tr> +<tr class="separator:ac16b6dd0e762f0ccc30e7102f97260d6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a85d1012c3814f9e393e6ff8d84e56723"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a> [500]</td></tr> +<tr class="separator:a85d1012c3814f9e393e6ff8d84e56723"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a786e6c57c793d9af51360154ef90eb93"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a786e6c57c793d9af51360154ef90eb93">n_sp02</a></td></tr> +<tr class="separator:a786e6c57c793d9af51360154ef90eb93"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a2518324dce002f592cf6d7f0b1ad9024"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a></td></tr> +<tr class="separator:a2518324dce002f592cf6d7f0b1ad9024"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3171c70bfa71c3a4f960bf3e8203d13f"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a></td></tr> +<tr class="separator:a3171c70bfa71c3a4f960bf3e8203d13f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a43fb8ea97a26647405ca359095323280"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a></td></tr> +<tr class="separator:a43fb8ea97a26647405ca359095323280"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ac5e493da8cbdd1414d56e8f08282fcc2"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2">uch_dummy</a></td></tr> +<tr class="separator:ac5e493da8cbdd1414d56e8f08282fcc2"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><hr/> +<p>Project: MAXREFDES117# Filename: <a class="el" href="main_8cpp.html">main.cpp</a> Description: This module contains the Main application for the MAXREFDES117 example program. <hr/> +<p>This code follows the following naming conventions:</p> +<p>char ch_pmod_value char (array) s_pmod_s_string[16] float f_pmod_value int32_t n_pmod_value int32_t (array) an_pmod_value[16] int16_t w_pmod_value int16_t (array) aw_pmod_value[16] uint16_t uw_pmod_value uint16_t (array) auw_pmod_value[16] uint8_t uch_pmod_value uint8_t (array) auch_pmod_buffer[16] uint32_t un_pmod_value int32_t * pn_pmod_value <hr/> + +<p>Definition in file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> +</div><h2 class="groupheader">Macro Definition Documentation</h2> +<a class="anchor" id="a2134a5a06f0865c945543a1f07eba387"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define MAX_BRIGHTNESS   255</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00078">78</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int main </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00103">103</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a81e0624d7e9f10f8f7e52a569ba24753"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">Serial pc </td> + <td>(</td> + <td class="paramtype">USBTX </td> + <td class="paramname">, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">USBRX </td> + <td class="paramname"> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +</div> +</div> +<h2 class="groupheader">Variable Documentation</h2> +<a class="anchor" id="a07a24850120a56110cc2838d0afcafcf"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint32_t aun_ir_buffer[500]</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00080">80</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a85d1012c3814f9e393e6ff8d84e56723"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint32_t aun_red_buffer[500]</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00082">82</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a43fb8ea97a26647405ca359095323280"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t ch_hr_valid</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00086">86</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a2518324dce002f592cf6d7f0b1ad9024"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int8_t ch_spo2_valid</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00084">84</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a3171c70bfa71c3a4f960bf3e8203d13f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int32_t n_heart_rate</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00085">85</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="ac16b6dd0e762f0ccc30e7102f97260d6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int32_t n_ir_buffer_length</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00081">81</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a786e6c57c793d9af51360154ef90eb93"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int32_t n_sp02</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00083">83</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="ac5e493da8cbdd1414d56e8f08282fcc2"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint8_t uch_dummy</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="main_8cpp_source.html#l00087">87</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="main_8cpp.html">main.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/main_8cpp.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/main_8cpp.js new file mode 100644 index 0000000000000000000000000000000000000000..103f1ed8d7e3a58b484eae88eac101acc16497bb --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/main_8cpp.js @@ -0,0 +1,14 @@ +var main_8cpp = +[ + [ "MAX_BRIGHTNESS", "main_8cpp.html#a2134a5a06f0865c945543a1f07eba387", null ], + [ "main", "main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ], + [ "pc", "main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753", null ], + [ "aun_ir_buffer", "main_8cpp.html#a07a24850120a56110cc2838d0afcafcf", null ], + [ "aun_red_buffer", "main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723", null ], + [ "ch_hr_valid", "main_8cpp.html#a43fb8ea97a26647405ca359095323280", null ], + [ "ch_spo2_valid", "main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024", null ], + [ "n_heart_rate", "main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f", null ], + [ "n_ir_buffer_length", "main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6", null ], + [ "n_sp02", "main_8cpp.html#a786e6c57c793d9af51360154ef90eb93", null ], + [ "uch_dummy", "main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/main_8cpp_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/main_8cpp_source.html new file mode 100644 index 0000000000000000000000000000000000000000..677f249c74c06de4bec7003b989163124dc3bbc8 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/main_8cpp_source.html @@ -0,0 +1,298 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_MBED/main.cpp Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('main_8cpp_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">main.cpp</div> </div> +</div><!--header--> +<div class="contents"> +<a href="main_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> +<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">/*******************************************************************************</span></div> +<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.</span></div> +<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">*</span></div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">* Permission is hereby granted, free of charge, to any person obtaining a</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">* copy of this software and associated documentation files (the "Software"),</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">* to deal in the Software without restriction, including without limitation</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">* the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">* and/or sell copies of the Software, and to permit persons to whom the</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">* Software is furnished to do so, subject to the following conditions:</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">*</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">* The above copyright notice and this permission notice shall be included</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">* in all copies or substantial portions of the Software.</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">*</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* OTHER DEALINGS IN THE SOFTWARE.</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">*</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">* Except as contained in this notice, the name of Maxim Integrated</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">* Products, Inc. shall not be used except as stated in the Maxim Integrated</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">* Products, Inc. Branding Policy.</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">*</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">* The mere transfer of this software does not imply any licenses</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">* of trade secrets, proprietary technology, copyrights, patents,</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">* trademarks, maskwork rights, or any other form of intellectual</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">* property whatsoever. Maxim Integrated Products, Inc. retains all</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">* ownership rights.</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">*******************************************************************************</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">*/</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#include "mbed.h"</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "<a class="code" href="algorithm_8h.html">algorithm.h</a>"</span></div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "<a class="code" href="_m_a_x30102_8h.html">MAX30102.h</a>"</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div> +<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="main_8cpp.html#a2134a5a06f0865c945543a1f07eba387"> 78</a></span> <span class="preprocessor">#define MAX_BRIGHTNESS 255</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf"> 80</a></span> uint32_t <a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a>[500]; <span class="comment">//IR LED sensor data</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6"> 81</a></span> int32_t <a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>; <span class="comment">//data length</span></div> +<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723"> 82</a></span> uint32_t <a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[500]; <span class="comment">//Red LED sensor data</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="main_8cpp.html#a786e6c57c793d9af51360154ef90eb93"> 83</a></span> int32_t <a class="code" href="main_8cpp.html#a786e6c57c793d9af51360154ef90eb93">n_sp02</a>; <span class="comment">//SPO2 value</span></div> +<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024"> 84</a></span> int8_t <a class="code" href="main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a>; <span class="comment">//indicator to show if the SP02 calculation is valid</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f"> 85</a></span> int32_t <a class="code" href="main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a>; <span class="comment">//heart rate value</span></div> +<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="main_8cpp.html#a43fb8ea97a26647405ca359095323280"> 86</a></span> int8_t <a class="code" href="main_8cpp.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a>; <span class="comment">//indicator to show if the heart rate calculation is valid</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2"> 87</a></span> uint8_t <a class="code" href="main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2">uch_dummy</a>;</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> Serial <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>(USBTX, USBRX); <span class="comment">//initializes the serial port</span></div> +<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#ifdef TARGET_KL25Z </span></div> +<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"></span>PwmOut led(PTB18); <span class="comment">//initializes the pwm output that connects to the on board LED</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> DigitalIn INT(PTD1); <span class="comment">//pin PTD1 connects to the interrupt output pin of the MAX30102</span></div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef TARGET_K64F</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"></span>DigitalIn INT(PTD1); <span class="comment">//pin PTD1 connects to the interrupt output pin of the MAX30102</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef TARGET_MAX32600MBED</span></div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor"></span>PwmOut led(LED_RED); <span class="comment">//initializes the pwm output that connects to the on board LED</span></div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> DigitalIn INT(P2_0); <span class="comment">//pin P20 connects to the interrupt output pin of the MAX30102</span></div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// the setup routine runs once when you press reset:</span></div> +<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4"> 103</a></span> <span class="keywordtype">int</span> <a class="code" href="main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>() { </div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  uint32_t un_min, un_max, un_prev_data; <span class="comment">//variables to calculate the on-board LED brightness that reflects the heartbeats</span></div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordtype">int</span> i;</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  int32_t n_brightness;</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordtype">float</span> f_temp;</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b" title="Reset the MAX30102.">maxim_max30102_reset</a>(); <span class="comment">//resets the MAX30102</span></div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// initialize serial communication at 115200 bits per second:</span></div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.baud(115200);</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.format(8,SerialBase::None,1);</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  wait(1);</div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">//read and clear status register</span></div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(0,&<a class="code" href="main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2">uch_dummy</a>);</div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div> +<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">//wait until the user presses a key</span></div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">while</span>(<a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.readable()==0)</div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"\x1B[2J"</span>); <span class="comment">//clear terminal program screen</span></div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"Press any key to start conversion\n\r"</span>);</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  wait(1);</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2">uch_dummy</a>=getchar();</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df" title="Initialize the MAX30102.">maxim_max30102_init</a>(); <span class="comment">//initializes the MAX30102</span></div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  n_brightness=0;</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  un_min=0x3FFFF;</div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  un_max=0;</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>=500; <span class="comment">//buffer length of 100 stores 5 seconds of samples running at 100sps</span></div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">//read the first 500 samples, and determine the signal range</span></div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">for</span>(i=0;i<<a class="code" href="main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6">n_ir_buffer_length</a>;i++)</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">while</span>(INT.read()==1); <span class="comment">//wait until the interrupt pin asserts</span></div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>((<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>+i), (<a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a>+i)); <span class="comment">//read from MAX30102 FIFO</span></div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span>(un_min><a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i])</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  un_min=<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i]; <span class="comment">//update signal min</span></div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">if</span>(un_max<<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i])</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  un_max=<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i]; <span class="comment">//update signal max</span></div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"red="</span>);</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"%i"</span>, <a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i]);</div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">", ir="</span>);</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"%i\n\r"</span>, <a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a>[i]);</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  un_prev_data=<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  </div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">//calculate heart rate and SpO2 after first 500 samples (first 5 seconds of samples)</span></div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6" title="Calculate the heart rate and SpO2 level.">maxim_heart_rate_and_oxygen_saturation</a>(<a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a>, n_ir_buffer_length, <a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>, &<a class="code" href="main_8cpp.html#a786e6c57c793d9af51360154ef90eb93">n_sp02</a>, &<a class="code" href="main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a>, &<a class="code" href="main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a>, &<a class="code" href="main_8cpp.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a>); </div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="comment">//Continuously taking samples from MAX30102. Heart rate and SpO2 are calculated every 1 second</span></div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">while</span>(1)</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  {</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  i=0;</div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  un_min=0x3FFFF;</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  un_max=0;</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">//dumping the first 100 sets of samples in the memory and shift the last 400 sets of samples to the top</span></div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">for</span>(i=100;i<500;i++)</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  {</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i-100]=<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a>[i-100]=<a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a>[i];</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">//update the signal min and max</span></div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span>(un_min><a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i])</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  un_min=<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">if</span>(un_max<<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i])</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  un_max=<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">//take 100 sets of samples before calculating the heart rate.</span></div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">for</span>(i=400;i<500;i++)</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  {</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  un_prev_data=<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i-1];</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">while</span>(INT.read()==1);</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>((<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>+i), (<a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a>+i));</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span>(<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i]>un_prev_data)</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  f_temp=<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i]-un_prev_data;</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  f_temp/=(un_max-un_min);</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  f_temp*=<a class="code" href="main_8cpp.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>;</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  n_brightness-=(int)f_temp;</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">if</span>(n_brightness<0)</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  n_brightness=0;</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  {</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  f_temp=un_prev_data-<a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i];</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  f_temp/=(un_max-un_min);</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  f_temp*=<a class="code" href="main_8cpp.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>;</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  n_brightness+=(int)f_temp;</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span>(n_brightness><a class="code" href="main_8cpp.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>)</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  n_brightness=<a class="code" href="main_8cpp.html#a2134a5a06f0865c945543a1f07eba387">MAX_BRIGHTNESS</a>;</div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div> +<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor">#if defined(TARGET_KL25Z) || defined(TARGET_MAX32600MBED)</span></div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor"></span> led.write(1-(<span class="keywordtype">float</span>)n_brightness/256);</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="preprocessor"></span> <span class="comment">//send samples and calculation result to terminal program through UART</span></div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"red="</span>);</div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"%i"</span>, <a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>[i]);</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">", ir="</span>);</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"%i"</span>, <a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a>[i]);</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">", HR=%i, "</span>, <a class="code" href="main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a>); </div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"HRvalid=%i, "</span>, <a class="code" href="main_8cpp.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a>);</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"SpO2=%i, "</span>, <a class="code" href="main_8cpp.html#a786e6c57c793d9af51360154ef90eb93">n_sp02</a>);</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753">pc</a>.printf(<span class="stringliteral">"SPO2Valid=%i\n\r"</span>, <a class="code" href="main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a>);</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6" title="Calculate the heart rate and SpO2 level.">maxim_heart_rate_and_oxygen_saturation</a>(<a class="code" href="main_8cpp.html#a07a24850120a56110cc2838d0afcafcf">aun_ir_buffer</a>, n_ir_buffer_length, <a class="code" href="main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723">aun_red_buffer</a>, &<a class="code" href="main_8cpp.html#a786e6c57c793d9af51360154ef90eb93">n_sp02</a>, &<a class="code" href="main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024">ch_spo2_valid</a>, &<a class="code" href="main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f">n_heart_rate</a>, &<a class="code" href="main_8cpp.html#a43fb8ea97a26647405ca359095323280">ch_hr_valid</a>); </div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_70c5cd4c8bba287fe799894cc0903ca4.html">RD117_MBED</a></li><li class="navelem"><a class="el" href="main_8cpp.html">main.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 15:24:07 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8cpp.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8cpp.html new file mode 100644 index 0000000000000000000000000000000000000000..8f38ddc93c05fb0c7b98d743a7baf262b7134ad1 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8cpp.html @@ -0,0 +1,354 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/max30102.cpp File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('max30102_8cpp.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">max30102.cpp File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include "<a class="el" href="max30102_8h_source.html">max30102.h</a>"</code><br/> +<code>#include "<a class="el" href="_soft_i2_c_master_8h_source.html">SoftI2CMaster.h</a>"</code><br/> +<code>#include "<a class="el" href="algorithm_8h_source.html">algorithm.h</a>"</code><br/> +</div> +<p><a href="max30102_8cpp_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> +Functions</h2></td></tr> +<tr class="memitem:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6">maxim_max30102_write_reg</a> (uint8_t uch_addr, uint8_t uch_data)</td></tr> +<tr class="memdesc:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="mdescLeft"> </td><td class="mdescRight">Write a value to a MAX30102 register. <a href="#a4c2ec1539c1ec8354cdaefe2c3bf48d6"></a><br/></td></tr> +<tr class="separator:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0cd2c5a58e57ebbe8c9361384798331f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f">maxim_max30102_read_reg</a> (uint8_t uch_addr, uint8_t *puch_data)</td></tr> +<tr class="memdesc:a0cd2c5a58e57ebbe8c9361384798331f"><td class="mdescLeft"> </td><td class="mdescRight">Read a MAX30102 register. <a href="#a0cd2c5a58e57ebbe8c9361384798331f"></a><br/></td></tr> +<tr class="separator:a0cd2c5a58e57ebbe8c9361384798331f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4113aeee76935425d8a557a79a4193df"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8cpp.html#a4113aeee76935425d8a557a79a4193df">maxim_max30102_init</a> ()</td></tr> +<tr class="memdesc:a4113aeee76935425d8a557a79a4193df"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the MAX30102. <a href="#a4113aeee76935425d8a557a79a4193df"></a><br/></td></tr> +<tr class="separator:a4113aeee76935425d8a557a79a4193df"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968">maxim_max30102_read_fifo</a> (uint32_t *pun_red_led, uint32_t *pun_ir_led)</td></tr> +<tr class="memdesc:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="mdescLeft"> </td><td class="mdescRight">Read a set of samples from the MAX30102 FIFO register. <a href="#a483073cbc9dbb7a5a2495ce2ae4fb968"></a><br/></td></tr> +<tr class="separator:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1df3bb178b66379a2975c56395c47d9b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b">maxim_max30102_reset</a> ()</td></tr> +<tr class="memdesc:a1df3bb178b66379a2975c56395c47d9b"><td class="mdescLeft"> </td><td class="mdescRight">Reset the MAX30102. <a href="#a1df3bb178b66379a2975c56395c47d9b"></a><br/></td></tr> +<tr class="separator:a1df3bb178b66379a2975c56395c47d9b"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><pre class="fragment">****************************************************** +</pre><p>Project: MAXREFDES117# Filename: <a class="el" href="max30102_8cpp.html">max30102.cpp</a> Description: This module is an embedded controller driver for the MAX30102</p> +<p>Revision History: <br/> + 1-18-2016 Rev 01.00 GL Initial release. <br/> + <hr/> +<p>This code follows the following naming conventions:</p> +<p>char ch_pmod_value char (array) s_pmod_s_string[16] float f_pmod_value int32_t n_pmod_value int32_t (array) an_pmod_value[16] int16_t w_pmod_value int16_t (array) aw_pmod_value[16] uint16_t uw_pmod_value uint16_t (array) auw_pmod_value[16] uint8_t uch_pmod_value uint8_t (array) auch_pmod_buffer[16] uint32_t un_pmod_value int32_t * pn_pmod_value <hr/> + +<p>Definition in file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> +</div><h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="a4113aeee76935425d8a557a79a4193df"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_init </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Initialize the MAX30102. </p> +<dl class="section user"><dt>Details</dt><dd>This function initializes the MAX30102</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00111">111</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a483073cbc9dbb7a5a2495ce2ae4fb968"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_read_fifo </td> + <td>(</td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_red_led</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_ir_led</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Read a set of samples from the MAX30102 FIFO register. </p> +<dl class="section user"><dt>Details</dt><dd>This function reads a set of samples from the MAX30102 FIFO register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[out]</td><td class="paramname">*pun_red_led</td><td>- pointer that stores the red LED reading data </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pun_ir_led</td><td>- pointer that stores the IR LED reading data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00154">154</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a0cd2c5a58e57ebbe8c9361384798331f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_read_reg </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_addr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>puch_data</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Read a MAX30102 register. </p> +<dl class="section user"><dt>Details</dt><dd>This function reads a MAX30102 register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_addr</td><td>- register address </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">puch_data</td><td>- pointer that stores the register data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00088">88</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a1df3bb178b66379a2975c56395c47d9b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_reset </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Reset the MAX30102. </p> +<dl class="section user"><dt>Details</dt><dd>This function resets the MAX30102</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00202">202</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a4c2ec1539c1ec8354cdaefe2c3bf48d6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_write_reg </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_addr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_data</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Write a value to a MAX30102 register. </p> +<dl class="section user"><dt>Details</dt><dd>This function writes a value to a MAX30102 register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_addr</td><td>- register address </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_data</td><td>- register data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00066">66</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="max30102_8cpp.html">max30102.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8cpp.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8cpp.js new file mode 100644 index 0000000000000000000000000000000000000000..1da6ec5f349b5ce1274e443a510bea2162986287 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8cpp.js @@ -0,0 +1,8 @@ +var max30102_8cpp = +[ + [ "maxim_max30102_init", "max30102_8cpp.html#a4113aeee76935425d8a557a79a4193df", null ], + [ "maxim_max30102_read_fifo", "max30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968", null ], + [ "maxim_max30102_read_reg", "max30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f", null ], + [ "maxim_max30102_reset", "max30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b", null ], + [ "maxim_max30102_write_reg", "max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8cpp_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8cpp_source.html new file mode 100644 index 0000000000000000000000000000000000000000..632f6602c2da32ea4eaea10468ea7438701c80aa --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8cpp_source.html @@ -0,0 +1,263 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/max30102.cpp Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('max30102_8cpp_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">max30102.cpp</div> </div> +</div><!--header--> +<div class="contents"> +<a href="max30102_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">/*******************************************************************************</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">*</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">* Permission is hereby granted, free of charge, to any person obtaining a</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">* copy of this software and associated documentation files (the "Software"),</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">* to deal in the Software without restriction, including without limitation</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">* the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">* and/or sell copies of the Software, and to permit persons to whom the</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">* Software is furnished to do so, subject to the following conditions:</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">*</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">* The above copyright notice and this permission notice shall be included</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">* in all copies or substantial portions of the Software.</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">*</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">* OTHER DEALINGS IN THE SOFTWARE.</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">*</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">* Except as contained in this notice, the name of Maxim Integrated</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">* Products, Inc. shall not be used except as stated in the Maxim Integrated</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">* Products, Inc. Branding Policy.</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">*</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">* The mere transfer of this software does not imply any licenses</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">* of trade secrets, proprietary technology, copyrights, patents,</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">* trademarks, maskwork rights, or any other form of intellectual</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">* property whatsoever. Maxim Integrated Products, Inc. retains all</span></div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">* ownership rights.</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">*******************************************************************************</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">*/</span></div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include "<a class="code" href="max30102_8h.html">max30102.h</a>"</span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include "<a class="code" href="_soft_i2_c_master_8h.html">SoftI2CMaster.h</a>"</span></div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#include "<a class="code" href="algorithm_8h.html">algorithm.h</a>"</span></div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div> +<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="max30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6"> 66</a></span> <span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(uint8_t uch_addr, uint8_t uch_data)</div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> {</div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span>(!<a class="code" href="_soft_i2_c_master_8h.html#a876a5d83cf8b5fa662b04a81657d8d30">i2c_start</a>(<a class="code" href="max30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">I2C_WRITE_ADDR</a>))</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span>(!<a class="code" href="_soft_i2_c_master_8h.html#a5abe73d680cae254aafa5227e6d87a13">i2c_write</a>(uch_addr))</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">if</span>(!<a class="code" href="_soft_i2_c_master_8h.html#a5abe73d680cae254aafa5227e6d87a13">i2c_write</a>(uch_data))</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="_soft_i2_c_master_8h.html#ad35d4e4f52ca74b503d5e5e1e0a3f5f3">i2c_stop</a>();</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }</div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div> +<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="max30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f"> 88</a></span> <span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(uint8_t uch_addr, uint8_t *puch_data)</div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> {</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">if</span>(!<a class="code" href="_soft_i2_c_master_8h.html#a876a5d83cf8b5fa662b04a81657d8d30">i2c_start</a>(<a class="code" href="max30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">I2C_WRITE_ADDR</a>))</div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span>(!<a class="code" href="_soft_i2_c_master_8h.html#a5abe73d680cae254aafa5227e6d87a13">i2c_write</a>(uch_addr))</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span>(!<a class="code" href="_soft_i2_c_master_8h.html#a68105c3bb259544bcc000c21b8e5d355">i2c_rep_start</a>(<a class="code" href="max30102_8h.html#a11a0148c64950f3315f38d957cd43d37">I2C_READ_ADDR</a>))</div> +<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>; </div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  *puch_data=<a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a>(<span class="keyword">true</span>);</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="_soft_i2_c_master_8h.html#ad35d4e4f52ca74b503d5e5e1e0a3f5f3">i2c_stop</a>();</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div> +<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="max30102_8h.html#a4113aeee76935425d8a557a79a4193df"> 111</a></span> <span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a4113aeee76935425d8a557a79a4193df" title="Initialize the MAX30102.">maxim_max30102_init</a>()</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> {</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="_soft_i2_c_master_8h.html#ad5dc48c57198db1ee444a61405d2ea3d">i2c_init</a>();</div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d">REG_INTR_ENABLE_1</a>,0xc0)) <span class="comment">// INTR setting</span></div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1">REG_INTR_ENABLE_2</a>,0x00))</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#aba8c69cb46224fb35783f5b60e75b115">REG_FIFO_WR_PTR</a>,0x00)) <span class="comment">//FIFO_WR_PTR[4:0]</span></div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707">REG_OVF_COUNTER</a>,0x00)) <span class="comment">//OVF_COUNTER[4:0]</span></div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f">REG_FIFO_RD_PTR</a>,0x00)) <span class="comment">//FIFO_RD_PTR[4:0]</span></div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca">REG_FIFO_CONFIG</a>,0x4f)) <span class="comment">//sample avg = 4, fifo rollover=false, fifo almost full = 17</span></div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f">REG_MODE_CONFIG</a>,0x03)) <span class="comment">//0x02 for Red only, 0x03 for SpO2 mode 0x07 multimode LED</span></div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#a38546015e987a72b8c9eb13228237dd0">REG_SPO2_CONFIG</a>,0x27)) <span class="comment">// SPO2_ADC range = 4096nA, SPO2 sample rate (100 Hz), LED pulseWidth (411uS)</span></div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  </div> +<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b">REG_LED1_PA</a>,0x24)) <span class="comment">//Choose value for ~ 7mA for LED1</span></div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21">REG_LED2_PA</a>,0x24)) <span class="comment">// Choose value for ~ 7mA for LED2</span></div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#a371750304ec49457d3d38f60428f8ff1">REG_PILOT_PA</a>,0x7f)) <span class="comment">// Choose value for ~ 25mA for Pilot LED</span></div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>; </div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }</div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#if defined(ARDUINO_AVR_UNO)</span></div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"></span><span class="comment">//Arduino Uno doesn't have enough SRAM to store 100 samples of IR led data and red led data in 32-bit format</span></div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment">//To solve this problem, 16-bit MSB of the sampled data will be truncated. Samples become 16-bit data.</span></div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>(uint16_t *pun_red_led, uint16_t *pun_ir_led)</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="max30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968"> 154</a></span> <span class="preprocessor"></span><span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>(uint32_t *pun_red_led, uint32_t *pun_ir_led)</div> +<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> {</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  uint32_t un_temp;</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  uint8_t uch_temp;</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  *pun_ir_led=0;</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  *pun_red_led=0;</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="max30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(<a class="code" href="max30102_8h.html#a7d161a2394a67a2176d549edb94f4191">REG_INTR_STATUS_1</a>, &uch_temp);</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="max30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(<a class="code" href="max30102_8h.html#a61d809a1e313a2787b23e96de9554c4a">REG_INTR_STATUS_2</a>, &uch_temp);</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">if</span>(!<a class="code" href="_soft_i2_c_master_8h.html#a876a5d83cf8b5fa662b04a81657d8d30">i2c_start</a>(<a class="code" href="max30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">I2C_WRITE_ADDR</a>))</div> +<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span>(!<a class="code" href="_soft_i2_c_master_8h.html#a5abe73d680cae254aafa5227e6d87a13">i2c_write</a>(<a class="code" href="max30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd">REG_FIFO_DATA</a>))</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span>(!<a class="code" href="_soft_i2_c_master_8h.html#a68105c3bb259544bcc000c21b8e5d355">i2c_rep_start</a>(<a class="code" href="max30102_8h.html#a11a0148c64950f3315f38d957cd43d37">I2C_READ_ADDR</a>))</div> +<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>; </div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  un_temp=<a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a>(<span class="keyword">false</span>);</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  un_temp<<=16;</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  *pun_red_led+=un_temp;</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  un_temp=<a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a>(<span class="keyword">false</span>);</div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  un_temp<<=8;</div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  *pun_red_led+=un_temp;</div> +<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  un_temp=<a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a>(<span class="keyword">false</span>);</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  *pun_red_led+=un_temp;</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  un_temp=<a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a>(<span class="keyword">false</span>);</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  un_temp<<=16;</div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  *pun_ir_led+=un_temp;</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  un_temp=<a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a>(<span class="keyword">false</span>);</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  un_temp<<=8;</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  *pun_ir_led+=un_temp;</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  un_temp=<a class="code" href="_soft_i2_c_master_8h.html#a717c8440b070832a7d3375cfd5a526ef">i2c_read</a>(<span class="keyword">true</span>);</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  *pun_ir_led+=un_temp;</div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="_soft_i2_c_master_8h.html#ad35d4e4f52ca74b503d5e5e1e0a3f5f3">i2c_stop</a>();</div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  *pun_red_led&=0x03FFFF; <span class="comment">//Mask MSB [23:18]</span></div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  *pun_ir_led&=0x03FFFF; <span class="comment">//Mask MSB [23:18]</span></div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> }</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div> +<div class="line"><a name="l00202"></a><span class="lineno"><a class="code" href="max30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd"> 202</a></span> <span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b" title="Reset the MAX30102.">maxim_max30102_reset</a>()</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> {</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">if</span>(!<a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(<a class="code" href="max30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f">REG_MODE_CONFIG</a>,0x40))</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> +<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>; </div> +<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="max30102_8cpp.html">max30102.cpp</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8h.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8h.html new file mode 100644 index 0000000000000000000000000000000000000000..3cb457be6fab9d29cf095ad58b935ff49b4dd2d4 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8h.html @@ -0,0 +1,741 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/max30102.h File Reference</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('max30102_8h.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="#define-members">Macros</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">max30102.h File Reference</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><code>#include <arduino.h></code><br/> +</div> +<p><a href="max30102_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> +Macros</h2></td></tr> +<tr class="memitem:a7978167075eb8954c1090fc7ce9647c6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a7978167075eb8954c1090fc7ce9647c6">I2C_WRITE_ADDR</a>   0xAE</td></tr> +<tr class="separator:a7978167075eb8954c1090fc7ce9647c6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a11a0148c64950f3315f38d957cd43d37"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a11a0148c64950f3315f38d957cd43d37">I2C_READ_ADDR</a>   0xAF</td></tr> +<tr class="separator:a11a0148c64950f3315f38d957cd43d37"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a7d161a2394a67a2176d549edb94f4191"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a7d161a2394a67a2176d549edb94f4191">REG_INTR_STATUS_1</a>   0x00</td></tr> +<tr class="separator:a7d161a2394a67a2176d549edb94f4191"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a61d809a1e313a2787b23e96de9554c4a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a61d809a1e313a2787b23e96de9554c4a">REG_INTR_STATUS_2</a>   0x01</td></tr> +<tr class="separator:a61d809a1e313a2787b23e96de9554c4a"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae07f3c26106a0a37b6eddd8d2653137d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d">REG_INTR_ENABLE_1</a>   0x02</td></tr> +<tr class="separator:ae07f3c26106a0a37b6eddd8d2653137d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab8d58d945ad576d492f669c7b9affbf1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1">REG_INTR_ENABLE_2</a>   0x03</td></tr> +<tr class="separator:ab8d58d945ad576d492f669c7b9affbf1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aba8c69cb46224fb35783f5b60e75b115"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#aba8c69cb46224fb35783f5b60e75b115">REG_FIFO_WR_PTR</a>   0x04</td></tr> +<tr class="separator:aba8c69cb46224fb35783f5b60e75b115"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af9c8026aa9a22fad4c22ee6b10613707"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707">REG_OVF_COUNTER</a>   0x05</td></tr> +<tr class="separator:af9c8026aa9a22fad4c22ee6b10613707"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3b9d75d4ac3cb579e8b46dea27f4303f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f">REG_FIFO_RD_PTR</a>   0x06</td></tr> +<tr class="separator:a3b9d75d4ac3cb579e8b46dea27f4303f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a05bf6ede83fa400eac4dd65788d996fd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd">REG_FIFO_DATA</a>   0x07</td></tr> +<tr class="separator:a05bf6ede83fa400eac4dd65788d996fd"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad1b1bbfe23c9461e0ae75b71b9f805ca"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca">REG_FIFO_CONFIG</a>   0x08</td></tr> +<tr class="separator:ad1b1bbfe23c9461e0ae75b71b9f805ca"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:accdea52b28f1bd3f4cd63d05ab12887f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f">REG_MODE_CONFIG</a>   0x09</td></tr> +<tr class="separator:accdea52b28f1bd3f4cd63d05ab12887f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a38546015e987a72b8c9eb13228237dd0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a38546015e987a72b8c9eb13228237dd0">REG_SPO2_CONFIG</a>   0x0A</td></tr> +<tr class="separator:a38546015e987a72b8c9eb13228237dd0"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5f3a6641b201203d41ed3d23b638a96b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b">REG_LED1_PA</a>   0x0C</td></tr> +<tr class="separator:a5f3a6641b201203d41ed3d23b638a96b"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a7df43b0f854c9caf2fe04ccdebb18d21"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21">REG_LED2_PA</a>   0x0D</td></tr> +<tr class="separator:a7df43b0f854c9caf2fe04ccdebb18d21"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a371750304ec49457d3d38f60428f8ff1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a371750304ec49457d3d38f60428f8ff1">REG_PILOT_PA</a>   0x10</td></tr> +<tr class="separator:a371750304ec49457d3d38f60428f8ff1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a9d333cff4d002cb1d09a319e6917bc5c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c">REG_MULTI_LED_CTRL1</a>   0x11</td></tr> +<tr class="separator:a9d333cff4d002cb1d09a319e6917bc5c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a05ed274928d49bb6ddd6def6e45fac10"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10">REG_MULTI_LED_CTRL2</a>   0x12</td></tr> +<tr class="separator:a05ed274928d49bb6ddd6def6e45fac10"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a579a9e43d89bdda85d9ccb206339d681"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a579a9e43d89bdda85d9ccb206339d681">REG_TEMP_INTR</a>   0x1F</td></tr> +<tr class="separator:a579a9e43d89bdda85d9ccb206339d681"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a5321d8a33f1225ab437032e0e8ecbb3d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d">REG_TEMP_FRAC</a>   0x20</td></tr> +<tr class="separator:a5321d8a33f1225ab437032e0e8ecbb3d"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad16bc92e2f92e516ca396214861a6379"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#ad16bc92e2f92e516ca396214861a6379">REG_TEMP_CONFIG</a>   0x21</td></tr> +<tr class="separator:ad16bc92e2f92e516ca396214861a6379"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a3d80b09e301a0155949b7c337ce5f5ab"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab">REG_PROX_INT_THRESH</a>   0x30</td></tr> +<tr class="separator:a3d80b09e301a0155949b7c337ce5f5ab"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a16f4b970762f7e8aa1f5c7a780a48c23"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23">REG_REV_ID</a>   0xFE</td></tr> +<tr class="separator:a16f4b970762f7e8aa1f5c7a780a48c23"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a46083d1b6d3e1d5f89b0f1598dc6d163"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163">REG_PART_ID</a>   0xFF</td></tr> +<tr class="separator:a46083d1b6d3e1d5f89b0f1598dc6d163"><td class="memSeparator" colspan="2"> </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:a4113aeee76935425d8a557a79a4193df"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a4113aeee76935425d8a557a79a4193df">maxim_max30102_init</a> ()</td></tr> +<tr class="memdesc:a4113aeee76935425d8a557a79a4193df"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the MAX30102. <a href="#a4113aeee76935425d8a557a79a4193df"></a><br/></td></tr> +<tr class="separator:a4113aeee76935425d8a557a79a4193df"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968">maxim_max30102_read_fifo</a> (uint32_t *pun_red_led, uint32_t *pun_ir_led)</td></tr> +<tr class="memdesc:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="mdescLeft"> </td><td class="mdescRight">Read a set of samples from the MAX30102 FIFO register. <a href="#a483073cbc9dbb7a5a2495ce2ae4fb968"></a><br/></td></tr> +<tr class="separator:a483073cbc9dbb7a5a2495ce2ae4fb968"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6">maxim_max30102_write_reg</a> (uint8_t uch_addr, uint8_t uch_data)</td></tr> +<tr class="memdesc:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="mdescLeft"> </td><td class="mdescRight">Write a value to a MAX30102 register. <a href="#a4c2ec1539c1ec8354cdaefe2c3bf48d6"></a><br/></td></tr> +<tr class="separator:a4c2ec1539c1ec8354cdaefe2c3bf48d6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a0cd2c5a58e57ebbe8c9361384798331f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f">maxim_max30102_read_reg</a> (uint8_t uch_addr, uint8_t *puch_data)</td></tr> +<tr class="memdesc:a0cd2c5a58e57ebbe8c9361384798331f"><td class="mdescLeft"> </td><td class="mdescRight">Read a MAX30102 register. <a href="#a0cd2c5a58e57ebbe8c9361384798331f"></a><br/></td></tr> +<tr class="separator:a0cd2c5a58e57ebbe8c9361384798331f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a94ab5935f6ce28aa5ce31aa842eb83dd"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="max30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd">maxim_max30102_reset</a> (void)</td></tr> +<tr class="memdesc:a94ab5935f6ce28aa5ce31aa842eb83dd"><td class="mdescLeft"> </td><td class="mdescRight">Reset the MAX30102. <a href="#a94ab5935f6ce28aa5ce31aa842eb83dd"></a><br/></td></tr> +<tr class="separator:a94ab5935f6ce28aa5ce31aa842eb83dd"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><pre class="fragment">****************************************************** +</pre><p>Project: MAXREFDES117# Filename: <a class="el" href="max30102_8h.html">max30102.h</a> Description: This module is an embedded controller driver header file for MAX30102</p> +<p>Revision History: <br/> + 1-18-2016 Rev 01.00 GL Initial release. <br/> + <hr/> +<p>This code follows the following naming conventions:</p> +<p>char ch_pmod_value char (array) s_pmod_s_string[16] float f_pmod_value int32_t n_pmod_value int32_t (array) an_pmod_value[16] int16_t w_pmod_value int16_t (array) aw_pmod_value[16] uint16_t uw_pmod_value uint16_t (array) auw_pmod_value[16] uint8_t uch_pmod_value uint8_t (array) auch_pmod_buffer[16] uint32_t un_pmod_value int32_t * pn_pmod_value <hr/> + +<p>Definition in file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> +</div><h2 class="groupheader">Macro Definition Documentation</h2> +<a class="anchor" id="a11a0148c64950f3315f38d957cd43d37"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_READ_ADDR   0xAF</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00067">67</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a7978167075eb8954c1090fc7ce9647c6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define I2C_WRITE_ADDR   0xAE</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00066">66</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ad1b1bbfe23c9461e0ae75b71b9f805ca"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_FIFO_CONFIG   0x08</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00078">78</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a05bf6ede83fa400eac4dd65788d996fd"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_FIFO_DATA   0x07</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00077">77</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a3b9d75d4ac3cb579e8b46dea27f4303f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_FIFO_RD_PTR   0x06</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00076">76</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="aba8c69cb46224fb35783f5b60e75b115"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_FIFO_WR_PTR   0x04</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00074">74</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ae07f3c26106a0a37b6eddd8d2653137d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_INTR_ENABLE_1   0x02</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00072">72</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ab8d58d945ad576d492f669c7b9affbf1"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_INTR_ENABLE_2   0x03</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00073">73</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a7d161a2394a67a2176d549edb94f4191"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_INTR_STATUS_1   0x00</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00070">70</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a61d809a1e313a2787b23e96de9554c4a"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_INTR_STATUS_2   0x01</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00071">71</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a5f3a6641b201203d41ed3d23b638a96b"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_LED1_PA   0x0C</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00081">81</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a7df43b0f854c9caf2fe04ccdebb18d21"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_LED2_PA   0x0D</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00082">82</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="accdea52b28f1bd3f4cd63d05ab12887f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_MODE_CONFIG   0x09</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00079">79</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a9d333cff4d002cb1d09a319e6917bc5c"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_MULTI_LED_CTRL1   0x11</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00084">84</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a05ed274928d49bb6ddd6def6e45fac10"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_MULTI_LED_CTRL2   0x12</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00085">85</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="af9c8026aa9a22fad4c22ee6b10613707"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_OVF_COUNTER   0x05</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00075">75</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a46083d1b6d3e1d5f89b0f1598dc6d163"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_PART_ID   0xFF</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00091">91</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a371750304ec49457d3d38f60428f8ff1"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_PILOT_PA   0x10</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00083">83</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a3d80b09e301a0155949b7c337ce5f5ab"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_PROX_INT_THRESH   0x30</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00089">89</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a16f4b970762f7e8aa1f5c7a780a48c23"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_REV_ID   0xFE</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00090">90</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a38546015e987a72b8c9eb13228237dd0"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_SPO2_CONFIG   0x0A</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00080">80</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="ad16bc92e2f92e516ca396214861a6379"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_TEMP_CONFIG   0x21</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00088">88</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a5321d8a33f1225ab437032e0e8ecbb3d"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_TEMP_FRAC   0x20</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00087">87</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<a class="anchor" id="a579a9e43d89bdda85d9ccb206339d681"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define REG_TEMP_INTR   0x1F</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Definition at line <a class="el" href="max30102_8h_source.html#l00086">86</a> of file <a class="el" href="max30102_8h_source.html">max30102.h</a>.</p> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a class="anchor" id="a4113aeee76935425d8a557a79a4193df"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_init </td> + <td>(</td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Initialize the MAX30102. </p> +<dl class="section user"><dt>Details</dt><dd>This function initializes the MAX30102</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00111">111</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a483073cbc9dbb7a5a2495ce2ae4fb968"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_read_fifo </td> + <td>(</td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_red_led</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>pun_ir_led</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Read a set of samples from the MAX30102 FIFO register. </p> +<dl class="section user"><dt>Details</dt><dd>This function reads a set of samples from the MAX30102 FIFO register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[out]</td><td class="paramname">*pun_red_led</td><td>- pointer that stores the red LED reading data </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">*pun_ir_led</td><td>- pointer that stores the IR LED reading data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00154">154</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a0cd2c5a58e57ebbe8c9361384798331f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_read_reg </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_addr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t * </td> + <td class="paramname"><em>puch_data</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Read a MAX30102 register. </p> +<dl class="section user"><dt>Details</dt><dd>This function reads a MAX30102 register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_addr</td><td>- register address </td></tr> + <tr><td class="paramdir">[out]</td><td class="paramname">puch_data</td><td>- pointer that stores the register data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00088">88</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a94ab5935f6ce28aa5ce31aa842eb83dd"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_reset </td> + <td>(</td> + <td class="paramtype">void </td> + <td class="paramname"></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Reset the MAX30102. </p> +<dl class="section user"><dt>Details</dt><dd>This function resets the MAX30102</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">None</td><td></td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00202">202</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +<a class="anchor" id="a4c2ec1539c1ec8354cdaefe2c3bf48d6"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool maxim_max30102_write_reg </td> + <td>(</td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_addr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint8_t </td> + <td class="paramname"><em>uch_data</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Write a value to a MAX30102 register. </p> +<dl class="section user"><dt>Details</dt><dd>This function writes a value to a MAX30102 register</dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_addr</td><td>- register address </td></tr> + <tr><td class="paramdir">[in]</td><td class="paramname">uch_data</td><td>- register data</td></tr> + </table> + </dd> +</dl> +<dl class="retval"><dt>Return values</dt><dd> + <table class="retval"> + <tr><td class="paramname">true</td><td>on success </td></tr> + </table> + </dd> +</dl> + +<p>Definition at line <a class="el" href="max30102_8cpp_source.html#l00066">66</a> of file <a class="el" href="max30102_8cpp_source.html">max30102.cpp</a>.</p> + +</div> +</div> +</div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="max30102_8h.html">max30102.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8h.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8h.js new file mode 100644 index 0000000000000000000000000000000000000000..c11d6e492f92c9e1399d5502390f251a8cfbf644 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8h.js @@ -0,0 +1,32 @@ +var max30102_8h = +[ + [ "I2C_READ_ADDR", "max30102_8h.html#a11a0148c64950f3315f38d957cd43d37", null ], + [ "I2C_WRITE_ADDR", "max30102_8h.html#a7978167075eb8954c1090fc7ce9647c6", null ], + [ "REG_FIFO_CONFIG", "max30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca", null ], + [ "REG_FIFO_DATA", "max30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd", null ], + [ "REG_FIFO_RD_PTR", "max30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f", null ], + [ "REG_FIFO_WR_PTR", "max30102_8h.html#aba8c69cb46224fb35783f5b60e75b115", null ], + [ "REG_INTR_ENABLE_1", "max30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d", null ], + [ "REG_INTR_ENABLE_2", "max30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1", null ], + [ "REG_INTR_STATUS_1", "max30102_8h.html#a7d161a2394a67a2176d549edb94f4191", null ], + [ "REG_INTR_STATUS_2", "max30102_8h.html#a61d809a1e313a2787b23e96de9554c4a", null ], + [ "REG_LED1_PA", "max30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b", null ], + [ "REG_LED2_PA", "max30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21", null ], + [ "REG_MODE_CONFIG", "max30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f", null ], + [ "REG_MULTI_LED_CTRL1", "max30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c", null ], + [ "REG_MULTI_LED_CTRL2", "max30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10", null ], + [ "REG_OVF_COUNTER", "max30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707", null ], + [ "REG_PART_ID", "max30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163", null ], + [ "REG_PILOT_PA", "max30102_8h.html#a371750304ec49457d3d38f60428f8ff1", null ], + [ "REG_PROX_INT_THRESH", "max30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab", null ], + [ "REG_REV_ID", "max30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23", null ], + [ "REG_SPO2_CONFIG", "max30102_8h.html#a38546015e987a72b8c9eb13228237dd0", null ], + [ "REG_TEMP_CONFIG", "max30102_8h.html#ad16bc92e2f92e516ca396214861a6379", null ], + [ "REG_TEMP_FRAC", "max30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d", null ], + [ "REG_TEMP_INTR", "max30102_8h.html#a579a9e43d89bdda85d9ccb206339d681", null ], + [ "maxim_max30102_init", "max30102_8h.html#a4113aeee76935425d8a557a79a4193df", null ], + [ "maxim_max30102_read_fifo", "max30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968", null ], + [ "maxim_max30102_read_reg", "max30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f", null ], + [ "maxim_max30102_reset", "max30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd", null ], + [ "maxim_max30102_write_reg", "max30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6", null ] +]; \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8h_source.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8h_source.html new file mode 100644 index 0000000000000000000000000000000000000000..e5e24e9d04c6c28a6f1ad819f2edf4b31a81bb40 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/max30102_8h_source.html @@ -0,0 +1,196 @@ +<!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"/> +<title>MAXREFDES117# Code Documentation: RD117_ARDUINO/max30102.h Source File</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); +</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" /> +</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="maxim-logo-1.jpg"/></td> + <td style="padding-left: 0.5em;"> + <div id="projectname">MAXREFDES117# Code Documentation +  <span id="projectnumber">V01.00</span> + </div> + <div id="projectbrief">Heart Rate / SpO2 Monitor</div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.8.2 --> +<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 Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="files.html"><span>Files</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 id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="files.html"><span>File List</span></a></li> + <li><a href="globals.html"><span>Globals</span></a></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('max30102_8h_source.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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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="headertitle"> +<div class="title">max30102.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="max30102_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> +<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">/*******************************************************************************</span></div> +<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.</span></div> +<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">*</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">* Permission is hereby granted, free of charge, to any person obtaining a</span></div> +<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">* copy of this software and associated documentation files (the "Software"),</span></div> +<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">* to deal in the Software without restriction, including without limitation</span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">* the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div> +<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">* and/or sell copies of the Software, and to permit persons to whom the</span></div> +<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">* Software is furnished to do so, subject to the following conditions:</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">*</span></div> +<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">* The above copyright notice and this permission notice shall be included</span></div> +<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">* in all copies or substantial portions of the Software.</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">*</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></div> +<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></div> +<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.</span></div> +<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES</span></div> +<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,</span></div> +<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR</span></div> +<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">* OTHER DEALINGS IN THE SOFTWARE.</span></div> +<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">*</span></div> +<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">* Except as contained in this notice, the name of Maxim Integrated</span></div> +<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">* Products, Inc. shall not be used except as stated in the Maxim Integrated</span></div> +<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">* Products, Inc. Branding Policy.</span></div> +<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">*</span></div> +<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">* The mere transfer of this software does not imply any licenses</span></div> +<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">* of trade secrets, proprietary technology, copyrights, patents,</span></div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">* trademarks, maskwork rights, or any other form of intellectual</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">* property whatsoever. Maxim Integrated Products, Inc. retains all</span></div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">* ownership rights.</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">*******************************************************************************</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">*/</span></div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#ifndef MAX30102_H_</span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"></span><span class="preprocessor">#define MAX30102_H_</span></div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include <arduino.h></span></div> +<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="max30102_8h.html#a7978167075eb8954c1090fc7ce9647c6"> 66</a></span> <span class="preprocessor">#define I2C_WRITE_ADDR 0xAE</span></div> +<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="max30102_8h.html#a11a0148c64950f3315f38d957cd43d37"> 67</a></span> <span class="preprocessor"></span><span class="preprocessor">#define I2C_READ_ADDR 0xAF</span></div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">//register addresses</span></div> +<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="max30102_8h.html#a7d161a2394a67a2176d549edb94f4191"> 70</a></span> <span class="preprocessor">#define REG_INTR_STATUS_1 0x00</span></div> +<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="max30102_8h.html#a61d809a1e313a2787b23e96de9554c4a"> 71</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_INTR_STATUS_2 0x01</span></div> +<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="max30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d"> 72</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_INTR_ENABLE_1 0x02</span></div> +<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="max30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1"> 73</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_INTR_ENABLE_2 0x03</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="max30102_8h.html#aba8c69cb46224fb35783f5b60e75b115"> 74</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_FIFO_WR_PTR 0x04</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="max30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707"> 75</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_OVF_COUNTER 0x05</span></div> +<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="max30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f"> 76</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_FIFO_RD_PTR 0x06</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="max30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd"> 77</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_FIFO_DATA 0x07</span></div> +<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="max30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca"> 78</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_FIFO_CONFIG 0x08</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="max30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f"> 79</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_MODE_CONFIG 0x09</span></div> +<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="max30102_8h.html#a38546015e987a72b8c9eb13228237dd0"> 80</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_SPO2_CONFIG 0x0A</span></div> +<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="max30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b"> 81</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_LED1_PA 0x0C</span></div> +<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="max30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21"> 82</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_LED2_PA 0x0D</span></div> +<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="max30102_8h.html#a371750304ec49457d3d38f60428f8ff1"> 83</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_PILOT_PA 0x10</span></div> +<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="max30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c"> 84</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_MULTI_LED_CTRL1 0x11</span></div> +<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="max30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10"> 85</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_MULTI_LED_CTRL2 0x12</span></div> +<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="max30102_8h.html#a579a9e43d89bdda85d9ccb206339d681"> 86</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_TEMP_INTR 0x1F</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="max30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d"> 87</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_TEMP_FRAC 0x20</span></div> +<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="max30102_8h.html#ad16bc92e2f92e516ca396214861a6379"> 88</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_TEMP_CONFIG 0x21</span></div> +<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="max30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab"> 89</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_PROX_INT_THRESH 0x30</span></div> +<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="max30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23"> 90</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_REV_ID 0xFE</span></div> +<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="max30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163"> 91</a></span> <span class="preprocessor"></span><span class="preprocessor">#define REG_PART_ID 0xFF</span></div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a4113aeee76935425d8a557a79a4193df" title="Initialize the MAX30102.">maxim_max30102_init</a>();</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#if defined(ARDUINO_AVR_UNO)</span></div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"></span><span class="comment">//Arduino Uno doesn't have enough SRAM to store 100 samples of IR led data and red led data in 32-bit format</span></div> +<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">//To solve this problem, 16-bit MSB of the sampled data will be truncated. Samples become 16-bit data.</span></div> +<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>(uint16_t *pun_red_led, uint16_t *pun_ir_led);</div> +<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#else</span></div> +<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"></span><span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968" title="Read a set of samples from the MAX30102 FIFO register.">maxim_max30102_read_fifo</a>(uint32_t *pun_red_led, uint32_t *pun_ir_led);</div> +<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="preprocessor"></span><span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6" title="Write a value to a MAX30102 register.">maxim_max30102_write_reg</a>(uint8_t uch_addr, uint8_t uch_data);</div> +<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f" title="Read a MAX30102 register.">maxim_max30102_read_reg</a>(uint8_t uch_addr, uint8_t *puch_data);</div> +<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">bool</span> <a class="code" href="max30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b" title="Reset the MAX30102.">maxim_max30102_reset</a>(<span class="keywordtype">void</span>);</div> +<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#endif </span><span class="comment">/* MAX30102_H_ */</span><span class="preprocessor"></span></div> +</div><!-- fragment --></div><!-- contents --> +</div><!-- doc-content --> +<!-- start footer part --> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + <li class="navelem"><a class="el" href="dir_1496e1f9c0637ae9073f7370a2521bf1.html">RD117_ARDUINO</a></li><li class="navelem"><a class="el" href="max30102_8h.html">max30102.h</a></li> + <li class="footer">Generated on Wed Jun 22 2016 14:49:28 for MAXREFDES117# Code Documentation by + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 </li> + </ul> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/maxim-logo-1.jpg b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/maxim-logo-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..083102ecef4b5608b525ddc239f2682c9c859c3b Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/maxim-logo-1.jpg differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/nav_f.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..f581216456977005702071ad33d083dabb964fea Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/nav_f.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/nav_g.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/nav_g.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/nav_h.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/nav_h.png new file mode 100644 index 0000000000000000000000000000000000000000..c6dce2b665186cd474316a0e1fd69f6101f399a5 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/nav_h.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/navtree.css b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/navtree.css new file mode 100644 index 0000000000000000000000000000000000000000..f42ab87866d88b2c166a8e713a224554c8feea17 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/navtree.css @@ -0,0 +1,143 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 300px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background:url("ftv2splitbar.png") repeat scroll right center transparent; + cursor:e-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #FAFCFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/navtree.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/navtree.js new file mode 100644 index 0000000000000000000000000000000000000000..0a9ec5768b230e4d85ecce646bfa65fa367cc329 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/navtree.js @@ -0,0 +1,519 @@ +var NAVTREE = +[ + [ "MAXREFDES117# Code Documentation", "index.html", [ + [ "Main Page", "index.html", null ], + [ "Files", null, [ + [ "File List", "files.html", "files" ], + [ "Globals", "globals.html", [ + [ "All", "globals.html", null ], + [ "Functions", "globals_func.html", null ], + [ "Variables", "globals_vars.html", null ], + [ "Macros", "globals_defs.html", null ] + ] ] + ] ] + ] ] +]; + +var NAVTREEINDEX = +[ +"_m_a_x30102_8cpp.html" +]; + +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; +var navTreeSubIndices = new Array(); + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + if (node.parentNode && node.parentNode.parentNode) { + createIndent(o,domNode,node.parentNode,level+1); + } + var imgNode = document.createElement("img"); + imgNode.width = 16; + imgNode.height = 22; + if (level==0 && node.childrenData) { + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2plastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2pnode.png"; + } + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + domNode.appendChild(imgNode); + } + if (level==0) { + if (node.isLast) { + if (node.childrenData) { + imgNode.src = node.relpath+"ftv2plastnode.png"; + } else { + imgNode.src = node.relpath+"ftv2lastnode.png"; + domNode.appendChild(imgNode); + } + } else { + if (node.childrenData) { + imgNode.src = node.relpath+"ftv2pnode.png"; + } else { + imgNode.src = node.relpath+"ftv2node.png"; + domNode.appendChild(imgNode); + } + } + } else { + if (node.isLast) { + imgNode.src = node.relpath+"ftv2blank.png"; + } else { + imgNode.src = node.relpath+"ftv2vertline.png"; + } + } + imgNode.border = "0"; +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath($(location).attr('pathname')); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : '#'; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var pos, anchor = $(aname), docContent = $('#doc-content'); + if (anchor.parent().attr('class')=='memItemLeft') { + pos = anchor.parent().position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + window.location.replace(aname); + }); + } + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var anchor = $($(location).attr('hash')); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+ + window.location.hash.substring(1)+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parents().slice(2).prop('tagName')=='TR') { + glowEffect(anchor.parents('div.memitem'),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).show(); + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+1<o.breadcrumbs.length) { + showNode(o,n,index+1,hash); + } else { + if (typeof(n.childrenData)==='string') { + var varName = n.childrenData; + getScript(n.relpath+varName,function(){ + n.childrenData = getData(varName); + node.expanded=false; + showNode(o,node,index,hash); // retry with child node expanded + },true); + } else { + var rootBase = stripPath(o.toroot.replace(/\..+$/, '')); + if (rootBase=="index" || rootBase=="pages") { + expandNode(o, n, true, true); + } + selectAndHighlight(hash,n); + } + } + } + } else { + selectAndHighlight(hash); + } +} + +function getNode(o, po) +{ + po.childrenVisited = true; + var l = po.childrenData.length-1; + for (var i in po.childrenData) { + var nodeData = po.childrenData[i]; + po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2], + i==l); + } +} + +function gotoNode(o,subIndex,root,hash,relpath) +{ + var nti = navTreeSubIndices[subIndex][root+hash]; + o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]); + if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index + navTo(o,NAVTREE[0][1],"",relpath); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + if (o.breadcrumbs) { + o.breadcrumbs.unshift(0); // add 0 for root node + showNode(o, o.node, 0, hash); + } +} + +function navTo(o,root,hash,relpath) +{ + var link = cachedLink(); + if (link) { + var parts = link.split('#'); + root = parts[0]; + if (parts.length>1) hash = '#'+parts[1]; + else hash=''; + } + if (root==NAVTREE[0][1]) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + //root=root.replace(/_source\./,'.'); // source link to doc link + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>'); +} + +function showSyncOn(n,relpath) +{ + n.html('<img src="'+relpath+'sync_on.png"/ title="'+SYNCONMSG+'">'); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash')); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("img"); + o.node.plus_img.src = relpath+"ftv2pnode.png"; + o.node.plus_img.width = 16; + o.node.plus_img.height = 22; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + navTo(o,toroot,window.location.hash,relpath); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath($(location).attr('pathname'))+':'+ + $(location).attr('hash').substring(1); + a=$('.item a[class$="'+clslink+'"]'); + } + if (a==null || !$(a).parent().parent().hasClass('selected')){ + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + var link=stripPath2($(location).attr('pathname')); + navTo(o,link,$(location).attr('hash'),relpath); + } + }) + + $(window).load(showRoot); +} + diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/navtreeindex0.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/navtreeindex0.js new file mode 100644 index 0000000000000000000000000000000000000000..44a969be42d7dc71075d8a2da1c1773d7a1e05b7 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/navtreeindex0.js @@ -0,0 +1,95 @@ +var NAVTREEINDEX0 = +{ +"_m_a_x30102_8cpp.html":[1,0,0,1,0], +"_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f":[1,0,0,1,0,3], +"_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b":[1,0,0,1,0,4], +"_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df":[1,0,0,1,0,1], +"_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968":[1,0,0,1,0,2], +"_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6":[1,0,0,1,0,5], +"_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976":[1,0,0,1,0,0], +"_m_a_x30102_8cpp_source.html":[1,0,0,1,0], +"_m_a_x30102_8h.html":[1,0,0,1,1], +"_m_a_x30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd":[1,0,0,1,1,3], +"_m_a_x30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10":[1,0,0,1,1,14], +"_m_a_x30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f":[1,0,0,1,1,26], +"_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37":[1,0,0,1,1,0], +"_m_a_x30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23":[1,0,0,1,1,19], +"_m_a_x30102_8h.html#a371750304ec49457d3d38f60428f8ff1":[1,0,0,1,1,17], +"_m_a_x30102_8h.html#a38546015e987a72b8c9eb13228237dd0":[1,0,0,1,1,20], +"_m_a_x30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f":[1,0,0,1,1,4], +"_m_a_x30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab":[1,0,0,1,1,18], +"_m_a_x30102_8h.html#a4113aeee76935425d8a557a79a4193df":[1,0,0,1,1,24], +"_m_a_x30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163":[1,0,0,1,1,16], +"_m_a_x30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968":[1,0,0,1,1,25], +"_m_a_x30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6":[1,0,0,1,1,28], +"_m_a_x30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d":[1,0,0,1,1,22], +"_m_a_x30102_8h.html#a579a9e43d89bdda85d9ccb206339d681":[1,0,0,1,1,23], +"_m_a_x30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b":[1,0,0,1,1,10], +"_m_a_x30102_8h.html#a61d809a1e313a2787b23e96de9554c4a":[1,0,0,1,1,9], +"_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6":[1,0,0,1,1,1], +"_m_a_x30102_8h.html#a7d161a2394a67a2176d549edb94f4191":[1,0,0,1,1,8], +"_m_a_x30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21":[1,0,0,1,1,11], +"_m_a_x30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd":[1,0,0,1,1,27], +"_m_a_x30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c":[1,0,0,1,1,13], +"_m_a_x30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1":[1,0,0,1,1,7], +"_m_a_x30102_8h.html#aba8c69cb46224fb35783f5b60e75b115":[1,0,0,1,1,5], +"_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f":[1,0,0,1,1,12], +"_m_a_x30102_8h.html#ad16bc92e2f92e516ca396214861a6379":[1,0,0,1,1,21], +"_m_a_x30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca":[1,0,0,1,1,2], +"_m_a_x30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d":[1,0,0,1,1,6], +"_m_a_x30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707":[1,0,0,1,1,15], +"_m_a_x30102_8h_source.html":[1,0,0,1,1], +"algorithm_8cpp.html":[1,0,0,0,0], +"algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9":[1,0,0,0,0,0], +"algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060":[1,0,0,0,0,5], +"algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6":[1,0,0,0,0,1], +"algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff":[1,0,0,0,0,4], +"algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf":[1,0,0,0,0,2], +"algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a":[1,0,0,0,0,3], +"algorithm_8cpp_source.html":[1,0,0,0,0], +"algorithm_8h.html":[1,0,0,0,1], +"algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929":[1,0,0,0,1,17], +"algorithm_8h.html#a2a4e5ddbe0e04c48b166f2ff176667a9":[1,0,0,0,1,8], +"algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119":[1,0,0,0,1,2], +"algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8":[1,0,0,0,1,3], +"algorithm_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7":[1,0,0,0,1,7], +"algorithm_8h.html#a44b6312f81810d4deb64071d12ab0060":[1,0,0,0,1,13], +"algorithm_8h.html#a62050365673e666cd0d661a3664c26e6":[1,0,0,0,1,9], +"algorithm_8h.html#a65e9886d74aaee76545e83dd09011727":[1,0,0,0,1,1], +"algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7":[1,0,0,0,1,0], +"algorithm_8h.html#a6cae46e51640b712afc2ebeefd2d51ff":[1,0,0,0,1,12], +"algorithm_8h.html#a72c76142c07186ae6d7200ec3c9a4f76":[1,0,0,0,1,16], +"algorithm_8h.html#a7d4e0b0915b58092f3b4bb2fbd252f3f":[1,0,0,0,1,15], +"algorithm_8h.html#aa03906cc2e2d27ef4f3fa4db4312b524":[1,0,0,0,1,4], +"algorithm_8h.html#aab95338e44281c269f0b9b0f529741bf":[1,0,0,0,1,10], +"algorithm_8h.html#abb702d8b501669a23aa0ab3b281b9384":[1,0,0,0,1,6], +"algorithm_8h.html#adc6be68be81530d67a25c1a9905bec3a":[1,0,0,0,1,11], +"algorithm_8h.html#adfeeb6b08271807492803acc50347108":[1,0,0,0,1,18], +"algorithm_8h.html#aea73b3b76ec2f4743e97452ee93c9cd2":[1,0,0,0,1,14], +"algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae":[1,0,0,0,1,5], +"algorithm_8h_source.html":[1,0,0,0,1], +"dir_19b53f07f52837a342947cc20e6d978f.html":[1,0,0,0], +"dir_70c5cd4c8bba287fe799894cc0903ca4.html":[1,0,0], +"dir_d4a9a7556cca61907ce453116086a23a.html":[1,0,0,1], +"files.html":[1,0], +"globals.html":[1,1,0], +"globals_defs.html":[1,1,3], +"globals_func.html":[1,1,1], +"globals_vars.html":[1,1,2], +"index.html":[], +"index.html":[0], +"main_8cpp.html":[1,0,0,2], +"main_8cpp.html#a07a24850120a56110cc2838d0afcafcf":[1,0,0,2,3], +"main_8cpp.html#a2134a5a06f0865c945543a1f07eba387":[1,0,0,2,0], +"main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024":[1,0,0,2,6], +"main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f":[1,0,0,2,7], +"main_8cpp.html#a43fb8ea97a26647405ca359095323280":[1,0,0,2,5], +"main_8cpp.html#a786e6c57c793d9af51360154ef90eb93":[1,0,0,2,9], +"main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753":[1,0,0,2,2], +"main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723":[1,0,0,2,4], +"main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6":[1,0,0,2,8], +"main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2":[1,0,0,2,10], +"main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[1,0,0,2,1], +"main_8cpp_source.html":[1,0,0,2], +"pages.html":[] +}; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/open.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/open.png new file mode 100644 index 0000000000000000000000000000000000000000..4455dd052b486c7eed671dd60c9c2d1d9a8ab540 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/open.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/resize.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/resize.js new file mode 100644 index 0000000000000000000000000000000000000000..9fe82ba9e18e81e6aab076352e55a0adde77d5cf --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/resize.js @@ -0,0 +1,93 @@ +var cookie_namespace = 'doxygen'; +var sidenav,navtree,content,header; + +function readCookie(cookie) +{ + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) + { + var index = document.cookie.indexOf(myCookie); + if (index != -1) + { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) + { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; +} + +function writeCookie(cookie, val, expiration) +{ + if (val==undefined) return; + if (expiration == null) + { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; +} + +function resizeWidth() +{ + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).width(); + content.css({marginLeft:parseInt(sidenavWidth)+6+"px"}); //account for 6px-wide handle-bar + writeCookie('width',sidenavWidth, null); +} + +function restoreWidth(navWidth) +{ + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+6+"px"}); + sidenav.css({width:navWidth + "px"}); +} + +function resizeHeight() +{ + var headerHeight = header.height(); + var footerHeight = footer.height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px",top: headerHeight+"px"}); +} + +function initResizable() +{ + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(window).resize(function() { resizeHeight(); }); + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(document).bind('touchmove',function(e){ + try { + var target = e.target; + while (target) { + if ($(target).css('-webkit-overflow-scrolling')=='touch') return; + target = target.parentNode; + } + e.preventDefault(); + } catch(err) { + e.preventDefault(); + } + }); +} + + diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_5f.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_5f.html new file mode 100644 index 0000000000000000000000000000000000000000..1f27755abcc456428727abe38488a4ca9fb20d05 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_5f.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_5f.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_5f.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_5f.js new file mode 100644 index 0000000000000000000000000000000000000000..f3cfc5f66d6117073117a2d7ab0ab49bd7f96ab3 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_5f.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['_5f_5fattribute_5f_5f',['__attribute__',['../_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9',1,'SoftI2CMaster.h']]], + ['_5f_5ftmp_5freg_5f_5f',['__tmp_reg__',['../_soft_i2_c_master_8h.html#a0e6fc492b674d6ccceccb06e3bbf907b',1,'SoftI2CMaster.h']]], + ['_5fsofti2c_5fh',['_SOFTI2C_H',['../_soft_i2_c_master_8h.html#a3bf497cc1d59d184775241e80a21085e',1,'SoftI2CMaster.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_61.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_61.html new file mode 100644 index 0000000000000000000000000000000000000000..a3164d5530cdc248dc6d84e7cd064b9c8e59c6ef --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_61.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_61.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_61.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_61.js new file mode 100644 index 0000000000000000000000000000000000000000..a33f3640678039e7379ae8d2611bc1ed5fb84758 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_61.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['algorithm_2ecpp',['algorithm.cpp',['../algorithm_8cpp.html',1,'']]], + ['algorithm_2eh',['algorithm.h',['../algorithm_8h.html',1,'']]], + ['aun_5fir_5fbuffer',['aun_ir_buffer',['../main_8cpp.html#a07a24850120a56110cc2838d0afcafcf',1,'main.cpp']]], + ['aun_5fred_5fbuffer',['aun_red_buffer',['../main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723',1,'main.cpp']]], + ['auw_5fhamm',['auw_hamm',['../algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_62.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_62.html new file mode 100644 index 0000000000000000000000000000000000000000..ee8871cb35abdbc961f286f534ac45ae99ea161e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_62.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_62.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_62.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_62.js new file mode 100644 index 0000000000000000000000000000000000000000..f2bb9345a6d353ad20b04ef8276a08fb1b72b126 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_62.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['buffer_5fsize',['BUFFER_SIZE',['../algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_63.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_63.html new file mode 100644 index 0000000000000000000000000000000000000000..56b5ad1e9ead06b8c8f91e4d657e194a6be9914c --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_63.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_63.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_63.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_63.js new file mode 100644 index 0000000000000000000000000000000000000000..4e7566ffc3a48b4678d57601a658c087fbadd7cd --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_63.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ch_5fhr_5fvalid',['ch_hr_valid',['../main_8cpp.html#a43fb8ea97a26647405ca359095323280',1,'main.cpp']]], + ['ch_5fspo2_5fvalid',['ch_spo2_valid',['../main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024',1,'main.cpp']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_66.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_66.html new file mode 100644 index 0000000000000000000000000000000000000000..3d1f8b35e895a9ae97f7ce9d58738a63445e0016 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_66.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_66.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_66.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_66.js new file mode 100644 index 0000000000000000000000000000000000000000..59ef048f53bba24bc28be5e4fb0c3ded5bb3089e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_66.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['false',['false',['../algorithm_8h.html#a65e9886d74aaee76545e83dd09011727',1,'algorithm.h']]], + ['fs',['FS',['../algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_67.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_67.html new file mode 100644 index 0000000000000000000000000000000000000000..41a459ae7d0420f919bcaa3df3f8917ca02183b6 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_67.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_67.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_67.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_67.js new file mode 100644 index 0000000000000000000000000000000000000000..efaa118b426229741c33670c63a380e55b5bdfb9 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_67.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['getbrightness',['getBrightness',['../class_adafruit___neo_pixel.html#a553bf1a0513094c73cb54a235f74ac7f',1,'Adafruit_NeoPixel']]], + ['getpixelcolor',['getPixelColor',['../class_adafruit___neo_pixel.html#a10a836ddc4ebd3e26b1e71a5875764fa',1,'Adafruit_NeoPixel']]], + ['getpixels',['getPixels',['../class_adafruit___neo_pixel.html#a18bc91d2bad52cf603814d4df6f33067',1,'Adafruit_NeoPixel']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_68.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_68.html new file mode 100644 index 0000000000000000000000000000000000000000..6df9097825df498059783b5dd705406fb92cbdb0 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_68.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_68.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_68.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_68.js new file mode 100644 index 0000000000000000000000000000000000000000..75625372ddd744b30eb31e259e77aa2eac0f427e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_68.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hamming_5fsize',['HAMMING_SIZE',['../algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8',1,'algorithm.h']]], + ['hr_5ffifo_5fsize',['HR_FIFO_SIZE',['../algorithm_8h.html#aa03906cc2e2d27ef4f3fa4db4312b524',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_69.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_69.html new file mode 100644 index 0000000000000000000000000000000000000000..1a00b554d45d8e53dc52802b19d7140c75ec6035 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_69.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_69.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_69.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_69.js new file mode 100644 index 0000000000000000000000000000000000000000..1d3b12d6047714e7eda957d0ef1a337019ca8764 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_69.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['i2c',['i2c',['../_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976',1,'MAX30102.cpp']]], + ['i2c_5fread_5faddr',['I2C_READ_ADDR',['../_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37',1,'MAX30102.h']]], + ['i2c_5fwrite_5faddr',['I2C_WRITE_ADDR',['../_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6',1,'MAX30102.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6c.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6c.html new file mode 100644 index 0000000000000000000000000000000000000000..f6383cc2277076c6a62635811a54437b30789441 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6c.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_6c.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6c.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6c.js new file mode 100644 index 0000000000000000000000000000000000000000..7f8b68c5d9cb434a8ecb53f682e6df4c47a05cd7 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['loop',['loop',['../_r_d117___a_r_d_u_i_n_o_8ino.html#afe461d27b9c48d5921c00d521181f12f',1,'RD117_ARDUINO.ino']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6d.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6d.html new file mode 100644 index 0000000000000000000000000000000000000000..2e27d4d647dae6ee0838633ee1d10ca2f3486c7d --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6d.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_6d.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6d.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6d.js new file mode 100644 index 0000000000000000000000000000000000000000..e9b1cb8aade5d247cc2c66c1fa713107cefaabba --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6d.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['main_20page',['Main Page',['../index.html',1,'']]], + ['ma4_5fsize',['MA4_SIZE',['../algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae',1,'algorithm.h']]], + ['main',['main',['../main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main.cpp']]], + ['main_2ecpp',['main.cpp',['../main_8cpp.html',1,'']]], + ['max30102_2ecpp',['MAX30102.cpp',['../_m_a_x30102_8cpp.html',1,'']]], + ['max30102_2eh',['MAX30102.h',['../_m_a_x30102_8h.html',1,'']]], + ['max_5fbrightness',['MAX_BRIGHTNESS',['../main_8cpp.html#a2134a5a06f0865c945543a1f07eba387',1,'main.cpp']]], + ['maxim_5ffind_5fpeaks',['maxim_find_peaks',['../algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9',1,'maxim_find_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num): algorithm.cpp'],['../algorithm_8h.html#a2a4e5ddbe0e04c48b166f2ff176667a9',1,'maxim_find_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num): algorithm.cpp']]], + ['maxim_5fheart_5frate_5fand_5foxygen_5fsaturation',['maxim_heart_rate_and_oxygen_saturation',['../algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6',1,'maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer, int32_t n_ir_buffer_length, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid, int32_t *pn_heart_rate, int8_t *pch_hr_valid): algorithm.cpp'],['../algorithm_8h.html#a62050365673e666cd0d661a3664c26e6',1,'maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer, int32_t n_ir_buffer_length, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid, int32_t *pn_heart_rate, int8_t *pch_hr_valid): algorithm.cpp']]], + ['maxim_5fmax30102_5finit',['maxim_max30102_init',['../_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df',1,'maxim_max30102_init(): MAX30102.cpp'],['../_m_a_x30102_8h.html#a4113aeee76935425d8a557a79a4193df',1,'maxim_max30102_init(): MAX30102.cpp']]], + ['maxim_5fmax30102_5fread_5ffifo',['maxim_max30102_read_fifo',['../_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968',1,'maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led): MAX30102.cpp'],['../_m_a_x30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968',1,'maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led): MAX30102.cpp']]], + ['maxim_5fmax30102_5fread_5freg',['maxim_max30102_read_reg',['../_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f',1,'maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data): MAX30102.cpp'],['../_m_a_x30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f',1,'maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data): MAX30102.cpp']]], + ['maxim_5fmax30102_5freset',['maxim_max30102_reset',['../_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b',1,'maxim_max30102_reset(): MAX30102.cpp'],['../_m_a_x30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd',1,'maxim_max30102_reset(void): MAX30102.cpp']]], + ['maxim_5fmax30102_5fwrite_5freg',['maxim_max30102_write_reg',['../_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6',1,'maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data): MAX30102.cpp'],['../_m_a_x30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6',1,'maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data): MAX30102.cpp']]], + ['maxim_5fpeaks_5fabove_5fmin_5fheight',['maxim_peaks_above_min_height',['../algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf',1,'maxim_peaks_above_min_height(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height): algorithm.cpp'],['../algorithm_8h.html#aab95338e44281c269f0b9b0f529741bf',1,'maxim_peaks_above_min_height(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height): algorithm.cpp']]], + ['maxim_5fremove_5fclose_5fpeaks',['maxim_remove_close_peaks',['../algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a',1,'maxim_remove_close_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance): algorithm.cpp'],['../algorithm_8h.html#adc6be68be81530d67a25c1a9905bec3a',1,'maxim_remove_close_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance): algorithm.cpp']]], + ['maxim_5fsort_5fascend',['maxim_sort_ascend',['../algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff',1,'maxim_sort_ascend(int32_t *pn_x, int32_t n_size): algorithm.cpp'],['../algorithm_8h.html#a6cae46e51640b712afc2ebeefd2d51ff',1,'maxim_sort_ascend(int32_t *pn_x, int32_t n_size): algorithm.cpp']]], + ['maxim_5fsort_5findices_5fdescend',['maxim_sort_indices_descend',['../algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060',1,'maxim_sort_indices_descend(int32_t *pn_x, int32_t *pn_indx, int32_t n_size): algorithm.cpp'],['../algorithm_8h.html#a44b6312f81810d4deb64071d12ab0060',1,'maxim_sort_indices_descend(int32_t *pn_x, int32_t *pn_indx, int32_t n_size): algorithm.cpp']]], + ['min',['min',['../algorithm_8h.html#abb702d8b501669a23aa0ab3b281b9384',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6e.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6e.html new file mode 100644 index 0000000000000000000000000000000000000000..1f92ee5b62466491d31e77844835cb305a6315e4 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6e.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_6e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6e.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6e.js new file mode 100644 index 0000000000000000000000000000000000000000..31433021eca5d3c7dbbfa4172d2fc25d7076a8d8 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_6e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['n_5fheart_5frate',['n_heart_rate',['../main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f',1,'main.cpp']]], + ['n_5fir_5fbuffer_5flength',['n_ir_buffer_length',['../main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6',1,'main.cpp']]], + ['n_5fsp02',['n_sp02',['../main_8cpp.html#a786e6c57c793d9af51360154ef90eb93',1,'main.cpp']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_70.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_70.html new file mode 100644 index 0000000000000000000000000000000000000000..0340151b687e33841f2e19bd1abc17b116c4313c --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_70.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_70.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_70.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_70.js new file mode 100644 index 0000000000000000000000000000000000000000..95bca2eecb2fe407322ca3eec7b8cd1aed1b474e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_70.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pc',['pc',['../main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753',1,'main.cpp']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_72.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_72.html new file mode 100644 index 0000000000000000000000000000000000000000..0ab18d65fecb495568c4d6cc60bea40dfd0c20c6 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_72.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_72.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_72.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_72.js new file mode 100644 index 0000000000000000000000000000000000000000..e29e58959503e0b6630d3f06bcdee130b5307902 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_72.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['reg_5ffifo_5fconfig',['REG_FIFO_CONFIG',['../_m_a_x30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca',1,'MAX30102.h']]], + ['reg_5ffifo_5fdata',['REG_FIFO_DATA',['../_m_a_x30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd',1,'MAX30102.h']]], + ['reg_5ffifo_5frd_5fptr',['REG_FIFO_RD_PTR',['../_m_a_x30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f',1,'MAX30102.h']]], + ['reg_5ffifo_5fwr_5fptr',['REG_FIFO_WR_PTR',['../_m_a_x30102_8h.html#aba8c69cb46224fb35783f5b60e75b115',1,'MAX30102.h']]], + ['reg_5fintr_5fenable_5f1',['REG_INTR_ENABLE_1',['../_m_a_x30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d',1,'MAX30102.h']]], + ['reg_5fintr_5fenable_5f2',['REG_INTR_ENABLE_2',['../_m_a_x30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1',1,'MAX30102.h']]], + ['reg_5fintr_5fstatus_5f1',['REG_INTR_STATUS_1',['../_m_a_x30102_8h.html#a7d161a2394a67a2176d549edb94f4191',1,'MAX30102.h']]], + ['reg_5fintr_5fstatus_5f2',['REG_INTR_STATUS_2',['../_m_a_x30102_8h.html#a61d809a1e313a2787b23e96de9554c4a',1,'MAX30102.h']]], + ['reg_5fled1_5fpa',['REG_LED1_PA',['../_m_a_x30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b',1,'MAX30102.h']]], + ['reg_5fled2_5fpa',['REG_LED2_PA',['../_m_a_x30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21',1,'MAX30102.h']]], + ['reg_5fmode_5fconfig',['REG_MODE_CONFIG',['../_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f',1,'MAX30102.h']]], + ['reg_5fmulti_5fled_5fctrl1',['REG_MULTI_LED_CTRL1',['../_m_a_x30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c',1,'MAX30102.h']]], + ['reg_5fmulti_5fled_5fctrl2',['REG_MULTI_LED_CTRL2',['../_m_a_x30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10',1,'MAX30102.h']]], + ['reg_5fovf_5fcounter',['REG_OVF_COUNTER',['../_m_a_x30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707',1,'MAX30102.h']]], + ['reg_5fpart_5fid',['REG_PART_ID',['../_m_a_x30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163',1,'MAX30102.h']]], + ['reg_5fpilot_5fpa',['REG_PILOT_PA',['../_m_a_x30102_8h.html#a371750304ec49457d3d38f60428f8ff1',1,'MAX30102.h']]], + ['reg_5fprox_5fint_5fthresh',['REG_PROX_INT_THRESH',['../_m_a_x30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab',1,'MAX30102.h']]], + ['reg_5frev_5fid',['REG_REV_ID',['../_m_a_x30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23',1,'MAX30102.h']]], + ['reg_5fspo2_5fconfig',['REG_SPO2_CONFIG',['../_m_a_x30102_8h.html#a38546015e987a72b8c9eb13228237dd0',1,'MAX30102.h']]], + ['reg_5ftemp_5fconfig',['REG_TEMP_CONFIG',['../_m_a_x30102_8h.html#ad16bc92e2f92e516ca396214861a6379',1,'MAX30102.h']]], + ['reg_5ftemp_5ffrac',['REG_TEMP_FRAC',['../_m_a_x30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d',1,'MAX30102.h']]], + ['reg_5ftemp_5fintr',['REG_TEMP_INTR',['../_m_a_x30102_8h.html#a579a9e43d89bdda85d9ccb206339d681',1,'MAX30102.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_73.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_73.html new file mode 100644 index 0000000000000000000000000000000000000000..1ec8f174deb7d3393d75bfa7c6566605014312a4 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_73.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_73.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_73.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_73.js new file mode 100644 index 0000000000000000000000000000000000000000..56bb31333923404facb0da3a4647389783c51b44 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_73.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['scl_5fddr',['SCL_DDR',['../_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b',1,'SoftI2CMaster.h']]], + ['scl_5fin',['SCL_IN',['../_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49',1,'SoftI2CMaster.h']]], + ['scl_5fout',['SCL_OUT',['../_soft_i2_c_master_8h.html#a07204a69a1872edbb272cde4d0c1e23f',1,'SoftI2CMaster.h']]], + ['sda_5fddr',['SDA_DDR',['../_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653',1,'SoftI2CMaster.h']]], + ['sda_5fin',['SDA_IN',['../_soft_i2_c_master_8h.html#ac4b553fc156d15aeeeaaf6cfe7695c83',1,'SoftI2CMaster.h']]], + ['sda_5fout',['SDA_OUT',['../_soft_i2_c_master_8h.html#ae154abbe60d159b6f4951ade68cc5fae',1,'SoftI2CMaster.h']]], + ['setbrightness',['setBrightness',['../class_adafruit___neo_pixel.html#afa1740af1d8eec971eada06d53901c53',1,'Adafruit_NeoPixel']]], + ['setpin',['setPin',['../class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b',1,'Adafruit_NeoPixel']]], + ['setpixelcolor',['setPixelColor',['../class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1',1,'Adafruit_NeoPixel::setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b)'],['../class_adafruit___neo_pixel.html#a35eda2252e3ed976a11d35cb8f4b2e41',1,'Adafruit_NeoPixel::setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w)'],['../class_adafruit___neo_pixel.html#abbf243cce591dc37be507cf173485bc8',1,'Adafruit_NeoPixel::setPixelColor(uint16_t n, uint32_t c)']]], + ['setup',['setup',['../_r_d117___a_r_d_u_i_n_o_8ino.html#a4fc01d736fe50cf5b977f755b675f11d',1,'RD117_ARDUINO.ino']]], + ['show',['show',['../class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7',1,'Adafruit_NeoPixel']]], + ['softi2cmaster_2eh',['SoftI2CMaster.h',['../_soft_i2_c_master_8h.html',1,'']]], + ['softi2dmaster_5fh_5f',['SOFTI2DMASTER_H_',['../_soft_i2_c_master_8h.html#ae00bf2b1fa56ce97ea467dc60682022c',1,'SoftI2CMaster.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_74.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_74.html new file mode 100644 index 0000000000000000000000000000000000000000..fdc6589d017af1eaae56465f8461f3a41d16f418 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_74.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_74.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_74.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_74.js new file mode 100644 index 0000000000000000000000000000000000000000..549c70c68c7b4c582ff25e15b4a0b37bc6af7719 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['true',['true',['../algorithm_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_75.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_75.html new file mode 100644 index 0000000000000000000000000000000000000000..ab8455ed502f599d05fde18b860cf67e4a17d04b --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_75.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_75.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_75.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_75.js new file mode 100644 index 0000000000000000000000000000000000000000..48a3fb1a5b44bdcb034cf32fdf0db89acbd038fd --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_75.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['uch_5fdummy',['uch_dummy',['../main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2',1,'main.cpp']]], + ['uch_5fspo2_5ftable',['uch_spo2_table',['../algorithm_8h.html#adfeeb6b08271807492803acc50347108',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_7e.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_7e.html new file mode 100644 index 0000000000000000000000000000000000000000..63512c6f9e3dc8030a4ad8a19880f8ba8365ba94 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_7e.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="all_7e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_7e.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_7e.js new file mode 100644 index 0000000000000000000000000000000000000000..5d71164d25f93f92bdcde53513542c0fa554f305 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/all_7e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7eadafruit_5fneopixel',['~Adafruit_NeoPixel',['../class_adafruit___neo_pixel.html#a16d970aa16f9d0128800346f4ca567db',1,'Adafruit_NeoPixel']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/classes_61.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/classes_61.html new file mode 100644 index 0000000000000000000000000000000000000000..85e5d72a38502d3ec4993e9bb8407912e1662029 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/classes_61.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="classes_61.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/classes_61.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/classes_61.js new file mode 100644 index 0000000000000000000000000000000000000000..433c370498efebf3fc9c83ba400ef2dd27f70377 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/classes_61.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['adafruit_5fneopixel',['Adafruit_NeoPixel',['../class_adafruit___neo_pixel.html',1,'']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/close.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/close.png new file mode 100644 index 0000000000000000000000000000000000000000..9342d3dfeea7b7c4ee610987e717804b5a42ceb9 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/close.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_5f.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_5f.html new file mode 100644 index 0000000000000000000000000000000000000000..548a824972fe413793129fba64fb778f2095a586 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_5f.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_5f.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_5f.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_5f.js new file mode 100644 index 0000000000000000000000000000000000000000..0a63cad635e06dafb61108fc455a74e07ad52dc8 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_5f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_5f_5ftmp_5freg_5f_5f',['__tmp_reg__',['../_soft_i2_c_master_8h.html#a0e6fc492b674d6ccceccb06e3bbf907b',1,'SoftI2CMaster.h']]], + ['_5fsofti2c_5fh',['_SOFTI2C_H',['../_soft_i2_c_master_8h.html#a3bf497cc1d59d184775241e80a21085e',1,'SoftI2CMaster.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_62.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_62.html new file mode 100644 index 0000000000000000000000000000000000000000..48009dac43867a81cf2a589e8bbce20058eaf776 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_62.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_62.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_62.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_62.js new file mode 100644 index 0000000000000000000000000000000000000000..f2bb9345a6d353ad20b04ef8276a08fb1b72b126 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_62.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['buffer_5fsize',['BUFFER_SIZE',['../algorithm_8h.html#a6b20d41d6252e9871430c242cb1a56e7',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_66.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_66.html new file mode 100644 index 0000000000000000000000000000000000000000..4ddd13f0ec4a1fa1be86a9b351aa236850dd841e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_66.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_66.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_66.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_66.js new file mode 100644 index 0000000000000000000000000000000000000000..59ef048f53bba24bc28be5e4fb0c3ded5bb3089e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_66.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['false',['false',['../algorithm_8h.html#a65e9886d74aaee76545e83dd09011727',1,'algorithm.h']]], + ['fs',['FS',['../algorithm_8h.html#a30588c5eca7c9cb6ebba02a0236f0119',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_68.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_68.html new file mode 100644 index 0000000000000000000000000000000000000000..43d93b87be51e6ad466f60ce1ac2fbf64e0a88ae --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_68.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_68.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_68.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_68.js new file mode 100644 index 0000000000000000000000000000000000000000..75625372ddd744b30eb31e259e77aa2eac0f427e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_68.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hamming_5fsize',['HAMMING_SIZE',['../algorithm_8h.html#a35be9e52c9110f5d91a4064e2f7b73c8',1,'algorithm.h']]], + ['hr_5ffifo_5fsize',['HR_FIFO_SIZE',['../algorithm_8h.html#aa03906cc2e2d27ef4f3fa4db4312b524',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_69.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_69.html new file mode 100644 index 0000000000000000000000000000000000000000..ebf00b8a06389c28cad6aa46a4e420ac5f75f210 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_69.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_69.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_69.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_69.js new file mode 100644 index 0000000000000000000000000000000000000000..9d3ea8d2b66defc5fe588a66e8ba4e43e17018c6 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_69.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['i2c_5fread_5faddr',['I2C_READ_ADDR',['../_m_a_x30102_8h.html#a11a0148c64950f3315f38d957cd43d37',1,'MAX30102.h']]], + ['i2c_5fwrite_5faddr',['I2C_WRITE_ADDR',['../_m_a_x30102_8h.html#a7978167075eb8954c1090fc7ce9647c6',1,'MAX30102.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6d.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6d.html new file mode 100644 index 0000000000000000000000000000000000000000..d2827022a50f045c07886a894b6845965407de35 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6d.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_6d.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6d.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6d.js new file mode 100644 index 0000000000000000000000000000000000000000..3fb637229725dd51c04f8fd89467fdf6a778e88a --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['ma4_5fsize',['MA4_SIZE',['../algorithm_8h.html#af8c3cbac49a22022b17cc7b34d42cbae',1,'algorithm.h']]], + ['max_5fbrightness',['MAX_BRIGHTNESS',['../main_8cpp.html#a2134a5a06f0865c945543a1f07eba387',1,'main.cpp']]], + ['min',['min',['../algorithm_8h.html#abb702d8b501669a23aa0ab3b281b9384',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6e.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6e.html new file mode 100644 index 0000000000000000000000000000000000000000..5b7f68f3280ab8fa6234e4e06c26a4c9d556d8af --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6e.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_6e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6e.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6e.js new file mode 100644 index 0000000000000000000000000000000000000000..a9f96cdac21367146d44278a6ee3ad9f19a46b6b --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_6e.js @@ -0,0 +1,35 @@ +var searchData= +[ + ['neo_5fbgr',['NEO_BGR',['../_adafruit___neo_pixel_8h.html#a9129664a08911b56227dd641116f105f',1,'Adafruit_NeoPixel.h']]], + ['neo_5fbgrw',['NEO_BGRW',['../_adafruit___neo_pixel_8h.html#a5b49f89982b6e60d20f7aaab79030d54',1,'Adafruit_NeoPixel.h']]], + ['neo_5fbgwr',['NEO_BGWR',['../_adafruit___neo_pixel_8h.html#a143de1c7084e1f833beecbdae00b321c',1,'Adafruit_NeoPixel.h']]], + ['neo_5fbrg',['NEO_BRG',['../_adafruit___neo_pixel_8h.html#afde6ec00a4ec8fad0267ae1a6689379e',1,'Adafruit_NeoPixel.h']]], + ['neo_5fbrgw',['NEO_BRGW',['../_adafruit___neo_pixel_8h.html#aad617c46d4a64cd4ec8d0ed1a0f30073',1,'Adafruit_NeoPixel.h']]], + ['neo_5fbrwg',['NEO_BRWG',['../_adafruit___neo_pixel_8h.html#a4b4571bfc0a3ebfb4720ce4e5fbe9acf',1,'Adafruit_NeoPixel.h']]], + ['neo_5fbwgr',['NEO_BWGR',['../_adafruit___neo_pixel_8h.html#a2595b8689ce5bd39634d017620ae57b8',1,'Adafruit_NeoPixel.h']]], + ['neo_5fbwrg',['NEO_BWRG',['../_adafruit___neo_pixel_8h.html#aaf438f131d0fa8a0be6791a553145860',1,'Adafruit_NeoPixel.h']]], + ['neo_5fgbr',['NEO_GBR',['../_adafruit___neo_pixel_8h.html#abca04ce54125372080f2fbf2afdcf027',1,'Adafruit_NeoPixel.h']]], + ['neo_5fgbrw',['NEO_GBRW',['../_adafruit___neo_pixel_8h.html#af60d024b8f8954960e59056c57520080',1,'Adafruit_NeoPixel.h']]], + ['neo_5fgbwr',['NEO_GBWR',['../_adafruit___neo_pixel_8h.html#a20be9abdf372b9c71d9fdacc3e6a9d1a',1,'Adafruit_NeoPixel.h']]], + ['neo_5fgrb',['NEO_GRB',['../_adafruit___neo_pixel_8h.html#a95d0d6b0a1f52bc72d9dcea2b3a48e3f',1,'Adafruit_NeoPixel.h']]], + ['neo_5fgrbw',['NEO_GRBW',['../_adafruit___neo_pixel_8h.html#a722066abc60b560235b3b22082c2e68e',1,'Adafruit_NeoPixel.h']]], + ['neo_5fgrwb',['NEO_GRWB',['../_adafruit___neo_pixel_8h.html#a35a185ff488486a74745e9094892558c',1,'Adafruit_NeoPixel.h']]], + ['neo_5fgwbr',['NEO_GWBR',['../_adafruit___neo_pixel_8h.html#aaaaa406f36f1c596526579944ca7043d',1,'Adafruit_NeoPixel.h']]], + ['neo_5fgwrb',['NEO_GWRB',['../_adafruit___neo_pixel_8h.html#aa29b3544b4257e851de2e214894d1236',1,'Adafruit_NeoPixel.h']]], + ['neo_5fkhz400',['NEO_KHZ400',['../_adafruit___neo_pixel_8h.html#a9c4067fd0cceb0432d1758fc07ede469',1,'Adafruit_NeoPixel.h']]], + ['neo_5fkhz800',['NEO_KHZ800',['../_adafruit___neo_pixel_8h.html#a475fef7028a743310aa4311a97899d5d',1,'Adafruit_NeoPixel.h']]], + ['neo_5frbg',['NEO_RBG',['../_adafruit___neo_pixel_8h.html#a7d6aaa56c8e2603312cba8dbdf9c5661',1,'Adafruit_NeoPixel.h']]], + ['neo_5frbgw',['NEO_RBGW',['../_adafruit___neo_pixel_8h.html#a198dc192119c166c544efc3e89fdd1cd',1,'Adafruit_NeoPixel.h']]], + ['neo_5frbwg',['NEO_RBWG',['../_adafruit___neo_pixel_8h.html#a7b6b551a990b498bed36aadba4a498d5',1,'Adafruit_NeoPixel.h']]], + ['neo_5frgb',['NEO_RGB',['../_adafruit___neo_pixel_8h.html#aa4f80df5ab240d93359f40956462f758',1,'Adafruit_NeoPixel.h']]], + ['neo_5frgbw',['NEO_RGBW',['../_adafruit___neo_pixel_8h.html#a71f7c6e45f4c63fceca6b5b73c7a7c9d',1,'Adafruit_NeoPixel.h']]], + ['neo_5frgwb',['NEO_RGWB',['../_adafruit___neo_pixel_8h.html#abcce73b2eafdf1bb331a8f02fba95d10',1,'Adafruit_NeoPixel.h']]], + ['neo_5frwbg',['NEO_RWBG',['../_adafruit___neo_pixel_8h.html#a9254ebc9367c071457d0321f64c9d5fa',1,'Adafruit_NeoPixel.h']]], + ['neo_5frwgb',['NEO_RWGB',['../_adafruit___neo_pixel_8h.html#a122c6bb3e44525d2f975dcd89b094267',1,'Adafruit_NeoPixel.h']]], + ['neo_5fwbgr',['NEO_WBGR',['../_adafruit___neo_pixel_8h.html#a015eeccbf1bd19907c34d7b39b63bb84',1,'Adafruit_NeoPixel.h']]], + ['neo_5fwbrg',['NEO_WBRG',['../_adafruit___neo_pixel_8h.html#a3eed3aeba511a2478a1ee8c17516732b',1,'Adafruit_NeoPixel.h']]], + ['neo_5fwgbr',['NEO_WGBR',['../_adafruit___neo_pixel_8h.html#af722c80d41894df25c363b9ebf371b4e',1,'Adafruit_NeoPixel.h']]], + ['neo_5fwgrb',['NEO_WGRB',['../_adafruit___neo_pixel_8h.html#a59561d96a0f8a526ee3448e7b104d8b3',1,'Adafruit_NeoPixel.h']]], + ['neo_5fwrbg',['NEO_WRBG',['../_adafruit___neo_pixel_8h.html#a266a08af576ed4331db48b16bf572d29',1,'Adafruit_NeoPixel.h']]], + ['neo_5fwrgb',['NEO_WRGB',['../_adafruit___neo_pixel_8h.html#a4ee056fd3d7b09538908b35643a2508a',1,'Adafruit_NeoPixel.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_72.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_72.html new file mode 100644 index 0000000000000000000000000000000000000000..e6a82c4d5f0c2a21cd23c5d908c469ce28696638 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_72.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_72.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_72.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_72.js new file mode 100644 index 0000000000000000000000000000000000000000..e29e58959503e0b6630d3f06bcdee130b5307902 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_72.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['reg_5ffifo_5fconfig',['REG_FIFO_CONFIG',['../_m_a_x30102_8h.html#ad1b1bbfe23c9461e0ae75b71b9f805ca',1,'MAX30102.h']]], + ['reg_5ffifo_5fdata',['REG_FIFO_DATA',['../_m_a_x30102_8h.html#a05bf6ede83fa400eac4dd65788d996fd',1,'MAX30102.h']]], + ['reg_5ffifo_5frd_5fptr',['REG_FIFO_RD_PTR',['../_m_a_x30102_8h.html#a3b9d75d4ac3cb579e8b46dea27f4303f',1,'MAX30102.h']]], + ['reg_5ffifo_5fwr_5fptr',['REG_FIFO_WR_PTR',['../_m_a_x30102_8h.html#aba8c69cb46224fb35783f5b60e75b115',1,'MAX30102.h']]], + ['reg_5fintr_5fenable_5f1',['REG_INTR_ENABLE_1',['../_m_a_x30102_8h.html#ae07f3c26106a0a37b6eddd8d2653137d',1,'MAX30102.h']]], + ['reg_5fintr_5fenable_5f2',['REG_INTR_ENABLE_2',['../_m_a_x30102_8h.html#ab8d58d945ad576d492f669c7b9affbf1',1,'MAX30102.h']]], + ['reg_5fintr_5fstatus_5f1',['REG_INTR_STATUS_1',['../_m_a_x30102_8h.html#a7d161a2394a67a2176d549edb94f4191',1,'MAX30102.h']]], + ['reg_5fintr_5fstatus_5f2',['REG_INTR_STATUS_2',['../_m_a_x30102_8h.html#a61d809a1e313a2787b23e96de9554c4a',1,'MAX30102.h']]], + ['reg_5fled1_5fpa',['REG_LED1_PA',['../_m_a_x30102_8h.html#a5f3a6641b201203d41ed3d23b638a96b',1,'MAX30102.h']]], + ['reg_5fled2_5fpa',['REG_LED2_PA',['../_m_a_x30102_8h.html#a7df43b0f854c9caf2fe04ccdebb18d21',1,'MAX30102.h']]], + ['reg_5fmode_5fconfig',['REG_MODE_CONFIG',['../_m_a_x30102_8h.html#accdea52b28f1bd3f4cd63d05ab12887f',1,'MAX30102.h']]], + ['reg_5fmulti_5fled_5fctrl1',['REG_MULTI_LED_CTRL1',['../_m_a_x30102_8h.html#a9d333cff4d002cb1d09a319e6917bc5c',1,'MAX30102.h']]], + ['reg_5fmulti_5fled_5fctrl2',['REG_MULTI_LED_CTRL2',['../_m_a_x30102_8h.html#a05ed274928d49bb6ddd6def6e45fac10',1,'MAX30102.h']]], + ['reg_5fovf_5fcounter',['REG_OVF_COUNTER',['../_m_a_x30102_8h.html#af9c8026aa9a22fad4c22ee6b10613707',1,'MAX30102.h']]], + ['reg_5fpart_5fid',['REG_PART_ID',['../_m_a_x30102_8h.html#a46083d1b6d3e1d5f89b0f1598dc6d163',1,'MAX30102.h']]], + ['reg_5fpilot_5fpa',['REG_PILOT_PA',['../_m_a_x30102_8h.html#a371750304ec49457d3d38f60428f8ff1',1,'MAX30102.h']]], + ['reg_5fprox_5fint_5fthresh',['REG_PROX_INT_THRESH',['../_m_a_x30102_8h.html#a3d80b09e301a0155949b7c337ce5f5ab',1,'MAX30102.h']]], + ['reg_5frev_5fid',['REG_REV_ID',['../_m_a_x30102_8h.html#a16f4b970762f7e8aa1f5c7a780a48c23',1,'MAX30102.h']]], + ['reg_5fspo2_5fconfig',['REG_SPO2_CONFIG',['../_m_a_x30102_8h.html#a38546015e987a72b8c9eb13228237dd0',1,'MAX30102.h']]], + ['reg_5ftemp_5fconfig',['REG_TEMP_CONFIG',['../_m_a_x30102_8h.html#ad16bc92e2f92e516ca396214861a6379',1,'MAX30102.h']]], + ['reg_5ftemp_5ffrac',['REG_TEMP_FRAC',['../_m_a_x30102_8h.html#a5321d8a33f1225ab437032e0e8ecbb3d',1,'MAX30102.h']]], + ['reg_5ftemp_5fintr',['REG_TEMP_INTR',['../_m_a_x30102_8h.html#a579a9e43d89bdda85d9ccb206339d681',1,'MAX30102.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_73.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_73.html new file mode 100644 index 0000000000000000000000000000000000000000..913ae48c43b24d3a760d1a4339f213f1da09f754 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_73.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_73.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_73.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_73.js new file mode 100644 index 0000000000000000000000000000000000000000..90ebde0f7613ad65668ba91be6e175119f26ae5b --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_73.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['scl_5fddr',['SCL_DDR',['../_soft_i2_c_master_8h.html#a5020a160f5b8f0a1697cfadbe778424b',1,'SoftI2CMaster.h']]], + ['scl_5fin',['SCL_IN',['../_soft_i2_c_master_8h.html#a10c618a025b8bdb8ea596fdc24197f49',1,'SoftI2CMaster.h']]], + ['scl_5fout',['SCL_OUT',['../_soft_i2_c_master_8h.html#a07204a69a1872edbb272cde4d0c1e23f',1,'SoftI2CMaster.h']]], + ['sda_5fddr',['SDA_DDR',['../_soft_i2_c_master_8h.html#a16bb6708250d17ee2118d29e4865a653',1,'SoftI2CMaster.h']]], + ['sda_5fin',['SDA_IN',['../_soft_i2_c_master_8h.html#ac4b553fc156d15aeeeaaf6cfe7695c83',1,'SoftI2CMaster.h']]], + ['sda_5fout',['SDA_OUT',['../_soft_i2_c_master_8h.html#ae154abbe60d159b6f4951ade68cc5fae',1,'SoftI2CMaster.h']]], + ['softi2dmaster_5fh_5f',['SOFTI2DMASTER_H_',['../_soft_i2_c_master_8h.html#ae00bf2b1fa56ce97ea467dc60682022c',1,'SoftI2CMaster.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_74.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_74.html new file mode 100644 index 0000000000000000000000000000000000000000..7c78f103fd950ae9997fea65edd5cd8d6ca3669c --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_74.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="defines_74.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_74.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_74.js new file mode 100644 index 0000000000000000000000000000000000000000..549c70c68c7b4c582ff25e15b4a0b37bc6af7719 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/defines_74.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['true',['true',['../algorithm_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_61.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_61.html new file mode 100644 index 0000000000000000000000000000000000000000..5a8e4549927fadc4f2a7eecbc3cd8a1583288c24 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_61.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_61.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_61.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_61.js new file mode 100644 index 0000000000000000000000000000000000000000..17135d4f19c7433747fdb1c4b3572f30aa74013b --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_61.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['algorithm_2ecpp',['algorithm.cpp',['../algorithm_8cpp.html',1,'']]], + ['algorithm_2eh',['algorithm.h',['../algorithm_8h.html',1,'']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_6d.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_6d.html new file mode 100644 index 0000000000000000000000000000000000000000..d9d93006bf698ab5588e6f0f6ff42134fed57855 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_6d.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_6d.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_6d.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_6d.js new file mode 100644 index 0000000000000000000000000000000000000000..913a4161e564ce3289f57eaff1058b96f80a9b83 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_6d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['main_2ecpp',['main.cpp',['../main_8cpp.html',1,'']]], + ['max30102_2ecpp',['MAX30102.cpp',['../_m_a_x30102_8cpp.html',1,'']]], + ['max30102_2eh',['MAX30102.h',['../_m_a_x30102_8h.html',1,'']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_72.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_72.html new file mode 100644 index 0000000000000000000000000000000000000000..609fb48fc3752af18d480c883ab4a8832b796e11 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_72.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_72.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_72.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_72.js new file mode 100644 index 0000000000000000000000000000000000000000..6f99fa1e7819ddfc7d8dd169598c9267d7048ddc --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_72.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['rd117_5farduino_2eino',['RD117_ARDUINO.ino',['../_r_d117___a_r_d_u_i_n_o_8ino.html',1,'']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_73.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_73.html new file mode 100644 index 0000000000000000000000000000000000000000..e0de9e6b55d3c44e47346a761291de2b512f4f3d --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_73.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="files_73.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_73.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_73.js new file mode 100644 index 0000000000000000000000000000000000000000..50164c8f97e6b603da311b76a4195ce1a8f26cda --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/files_73.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['softi2cmaster_2eh',['SoftI2CMaster.h',['../_soft_i2_c_master_8h.html',1,'']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_5f.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_5f.html new file mode 100644 index 0000000000000000000000000000000000000000..cb54e927d595236a58bc0f5e5d67958e2622dc9a --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_5f.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_5f.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_5f.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_5f.js new file mode 100644 index 0000000000000000000000000000000000000000..e95f60940d4daead65e39d513ad2487d6eddbe7e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_5f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5f_5fattribute_5f_5f',['__attribute__',['../_soft_i2_c_master_8h.html#a342f1dd5ca489cfb78fffa200fcee9d9',1,'SoftI2CMaster.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_61.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_61.html new file mode 100644 index 0000000000000000000000000000000000000000..7f395337e22f0b5b7a14ae59f21297346ee55ddb --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_61.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_61.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_61.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_61.js new file mode 100644 index 0000000000000000000000000000000000000000..7140a912da4fa717d8bf141fa6745a5afed57f59 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_61.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['adafruit_5fneopixel',['Adafruit_NeoPixel',['../class_adafruit___neo_pixel.html#ac314debe6917c8c9b320b785139c6e58',1,'Adafruit_NeoPixel::Adafruit_NeoPixel(uint16_t n, uint8_t p=6, neoPixelType t=NEO_GRB+NEO_KHZ800)'],['../class_adafruit___neo_pixel.html#ab1ac0c48cf3fd9185e40308c37f1d320',1,'Adafruit_NeoPixel::Adafruit_NeoPixel(void)']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_62.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_62.html new file mode 100644 index 0000000000000000000000000000000000000000..def0606e751ffef99228d6b0397ef0f409a72be0 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_62.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_62.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_62.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_62.js new file mode 100644 index 0000000000000000000000000000000000000000..b3270dd3bcc0aa3e3be0c853a492707ecce1b31d --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_62.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['begin',['begin',['../class_adafruit___neo_pixel.html#aad78931e44ce43c9b9c460dba7c9bbb7',1,'Adafruit_NeoPixel']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_63.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_63.html new file mode 100644 index 0000000000000000000000000000000000000000..9ebe11d691b1000eb7ed1be6e4617c5fdc912e4c --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_63.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_63.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_63.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_63.js new file mode 100644 index 0000000000000000000000000000000000000000..42109ea131badc1eb4b5687f6d87f3bcae15a884 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_63.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['canshow',['canShow',['../class_adafruit___neo_pixel.html#ad38ce8112667b70ad7c411a98892af0e',1,'Adafruit_NeoPixel']]], + ['clear',['clear',['../class_adafruit___neo_pixel.html#ac8bb3912a3ce86b15842e79d0b421204',1,'Adafruit_NeoPixel']]], + ['color',['Color',['../class_adafruit___neo_pixel.html#ae3e6c2fabbee89d19487424acd8d9fec',1,'Adafruit_NeoPixel::Color(uint8_t r, uint8_t g, uint8_t b)'],['../class_adafruit___neo_pixel.html#a9846704aaabd4e102beba5a5484d5738',1,'Adafruit_NeoPixel::Color(uint8_t r, uint8_t g, uint8_t b, uint8_t w)']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_67.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_67.html new file mode 100644 index 0000000000000000000000000000000000000000..d0ab42a3f73a82bcc2c98809041ab47506db33fc --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_67.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_67.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_67.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_67.js new file mode 100644 index 0000000000000000000000000000000000000000..efaa118b426229741c33670c63a380e55b5bdfb9 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_67.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['getbrightness',['getBrightness',['../class_adafruit___neo_pixel.html#a553bf1a0513094c73cb54a235f74ac7f',1,'Adafruit_NeoPixel']]], + ['getpixelcolor',['getPixelColor',['../class_adafruit___neo_pixel.html#a10a836ddc4ebd3e26b1e71a5875764fa',1,'Adafruit_NeoPixel']]], + ['getpixels',['getPixels',['../class_adafruit___neo_pixel.html#a18bc91d2bad52cf603814d4df6f33067',1,'Adafruit_NeoPixel']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_69.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_69.html new file mode 100644 index 0000000000000000000000000000000000000000..e2041976c97708009f6281d2286f40c035798c8e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_69.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_69.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_69.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_69.js new file mode 100644 index 0000000000000000000000000000000000000000..dd2ca0d2f7d6289aa54035004ab17c2866ae5501 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_69.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['i2c',['i2c',['../_m_a_x30102_8cpp.html#ae3e7ab47cd5395225bf7c67b8ee84976',1,'MAX30102.cpp']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6c.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6c.html new file mode 100644 index 0000000000000000000000000000000000000000..da371cfab0f69e3e840805c156c70c7fb416587a --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6c.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_6c.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6c.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6c.js new file mode 100644 index 0000000000000000000000000000000000000000..7f8b68c5d9cb434a8ecb53f682e6df4c47a05cd7 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['loop',['loop',['../_r_d117___a_r_d_u_i_n_o_8ino.html#afe461d27b9c48d5921c00d521181f12f',1,'RD117_ARDUINO.ino']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6d.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6d.html new file mode 100644 index 0000000000000000000000000000000000000000..d01ac5376a1ccc91ee60e6010b678a27c5bb99f0 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6d.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_6d.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6d.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6d.js new file mode 100644 index 0000000000000000000000000000000000000000..9fcea7bbc8f5292ec4e545ed36d8e7116d7e88c1 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6d.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['main',['main',['../main_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'main.cpp']]], + ['maxim_5ffind_5fpeaks',['maxim_find_peaks',['../algorithm_8cpp.html#a2a4e5ddbe0e04c48b166f2ff176667a9',1,'maxim_find_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num): algorithm.cpp'],['../algorithm_8h.html#a2a4e5ddbe0e04c48b166f2ff176667a9',1,'maxim_find_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num): algorithm.cpp']]], + ['maxim_5fheart_5frate_5fand_5foxygen_5fsaturation',['maxim_heart_rate_and_oxygen_saturation',['../algorithm_8cpp.html#a62050365673e666cd0d661a3664c26e6',1,'maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer, int32_t n_ir_buffer_length, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid, int32_t *pn_heart_rate, int8_t *pch_hr_valid): algorithm.cpp'],['../algorithm_8h.html#a62050365673e666cd0d661a3664c26e6',1,'maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer, int32_t n_ir_buffer_length, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid, int32_t *pn_heart_rate, int8_t *pch_hr_valid): algorithm.cpp']]], + ['maxim_5fmax30102_5finit',['maxim_max30102_init',['../_m_a_x30102_8cpp.html#a4113aeee76935425d8a557a79a4193df',1,'maxim_max30102_init(): MAX30102.cpp'],['../_m_a_x30102_8h.html#a4113aeee76935425d8a557a79a4193df',1,'maxim_max30102_init(): MAX30102.cpp']]], + ['maxim_5fmax30102_5fread_5ffifo',['maxim_max30102_read_fifo',['../_m_a_x30102_8cpp.html#a483073cbc9dbb7a5a2495ce2ae4fb968',1,'maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led): MAX30102.cpp'],['../_m_a_x30102_8h.html#a483073cbc9dbb7a5a2495ce2ae4fb968',1,'maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led): MAX30102.cpp']]], + ['maxim_5fmax30102_5fread_5freg',['maxim_max30102_read_reg',['../_m_a_x30102_8cpp.html#a0cd2c5a58e57ebbe8c9361384798331f',1,'maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data): MAX30102.cpp'],['../_m_a_x30102_8h.html#a0cd2c5a58e57ebbe8c9361384798331f',1,'maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data): MAX30102.cpp']]], + ['maxim_5fmax30102_5freset',['maxim_max30102_reset',['../_m_a_x30102_8cpp.html#a1df3bb178b66379a2975c56395c47d9b',1,'maxim_max30102_reset(): MAX30102.cpp'],['../_m_a_x30102_8h.html#a94ab5935f6ce28aa5ce31aa842eb83dd',1,'maxim_max30102_reset(void): MAX30102.cpp']]], + ['maxim_5fmax30102_5fwrite_5freg',['maxim_max30102_write_reg',['../_m_a_x30102_8cpp.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6',1,'maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data): MAX30102.cpp'],['../_m_a_x30102_8h.html#a4c2ec1539c1ec8354cdaefe2c3bf48d6',1,'maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data): MAX30102.cpp']]], + ['maxim_5fpeaks_5fabove_5fmin_5fheight',['maxim_peaks_above_min_height',['../algorithm_8cpp.html#aab95338e44281c269f0b9b0f529741bf',1,'maxim_peaks_above_min_height(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height): algorithm.cpp'],['../algorithm_8h.html#aab95338e44281c269f0b9b0f529741bf',1,'maxim_peaks_above_min_height(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height): algorithm.cpp']]], + ['maxim_5fremove_5fclose_5fpeaks',['maxim_remove_close_peaks',['../algorithm_8cpp.html#adc6be68be81530d67a25c1a9905bec3a',1,'maxim_remove_close_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance): algorithm.cpp'],['../algorithm_8h.html#adc6be68be81530d67a25c1a9905bec3a',1,'maxim_remove_close_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance): algorithm.cpp']]], + ['maxim_5fsort_5fascend',['maxim_sort_ascend',['../algorithm_8cpp.html#a6cae46e51640b712afc2ebeefd2d51ff',1,'maxim_sort_ascend(int32_t *pn_x, int32_t n_size): algorithm.cpp'],['../algorithm_8h.html#a6cae46e51640b712afc2ebeefd2d51ff',1,'maxim_sort_ascend(int32_t *pn_x, int32_t n_size): algorithm.cpp']]], + ['maxim_5fsort_5findices_5fdescend',['maxim_sort_indices_descend',['../algorithm_8cpp.html#a44b6312f81810d4deb64071d12ab0060',1,'maxim_sort_indices_descend(int32_t *pn_x, int32_t *pn_indx, int32_t n_size): algorithm.cpp'],['../algorithm_8h.html#a44b6312f81810d4deb64071d12ab0060',1,'maxim_sort_indices_descend(int32_t *pn_x, int32_t *pn_indx, int32_t n_size): algorithm.cpp']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6e.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6e.html new file mode 100644 index 0000000000000000000000000000000000000000..d734dd07e7db1cf5c6a60c431ecf497ce9fe187e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6e.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_6e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6e.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6e.js new file mode 100644 index 0000000000000000000000000000000000000000..68c17a8b88d7a63493c0bfb0200f744067d2a5eb --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_6e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['numpixels',['numPixels',['../class_adafruit___neo_pixel.html#ac893a5c07c41604539022af84665c04b',1,'Adafruit_NeoPixel']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_70.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_70.html new file mode 100644 index 0000000000000000000000000000000000000000..c62125ede7ba44e537cb09368c7eb2ca78184e70 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_70.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_70.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_70.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_70.js new file mode 100644 index 0000000000000000000000000000000000000000..95bca2eecb2fe407322ca3eec7b8cd1aed1b474e --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_70.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pc',['pc',['../main_8cpp.html#a81e0624d7e9f10f8f7e52a569ba24753',1,'main.cpp']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_73.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_73.html new file mode 100644 index 0000000000000000000000000000000000000000..774d577f55229a943f7c1a168a81f7a5d546c308 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_73.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_73.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_73.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_73.js new file mode 100644 index 0000000000000000000000000000000000000000..e2a01b1d2d490da1644e910fcb6ccb6287c50a0a --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_73.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['setbrightness',['setBrightness',['../class_adafruit___neo_pixel.html#afa1740af1d8eec971eada06d53901c53',1,'Adafruit_NeoPixel']]], + ['setpin',['setPin',['../class_adafruit___neo_pixel.html#a345b7a6f550461926ed5187b2df42d6b',1,'Adafruit_NeoPixel']]], + ['setpixelcolor',['setPixelColor',['../class_adafruit___neo_pixel.html#a0ec91c90f337e806cd98956514257cf1',1,'Adafruit_NeoPixel::setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b)'],['../class_adafruit___neo_pixel.html#a35eda2252e3ed976a11d35cb8f4b2e41',1,'Adafruit_NeoPixel::setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w)'],['../class_adafruit___neo_pixel.html#abbf243cce591dc37be507cf173485bc8',1,'Adafruit_NeoPixel::setPixelColor(uint16_t n, uint32_t c)']]], + ['setup',['setup',['../_r_d117___a_r_d_u_i_n_o_8ino.html#a4fc01d736fe50cf5b977f755b675f11d',1,'RD117_ARDUINO.ino']]], + ['show',['show',['../class_adafruit___neo_pixel.html#ae335a7c214036a6c1734969f2bc3f4f7',1,'Adafruit_NeoPixel']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_75.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_75.html new file mode 100644 index 0000000000000000000000000000000000000000..2d61754d1661e69ae07b7711b53bcc055fe105df --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_75.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_75.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_75.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_75.js new file mode 100644 index 0000000000000000000000000000000000000000..ba520c8a25fa9cd83c473da40ec879705c73c3b4 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_75.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['updatelength',['updateLength',['../class_adafruit___neo_pixel.html#a05542d574f1a9a73f9e3547990321944',1,'Adafruit_NeoPixel']]], + ['updatetype',['updateType',['../class_adafruit___neo_pixel.html#a65e59263e0f5a04c7202d4385d3a539b',1,'Adafruit_NeoPixel']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_7e.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_7e.html new file mode 100644 index 0000000000000000000000000000000000000000..fd1d3ce20d5462719b7021cd751694b4f906e957 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_7e.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="functions_7e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_7e.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_7e.js new file mode 100644 index 0000000000000000000000000000000000000000..5d71164d25f93f92bdcde53513542c0fa554f305 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/functions_7e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_7eadafruit_5fneopixel',['~Adafruit_NeoPixel',['../class_adafruit___neo_pixel.html#a16d970aa16f9d0128800346f4ca567db',1,'Adafruit_NeoPixel']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/mag_sel.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/mag_sel.png new file mode 100644 index 0000000000000000000000000000000000000000..81f6040a2092402b4d98f9ffa8855d12a0d4ca17 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/mag_sel.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/nomatches.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/nomatches.html new file mode 100644 index 0000000000000000000000000000000000000000..b1ded27e9ad6af3a2ac11e6b21ce159dcaf87e0c --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/nomatches.html @@ -0,0 +1,12 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="NoMatches">No Matches</div> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/pages_6d.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/pages_6d.html new file mode 100644 index 0000000000000000000000000000000000000000..958ccc652ec1a383bda5c9862b8ab2387d4e4be6 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/pages_6d.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="pages_6d.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/pages_6d.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/pages_6d.js new file mode 100644 index 0000000000000000000000000000000000000000..1608e57e1eca91ec4049c1ff52b5026009d8795d --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/pages_6d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_20page',['Main Page',['../index.html',1,'']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search.css b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search.css new file mode 100644 index 0000000000000000000000000000000000000000..eb19dd7564b668aaa5416ad61505d8385a96d345 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search.css @@ -0,0 +1,238 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:116px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #9CD3D1; + background-color: #FAFCFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #449D99; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #F0F8F8; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #49A8A3; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #49A8A3; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search.js new file mode 100644 index 0000000000000000000000000000000000000000..f2384114ebd6ec472679139c37834192a4282f4b --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search.js @@ -0,0 +1,805 @@ +// Search script generated by doxygen +// Copyright (C) 2009 by Dimitri van Heesch. + +// The code in this file is loosly based on main.js, part of Natural Docs, +// which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL. + +var indexSectionsWithContent = +{ + 0: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111001011000110101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 1: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 2: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 3: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101000000000010000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 4: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010001011000100001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + 5: "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "files", + 2: "functions", + 3: "variables", + 4: "defines", + 5: "pages" +}; + +function convertToId(search) +{ + var result = ''; + for (i=0;i<search.length;i++) + { + var c = search.charAt(i); + var cn = c.charCodeAt(0); + if (c.match(/[a-z0-9]/)) + { + result+=c; + } + else if (cn<16) + { + result+="_0"+cn.toString(16); + } + else + { + result+="_"+cn.toString(16); + } + } + return result; +} + +function getXPos(item) +{ + var x = 0; + if (item.offsetWidth) + { + while (item && item!=document.body) + { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; +} + +function getYPos(item) +{ + var y = 0; + if (item.offsetWidth) + { + while (item && item!=document.body) + { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; +} + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, inFrame, label) +{ + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.insideFrame = inFrame; + this.searchLabel = label; + + // ----------- DOM Elements + + this.DOMSearchField = function() + { return document.getElementById("MSearchField"); } + + this.DOMSearchSelect = function() + { return document.getElementById("MSearchSelect"); } + + this.DOMSearchSelectWindow = function() + { return document.getElementById("MSearchSelectWindow"); } + + this.DOMPopupSearchResults = function() + { return document.getElementById("MSearchResults"); } + + this.DOMPopupSearchResultsWindow = function() + { return document.getElementById("MSearchResultsWindow"); } + + this.DOMSearchClose = function() + { return document.getElementById("MSearchClose"); } + + this.DOMSearchBox = function() + { return document.getElementById("MSearchBox"); } + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) + { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() + { + var searchSelectWindow = this.DOMSearchSelectWindow(); + var searchField = this.DOMSearchSelect(); + + if (this.insideFrame) + { + var left = getXPos(searchField); + var top = getYPos(searchField); + left += searchField.offsetWidth + 6; + top += searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + left -= searchSelectWindow.offsetWidth; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + } + else + { + var left = getXPos(searchField); + var top = getYPos(searchField); + top += searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + } + + // stop selection hide timer + if (this.hideTimeout) + { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() + { + this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()", + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) + { + if (this.keyTimeout) // kill running timer + { + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) + { + if (e.shiftKey==1) + { + this.OnSearchSelectShow(); + var win=this.DOMSearchSelectWindow(); + for (i=0;i<win.childNodes.length;i++) + { + var child = win.childNodes[i]; // get span within a + if (child.className=='SelectItem') + { + child.focus(); + return; + } + } + return; + } + else if (window.frames.MSearchResults.searchResults) + { + var elem = window.frames.MSearchResults.searchResults.NavNext(0); + if (elem) elem.focus(); + } + } + else if (e.keyCode==27) // Escape out of the search field + { + this.DOMSearchField().blur(); + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.lastSearchValue = ''; + this.Activate(false); + return; + } + + // strip whitespaces + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + + if (searchValue != this.lastSearchValue) // search value has changed + { + if (searchValue != "") // non-empty search + { + // set timer for search update + this.keyTimeout = setTimeout(this.name + '.Search()', + this.keyTimeoutLength); + } + else // empty search field + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.lastSearchValue = ''; + } + } + } + + this.SelectItemCount = function(id) + { + var count=0; + var win=this.DOMSearchSelectWindow(); + for (i=0;i<win.childNodes.length;i++) + { + var child = win.childNodes[i]; // get span within a + if (child.className=='SelectItem') + { + count++; + } + } + return count; + } + + this.SelectItemSet = function(id) + { + var i,j=0; + var win=this.DOMSearchSelectWindow(); + for (i=0;i<win.childNodes.length;i++) + { + var child = win.childNodes[i]; // get span within a + if (child.className=='SelectItem') + { + var node = child.firstChild; + if (j==id) + { + node.innerHTML='•'; + } + else + { + node.innerHTML=' '; + } + j++; + } + } + } + + // Called when an search filter selection is made. + // set item with index id as the active item + this.OnSelectItem = function(id) + { + this.searchIndex = id; + this.SelectItemSet(id); + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + if (searchValue!="" && this.searchActive) // something was found -> do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down + { + this.searchIndex++; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==38 && this.searchIndex>0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var hexCode; + if (code<16) + { + hexCode="0"+code.toString(16); + } + else + { + hexCode=code.toString(16); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1') + { + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of <Search()>. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e<searchData.length; e++) + { + var id = searchData[e][0]; + var srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + var srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + var srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+e); + setKeyActions(srLink,'return searchResults.Nav(event,'+e+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = searchData[e][1][0]; + srEntry.appendChild(srLink); + if (searchData[e][1].length==2) // single result + { + srLink.setAttribute('href',searchData[e][1][1][0]); + if (searchData[e][1][1][1]) + { + srLink.setAttribute('target','_parent'); + } + var srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = searchData[e][1][1][2]; + srEntry.appendChild(srScope); + } + else // multiple results + { + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + var srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (var c=0; c<searchData[e][1].length-1; c++) + { + var srChild = document.createElement('a'); + srChild.setAttribute('id','Item'+e+'_c'+c); + setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')'); + setClassAttr(srChild,'SRScope'); + srChild.setAttribute('href',searchData[e][1][c+1][0]); + if (searchData[e][1][c+1][1]) + { + srChild.setAttribute('target','_parent'); + } + srChild.innerHTML = searchData[e][1][c+1][2]; + srChildren.appendChild(srChild); + } + srEntry.appendChild(srChildren); + } + srResult.appendChild(srEntry); + results.appendChild(srResult); + } +} + diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search_l.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search_l.png new file mode 100644 index 0000000000000000000000000000000000000000..c872f4da4a01d0754f923e6c94fd8159c0621bd1 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search_l.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search_m.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search_m.png new file mode 100644 index 0000000000000000000000000000000000000000..b429a16ba641960da1e52e5da85dc80fd82635c8 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search_m.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search_r.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..97ee8b439687084201b79c6f776a41f495c6392a Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/search_r.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/typedefs_6e.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/typedefs_6e.html new file mode 100644 index 0000000000000000000000000000000000000000..ebbf394de71fa834403a06b6bf6724fdf1f0d2b2 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/typedefs_6e.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="typedefs_6e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/typedefs_6e.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/typedefs_6e.js new file mode 100644 index 0000000000000000000000000000000000000000..d74232e6f73fe86e7414fda1ad56326ec19b91e0 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/typedefs_6e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['neopixeltype',['neoPixelType',['../_adafruit___neo_pixel_8h.html#a6ff31bc7214a3ae338a80ed6142d69ff',1,'Adafruit_NeoPixel.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_61.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_61.html new file mode 100644 index 0000000000000000000000000000000000000000..ff1f937dfc6065a4601391a6b30952aff7aa69b2 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_61.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="variables_61.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_61.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_61.js new file mode 100644 index 0000000000000000000000000000000000000000..e5953b1bab511472c023676aab6b467e7dc88eb7 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_61.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['aun_5fir_5fbuffer',['aun_ir_buffer',['../main_8cpp.html#a07a24850120a56110cc2838d0afcafcf',1,'main.cpp']]], + ['aun_5fred_5fbuffer',['aun_red_buffer',['../main_8cpp.html#a85d1012c3814f9e393e6ff8d84e56723',1,'main.cpp']]], + ['auw_5fhamm',['auw_hamm',['../algorithm_8h.html#a1c25ffb675bce0db6a32fbf6ad514929',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_63.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_63.html new file mode 100644 index 0000000000000000000000000000000000000000..c649c81fbf62c817ef60b3cdb74d0c3f7be6cafb --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_63.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="variables_63.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_63.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_63.js new file mode 100644 index 0000000000000000000000000000000000000000..4e7566ffc3a48b4678d57601a658c087fbadd7cd --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_63.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ch_5fhr_5fvalid',['ch_hr_valid',['../main_8cpp.html#a43fb8ea97a26647405ca359095323280',1,'main.cpp']]], + ['ch_5fspo2_5fvalid',['ch_spo2_valid',['../main_8cpp.html#a2518324dce002f592cf6d7f0b1ad9024',1,'main.cpp']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_6e.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_6e.html new file mode 100644 index 0000000000000000000000000000000000000000..4cc41d57fc548dc8fd331495189ea5fd7d0f60b5 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_6e.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="variables_6e.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_6e.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_6e.js new file mode 100644 index 0000000000000000000000000000000000000000..31433021eca5d3c7dbbfa4172d2fc25d7076a8d8 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_6e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['n_5fheart_5frate',['n_heart_rate',['../main_8cpp.html#a3171c70bfa71c3a4f960bf3e8203d13f',1,'main.cpp']]], + ['n_5fir_5fbuffer_5flength',['n_ir_buffer_length',['../main_8cpp.html#ac16b6dd0e762f0ccc30e7102f97260d6',1,'main.cpp']]], + ['n_5fsp02',['n_sp02',['../main_8cpp.html#a786e6c57c793d9af51360154ef90eb93',1,'main.cpp']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_75.html b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_75.html new file mode 100644 index 0000000000000000000000000000000000000000..b9cc25cf223901bc749c6a67cd8a8fc3be92b688 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_75.html @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html><head><title></title> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<link rel="stylesheet" type="text/css" href="search.css"/> +<script type="text/javascript" src="variables_75.js"></script> +<script type="text/javascript" src="search.js"></script> +</head> +<body class="SRPage"> +<div id="SRIndex"> +<div class="SRStatus" id="Loading">Loading...</div> +<div id="SRResults"></div> +<script type="text/javascript"><!-- +createResults(); +--></script> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +<script type="text/javascript"><!-- +document.getElementById("Loading").style.display="none"; +document.getElementById("NoMatches").style.display="none"; +var searchResults = new SearchResults("searchResults"); +searchResults.Search(); +--></script> +</div> +</body> +</html> diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_75.js b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_75.js new file mode 100644 index 0000000000000000000000000000000000000000..48a3fb1a5b44bdcb034cf32fdf0db89acbd038fd --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/search/variables_75.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['uch_5fdummy',['uch_dummy',['../main_8cpp.html#ac5e493da8cbdd1414d56e8f08282fcc2',1,'main.cpp']]], + ['uch_5fspo2_5ftable',['uch_spo2_table',['../algorithm_8h.html#adfeeb6b08271807492803acc50347108',1,'algorithm.h']]] +]; diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/sync_off.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..45760303ba90f1e25c871e4814f19e687944fcdc Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/sync_off.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/sync_on.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d5d6950414f407065414aeff08e7008e488095 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/sync_on.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_a.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..b058dc0cdfe4adc72cbc88f07b05f9ef1eaec70c Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_a.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_b.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..30c50156ab818d3cefa72b6b499b6f43aa85c5ce Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_b.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_h.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_h.png new file mode 100644 index 0000000000000000000000000000000000000000..f3dd60c32b2d54215b77d478f91bc43d939a7b5e Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_h.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_s.png b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..a937f624bef5baf71a02200be0c632366fc3b466 Binary files /dev/null and b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tab_s.png differ diff --git a/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tabs.css b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tabs.css new file mode 100644 index 0000000000000000000000000000000000000000..35a7f75b81b50209571e4e2ee14da69c4577c6e9 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/Code_Documentation/html/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #306E6B; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/lib/vendor/Maxim/rd117_mbed/RD117_MBED/MAX30102/MAX30102.cpp b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/MAX30102/MAX30102.cpp new file mode 100644 index 0000000000000000000000000000000000000000..19bdf56c2c17538190e9346bb950cbec220649ae --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/MAX30102/MAX30102.cpp @@ -0,0 +1,220 @@ +/** \file max30102.cpp ****************************************************** +* +* Project: MAXREFDES117# +* Filename: max30102.cpp +* Description: This module is an embedded controller driver for the MAX30102 +* +* +* -------------------------------------------------------------------- +* +* This code follows the following naming conventions: +* +* char ch_pmod_value +* char (array) s_pmod_s_string[16] +* float f_pmod_value +* int32_t n_pmod_value +* int32_t (array) an_pmod_value[16] +* int16_t w_pmod_value +* int16_t (array) aw_pmod_value[16] +* uint16_t uw_pmod_value +* uint16_t (array) auw_pmod_value[16] +* uint8_t uch_pmod_value +* uint8_t (array) auch_pmod_buffer[16] +* uint32_t un_pmod_value +* int32_t * pn_pmod_value +* +* ------------------------------------------------------------------------- */ +/******************************************************************************* +* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES +* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +* +* Except as contained in this notice, the name of Maxim Integrated +* Products, Inc. shall not be used except as stated in the Maxim Integrated +* Products, Inc. Branding Policy. +* +* The mere transfer of this software does not imply any licenses +* of trade secrets, proprietary technology, copyrights, patents, +* trademarks, maskwork rights, or any other form of intellectual +* property whatsoever. Maxim Integrated Products, Inc. retains all +* ownership rights. +******************************************************************************* +*/ +#include "mbed.h" +#include "MAX30102.h" + +#ifdef TARGET_MAX32600MBED +I2C i2c(I2C1_SDA, I2C1_SCL); +#else +I2C i2c(I2C_SDA, I2C_SCL); +#endif + +bool maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data) +/** +* \brief Write a value to a MAX30102 register +* \par Details +* This function writes a value to a MAX30102 register +* +* \param[in] uch_addr - register address +* \param[in] uch_data - register data +* +* \retval true on success +*/ +{ + char ach_i2c_data[2]; + ach_i2c_data[0]=uch_addr; + ach_i2c_data[1]=uch_data; + + if(i2c.write(I2C_WRITE_ADDR, ach_i2c_data, 2, false)==0) + return true; + else + return false; +} + +bool maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data) +/** +* \brief Read a MAX30102 register +* \par Details +* This function reads a MAX30102 register +* +* \param[in] uch_addr - register address +* \param[out] puch_data - pointer that stores the register data +* +* \retval true on success +*/ +{ + char ch_i2c_data; + ch_i2c_data=uch_addr; + if(i2c.write(I2C_WRITE_ADDR, &ch_i2c_data, 1, true)!=0) + return false; + if(i2c.read(I2C_READ_ADDR, &ch_i2c_data, 1, false)==0) + { + *puch_data=(uint8_t) ch_i2c_data; + return true; + } + else + return false; +} + +bool maxim_max30102_init() +/** +* \brief Initialize the MAX30102 +* \par Details +* This function initializes the MAX30102 +* +* \param None +* +* \retval true on success +*/ +{ + if(!maxim_max30102_write_reg(REG_INTR_ENABLE_1,0xc0)) // INTR setting + return false; + if(!maxim_max30102_write_reg(REG_INTR_ENABLE_2,0x00)) + return false; + if(!maxim_max30102_write_reg(REG_FIFO_WR_PTR,0x00)) //FIFO_WR_PTR[4:0] + return false; + if(!maxim_max30102_write_reg(REG_OVF_COUNTER,0x00)) //OVF_COUNTER[4:0] + return false; + if(!maxim_max30102_write_reg(REG_FIFO_RD_PTR,0x00)) //FIFO_RD_PTR[4:0] + return false; + if(!maxim_max30102_write_reg(REG_FIFO_CONFIG,0x0f)) //sample avg = 1, fifo rollover=false, fifo almost full = 17 + return false; + if(!maxim_max30102_write_reg(REG_MODE_CONFIG,0x03)) //0x02 for Red only, 0x03 for SpO2 mode 0x07 multimode LED + return false; + if(!maxim_max30102_write_reg(REG_SPO2_CONFIG,0x27)) // SPO2_ADC range = 4096nA, SPO2 sample rate (100 Hz), LED pulseWidth (400uS) + return false; + + if(!maxim_max30102_write_reg(REG_LED1_PA,0x24)) //Choose value for ~ 7mA for LED1 + return false; + if(!maxim_max30102_write_reg(REG_LED2_PA,0x24)) // Choose value for ~ 7mA for LED2 + return false; + if(!maxim_max30102_write_reg(REG_PILOT_PA,0x7f)) // Choose value for ~ 25mA for Pilot LED + return false; + return true; +} + +bool maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led) +/** +* \brief Read a set of samples from the MAX30102 FIFO register +* \par Details +* This function reads a set of samples from the MAX30102 FIFO register +* +* \param[out] *pun_red_led - pointer that stores the red LED reading data +* \param[out] *pun_ir_led - pointer that stores the IR LED reading data +* +* \retval true on success +*/ +{ + uint32_t un_temp; + unsigned char uch_temp; + *pun_red_led=0; + *pun_ir_led=0; + char ach_i2c_data[6]; + + //read and clear status register + maxim_max30102_read_reg(REG_INTR_STATUS_1, &uch_temp); + maxim_max30102_read_reg(REG_INTR_STATUS_2, &uch_temp); + + ach_i2c_data[0]=REG_FIFO_DATA; + if(i2c.write(I2C_WRITE_ADDR, ach_i2c_data, 1, true)!=0) + return false; + if(i2c.read(I2C_READ_ADDR, ach_i2c_data, 6, false)!=0) + { + return false; + } + un_temp=(unsigned char) ach_i2c_data[0]; + un_temp<<=16; + *pun_red_led+=un_temp; + un_temp=(unsigned char) ach_i2c_data[1]; + un_temp<<=8; + *pun_red_led+=un_temp; + un_temp=(unsigned char) ach_i2c_data[2]; + *pun_red_led+=un_temp; + + un_temp=(unsigned char) ach_i2c_data[3]; + un_temp<<=16; + *pun_ir_led+=un_temp; + un_temp=(unsigned char) ach_i2c_data[4]; + un_temp<<=8; + *pun_ir_led+=un_temp; + un_temp=(unsigned char) ach_i2c_data[5]; + *pun_ir_led+=un_temp; + *pun_red_led&=0x03FFFF; //Mask MSB [23:18] + *pun_ir_led&=0x03FFFF; //Mask MSB [23:18] + + + return true; +} + +bool maxim_max30102_reset() +/** +* \brief Reset the MAX30102 +* \par Details +* This function resets the MAX30102 +* +* \param None +* +* \retval true on success +*/ +{ + if(!maxim_max30102_write_reg(REG_MODE_CONFIG,0x40)) + return false; + else + return true; +} diff --git a/lib/vendor/Maxim/rd117_mbed/RD117_MBED/MAX30102/MAX30102.h b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/MAX30102/MAX30102.h new file mode 100644 index 0000000000000000000000000000000000000000..031f9876d483af4173fa99cc344356fb781e5b0f --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/MAX30102/MAX30102.h @@ -0,0 +1,97 @@ +/** \file max30102.h ****************************************************** +* +* Project: MAXREFDES117# +* Filename: max30102.h +* Description: This module is an embedded controller driver header file for MAX30102 +* +* +* -------------------------------------------------------------------- +* +* This code follows the following naming conventions: +* +* char ch_pmod_value +* char (array) s_pmod_s_string[16] +* float f_pmod_value +* int32_t n_pmod_value +* int32_t (array) an_pmod_value[16] +* int16_t w_pmod_value +* int16_t (array) aw_pmod_value[16] +* uint16_t uw_pmod_value +* uint16_t (array) auw_pmod_value[16] +* uint8_t uch_pmod_value +* uint8_t (array) auch_pmod_buffer[16] +* uint32_t un_pmod_value +* int32_t * pn_pmod_value +* +* ------------------------------------------------------------------------- */ +/******************************************************************************* +* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES +* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +* +* Except as contained in this notice, the name of Maxim Integrated +* Products, Inc. shall not be used except as stated in the Maxim Integrated +* Products, Inc. Branding Policy. +* +* The mere transfer of this software does not imply any licenses +* of trade secrets, proprietary technology, copyrights, patents, +* trademarks, maskwork rights, or any other form of intellectual +* property whatsoever. Maxim Integrated Products, Inc. retains all +* ownership rights. +******************************************************************************* +*/ +#ifndef MAX30102_H_ +#define MAX30102_H_ + +#include "mbed.h" + +#define I2C_WRITE_ADDR 0xAE +#define I2C_READ_ADDR 0xAF + +//register addresses +#define REG_INTR_STATUS_1 0x00 +#define REG_INTR_STATUS_2 0x01 +#define REG_INTR_ENABLE_1 0x02 +#define REG_INTR_ENABLE_2 0x03 +#define REG_FIFO_WR_PTR 0x04 +#define REG_OVF_COUNTER 0x05 +#define REG_FIFO_RD_PTR 0x06 +#define REG_FIFO_DATA 0x07 +#define REG_FIFO_CONFIG 0x08 +#define REG_MODE_CONFIG 0x09 +#define REG_SPO2_CONFIG 0x0A +#define REG_LED1_PA 0x0C +#define REG_LED2_PA 0x0D +#define REG_PILOT_PA 0x10 +#define REG_MULTI_LED_CTRL1 0x11 +#define REG_MULTI_LED_CTRL2 0x12 +#define REG_TEMP_INTR 0x1F +#define REG_TEMP_FRAC 0x20 +#define REG_TEMP_CONFIG 0x21 +#define REG_PROX_INT_THRESH 0x30 +#define REG_REV_ID 0xFE +#define REG_PART_ID 0xFF + +bool maxim_max30102_init(); +bool maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led); +bool maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data); +bool maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data); +bool maxim_max30102_reset(void); + +#endif /* MAX30102_H_ */ \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/RD117_MBED/algorithm/algorithm.cpp b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/algorithm/algorithm.cpp new file mode 100644 index 0000000000000000000000000000000000000000..409ec615fcf463c2019f4535fd2150e2602b1d5d --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/algorithm/algorithm.cpp @@ -0,0 +1,363 @@ +/** \file algorithm.cpp ****************************************************** +* +* Project: MAXREFDES117# +* Filename: algorithm.cpp +* Description: This module calculates the heart rate/SpO2 level +* +* +* -------------------------------------------------------------------- +* +* This code follows the following naming conventions: +* +* char ch_pmod_value +* char (array) s_pmod_s_string[16] +* float f_pmod_value +* int32_t n_pmod_value +* int32_t (array) an_pmod_value[16] +* int16_t w_pmod_value +* int16_t (array) aw_pmod_value[16] +* uint16_t uw_pmod_value +* uint16_t (array) auw_pmod_value[16] +* uint8_t uch_pmod_value +* uint8_t (array) auch_pmod_buffer[16] +* uint32_t un_pmod_value +* int32_t * pn_pmod_value +* +* ------------------------------------------------------------------------- */ +/******************************************************************************* +* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES +* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +* +* Except as contained in this notice, the name of Maxim Integrated +* Products, Inc. shall not be used except as stated in the Maxim Integrated +* Products, Inc. Branding Policy. +* +* The mere transfer of this software does not imply any licenses +* of trade secrets, proprietary technology, copyrights, patents, +* trademarks, maskwork rights, or any other form of intellectual +* property whatsoever. Maxim Integrated Products, Inc. retains all +* ownership rights. +******************************************************************************* +*/ +#include "algorithm.h" +#include "mbed.h" + +void maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer, int32_t n_ir_buffer_length, uint32_t *pun_red_buffer, int32_t *pn_spo2, int8_t *pch_spo2_valid, + int32_t *pn_heart_rate, int8_t *pch_hr_valid) +/** +* \brief Calculate the heart rate and SpO2 level +* \par Details +* By detecting peaks of PPG cycle and corresponding AC/DC of red/infra-red signal, the ratio for the SPO2 is computed. +* Since this algorithm is aiming for Arm M0/M3. formaula for SPO2 did not achieve the accuracy due to register overflow. +* Thus, accurate SPO2 is precalculated and save longo uch_spo2_table[] per each ratio. +* +* \param[in] *pun_ir_buffer - IR sensor data buffer +* \param[in] n_ir_buffer_length - IR sensor data buffer length +* \param[in] *pun_red_buffer - Red sensor data buffer +* \param[out] *pn_spo2 - Calculated SpO2 value +* \param[out] *pch_spo2_valid - 1 if the calculated SpO2 value is valid +* \param[out] *pn_heart_rate - Calculated heart rate value +* \param[out] *pch_hr_valid - 1 if the calculated heart rate value is valid +* +* \retval None +*/ +{ + uint32_t un_ir_mean ,un_only_once ; + int32_t k ,n_i_ratio_count; + int32_t i, s, m, n_exact_ir_valley_locs_count ,n_middle_idx; + int32_t n_th1, n_npks,n_c_min; + int32_t an_ir_valley_locs[15] ; + int32_t an_exact_ir_valley_locs[15] ; + int32_t an_dx_peak_locs[15] ; + int32_t n_peak_interval_sum; + + int32_t n_y_ac, n_x_ac; + int32_t n_spo2_calc; + int32_t n_y_dc_max, n_x_dc_max; + int32_t n_y_dc_max_idx, n_x_dc_max_idx; + int32_t an_ratio[5],n_ratio_average; + int32_t n_nume, n_denom ; + // remove DC of ir signal + un_ir_mean =0; + for (k=0 ; k<n_ir_buffer_length ; k++ ) un_ir_mean += pun_ir_buffer[k] ; + un_ir_mean =un_ir_mean/n_ir_buffer_length ; + for (k=0 ; k<n_ir_buffer_length ; k++ ) an_x[k] = pun_ir_buffer[k] - un_ir_mean ; + + // 4 pt Moving Average + for(k=0; k< BUFFER_SIZE-MA4_SIZE; k++){ + n_denom= ( an_x[k]+an_x[k+1]+ an_x[k+2]+ an_x[k+3]); + an_x[k]= n_denom/(int32_t)4; + } + + // get difference of smoothed IR signal + + for( k=0; k<BUFFER_SIZE-MA4_SIZE-1; k++) + an_dx[k]= (an_x[k+1]- an_x[k]); + + // 2-pt Moving Average to an_dx + for(k=0; k< BUFFER_SIZE-MA4_SIZE-2; k++){ + an_dx[k] = ( an_dx[k]+an_dx[k+1])/2 ; + } + + // hamming window + // flip wave form so that we can detect valley with peak detector + for ( i=0 ; i<BUFFER_SIZE-HAMMING_SIZE-MA4_SIZE-2 ;i++){ + s= 0; + for( k=i; k<i+ HAMMING_SIZE ;k++){ + s -= an_dx[k] *auw_hamm[k-i] ; + } + an_dx[i]= s/ (int32_t)1146; // divide by sum of auw_hamm + } + + + n_th1=0; // threshold calculation + for ( k=0 ; k<BUFFER_SIZE-HAMMING_SIZE ;k++){ + n_th1 += ((an_dx[k]>0)? an_dx[k] : ((int32_t)0-an_dx[k])) ; + } + n_th1= n_th1/ ( BUFFER_SIZE-HAMMING_SIZE); + // peak location is acutally index for sharpest location of raw signal since we flipped the signal + maxim_find_peaks( an_dx_peak_locs, &n_npks, an_dx, BUFFER_SIZE-HAMMING_SIZE, n_th1, 8, 5 );//peak_height, peak_distance, max_num_peaks + + n_peak_interval_sum =0; + if (n_npks>=2){ + for (k=1; k<n_npks; k++) + n_peak_interval_sum += (an_dx_peak_locs[k]-an_dx_peak_locs[k -1]); + n_peak_interval_sum=n_peak_interval_sum/(n_npks-1); + *pn_heart_rate=(int32_t)(6000/n_peak_interval_sum);// beats per minutes + *pch_hr_valid = 1; + } + else { + *pn_heart_rate = -999; + *pch_hr_valid = 0; + } + + for ( k=0 ; k<n_npks ;k++) + an_ir_valley_locs[k]=an_dx_peak_locs[k]+HAMMING_SIZE/2; + + + // raw value : RED(=y) and IR(=X) + // we need to assess DC and AC value of ir and red PPG. + for (k=0 ; k<n_ir_buffer_length ; k++ ) { + an_x[k] = pun_ir_buffer[k] ; + an_y[k] = pun_red_buffer[k] ; + } + + // find precise min near an_ir_valley_locs + n_exact_ir_valley_locs_count =0; + for(k=0 ; k<n_npks ;k++){ + un_only_once =1; + m=an_ir_valley_locs[k]; + n_c_min= 16777216;//2^24; + if (m+5 < BUFFER_SIZE-HAMMING_SIZE && m-5 >0){ + for(i= m-5;i<m+5; i++) + if (an_x[i]<n_c_min){ + if (un_only_once >0){ + un_only_once =0; + } + n_c_min= an_x[i] ; + an_exact_ir_valley_locs[k]=i; + } + if (un_only_once ==0) + n_exact_ir_valley_locs_count ++ ; + } + } + if (n_exact_ir_valley_locs_count <2 ){ + *pn_spo2 = -999 ; // do not use SPO2 since signal ratio is out of range + *pch_spo2_valid = 0; + return; + } + // 4 pt MA + for(k=0; k< BUFFER_SIZE-MA4_SIZE; k++){ + an_x[k]=( an_x[k]+an_x[k+1]+ an_x[k+2]+ an_x[k+3])/(int32_t)4; + an_y[k]=( an_y[k]+an_y[k+1]+ an_y[k+2]+ an_y[k+3])/(int32_t)4; + } + + //using an_exact_ir_valley_locs , find ir-red DC andir-red AC for SPO2 calibration ratio + //finding AC/DC maximum of raw ir * red between two valley locations + n_ratio_average =0; + n_i_ratio_count =0; + + for(k=0; k< 5; k++) an_ratio[k]=0; + for (k=0; k< n_exact_ir_valley_locs_count; k++){ + if (an_exact_ir_valley_locs[k] > BUFFER_SIZE ){ + *pn_spo2 = -999 ; // do not use SPO2 since valley loc is out of range + *pch_spo2_valid = 0; + return; + } + } + // find max between two valley locations + // and use ratio betwen AC compoent of Ir & Red and DC compoent of Ir & Red for SPO2 + + for (k=0; k< n_exact_ir_valley_locs_count-1; k++){ + n_y_dc_max= -16777216 ; + n_x_dc_max= - 16777216; + if (an_exact_ir_valley_locs[k+1]-an_exact_ir_valley_locs[k] >10){ + for (i=an_exact_ir_valley_locs[k]; i< an_exact_ir_valley_locs[k+1]; i++){ + if (an_x[i]> n_x_dc_max) {n_x_dc_max =an_x[i];n_x_dc_max_idx =i; } + if (an_y[i]> n_y_dc_max) {n_y_dc_max =an_y[i];n_y_dc_max_idx=i;} + } + n_y_ac= (an_y[an_exact_ir_valley_locs[k+1]] - an_y[an_exact_ir_valley_locs[k] ] )*(n_y_dc_max_idx -an_exact_ir_valley_locs[k]); //red + n_y_ac= an_y[an_exact_ir_valley_locs[k]] + n_y_ac/ (an_exact_ir_valley_locs[k+1] - an_exact_ir_valley_locs[k]) ; + + + n_y_ac= an_y[n_y_dc_max_idx] - n_y_ac; // subracting linear DC compoenents from raw + n_x_ac= (an_x[an_exact_ir_valley_locs[k+1]] - an_x[an_exact_ir_valley_locs[k] ] )*(n_x_dc_max_idx -an_exact_ir_valley_locs[k]); // ir + n_x_ac= an_x[an_exact_ir_valley_locs[k]] + n_x_ac/ (an_exact_ir_valley_locs[k+1] - an_exact_ir_valley_locs[k]); + n_x_ac= an_x[n_y_dc_max_idx] - n_x_ac; // subracting linear DC compoenents from raw + n_nume=( n_y_ac *n_x_dc_max)>>7 ; //prepare X100 to preserve floating value + n_denom= ( n_x_ac *n_y_dc_max)>>7; + if (n_denom>0 && n_i_ratio_count <5 && n_nume != 0) + { + an_ratio[n_i_ratio_count]= (n_nume*100)/n_denom ; //formular is ( n_y_ac *n_x_dc_max) / ( n_x_ac *n_y_dc_max) ; + n_i_ratio_count++; + } + } + } + + maxim_sort_ascend(an_ratio, n_i_ratio_count); + n_middle_idx= n_i_ratio_count/2; + + if (n_middle_idx >1) + n_ratio_average =( an_ratio[n_middle_idx-1] +an_ratio[n_middle_idx])/2; // use median + else + n_ratio_average = an_ratio[n_middle_idx ]; + + if( n_ratio_average>2 && n_ratio_average <184){ + n_spo2_calc= uch_spo2_table[n_ratio_average] ; + *pn_spo2 = n_spo2_calc ; + *pch_spo2_valid = 1;// float_SPO2 = -45.060*n_ratio_average* n_ratio_average/10000 + 30.354 *n_ratio_average/100 + 94.845 ; // for comparison with table + } + else{ + *pn_spo2 = -999 ; // do not use SPO2 since signal ratio is out of range + *pch_spo2_valid = 0; + } +} + + +void maxim_find_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num) +/** +* \brief Find peaks +* \par Details +* Find at most MAX_NUM peaks above MIN_HEIGHT separated by at least MIN_DISTANCE +* +* \retval None +*/ +{ + maxim_peaks_above_min_height( pn_locs, pn_npks, pn_x, n_size, n_min_height ); + maxim_remove_close_peaks( pn_locs, pn_npks, pn_x, n_min_distance ); + *pn_npks = min( *pn_npks, n_max_num ); +} + +void maxim_peaks_above_min_height(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height) +/** +* \brief Find peaks above n_min_height +* \par Details +* Find all peaks above MIN_HEIGHT +* +* \retval None +*/ +{ + int32_t i = 1, n_width; + *pn_npks = 0; + + while (i < n_size-1){ + if (pn_x[i] > n_min_height && pn_x[i] > pn_x[i-1]){ // find left edge of potential peaks + n_width = 1; + while (i+n_width < n_size && pn_x[i] == pn_x[i+n_width]) // find flat peaks + n_width++; + if (pn_x[i] > pn_x[i+n_width] && (*pn_npks) < 15 ){ // find right edge of peaks + pn_locs[(*pn_npks)++] = i; + // for flat peaks, peak location is left edge + i += n_width+1; + } + else + i += n_width; + } + else + i++; + } +} + + +void maxim_remove_close_peaks(int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance) +/** +* \brief Remove peaks +* \par Details +* Remove peaks separated by less than MIN_DISTANCE +* +* \retval None +*/ +{ + + int32_t i, j, n_old_npks, n_dist; + + /* Order peaks from large to small */ + maxim_sort_indices_descend( pn_x, pn_locs, *pn_npks ); + + for ( i = -1; i < *pn_npks; i++ ){ + n_old_npks = *pn_npks; + *pn_npks = i+1; + for ( j = i+1; j < n_old_npks; j++ ){ + n_dist = pn_locs[j] - ( i == -1 ? -1 : pn_locs[i] ); // lag-zero peak of autocorr is at index -1 + if ( n_dist > n_min_distance || n_dist < -n_min_distance ) + pn_locs[(*pn_npks)++] = pn_locs[j]; + } + } + + // Resort indices longo ascending order + maxim_sort_ascend( pn_locs, *pn_npks ); +} + +void maxim_sort_ascend(int32_t *pn_x,int32_t n_size) +/** +* \brief Sort array +* \par Details +* Sort array in ascending order (insertion sort algorithm) +* +* \retval None +*/ +{ + int32_t i, j, n_temp; + for (i = 1; i < n_size; i++) { + n_temp = pn_x[i]; + for (j = i; j > 0 && n_temp < pn_x[j-1]; j--) + pn_x[j] = pn_x[j-1]; + pn_x[j] = n_temp; + } +} + +void maxim_sort_indices_descend(int32_t *pn_x, int32_t *pn_indx, int32_t n_size) +/** +* \brief Sort indices +* \par Details +* Sort indices according to descending order (insertion sort algorithm) +* +* \retval None +*/ +{ + int32_t i, j, n_temp; + for (i = 1; i < n_size; i++) { + n_temp = pn_indx[i]; + for (j = i; j > 0 && pn_x[n_temp] > pn_x[pn_indx[j-1]]; j--) + pn_indx[j] = pn_indx[j-1]; + pn_indx[j] = n_temp; + } +} + diff --git a/lib/vendor/Maxim/rd117_mbed/RD117_MBED/algorithm/algorithm.h b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/algorithm/algorithm.h new file mode 100644 index 0000000000000000000000000000000000000000..ec8cd7f67b2e5ffe9e0d8bab94cedc5c9dc70380 --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/algorithm/algorithm.h @@ -0,0 +1,100 @@ +/** \file algorithm.h ****************************************************** +* +* Project: MAXREFDES117# +* Filename: algorithm.h +* Description: This module is the heart rate/SpO2 calculation algorithm header file +* +* Revision History: +*\n 1-18-2016 Rev 01.00 SK Initial release. +*\n +* +* -------------------------------------------------------------------- +* +* This code follows the following naming conventions: +* +*\n char ch_pmod_value +*\n char (array) s_pmod_s_string[16] +*\n float f_pmod_value +*\n int32_t n_pmod_value +*\n int32_t (array) an_pmod_value[16] +*\n int16_t w_pmod_value +*\n int16_t (array) aw_pmod_value[16] +*\n uint16_t uw_pmod_value +*\n uint16_t (array) auw_pmod_value[16] +*\n uint8_t uch_pmod_value +*\n uint8_t (array) auch_pmod_buffer[16] +*\n uint32_t un_pmod_value +*\n int32_t * pn_pmod_value +* +* ------------------------------------------------------------------------- */ +/******************************************************************************* +* Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES +* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +* +* Except as contained in this notice, the name of Maxim Integrated +* Products, Inc. shall not be used except as stated in the Maxim Integrated +* Products, Inc. Branding Policy. +* +* The mere transfer of this software does not imply any licenses +* of trade secrets, proprietary technology, copyrights, patents, +* trademarks, maskwork rights, or any other form of intellectual +* property whatsoever. Maxim Integrated Products, Inc. retains all +* ownership rights. +******************************************************************************* +*/ +#ifndef ALGORITHM_H_ +#define ALGORITHM_H_ + +#include "mbed.h" + +#define true 1 +#define false 0 +#define FS 100 +#define BUFFER_SIZE (FS* 5) +#define HR_FIFO_SIZE 7 +#define MA4_SIZE 4 // DO NOT CHANGE +#define HAMMING_SIZE 5// DO NOT CHANGE +#define min(x,y) ((x) < (y) ? (x) : (y)) + +const uint16_t auw_hamm[31]={ 41, 276, 512, 276, 41 }; //Hamm= long16(512* hamming(5)'); +//uch_spo2_table is computed as -45.060*ratioAverage* ratioAverage + 30.354 *ratioAverage + 94.845 ; +const uint8_t uch_spo2_table[184]={ 95, 95, 95, 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 99, 99, 99, 99, + 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98, 98, 97, 97, + 97, 97, 96, 96, 96, 96, 95, 95, 95, 94, 94, 94, 93, 93, 93, 92, 92, 92, 91, 91, + 90, 90, 89, 89, 89, 88, 88, 87, 87, 86, 86, 85, 85, 84, 84, 83, 82, 82, 81, 81, + 80, 80, 79, 78, 78, 77, 76, 76, 75, 74, 74, 73, 72, 72, 71, 70, 69, 69, 68, 67, + 66, 66, 65, 64, 63, 62, 62, 61, 60, 59, 58, 57, 56, 56, 55, 54, 53, 52, 51, 50, + 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 31, 30, 29, + 28, 27, 26, 25, 23, 22, 21, 20, 19, 17, 16, 15, 14, 12, 11, 10, 9, 7, 6, 5, + 3, 2, 1 } ; +static int32_t an_dx[ BUFFER_SIZE-MA4_SIZE]; // delta +static int32_t an_x[ BUFFER_SIZE]; //ir +static int32_t an_y[ BUFFER_SIZE]; //red + + +void maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer , int32_t n_ir_buffer_length, uint32_t *pun_red_buffer , int32_t *pn_spo2, int8_t *pch_spo2_valid , int32_t *pn_heart_rate , int8_t *pch_hr_valid); +void maxim_find_peaks( int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num ); +void maxim_peaks_above_min_height( int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height ); +void maxim_remove_close_peaks( int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance ); +void maxim_sort_ascend( int32_t *pn_x, int32_t n_size ); +void maxim_sort_indices_descend( int32_t *pn_x, int32_t *pn_indx, int32_t n_size); + +#endif /* ALGORITHM_H_ */ \ No newline at end of file diff --git a/lib/vendor/Maxim/rd117_mbed/RD117_MBED/main.cpp b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8b4596c7774fc88d0a38bc8a321e478f5509b02c --- /dev/null +++ b/lib/vendor/Maxim/rd117_mbed/RD117_MBED/main.cpp @@ -0,0 +1,219 @@ +/** \file main.cpp ****************************************************** +* +* Project: MAXREFDES117# +* Filename: main.cpp +* Description: This module contains the Main application for the MAXREFDES117 example program. +* +* +* -------------------------------------------------------------------- +* +* This code follows the following naming conventions: +* +* char ch_pmod_value +* char (array) s_pmod_s_string[16] +* float f_pmod_value +* int32_t n_pmod_value +* int32_t (array) an_pmod_value[16] +* int16_t w_pmod_value +* int16_t (array) aw_pmod_value[16] +* uint16_t uw_pmod_value +* uint16_t (array) auw_pmod_value[16] +* uint8_t uch_pmod_value +* uint8_t (array) auch_pmod_buffer[16] +* uint32_t un_pmod_value +* int32_t * pn_pmod_value +* +* ------------------------------------------------------------------------- */ +/******************************************************************************* +* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES +* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +* +* Except as contained in this notice, the name of Maxim Integrated +* Products, Inc. shall not be used except as stated in the Maxim Integrated +* Products, Inc. Branding Policy. +* +* The mere transfer of this software does not imply any licenses +* of trade secrets, proprietary technology, copyrights, patents, +* trademarks, maskwork rights, or any other form of intellectual +* property whatsoever. Maxim Integrated Products, Inc. retains all +* ownership rights. +******************************************************************************* +*/ +/*!\mainpage Main Page +* +* \section intro_sec Introduction +* +* This is the code documentation for the MAXREFDES117# subsystem reference design. +* +* The Files page contains the File List page and the Globals page. +* +* The Globals page contains the Functions, Variables, and Macros sub-pages. +* +* \image html MAXREFDES117_Block_Diagram.png "MAXREFDES117# System Block Diagram" +* +* \image html MAXREFDES117_firmware_Flowchart.png "MAXREFDES117# Firmware Flowchart" +* +*/ +#include "mbed.h" +#include "algorithm.h" +#include "MAX30102.h" + +#define MAX_BRIGHTNESS 255 + +uint32_t aun_ir_buffer[500]; //IR LED sensor data +int32_t n_ir_buffer_length; //data length +uint32_t aun_red_buffer[500]; //Red LED sensor data +int32_t n_sp02; //SPO2 value +int8_t ch_spo2_valid; //indicator to show if the SP02 calculation is valid +int32_t n_heart_rate; //heart rate value +int8_t ch_hr_valid; //indicator to show if the heart rate calculation is valid +uint8_t uch_dummy; + +Serial pc(USBTX, USBRX); //initializes the serial port +#ifdef TARGET_KL25Z +PwmOut led(PTB18); //initializes the pwm output that connects to the on board LED +DigitalIn INT(PTD1); //pin PTD1 connects to the interrupt output pin of the MAX30102 +#endif +#ifdef TARGET_K64F +DigitalIn INT(PTD1); //pin PTD1 connects to the interrupt output pin of the MAX30102 +#endif +#ifdef TARGET_MAX32600MBED +PwmOut led(LED_RED); //initializes the pwm output that connects to the on board LED +DigitalIn INT(P2_0); //pin P20 connects to the interrupt output pin of the MAX30102 +#endif + +// the setup routine runs once when you press reset: +int main() { + uint32_t un_min, un_max, un_prev_data; //variables to calculate the on-board LED brightness that reflects the heartbeats + int i; + int32_t n_brightness; + float f_temp; + + maxim_max30102_reset(); //resets the MAX30102 + // initialize serial communication at 115200 bits per second: + pc.baud(115200); + pc.format(8,SerialBase::None,1); + wait(1); + + //read and clear status register + maxim_max30102_read_reg(0,&uch_dummy); + + //wait until the user presses a key + while(pc.readable()==0) + { + pc.printf("\x1B[2J"); //clear terminal program screen + pc.printf("Press any key to start conversion\n\r"); + wait(1); + } + uch_dummy=getchar(); + + maxim_max30102_init(); //initializes the MAX30102 + + + n_brightness=0; + un_min=0x3FFFF; + un_max=0; + + n_ir_buffer_length=500; //buffer length of 100 stores 5 seconds of samples running at 100sps + + //read the first 500 samples, and determine the signal range + for(i=0;i<n_ir_buffer_length;i++) + { + while(INT.read()==1); //wait until the interrupt pin asserts + + maxim_max30102_read_fifo((aun_red_buffer+i), (aun_ir_buffer+i)); //read from MAX30102 FIFO + + if(un_min>aun_red_buffer[i]) + un_min=aun_red_buffer[i]; //update signal min + if(un_max<aun_red_buffer[i]) + un_max=aun_red_buffer[i]; //update signal max + pc.printf("red="); + pc.printf("%i", aun_red_buffer[i]); + pc.printf(", ir="); + pc.printf("%i\n\r", aun_ir_buffer[i]); + } + un_prev_data=aun_red_buffer[i]; + + + //calculate heart rate and SpO2 after first 500 samples (first 5 seconds of samples) + maxim_heart_rate_and_oxygen_saturation(aun_ir_buffer, n_ir_buffer_length, aun_red_buffer, &n_sp02, &ch_spo2_valid, &n_heart_rate, &ch_hr_valid); + + //Continuously taking samples from MAX30102. Heart rate and SpO2 are calculated every 1 second + while(1) + { + i=0; + un_min=0x3FFFF; + un_max=0; + + //dumping the first 100 sets of samples in the memory and shift the last 400 sets of samples to the top + for(i=100;i<500;i++) + { + aun_red_buffer[i-100]=aun_red_buffer[i]; + aun_ir_buffer[i-100]=aun_ir_buffer[i]; + + //update the signal min and max + if(un_min>aun_red_buffer[i]) + un_min=aun_red_buffer[i]; + if(un_max<aun_red_buffer[i]) + un_max=aun_red_buffer[i]; + } + + //take 100 sets of samples before calculating the heart rate. + for(i=400;i<500;i++) + { + un_prev_data=aun_red_buffer[i-1]; + while(INT.read()==1); + maxim_max30102_read_fifo((aun_red_buffer+i), (aun_ir_buffer+i)); + + if(aun_red_buffer[i]>un_prev_data) + { + f_temp=aun_red_buffer[i]-un_prev_data; + f_temp/=(un_max-un_min); + f_temp*=MAX_BRIGHTNESS; + n_brightness-=(int)f_temp; + if(n_brightness<0) + n_brightness=0; + } + else + { + f_temp=un_prev_data-aun_red_buffer[i]; + f_temp/=(un_max-un_min); + f_temp*=MAX_BRIGHTNESS; + n_brightness+=(int)f_temp; + if(n_brightness>MAX_BRIGHTNESS) + n_brightness=MAX_BRIGHTNESS; + } +#if defined(TARGET_KL25Z) || defined(TARGET_MAX32600MBED) + led.write(1-(float)n_brightness/256); +#endif + //send samples and calculation result to terminal program through UART + pc.printf("red="); + pc.printf("%i", aun_red_buffer[i]); + pc.printf(", ir="); + pc.printf("%i", aun_ir_buffer[i]); + pc.printf(", HR=%i, ", n_heart_rate); + pc.printf("HRvalid=%i, ", ch_hr_valid); + pc.printf("SpO2=%i, ", n_sp02); + pc.printf("SPO2Valid=%i\n\r", ch_spo2_valid); + } + maxim_heart_rate_and_oxygen_saturation(aun_ir_buffer, n_ir_buffer_length, aun_red_buffer, &n_sp02, &ch_spo2_valid, &n_heart_rate, &ch_hr_valid); + } +} + \ No newline at end of file