Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
48241ad08This file is pinned to the selected release. Download the original to open it in your design tool.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IoT-MBBR (masterthesis): firmware/EFM32HG222F64_iot-mbbr/inc/delay.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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</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="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IoT-MBBR (masterthesis)
</div>
<div id="projectbrief">Masterthesis upgrading a Moving Bed BioReactor with extra sensors and cloud connectivity.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></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('delay_8h_source.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">delay.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="delay_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><span class="comment">/**</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * @file delay.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * @brief Delay functionality.</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * @version 3.4</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * @author Brecht Van Eeckhoudt</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"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * @section License</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * **Copyright (C) 2020 - Brecht Van Eeckhoudt**</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 program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * it under the terms of the **GNU General Public License** as published by</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * the Free Software Foundation, either **version 3** of the License, or</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * (at your option) any later version.</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 program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * *A copy of the GNU General Public License can be found in the `LICENSE`</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * file along with this source code.*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * @n</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"> * Some methods use code obtained from examples from [Silicon Labs' GitHub](https://github.com/SiliconLabs/peripheral_examples).</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * These sections are licensed under the Silabs License Agreement. See the file</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * "Silabs_License_Agreement.txt" for details. Before using this software for</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * any purpose, you must agree to the terms of that agreement.</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"> ******************************************************************************/</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> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">/* Include guards prevent multiple inclusions of the same header */</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#ifndef _DELAY_H_</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#define _DELAY_H_</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </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> <span class="comment">/* Includes necessary for this header file */</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <stdint.h></span> <span class="comment">/* (u)intXX_t */</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <stdbool.h></span> <span class="comment">/* "bool", "true", "false" */</span></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> <span class="comment"></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">/** Public definition to select which delay to use</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> * @li `1` - Use SysTick delays (don't to to sleep when calling `delay`)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> * @li `0` - Use EM2/3 RTC compare for both `delay` and `sleep`. */</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="delay_8h.html#ad940ebb5d3d4b3a77abd7c92fe76073c"> 49</a></span> <span class="preprocessor">#define SYSTICKDELAY 0</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</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">/** Public definition to select the use of the crystal or the oscillator</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> * @li `0` - Use the low-frequency crystal oscillator (LFXO), EM2 sleep is used.</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> * @li `1` - Use the ultra low-frequency RC oscillator (ULFRCO), EM3 sleep is used but delays are less precise timing-wise.</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> * ** EM3: All unwanted oscillators are disabled, they don't need to manually disabled before `EMU_EnterEM3`.** */</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="delay_8h.html#a78cca9c59fcbf3b43d03f7270c4b3a8c"> 56</a></span> <span class="preprocessor">#define ULFRCO 1</span></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> <span class="comment"></span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">/** Public definition to select if the sleep time should be announced using `dbprint` or not</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> * @li `0` - Don't announce sleeping/</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> * @li `1` - Announce sleeping. */</span></div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="delay_8h.html#ae1856f9dee8c38c23f497e33ba9898ea"> 62</a></span> <span class="preprocessor">#define ANNOUNCE_SLEEPING 1</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> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">/* Public prototypes */</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keywordtype">void</span> <a class="code" href="delay_8h.html#adb46f4276f5ddf111153701858f85df6">delay</a> (<a class="code" href="vl53l1__types_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> msDelay);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keywordtype">void</span> <a class="code" href="delay_8h.html#aae86f940455b5957441f4331cdc0828d">sleep</a> (<a class="code" href="vl53l1__types_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> sSleep);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keywordtype">bool</span> <a class="code" href="delay_8h.html#a7bfbeaf084abaa0fc6baf77a1640b598">RTC_checkWakeup</a> (<span class="keywordtype">void</span>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordtype">void</span> <a class="code" href="delay_8h.html#a072ccec54e047acce2566984c28b0232">RTC_clearWakeup</a> (<span class="keywordtype">void</span>);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <a class="code" href="vl53l1__types_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="delay_8h.html#a3e274aac5f6eaff85d00c25c6edff5a3">RTC_getPassedSleeptime</a> (<span class="keywordtype">void</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"> 73</span> <span class="preprocessor">#endif </span><span class="comment">/* _DELAY_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="delay_8h_html_a3e274aac5f6eaff85d00c25c6edff5a3"><div class="ttname"><a href="delay_8h.html#a3e274aac5f6eaff85d00c25c6edff5a3">RTC_getPassedSleeptime</a></div><div class="ttdeci">uint32_t RTC_getPassedSleeptime(void)</div><div class="ttdoc">Method to get the time spend sleeping (in seconds) in the case of GPIO wake-up. </div><div class="ttdef"><b>Definition:</b> <a href="delay_8c_source.html#l00456">delay.c:456</a></div></div>
<div class="ttc" id="delay_8h_html_a072ccec54e047acce2566984c28b0232"><div class="ttname"><a href="delay_8h.html#a072ccec54e047acce2566984c28b0232">RTC_clearWakeup</a></div><div class="ttdeci">void RTC_clearWakeup(void)</div><div class="ttdoc">Method to clear RTC_sleep_wakeup. </div><div class="ttdef"><b>Definition:</b> <a href="delay_8c_source.html#l00442">delay.c:442</a></div></div>
<div class="ttc" id="delay_8h_html_adb46f4276f5ddf111153701858f85df6"><div class="ttname"><a href="delay_8h.html#adb46f4276f5ddf111153701858f85df6">delay</a></div><div class="ttdeci">void delay(uint32_t msDelay)</div><div class="ttdoc">Wait for a certain amount of milliseconds in EM2/3. </div><div class="ttdef"><b>Definition:</b> <a href="delay_8c_source.html#l00124">delay.c:124</a></div></div>
<div class="ttc" id="delay_8h_html_a7bfbeaf084abaa0fc6baf77a1640b598"><div class="ttname"><a href="delay_8h.html#a7bfbeaf084abaa0fc6baf77a1640b598">RTC_checkWakeup</a></div><div class="ttdeci">bool RTC_checkWakeup(void)</div><div class="ttdoc">Method to check if the wakeup was caused by the RTC. </div><div class="ttdef"><b>Definition:</b> <a href="delay_8c_source.html#l00432">delay.c:432</a></div></div>
<div class="ttc" id="delay_8h_html_aae86f940455b5957441f4331cdc0828d"><div class="ttname"><a href="delay_8h.html#aae86f940455b5957441f4331cdc0828d">sleep</a></div><div class="ttdeci">void sleep(uint32_t sSleep)</div><div class="ttdoc">Sleep for a certain amount of seconds in EM2/3. </div><div class="ttdef"><b>Definition:</b> <a href="delay_8c_source.html#l00293">delay.c:293</a></div></div>
<div class="ttc" id="vl53l1__types_8h_html_a435d1572bf3f880d55459d9805097f62"><div class="ttname"><a href="vl53l1__types_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a></div><div class="ttdeci">unsigned int uint32_t</div><div class="ttdoc">Typedef defining 32 bit unsigned int type. The developer should modify this to suit the platform bein...</div><div class="ttdef"><b>Definition:</b> <a href="vl53l1__types_8h_source.html#l00078">vl53l1_types.h:78</a></div></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_d9edf6c004b4a7ff14fe9ae7a92214ee.html">firmware</a></li><li class="navelem"><a class="el" href="dir_9a5a365c58dea0dc152d55f461feaba5.html">EFM32HG222F64_iot-mbbr</a></li><li class="navelem"><a class="el" href="dir_50f1611db0d8b6d18176211c614d1122.html">inc</a></li><li class="navelem"><a class="el" href="delay_8h.html">delay.h</a></li>
<li class="footer">Generated on Thu Sep 3 2020 04:44:25 for IoT-MBBR (masterthesis) by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>