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/DS18B20.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="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('DS18B20_8h.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">DS18B20.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>All code for the DS18B20 temperature sensor.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include <stdint.h></code><br />
</div>
<p><a href="DS18B20_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="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a4eb4b34359542254ef44dd90a4a1782c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vl53l1__types_8h.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="DS18B20_8h.html#a4eb4b34359542254ef44dd90a4a1782c">readTempDS18B20</a> (<a class="el" href="vl53l1__types_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> number)</td></tr>
<tr class="memdesc:a4eb4b34359542254ef44dd90a4a1782c"><td class="mdescLeft"> </td><td class="mdescRight">Get a temperature value from the DS18B20. <a href="#a4eb4b34359542254ef44dd90a4a1782c">More...</a><br /></td></tr>
<tr class="separator:a4eb4b34359542254ef44dd90a4a1782c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>All code for the DS18B20 temperature sensor. </p>
<dl class="section version"><dt>Version</dt><dd>4.0 </dd></dl>
<dl class="section author"><dt>Author</dt><dd>Alec Vanderhaegen & Sarah Goossens<br />
Heavily modified by Brecht Van Eeckhoudt</dd></dl>
<hr/>
<h1><a class="anchor" id="License"></a>
License</h1>
<p><b>Copyright (C) 2020 - Brecht Van Eeckhoudt</b></p>
<p>This program is free software: you can redistribute it and/or modify it under the terms of the <b>GNU General Public License</b> as published by the Free Software Foundation, either <b>version 3</b> of the License, or (at your option) any later version.</p>
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
<p><em>A copy of the GNU General Public License can be found in the <code>LICENSE</code> file along with this source code.</em></p>
<p><br />
Some methods use code obtained from examples from <a href="https://github.com/SiliconLabs/peripheral_examples">Silicon Labs' GitHub</a>. These sections are licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement. </p>
<p class="definition">Definition in file <a class="el" href="DS18B20_8h_source.html">DS18B20.h</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a4eb4b34359542254ef44dd90a4a1782c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4eb4b34359542254ef44dd90a4a1782c">◆ </a></span>readTempDS18B20()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="vl53l1__types_8h.html#a32f2e37ee053cf2ce8ca28d1f74630e5">int32_t</a> readTempDS18B20 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="vl53l1__types_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> </td>
<td class="paramname"><em>number</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a temperature value from the DS18B20. </p>
<p>USTimer gets initialized, the sensor gets powered, the data-transmission takes place, the timer gets de-initialized to disable the clocks and interrupts, the data and power pin get disabled and finally the read values are converted to an <code>int32_t</code> value.<br />
<b>Negative temperatures work fine.</b></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">number</td><td><ul>
<li><code>0</code> - TEMP0 selected. </li>
<li><code>1</code> - TEMP1 selected.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The read temperature data. </dd></dl>
<p class="definition">Definition at line <a class="el" href="DS18B20_8c_source.html#l00119">119</a> of file <a class="el" href="DS18B20_8c_source.html">DS18B20.c</a>.</p>
<div class="fragment"><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>  <span class="comment">/* Timeout counter */</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="vl53l1__types_8h.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> counter = 0;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">/* Variable to indicate if a conversion has been completed */</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordtype">bool</span> conversionCompleted = <span class="keyword">false</span>;</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>  <span class="comment">/* Variable to hold raw data bytes */</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="vl53l1__types_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> rawDataDS18B20[9] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};</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>  <span class="comment">/* Initialize timer</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"> * Initializing and disabling the timer again adds about 40 µs active time but should conserve sleep energy... */</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  USTIMER_Init();</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>  <span class="comment">/* Initialize and power VDD pin */</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="DS18B20_8c.html#a18c654814f39bc8a73d8ab8e1676c123">powerDS18B20</a>(number, <span class="keyword">true</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="comment">/* Power-up delay of 5 ms */</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="delay_8h.html#adb46f4276f5ddf111153701858f85df6">delay</a>(5);</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="comment">/* Initialize communication and only continue if successful */</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span> (<a class="code" href="DS18B20_8c.html#a687bb3dd6e7872107c4e81a2b043814e">init_DS18B20</a>(number))</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>  <a class="code" href="DS18B20_8c.html#a2cf798b83879860d0aca6f9e7c69a8fb">writeByteDS18B20</a>(number, 0xCC); <span class="comment">/* 0xCC = "Skip Rom" (address all devices on the bus simultaneously without sending out any ROM code information) */</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="DS18B20_8c.html#a2cf798b83879860d0aca6f9e7c69a8fb">writeByteDS18B20</a>(number, 0x44); <span class="comment">/* 0x44 = "Convert T" */</span></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="comment">/* MASTER now generates "read time slots", the DS18B20 will write HIGH to the bus if the conversion is completed</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment"> * The datasheet gives the following directions for time slots, but reading bytes also seems to work...</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment"> * - Read time slots have a 60 µs duration and 1 µs recovery between slots</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment"> * - After the master pulls the line low for 1 µs, the data is valid for up to 15 µs */</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">while</span> ((counter < <a class="code" href="DS18B20_8c.html#a2207a269d247f40650eb3463f3700b43">TIMEOUT_CONVERSION</a>) && !conversionCompleted)</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>  <a class="code" href="vl53l1__types_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> testByte = <a class="code" href="DS18B20_8c.html#ab304cf2afd2f31a2e665239a0a3880c2">readByteDS18B20</a>(number);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (testByte > 0) conversionCompleted = <span class="keyword">true</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>  counter++;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</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">/* Exit the function if the maximum waiting time was reached */</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span> (counter == <a class="code" href="DS18B20_8c.html#a2207a269d247f40650eb3463f3700b43">TIMEOUT_CONVERSION</a>)</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="preprocessor">#if DEBUG_DBPRINT == 1 </span><span class="comment">/* DEBUG_DBPRINT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="dbprint_8c.html#afbbbe6e04352a6b56d1d8a053ec4f941">dbcrit</a>(<span class="stringliteral">"Waiting time for DS18B20 conversion reached!"</span>);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor">#endif </span><span class="comment">/* DEBUG_DBPRINT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">/* Disable interrupts and turn off the clock to the underlying hardware timer. */</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  USTIMER_DeInit();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">/* Disable data pin (otherwise we got a "sleep" current of about 330 µA due to the on-board (10k) pull-up) */</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">if</span> (number == 0) GPIO_PinModeSet(<a class="code" href="pin__mapping_8h.html#a052d2f338dd833e3632c921082b6176c">TEMP0_DATA_PORT</a>, <a class="code" href="pin__mapping_8h.html#a85491dc2790495ac3b3b12bbe1df0531">TEMP0_DATA_PIN</a>, gpioModeDisabled, 0);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (number == 1) GPIO_PinModeSet(<a class="code" href="pin__mapping_8h.html#ae212cc9581389e355620c1059a4de980">TEMP1_DATA_PORT</a>, <a class="code" href="pin__mapping_8h.html#a07c6556fb148e1522c70409a53b457d3">TEMP1_DATA_PIN</a>, gpioModeDisabled, 0);</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">/* Disable the VDD pin */</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="DS18B20_8c.html#a18c654814f39bc8a73d8ab8e1676c123">powerDS18B20</a>(number, <span class="keyword">false</span>);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="util_8h.html#ab212081592c908bf57b591e3c6e7483d">error</a>(29);</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">/* Exit function */</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> (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>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor">#if DBPRINT_TIMEOUT == 1 </span><span class="comment">/* DBPRINT_TIMEOUT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">else</span></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> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor">#if DEBUG_DBPRINT == 1 </span><span class="comment">/* DEBUG_DBPRINT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="dbprint_8c.html#ada27783fef89d9c9af4976baab87c477">dbwarnInt</a>(<span class="stringliteral">"DS18B20 conversion ("</span>, counter, <span class="stringliteral">")"</span>);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor">#endif </span><span class="comment">/* DEBUG_DBPRINT */</span><span class="preprocessor"></span></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>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor">#endif </span><span class="comment">/* DBPRINT_TIMEOUT */</span><span class="preprocessor"></span></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>  <a class="code" href="DS18B20_8c.html#a687bb3dd6e7872107c4e81a2b043814e">init_DS18B20</a>(number); <span class="comment">/* Initialize communication */</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="DS18B20_8c.html#a2cf798b83879860d0aca6f9e7c69a8fb">writeByteDS18B20</a>(number, 0xCC); <span class="comment">/* 0xCC = "Skip Rom" */</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="DS18B20_8c.html#a2cf798b83879860d0aca6f9e7c69a8fb">writeByteDS18B20</a>(number, 0xBE); <span class="comment">/* 0xBE = "Read Scratchpad" */</span></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="comment">/* Read the bytes */</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">for</span> (<a class="code" href="vl53l1__types_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> i = 0; i < 9; i++) rawDataDS18B20[i] = <a class="code" href="DS18B20_8c.html#ab304cf2afd2f31a2e665239a0a3880c2">readByteDS18B20</a>(number);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="comment">/* Disable interrupts and turn off the clock to the underlying hardware timer. */</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  USTIMER_DeInit();</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">/* Disable data pin (otherwise we got a "sleep" current of about 330 µA due to the on-board (10k) pull-up) */</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">if</span> (number == 0) GPIO_PinModeSet(<a class="code" href="pin__mapping_8h.html#a052d2f338dd833e3632c921082b6176c">TEMP0_DATA_PORT</a>, <a class="code" href="pin__mapping_8h.html#a85491dc2790495ac3b3b12bbe1df0531">TEMP0_DATA_PIN</a>, gpioModeDisabled, 0);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (number == 1) GPIO_PinModeSet(<a class="code" href="pin__mapping_8h.html#ae212cc9581389e355620c1059a4de980">TEMP1_DATA_PORT</a>, <a class="code" href="pin__mapping_8h.html#a07c6556fb148e1522c70409a53b457d3">TEMP1_DATA_PIN</a>, gpioModeDisabled, 0);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="comment">/* Disable the VDD pin */</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="DS18B20_8c.html#a18c654814f39bc8a73d8ab8e1676c123">powerDS18B20</a>(number, <span class="keyword">false</span>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="comment">/* Return the converted byte */</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> (<a class="code" href="DS18B20_8c.html#a9a3bda987c27e677880c5435f43a0da7">convertTempData</a>(rawDataDS18B20[0], rawDataDS18B20[1]));</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">else</span></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="comment">/* Disable interrupts and turn off the clock to the underlying hardware timer. */</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  USTIMER_DeInit();</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> <span class="preprocessor">#if DEBUG_DBPRINT == 1 </span><span class="comment">/* DEBUG_DBPRINT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="dbprint_8c.html#afbbbe6e04352a6b56d1d8a053ec4f941">dbcrit</a>(<span class="stringliteral">"DS18B20 INIT failed!"</span>);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor">#endif </span><span class="comment">/* DEBUG_DBPRINT */</span><span class="preprocessor"></span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">/* Disable data pin (otherwise we got a "sleep" current of about 330 µA due to the on-board (10k) pull-up) */</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">if</span> (number == 0) GPIO_PinModeSet(<a class="code" href="pin__mapping_8h.html#a052d2f338dd833e3632c921082b6176c">TEMP0_DATA_PORT</a>, <a class="code" href="pin__mapping_8h.html#a85491dc2790495ac3b3b12bbe1df0531">TEMP0_DATA_PIN</a>, gpioModeDisabled, 0);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (number == 1) GPIO_PinModeSet(<a class="code" href="pin__mapping_8h.html#ae212cc9581389e355620c1059a4de980">TEMP1_DATA_PORT</a>, <a class="code" href="pin__mapping_8h.html#a07c6556fb148e1522c70409a53b457d3">TEMP1_DATA_PIN</a>, gpioModeDisabled, 0);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">/* Disable the VDD pin */</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="DS18B20_8c.html#a18c654814f39bc8a73d8ab8e1676c123">powerDS18B20</a>(number, <span class="keyword">false</span>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">/* Exit function */</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">return</span> (0);</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="ttc" id="dbprint_8c_html_ada27783fef89d9c9af4976baab87c477"><div class="ttname"><a href="dbprint_8c.html#ada27783fef89d9c9af4976baab87c477">dbwarnInt</a></div><div class="ttdeci">void dbwarnInt(char *message1, int32_t value, char *message2)</div><div class="ttdoc">Print a warning value surrounded by two strings (char array) to USARTx. </div><div class="ttdef"><b>Definition:</b> <a href="dbprint_8c_source.html#l00600">dbprint.c:600</a></div></div>
<div class="ttc" id="DS18B20_8c_html_a2207a269d247f40650eb3463f3700b43"><div class="ttname"><a href="DS18B20_8c.html#a2207a269d247f40650eb3463f3700b43">TIMEOUT_CONVERSION</a></div><div class="ttdeci">#define TIMEOUT_CONVERSION</div><div class="ttdef"><b>Definition:</b> <a href="DS18B20_8c_source.html#l00085">DS18B20.c:85</a></div></div>
<div class="ttc" id="util_8h_html_ab212081592c908bf57b591e3c6e7483d"><div class="ttname"><a href="util_8h.html#ab212081592c908bf57b591e3c6e7483d">error</a></div><div class="ttdeci">void error(uint8_t number)</div><div class="ttdoc">Error method. </div><div class="ttdef"><b>Definition:</b> <a href="util_8c_source.html#l00122">util.c:122</a></div></div>
<div class="ttc" id="DS18B20_8c_html_a687bb3dd6e7872107c4e81a2b043814e"><div class="ttname"><a href="DS18B20_8c.html#a687bb3dd6e7872107c4e81a2b043814e">init_DS18B20</a></div><div class="ttdeci">static bool init_DS18B20(uint8_t number)</div><div class="ttdoc">Initialize communication to the DS18B20. </div><div class="ttdef"><b>Definition:</b> <a href="DS18B20_8c_source.html#l00309">DS18B20.c:309</a></div></div>
<div class="ttc" id="DS18B20_8c_html_a9a3bda987c27e677880c5435f43a0da7"><div class="ttname"><a href="DS18B20_8c.html#a9a3bda987c27e677880c5435f43a0da7">convertTempData</a></div><div class="ttdeci">static int32_t convertTempData(uint8_t tempLS, uint8_t tempMS)</div><div class="ttdoc">Convert temperature data. </div><div class="ttdef"><b>Definition:</b> <a href="DS18B20_8c_source.html#l00487">DS18B20.c:487</a></div></div>
<div class="ttc" id="pin__mapping_8h_html_ae212cc9581389e355620c1059a4de980"><div class="ttname"><a href="pin__mapping_8h.html#ae212cc9581389e355620c1059a4de980">TEMP1_DATA_PORT</a></div><div class="ttdeci">#define TEMP1_DATA_PORT</div><div class="ttdef"><b>Definition:</b> <a href="pin__mapping_8h_source.html#l00103">pin_mapping.h:103</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="pin__mapping_8h_html_a052d2f338dd833e3632c921082b6176c"><div class="ttname"><a href="pin__mapping_8h.html#a052d2f338dd833e3632c921082b6176c">TEMP0_DATA_PORT</a></div><div class="ttdeci">#define TEMP0_DATA_PORT</div><div class="ttdef"><b>Definition:</b> <a href="pin__mapping_8h_source.html#l00099">pin_mapping.h:99</a></div></div>
<div class="ttc" id="DS18B20_8c_html_a18c654814f39bc8a73d8ab8e1676c123"><div class="ttname"><a href="DS18B20_8c.html#a18c654814f39bc8a73d8ab8e1676c123">powerDS18B20</a></div><div class="ttdeci">static void powerDS18B20(uint8_t number, bool enabled)</div><div class="ttdoc">Enable or disable the power to the temperature sensor. </div><div class="ttdef"><b>Definition:</b> <a href="DS18B20_8c_source.html#l00254">DS18B20.c:254</a></div></div>
<div class="ttc" id="pin__mapping_8h_html_a07c6556fb148e1522c70409a53b457d3"><div class="ttname"><a href="pin__mapping_8h.html#a07c6556fb148e1522c70409a53b457d3">TEMP1_DATA_PIN</a></div><div class="ttdeci">#define TEMP1_DATA_PIN</div><div class="ttdef"><b>Definition:</b> <a href="pin__mapping_8h_source.html#l00104">pin_mapping.h:104</a></div></div>
<div class="ttc" id="dbprint_8c_html_afbbbe6e04352a6b56d1d8a053ec4f941"><div class="ttname"><a href="dbprint_8c.html#afbbbe6e04352a6b56d1d8a053ec4f941">dbcrit</a></div><div class="ttdeci">void dbcrit(char *message)</div><div class="ttdoc">Print a critical error string (char array) in red to USARTx and go to the next line. </div><div class="ttdef"><b>Definition:</b> <a href="dbprint_8c_source.html#l00541">dbprint.c:541</a></div></div>
<div class="ttc" id="DS18B20_8c_html_ab304cf2afd2f31a2e665239a0a3880c2"><div class="ttname"><a href="DS18B20_8c.html#ab304cf2afd2f31a2e665239a0a3880c2">readByteDS18B20</a></div><div class="ttdeci">static uint8_t readByteDS18B20(uint8_t number)</div><div class="ttdoc">Read a byte (uint8_t) from the DS18B20. </div><div class="ttdef"><b>Definition:</b> <a href="DS18B20_8c_source.html#l00435">DS18B20.c:435</a></div></div>
<div class="ttc" id="vl53l1__types_8h_html_a273cf69d639a59973b6019625df33e30"><div class="ttname"><a href="vl53l1__types_8h.html#a273cf69d639a59973b6019625df33e30">uint16_t</a></div><div class="ttdeci">unsigned short uint16_t</div><div class="ttdoc">Typedef defining 16 bit unsigned short type. The developer should modify this to suit the platform be...</div><div class="ttdef"><b>Definition:</b> <a href="vl53l1__types_8h_source.html#l00088">vl53l1_types.h:88</a></div></div>
<div class="ttc" id="DS18B20_8c_html_a2cf798b83879860d0aca6f9e7c69a8fb"><div class="ttname"><a href="DS18B20_8c.html#a2cf798b83879860d0aca6f9e7c69a8fb">writeByteDS18B20</a></div><div class="ttdeci">static void writeByteDS18B20(uint8_t number, uint8_t data)</div><div class="ttdoc">Write a byte (uint8_t) to the DS18B20. </div><div class="ttdef"><b>Definition:</b> <a href="DS18B20_8c_source.html#l00375">DS18B20.c:375</a></div></div>
<div class="ttc" id="pin__mapping_8h_html_a85491dc2790495ac3b3b12bbe1df0531"><div class="ttname"><a href="pin__mapping_8h.html#a85491dc2790495ac3b3b12bbe1df0531">TEMP0_DATA_PIN</a></div><div class="ttdeci">#define TEMP0_DATA_PIN</div><div class="ttdef"><b>Definition:</b> <a href="pin__mapping_8h_source.html#l00100">pin_mapping.h:100</a></div></div>
<div class="ttc" id="vl53l1__types_8h_html_aba7bc1797add20fe3efdf37ced1182c5"><div class="ttname"><a href="vl53l1__types_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a></div><div class="ttdeci">unsigned char uint8_t</div><div class="ttdoc">Typedef defining 8 bit unsigned char 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#l00098">vl53l1_types.h:98</a></div></div>
</div><!-- fragment -->
</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_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="DS18B20_8h.html">DS18B20.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>