diff --git a/esr24_g10_radar_scanner/docs/3d_druck/images/MSP430_halter_v1.png b/esr24_g10_radar_scanner/docs/3d_druck/images/MSP430_halter_v1.png new file mode 100644 index 0000000000000000000000000000000000000000..de3b0fa99a9299c61b498cd76f1175a3a3ae5aaa Binary files /dev/null and b/esr24_g10_radar_scanner/docs/3d_druck/images/MSP430_halter_v1.png differ diff --git a/esr24_g10_radar_scanner/docs/3d_druck/images/sonar_deckel_v1.png b/esr24_g10_radar_scanner/docs/3d_druck/images/sonar_deckel_v1.png new file mode 100644 index 0000000000000000000000000000000000000000..d9d4a9178e137bb984d8c0c42a4166e1a2cab38f Binary files /dev/null and b/esr24_g10_radar_scanner/docs/3d_druck/images/sonar_deckel_v1.png differ diff --git a/esr24_g10_radar_scanner/docs/3d_druck/images/sonar_gehause_v1.png b/esr24_g10_radar_scanner/docs/3d_druck/images/sonar_gehause_v1.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4f59df26aa1bc6929825367a2d90aa46dba678 Binary files /dev/null and b/esr24_g10_radar_scanner/docs/3d_druck/images/sonar_gehause_v1.png differ diff --git a/esr24_g10_radar_scanner/docs/3d_druck/images/sr04_abdeckung_v1.png b/esr24_g10_radar_scanner/docs/3d_druck/images/sr04_abdeckung_v1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9dc857e7bc14ed028adf7cadaa7cf4d2c4f36b Binary files /dev/null and b/esr24_g10_radar_scanner/docs/3d_druck/images/sr04_abdeckung_v1.png differ diff --git a/esr24_g10_radar_scanner/docs/HTML/doxygen_crawl.html b/esr24_g10_radar_scanner/docs/HTML/doxygen_crawl.html index 4142f0a8312d36853f307ce411a596e6ab0dab29..618311f861231b3fc208a752b29a8c5799098b18 100644 --- a/esr24_g10_radar_scanner/docs/HTML/doxygen_crawl.html +++ b/esr24_g10_radar_scanner/docs/HTML/doxygen_crawl.html @@ -12,25 +12,37 @@ <a href="lcd1602_8h_source.html"/> <a href="us__sensor_8h_source.html"/> <a href="main_8c.html"/> +<a href="graph_legend.html"/> <a href="index.html"/> <a href="doxygen_crawl.html"/> <a href="files.html"/> <a href="globals.html"/> <a href="globals.html"/> <a href="globals.html"/> +<a href="globals.html"/> +<a href="globals.html"/> +<a href="globals_func.html"/> +<a href="globals_func.html"/> <a href="globals_func.html"/> <a href="globals_func.html"/> <a href="globals_func.html"/> +<a href="globals_defs.html"/> <a href="_board_8h_source.html"/> <a href="files.html"/> <a href="globals.html"/> +<a href="globals_defs.html"/> <a href="globals_func.html"/> <a href="lcd1602_8h_source.html"/> <a href="main_8c.html"/> +<a href="main_8c.html#a017cc7467f17665eca1b702990d9832f"/> <a href="main_8c.html#a1169c3edde74ef5adcdc6e71ed80be0e"/> <a href="main_8c.html#a44f970d17544b1dbaded6f109580ee46"/> <a href="main_8c.html#a44ff2fa430fff0f39b4bb6e017dc2f46"/> +<a href="main_8c.html#a5744efbe2df13c88415c74bbd39c52d7"/> <a href="main_8c.html#a6288eba0f8e8ad3ab1544ad731eb7667"/> +<a href="main_8c.html#a80f3f6d048e0cf632e72fd9f6a2b9b88"/> +<a href="main_8c.html#ae2f0ff6faf548539a21b93a034e278e8"/> +<a href="main_8c.html#ae9cb5c9f5ad66dd1b2fef9bd38e82600"/> <a href="us__sensor_8h_source.html"/> </body> </html> diff --git a/esr24_g10_radar_scanner/docs/HTML/globals.html b/esr24_g10_radar_scanner/docs/HTML/globals.html index c7560b80e20d7dc98e0e32a1c354fa8bf73168bc..286d5ea038e1a406321b7bcfa271a8a4132822f0 100644 --- a/esr24_g10_radar_scanner/docs/HTML/globals.html +++ b/esr24_g10_radar_scanner/docs/HTML/globals.html @@ -85,10 +85,15 @@ $(function(){ initResizable(false); }); <div class="contents"> <div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div><ul> +<li>configurePWM() : <a class="el" href="main_8c.html#ae9cb5c9f5ad66dd1b2fef9bd38e82600">main.c</a></li> +<li>detectedSomething() : <a class="el" href="main_8c.html#a80f3f6d048e0cf632e72fd9f6a2b9b88">main.c</a></li> +<li>init_gpio() : <a class="el" href="main_8c.html#a017cc7467f17665eca1b702990d9832f">main.c</a></li> <li>init_i2c() : <a class="el" href="main_8c.html#a44ff2fa430fff0f39b4bb6e017dc2f46">main.c</a></li> <li>init_timer() : <a class="el" href="main_8c.html#a44f970d17544b1dbaded6f109580ee46">main.c</a></li> <li>main() : <a class="el" href="main_8c.html#a6288eba0f8e8ad3ab1544ad731eb7667">main.c</a></li> +<li>SLAVE_ADDRESS : <a class="el" href="main_8c.html#ae2f0ff6faf548539a21b93a034e278e8">main.c</a></li> <li>sleep() : <a class="el" href="main_8c.html#a1169c3edde74ef5adcdc6e71ed80be0e">main.c</a></li> +<li>startUp() : <a class="el" href="main_8c.html#a5744efbe2df13c88415c74bbd39c52d7">main.c</a></li> </ul> </div><!-- contents --> <!-- start footer part --> diff --git a/esr24_g10_radar_scanner/docs/HTML/globals_defs.html b/esr24_g10_radar_scanner/docs/HTML/globals_defs.html new file mode 100644 index 0000000000000000000000000000000000000000..87532c5b660c2093787e2b1f3fd88be194d6ad0d --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/globals_defs.html @@ -0,0 +1,97 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=11"/> +<meta name="generator" content="Doxygen 1.11.0"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>radar_scanner: 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> +<script type="text/javascript" src="clipboard.js"></script> +<link href="navtree.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="resize.js"></script> +<script type="text/javascript" src="cookie.js"></script> +<link href="search/search.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="search/searchdata.js"></script> +<script type="text/javascript" src="search/search.js"></script> +<link href="doxygen.css" rel="stylesheet" type="text/css" /> +</head> +<body> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr id="projectrow"> + <td id="projectalign"> + <div id="projectname">radar_scanner<span id="projectnumber"> 1.0.0</span> + </div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.11.0 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +var searchBox = new SearchBox("searchBox", "search/",'.html'); +/* @license-end */ +</script> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +$(function() { codefold.init(0); }); +/* @license-end */ +</script> +<script type="text/javascript" src="menudata.js"></script> +<script type="text/javascript" src="menu.js"></script> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +$(function() { + initMenu('',true,false,'search.php','Search',false); + $(function() { init_search(); }); +}); +/* @license-end */ +</script> +<div id="main-nav"></div> +</div><!-- top --> +<div id="doc-content"> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +$(function(){ initResizable(false); }); +/* @license-end */ +</script> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<div id="MSearchResults"> +<div class="SRPage"> +<div id="SRIndex"> +<div id="SRResults"></div> +<div class="SRStatus" id="Loading">Loading...</div> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +</div> +</div> +</div> +</div> + +<div class="contents"> +<div class="textblock">Here is a list of all documented macros with links to the documentation:</div><ul> +<li>SLAVE_ADDRESS : <a class="el" href="main_8c.html#ae2f0ff6faf548539a21b93a034e278e8">main.c</a></li> +</ul> +</div><!-- contents --> +<!-- start footer part --> +<hr class="footer"/><address class="footer"><small> +Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.11.0 +</small></address> +</div><!-- doc-content --> +</body> +</html> diff --git a/esr24_g10_radar_scanner/docs/HTML/globals_func.html b/esr24_g10_radar_scanner/docs/HTML/globals_func.html index 7c03a4170948043c95708a788b78d4146e687fb5..53f3ad8912dad1e9a4792884d701ea9c3ae18792 100644 --- a/esr24_g10_radar_scanner/docs/HTML/globals_func.html +++ b/esr24_g10_radar_scanner/docs/HTML/globals_func.html @@ -85,10 +85,14 @@ $(function(){ initResizable(false); }); <div class="contents"> <div class="textblock">Here is a list of all documented functions with links to the documentation:</div><ul> +<li>configurePWM() : <a class="el" href="main_8c.html#ae9cb5c9f5ad66dd1b2fef9bd38e82600">main.c</a></li> +<li>detectedSomething() : <a class="el" href="main_8c.html#a80f3f6d048e0cf632e72fd9f6a2b9b88">main.c</a></li> +<li>init_gpio() : <a class="el" href="main_8c.html#a017cc7467f17665eca1b702990d9832f">main.c</a></li> <li>init_i2c() : <a class="el" href="main_8c.html#a44ff2fa430fff0f39b4bb6e017dc2f46">main.c</a></li> <li>init_timer() : <a class="el" href="main_8c.html#a44f970d17544b1dbaded6f109580ee46">main.c</a></li> <li>main() : <a class="el" href="main_8c.html#a6288eba0f8e8ad3ab1544ad731eb7667">main.c</a></li> <li>sleep() : <a class="el" href="main_8c.html#a1169c3edde74ef5adcdc6e71ed80be0e">main.c</a></li> +<li>startUp() : <a class="el" href="main_8c.html#a5744efbe2df13c88415c74bbd39c52d7">main.c</a></li> </ul> </div><!-- contents --> <!-- start footer part --> diff --git a/esr24_g10_radar_scanner/docs/HTML/graph_legend.html b/esr24_g10_radar_scanner/docs/HTML/graph_legend.html new file mode 100644 index 0000000000000000000000000000000000000000..dbdc570ecdfd5d7d2a8290453f3f1c12317d7ad7 --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/graph_legend.html @@ -0,0 +1,157 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=11"/> +<meta name="generator" content="Doxygen 1.11.0"/> +<meta name="viewport" content="width=device-width, initial-scale=1"/> +<title>radar_scanner: Graph Legend</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> +<script type="text/javascript" src="clipboard.js"></script> +<link href="navtree.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="resize.js"></script> +<script type="text/javascript" src="cookie.js"></script> +<link href="search/search.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="search/searchdata.js"></script> +<script type="text/javascript" src="search/search.js"></script> +<link href="doxygen.css" rel="stylesheet" type="text/css" /> +</head> +<body> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr id="projectrow"> + <td id="projectalign"> + <div id="projectname">radar_scanner<span id="projectnumber"> 1.0.0</span> + </div> + </td> + </tr> + </tbody> +</table> +</div> +<!-- end header part --> +<!-- Generated by Doxygen 1.11.0 --> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +var searchBox = new SearchBox("searchBox", "search/",'.html'); +/* @license-end */ +</script> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +$(function() { codefold.init(0); }); +/* @license-end */ +</script> +<script type="text/javascript" src="menudata.js"></script> +<script type="text/javascript" src="menu.js"></script> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +$(function() { + initMenu('',true,false,'search.php','Search',false); + $(function() { init_search(); }); +}); +/* @license-end */ +</script> +<div id="main-nav"></div> +</div><!-- top --> +<div id="doc-content"> +<script type="text/javascript"> +/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ +$(function(){ initResizable(false); }); +/* @license-end */ +</script> +<!-- window showing the filter options --> +<div id="MSearchSelectWindow" + onmouseover="return searchBox.OnSearchSelectShow()" + onmouseout="return searchBox.OnSearchSelectHide()" + onkeydown="return searchBox.OnSearchSelectKey(event)"> +</div> + +<!-- iframe showing the search results (closed by default) --> +<div id="MSearchResultsWindow"> +<div id="MSearchResults"> +<div class="SRPage"> +<div id="SRIndex"> +<div id="SRResults"></div> +<div class="SRStatus" id="Loading">Loading...</div> +<div class="SRStatus" id="Searching">Searching...</div> +<div class="SRStatus" id="NoMatches">No Matches</div> +</div> +</div> +</div> +</div> + +<div class="header"> + <div class="headertitle"><div class="title">Graph Legend</div></div> +</div><!--header--> +<div class="contents"> +<p>This page explains how to interpret the graphs that are generated by doxygen.</p> +<p>Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div> +<div class="line"><span class="keyword">class </span>Invisible { };</div> +<div class="line"><span class="comment"></span> </div> +<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div> +<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div> +<div class="line"> </div> +<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div> +<div class="line"><span class="keyword">class </span>Undocumented { };</div> +<div class="line"><span class="comment"></span> </div> +<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div> +<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div> +<div class="line"><span class="comment"></span> </div> +<div class="line"><span class="comment">/*! A template class */</span></div> +<div class="line"><span class="keyword">template</span><<span class="keyword">class</span> T> <span class="keyword">class </span>Templ { };</div> +<div class="line"><span class="comment"></span> </div> +<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div> +<div class="line"><span class="keyword">class </span>ProtectedBase { };</div> +<div class="line"><span class="comment"></span> </div> +<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div> +<div class="line"><span class="keyword">class </span>PrivateBase { };</div> +<div class="line"><span class="comment"></span> </div> +<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div> +<div class="line"><span class="keyword">class </span>Used { };</div> +<div class="line"><span class="comment"></span> </div> +<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div> +<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div> +<div class="line"> <span class="keyword">protected</span> ProtectedBase,</div> +<div class="line"> <span class="keyword">private</span> PrivateBase,</div> +<div class="line"> <span class="keyword">public</span> Undocumented,</div> +<div class="line"> <span class="keyword">public</span> Templ<int></div> +<div class="line">{</div> +<div class="line"> <span class="keyword">private</span>:</div> +<div class="line"> Used *m_usedClass;</div> +<div class="line">};</div> +</div><!-- fragment --><p> This will result in the following graph:</p> +<center><img src="graph_legend.png" alt="" class="inline"/></center><p>The boxes in the above graph have the following meaning: </p> +<ul> +<li> +A filled gray box represents the struct or class for which the graph is generated. </li> +<li> +A box with a black border denotes a documented struct or class. </li> +<li> +A box with a gray border denotes an undocumented struct or class. </li> +<li> +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li> +</ul> +<p>The arrows have the following meaning: </p> +<ul> +<li> +A blue arrow is used to visualize a public inheritance relation between two classes. </li> +<li> +A dark green arrow is used for protected inheritance. </li> +<li> +A dark red arrow is used for private inheritance. </li> +<li> +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li> +<li> +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </li> +</ul> +</div><!-- contents --> +<!-- start footer part --> +<hr class="footer"/><address class="footer"><small> +Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.11.0 +</small></address> +</div><!-- doc-content --> +</body> +</html> diff --git a/esr24_g10_radar_scanner/docs/HTML/graph_legend.md5 b/esr24_g10_radar_scanner/docs/HTML/graph_legend.md5 new file mode 100644 index 0000000000000000000000000000000000000000..da515da9d29e74d14807fedc252cf7226b0678cd --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/graph_legend.md5 @@ -0,0 +1 @@ +f74606a252eb303675caf37987d0b7af \ No newline at end of file diff --git a/esr24_g10_radar_scanner/docs/HTML/graph_legend.png b/esr24_g10_radar_scanner/docs/HTML/graph_legend.png new file mode 100644 index 0000000000000000000000000000000000000000..22d00a2668da072e2e0e2b85d202b3f269b15502 Binary files /dev/null and b/esr24_g10_radar_scanner/docs/HTML/graph_legend.png differ diff --git a/esr24_g10_radar_scanner/docs/HTML/main_8c.html b/esr24_g10_radar_scanner/docs/HTML/main_8c.html index 5d7e0bc2726e6c80ed8ccc5144d89d239683d45c..91b6ce8e93a35326aef3240494b72f3db499656a 100644 --- a/esr24_g10_radar_scanner/docs/HTML/main_8c.html +++ b/esr24_g10_radar_scanner/docs/HTML/main_8c.html @@ -98,6 +98,29 @@ $(function(){ initResizable(false); }); <code>#include "us_sensor.h"</code><br /> <code>#include "lcd1602.h"</code><br /> <code>#include <stdio.h></code><br /> +</div><div class="textblock"><div class="dynheader"> +Include dependency graph for main.c:</div> +<div class="dyncontent"> +<div class="center"><img src="main_8c__incl.png" border="0" usemap="#a_c_1_2_users_2_alex_2git_2repository2_2esr24__g10__radar__scanner_2main_8c" alt=""/></div> +<map name="a_c_1_2_users_2_alex_2git_2repository2_2esr24__g10__radar__scanner_2main_8c" id="a_c_1_2_users_2_alex_2git_2repository2_2esr24__g10__radar__scanner_2main_8c"> +<area shape="rect" title="Dies ist eine Beschreibung der main.c Datei." alt="" coords="133,5,350,48"/> +<area shape="rect" title=" " alt="" coords="5,96,81,123"/> +<area shape="poly" title=" " alt="" coords="192,51,89,92,87,87,190,46"/> +<area shape="rect" href="_board_8h_source.html" title=" " alt="" coords="105,96,171,123"/> +<area shape="poly" title=" " alt="" coords="217,51,167,88,164,84,213,46"/> +<area shape="rect" href="us__sensor_8h_source.html" title=" " alt="" coords="196,96,288,123"/> +<area shape="poly" title=" " alt="" coords="244,49,244,80,239,80,239,49"/> +<area shape="rect" href="lcd1602_8h_source.html" title=" " alt="" coords="312,96,390,123"/> +<area shape="poly" title=" " alt="" coords="271,46,323,85,320,89,268,51"/> +<area shape="rect" title=" " alt="" coords="414,96,475,123"/> +<area shape="poly" title=" " alt="" coords="295,46,401,88,399,93,293,51"/> +<area shape="rect" title=" " alt="" coords="218,171,282,197"/> +<area shape="poly" title=" " alt="" coords="246,123,249,155,244,155,240,124"/> +<area shape="poly" title=" " alt="" coords="335,125,281,163,278,159,332,121"/> +<area shape="rect" title=" " alt="" coords="314,171,388,197"/> +<area shape="poly" title=" " alt="" coords="354,123,354,155,348,155,348,123"/> +</map> +</div> </div><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a> Macros</h2></td></tr> @@ -107,14 +130,15 @@ Macros</h2></td></tr> <tr class="memitem:a144e3fd4747bc0d1b5b84c7f3fd73a92" id="r_a144e3fd4747bc0d1b5b84c7f3fd73a92"><td class="memItemLeft" align="right" valign="top"><a id="a144e3fd4747bc0d1b5b84c7f3fd73a92" name="a144e3fd4747bc0d1b5b84c7f3fd73a92"></a> #define </td><td class="memItemRight" valign="bottom"><b>CS_MCLK_FLLREF_RATIO</b>   30</td></tr> <tr class="separator:a144e3fd4747bc0d1b5b84c7f3fd73a92"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ae2f0ff6faf548539a21b93a034e278e8" id="r_ae2f0ff6faf548539a21b93a034e278e8"><td class="memItemLeft" align="right" valign="top"><a id="ae2f0ff6faf548539a21b93a034e278e8" name="ae2f0ff6faf548539a21b93a034e278e8"></a> -#define </td><td class="memItemRight" valign="bottom"><b>SLAVE_ADDRESS</b>   0x27</td></tr> +<tr class="memitem:ae2f0ff6faf548539a21b93a034e278e8" id="r_ae2f0ff6faf548539a21b93a034e278e8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae2f0ff6faf548539a21b93a034e278e8">SLAVE_ADDRESS</a>   0x27</td></tr> +<tr class="memdesc:ae2f0ff6faf548539a21b93a034e278e8"><td class="mdescLeft"> </td><td class="mdescRight">I2C-Slave-Adresse für den PCF8574 I/O Expander. <br /></td></tr> <tr class="separator:ae2f0ff6faf548539a21b93a034e278e8"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:a017cc7467f17665eca1b702990d9832f" id="r_a017cc7467f17665eca1b702990d9832f"><td class="memItemLeft" align="right" valign="top"><a id="a017cc7467f17665eca1b702990d9832f" name="a017cc7467f17665eca1b702990d9832f"></a> void </td><td class="memItemRight" valign="bottom"><b>init_gpio</b> (void)</td></tr> +<tr class="memdesc:a017cc7467f17665eca1b702990d9832f"><td class="mdescLeft"> </td><td class="mdescRight">initialisiert die pins <br /></td></tr> <tr class="separator:a017cc7467f17665eca1b702990d9832f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a51dc0ba8bc7ae69db4d86dade7ff0a52" id="r_a51dc0ba8bc7ae69db4d86dade7ff0a52"><td class="memItemLeft" align="right" valign="top"><a id="a51dc0ba8bc7ae69db4d86dade7ff0a52" name="a51dc0ba8bc7ae69db4d86dade7ff0a52"></a> void </td><td class="memItemRight" valign="bottom"><b>init_cs</b> (void)</td></tr> @@ -129,20 +153,19 @@ void </td><td class="memItemRight" valign="bottom"><b>init_i2c</b> (void)</ <tr class="separator:a44ff2fa430fff0f39b4bb6e017dc2f46"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1169c3edde74ef5adcdc6e71ed80be0e" id="r_a1169c3edde74ef5adcdc6e71ed80be0e"><td class="memItemLeft" align="right" valign="top"><a id="a1169c3edde74ef5adcdc6e71ed80be0e" name="a1169c3edde74ef5adcdc6e71ed80be0e"></a> void </td><td class="memItemRight" valign="bottom"><b>sleep</b> (uint16_t ms)</td></tr> -<tr class="memdesc:a1169c3edde74ef5adcdc6e71ed80be0e"><td class="mdescLeft"> </td><td class="mdescRight">Sleep für bestimmt anzahl clock cycles. <br /></td></tr> +<tr class="memdesc:a1169c3edde74ef5adcdc6e71ed80be0e"><td class="mdescLeft"> </td><td class="mdescRight">Sleep für bestimmte anzahl clock cycles. <br /></td></tr> <tr class="separator:a1169c3edde74ef5adcdc6e71ed80be0e"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a4f5e9f802377f2d6ccddd3c714c0360d" id="r_a4f5e9f802377f2d6ccddd3c714c0360d"><td class="memItemLeft" align="right" valign="top"><a id="a4f5e9f802377f2d6ccddd3c714c0360d" name="a4f5e9f802377f2d6ccddd3c714c0360d"></a> -void </td><td class="memItemRight" valign="bottom"><b>detectedSomething</b> (int i, uint16_t pDistance)</td></tr> -<tr class="separator:a4f5e9f802377f2d6ccddd3c714c0360d"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ae9cb5c9f5ad66dd1b2fef9bd38e82600" id="r_ae9cb5c9f5ad66dd1b2fef9bd38e82600"><td class="memItemLeft" align="right" valign="top"><a id="ae9cb5c9f5ad66dd1b2fef9bd38e82600" name="ae9cb5c9f5ad66dd1b2fef9bd38e82600"></a> -void </td><td class="memItemRight" valign="bottom"><b>configurePWM</b> (int pwmSignal)</td></tr> +<tr class="memitem:a80f3f6d048e0cf632e72fd9f6a2b9b88" id="r_a80f3f6d048e0cf632e72fd9f6a2b9b88"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a80f3f6d048e0cf632e72fd9f6a2b9b88">detectedSomething</a> (int pPosition, uint16_t pDistance)</td></tr> +<tr class="memdesc:a80f3f6d048e0cf632e72fd9f6a2b9b88"><td class="mdescLeft"> </td><td class="mdescRight">Diese Methode wird ausgeführt, wenn der HC-SR04-Ultraschallsensor etwas erkennt. <br /></td></tr> +<tr class="separator:a80f3f6d048e0cf632e72fd9f6a2b9b88"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ae9cb5c9f5ad66dd1b2fef9bd38e82600" id="r_ae9cb5c9f5ad66dd1b2fef9bd38e82600"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae9cb5c9f5ad66dd1b2fef9bd38e82600">configurePWM</a> (int pwmSignal)</td></tr> +<tr class="memdesc:ae9cb5c9f5ad66dd1b2fef9bd38e82600"><td class="mdescLeft"> </td><td class="mdescRight">Konfiguriert das PWM-Signal. <br /></td></tr> <tr class="separator:ae9cb5c9f5ad66dd1b2fef9bd38e82600"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a5744efbe2df13c88415c74bbd39c52d7" id="r_a5744efbe2df13c88415c74bbd39c52d7"><td class="memItemLeft" align="right" valign="top"><a id="a5744efbe2df13c88415c74bbd39c52d7" name="a5744efbe2df13c88415c74bbd39c52d7"></a> -void </td><td class="memItemRight" valign="bottom"><b>startUp</b> ()</td></tr> +<tr class="memitem:a5744efbe2df13c88415c74bbd39c52d7" id="r_a5744efbe2df13c88415c74bbd39c52d7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5744efbe2df13c88415c74bbd39c52d7">startUp</a> ()</td></tr> +<tr class="memdesc:a5744efbe2df13c88415c74bbd39c52d7"><td class="mdescLeft"> </td><td class="mdescRight">Startet die Initialisierungsprozedur beim Hochfahren des MSP430. <br /></td></tr> <tr class="separator:a5744efbe2df13c88415c74bbd39c52d7"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a6288eba0f8e8ad3ab1544ad731eb7667" id="r_a6288eba0f8e8ad3ab1544ad731eb7667"><td class="memItemLeft" align="right" valign="top"><a id="a6288eba0f8e8ad3ab1544ad731eb7667" name="a6288eba0f8e8ad3ab1544ad731eb7667"></a> -void </td><td class="memItemRight" valign="bottom"><b>main</b> (void)</td></tr> -<tr class="memdesc:a6288eba0f8e8ad3ab1544ad731eb7667"><td class="mdescLeft"> </td><td class="mdescRight">main funktion für Interactivität <br /></td></tr> +<tr class="memitem:a6288eba0f8e8ad3ab1544ad731eb7667" id="r_a6288eba0f8e8ad3ab1544ad731eb7667"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a6288eba0f8e8ad3ab1544ad731eb7667">main</a> (void)</td></tr> +<tr class="memdesc:a6288eba0f8e8ad3ab1544ad731eb7667"><td class="mdescLeft"> </td><td class="mdescRight">Hauptfunktion für die Interaktivität. <br /></td></tr> <tr class="separator:a6288eba0f8e8ad3ab1544ad731eb7667"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3bd7187f5c89bfcb7de8453df98282ed" id="r_a3bd7187f5c89bfcb7de8453df98282ed"><td class="memItemLeft" align="right" valign="top"><a id="a3bd7187f5c89bfcb7de8453df98282ed" name="a3bd7187f5c89bfcb7de8453df98282ed"></a> __interrupt void </td><td class="memItemRight" valign="bottom"><b>NMI_ISR</b> (void)</td></tr> @@ -153,8 +176,135 @@ __interrupt void </td><td class="memItemRight" valign="bottom"><b>TIMER0_B0 </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Dies ist eine Beschreibung der <a class="el" href="main_8c.html" title="Dies ist eine Beschreibung der main.c Datei.">main.c</a> Datei. </p> -<p>Detaillierte Beschreibung der Datei. </p> -</div></div><!-- contents --> +<p>Diese Datei enthält die Hauptfunktion und die Initialisierungsroutinen für das System. Das System verwendet einen MSP430FR2355-Mikrocontroller, um verschiedene Hardware-Komponenten zu steuern, einschließlich eines Servos SG90, eines Ultraschallsensor HC-SR04 und eines LC-Displays HD44780.</p> +<dl class="section author"><dt>Authors</dt><dd><ul> +<li>Alexander Görlitz</li> +<li>Aaron Kaipf</li> +<li>Christopher Seitz </li> +</ul> +</dd></dl> +<dl class="section version"><dt>Version</dt><dd>1.0.0 </dd></dl> +<dl class="section date"><dt>Date</dt><dd>04.07.2024 </dd></dl> +</div><h2 class="groupheader">Macro Definition Documentation</h2> +<a id="ae2f0ff6faf548539a21b93a034e278e8" name="ae2f0ff6faf548539a21b93a034e278e8"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae2f0ff6faf548539a21b93a034e278e8">◆ </a></span>SLAVE_ADDRESS</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define SLAVE_ADDRESS   0x27</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>I2C-Slave-Adresse für den PCF8574 I/O Expander. </p> +<p>Diese Definition legt die I2C-Slave-Adresse für den PCF8574 I/O Expander fest. Je nach Version des PCF8574 (PCF8574T oder PCF8574AT) wird die entsprechende Adresse gewählt.</p><ul> +<li>PCF8574T: Adresse 0x27</li> +<li>PCF8574AT: Adresse 0x3F </li> +</ul> + +</div> +</div> +<h2 class="groupheader">Function Documentation</h2> +<a id="ae9cb5c9f5ad66dd1b2fef9bd38e82600" name="ae9cb5c9f5ad66dd1b2fef9bd38e82600"></a> +<h2 class="memtitle"><span class="permalink"><a href="#ae9cb5c9f5ad66dd1b2fef9bd38e82600">◆ </a></span>configurePWM()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void configurePWM </td> + <td>(</td> + <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>pwmSignal</em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Konfiguriert das PWM-Signal. </p> +<p>Diese Funktion konfiguriert das PWM-Signal mit einem angegebenen Wert. Der PWM-Signalwert kann offiziell zwischen 1000 und 2000 liegen, jedoch sind auch Werte zwischen 500 und 2500 möglich, was einem Bereich von 180 Grad entspricht.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">pwmSignal</td><td>Der PWM-Signalwert, zwischen 500 und 2500. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="a80f3f6d048e0cf632e72fd9f6a2b9b88" name="a80f3f6d048e0cf632e72fd9f6a2b9b88"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a80f3f6d048e0cf632e72fd9f6a2b9b88">◆ </a></span>detectedSomething()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void detectedSomething </td> + <td>(</td> + <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>pPosition</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>pDistance</em></span> )</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Diese Methode wird ausgeführt, wenn der HC-SR04-Ultraschallsensor etwas erkennt. </p> +<p>Diese Funktion wird aufgerufen, wenn der SR04-Sensor einen Patienten erkennt. Sie schaltet eine grüne LED ein, zeigt die erkannte Entfernung und die Position auf einem LCD-Display an und schaltet die LED wieder aus.</p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">i</td><td>Die Position des erkannten Objekts. </td></tr> + <tr><td class="paramname">pDistance</td><td>Die gemessene Entfernung zum erkannten Objekt in Millimetern. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="a6288eba0f8e8ad3ab1544ad731eb7667" name="a6288eba0f8e8ad3ab1544ad731eb7667"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a6288eba0f8e8ad3ab1544ad731eb7667">◆ </a></span>main()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void main </td> + <td>(</td> + <td class="paramtype">void</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Hauptfunktion für die Interaktivität. </p> +<p>Diese Funktion initialisiert die Hardware, konfiguriert den PWM für den Servo, startet den Ultraschallsensor und verarbeitet die Entfernungsmessungen, um erkannte Patienten anzuzeigen. </p> + +</div> +</div> +<a id="a5744efbe2df13c88415c74bbd39c52d7" name="a5744efbe2df13c88415c74bbd39c52d7"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5744efbe2df13c88415c74bbd39c52d7">◆ </a></span>startUp()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void startUp </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Startet die Initialisierungsprozedur beim Hochfahren des MSP430. </p> +<p>Diese Funktion führt eine Prozedur aus, die beim Hochfahren des MSP430 aufgerufen wird. Sie schaltet eine grüne LED ein und führt eine Reihe von PWM-Konfigurationen und Verzögerungen durch, bevor sie die LED wieder ausschaltet. </p> + +</div> +</div> +</div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.11.0 diff --git a/esr24_g10_radar_scanner/docs/HTML/main_8c__incl.map b/esr24_g10_radar_scanner/docs/HTML/main_8c__incl.map new file mode 100644 index 0000000000000000000000000000000000000000..4de388ec8421816ec9804784b88de699e7d0f84c --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/main_8c__incl.map @@ -0,0 +1,18 @@ +<map id="C:/Users/Alex/git/repository2/esr24_g10_radar_scanner/main.c" name="C:/Users/Alex/git/repository2/esr24_g10_radar_scanner/main.c"> +<area shape="rect" id="Node000001" title="Dies ist eine Beschreibung der main.c Datei." alt="" coords="133,5,350,48"/> +<area shape="rect" id="Node000002" title=" " alt="" coords="5,96,81,123"/> +<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="192,51,89,92,87,87,190,46"/> +<area shape="rect" id="Node000003" href="$_board_8h_source.html" title=" " alt="" coords="105,96,171,123"/> +<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="217,51,167,88,164,84,213,46"/> +<area shape="rect" id="Node000004" href="$us__sensor_8h_source.html" title=" " alt="" coords="196,96,288,123"/> +<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="244,49,244,80,239,80,239,49"/> +<area shape="rect" id="Node000006" href="$lcd1602_8h_source.html" title=" " alt="" coords="312,96,390,123"/> +<area shape="poly" id="edge5_Node000001_Node000006" title=" " alt="" coords="271,46,323,85,320,89,268,51"/> +<area shape="rect" id="Node000008" title=" " alt="" coords="414,96,475,123"/> +<area shape="poly" id="edge8_Node000001_Node000008" title=" " alt="" coords="295,46,401,88,399,93,293,51"/> +<area shape="rect" id="Node000005" title=" " alt="" coords="218,171,282,197"/> +<area shape="poly" id="edge4_Node000004_Node000005" title=" " alt="" coords="246,123,249,155,244,155,240,124"/> +<area shape="poly" id="edge6_Node000006_Node000005" title=" " alt="" coords="335,125,281,163,278,159,332,121"/> +<area shape="rect" id="Node000007" title=" " alt="" coords="314,171,388,197"/> +<area shape="poly" id="edge7_Node000006_Node000007" title=" " alt="" coords="354,123,354,155,348,155,348,123"/> +</map> diff --git a/esr24_g10_radar_scanner/docs/HTML/main_8c__incl.md5 b/esr24_g10_radar_scanner/docs/HTML/main_8c__incl.md5 new file mode 100644 index 0000000000000000000000000000000000000000..067fa6e693721a2d60ffd46af6b7a2a91de41aa7 --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/main_8c__incl.md5 @@ -0,0 +1 @@ +4c5e96b259fa16c81d89027c9fa4e7a3 \ No newline at end of file diff --git a/esr24_g10_radar_scanner/docs/HTML/main_8c__incl.png b/esr24_g10_radar_scanner/docs/HTML/main_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..b34811e3738c18404197bf0bf067cfb61d9d0373 Binary files /dev/null and b/esr24_g10_radar_scanner/docs/HTML/main_8c__incl.png differ diff --git a/esr24_g10_radar_scanner/docs/HTML/menudata.js b/esr24_g10_radar_scanner/docs/HTML/menudata.js index c9435dd9ebfa6efb13fa8ff9f5e7430194489a0f..f0a9733e767c17c74a08f1ad98d636eb483e35fe 100644 --- a/esr24_g10_radar_scanner/docs/HTML/menudata.js +++ b/esr24_g10_radar_scanner/docs/HTML/menudata.js @@ -28,4 +28,5 @@ var menudata={children:[ {text:"File List",url:"files.html"}, {text:"Globals",url:"globals.html",children:[ {text:"All",url:"globals.html"}, -{text:"Functions",url:"globals_func.html"}]}]}]} +{text:"Functions",url:"globals_func.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/esr24_g10_radar_scanner/docs/HTML/search/all_1.js b/esr24_g10_radar_scanner/docs/HTML/search/all_1.js index 4a99586bc22ee2bed965fee9f66542871520d8dd..6382878c9456337cc639a3ad87860e05cca045f1 100644 --- a/esr24_g10_radar_scanner/docs/HTML/search/all_1.js +++ b/esr24_g10_radar_scanner/docs/HTML/search/all_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['h_0',['Board.h',['../C:/Users/Alex/git/repository2/esr24_g10_radar_scanner/Board.h#autotoc_md1',1,'']]] + ['configurepwm_0',['configurePWM',['../main_8c.html#ae9cb5c9f5ad66dd1b2fef9bd38e82600',1,'main.c']]] ]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/all_2.js b/esr24_g10_radar_scanner/docs/HTML/search/all_2.js index 799b838c4113d36cef005bb81d97ac45a2159a73..c65817a996b2aa7274be2eaa116aafca6db25fb8 100644 --- a/esr24_g10_radar_scanner/docs/HTML/search/all_2.js +++ b/esr24_g10_radar_scanner/docs/HTML/search/all_2.js @@ -1,5 +1,4 @@ var searchData= [ - ['init_5fi2c_0',['init_i2c',['../main_8c.html#a44ff2fa430fff0f39b4bb6e017dc2f46',1,'main.c']]], - ['init_5ftimer_1',['init_timer',['../main_8c.html#a44f970d17544b1dbaded6f109580ee46',1,'main.c']]] + ['detectedsomething_0',['detectedSomething',['../main_8c.html#a80f3f6d048e0cf632e72fd9f6a2b9b88',1,'main.c']]] ]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/all_3.js b/esr24_g10_radar_scanner/docs/HTML/search/all_3.js index 987c38316e6b2d495a88e31726174d92aa58d134..4a99586bc22ee2bed965fee9f66542871520d8dd 100644 --- a/esr24_g10_radar_scanner/docs/HTML/search/all_3.js +++ b/esr24_g10_radar_scanner/docs/HTML/search/all_3.js @@ -1,5 +1,4 @@ var searchData= [ - ['main_0',['main',['../main_8c.html#a6288eba0f8e8ad3ab1544ad731eb7667',1,'main.c']]], - ['main_2ec_1',['main.c',['../main_8c.html',1,'']]] + ['h_0',['Board.h',['../C:/Users/Alex/git/repository2/esr24_g10_radar_scanner/Board.h#autotoc_md1',1,'']]] ]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/all_4.js b/esr24_g10_radar_scanner/docs/HTML/search/all_4.js index b949db88b0edc3d47eeedea96b60141697a9335b..e024ea231798dd659ebbaad8f39a2046b4f00f7b 100644 --- a/esr24_g10_radar_scanner/docs/HTML/search/all_4.js +++ b/esr24_g10_radar_scanner/docs/HTML/search/all_4.js @@ -1,4 +1,6 @@ var searchData= [ - ['sleep_0',['sleep',['../main_8c.html#a1169c3edde74ef5adcdc6e71ed80be0e',1,'main.c']]] + ['init_5fgpio_0',['init_gpio',['../main_8c.html#a017cc7467f17665eca1b702990d9832f',1,'main.c']]], + ['init_5fi2c_1',['init_i2c',['../main_8c.html#a44ff2fa430fff0f39b4bb6e017dc2f46',1,'main.c']]], + ['init_5ftimer_2',['init_timer',['../main_8c.html#a44f970d17544b1dbaded6f109580ee46',1,'main.c']]] ]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/all_5.js b/esr24_g10_radar_scanner/docs/HTML/search/all_5.js new file mode 100644 index 0000000000000000000000000000000000000000..987c38316e6b2d495a88e31726174d92aa58d134 --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/search/all_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['main_0',['main',['../main_8c.html#a6288eba0f8e8ad3ab1544ad731eb7667',1,'main.c']]], + ['main_2ec_1',['main.c',['../main_8c.html',1,'']]] +]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/all_6.js b/esr24_g10_radar_scanner/docs/HTML/search/all_6.js new file mode 100644 index 0000000000000000000000000000000000000000..509416890e809d19b165905105437294b07600b9 --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/search/all_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['slave_5faddress_0',['SLAVE_ADDRESS',['../main_8c.html#ae2f0ff6faf548539a21b93a034e278e8',1,'main.c']]], + ['sleep_1',['sleep',['../main_8c.html#a1169c3edde74ef5adcdc6e71ed80be0e',1,'main.c']]], + ['startup_2',['startUp',['../main_8c.html#a5744efbe2df13c88415c74bbd39c52d7',1,'main.c']]] +]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/defines_0.js b/esr24_g10_radar_scanner/docs/HTML/search/defines_0.js new file mode 100644 index 0000000000000000000000000000000000000000..a4811256293e4edf85b765f1585f5ca70012d681 --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['slave_5faddress_0',['SLAVE_ADDRESS',['../main_8c.html#ae2f0ff6faf548539a21b93a034e278e8',1,'main.c']]] +]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/functions_0.js b/esr24_g10_radar_scanner/docs/HTML/search/functions_0.js index 799b838c4113d36cef005bb81d97ac45a2159a73..6382878c9456337cc639a3ad87860e05cca045f1 100644 --- a/esr24_g10_radar_scanner/docs/HTML/search/functions_0.js +++ b/esr24_g10_radar_scanner/docs/HTML/search/functions_0.js @@ -1,5 +1,4 @@ var searchData= [ - ['init_5fi2c_0',['init_i2c',['../main_8c.html#a44ff2fa430fff0f39b4bb6e017dc2f46',1,'main.c']]], - ['init_5ftimer_1',['init_timer',['../main_8c.html#a44f970d17544b1dbaded6f109580ee46',1,'main.c']]] + ['configurepwm_0',['configurePWM',['../main_8c.html#ae9cb5c9f5ad66dd1b2fef9bd38e82600',1,'main.c']]] ]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/functions_1.js b/esr24_g10_radar_scanner/docs/HTML/search/functions_1.js index d617ddc1741a792cb01b96d7aea0479bec74083c..c65817a996b2aa7274be2eaa116aafca6db25fb8 100644 --- a/esr24_g10_radar_scanner/docs/HTML/search/functions_1.js +++ b/esr24_g10_radar_scanner/docs/HTML/search/functions_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['main_0',['main',['../main_8c.html#a6288eba0f8e8ad3ab1544ad731eb7667',1,'main.c']]] + ['detectedsomething_0',['detectedSomething',['../main_8c.html#a80f3f6d048e0cf632e72fd9f6a2b9b88',1,'main.c']]] ]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/functions_2.js b/esr24_g10_radar_scanner/docs/HTML/search/functions_2.js index b949db88b0edc3d47eeedea96b60141697a9335b..e024ea231798dd659ebbaad8f39a2046b4f00f7b 100644 --- a/esr24_g10_radar_scanner/docs/HTML/search/functions_2.js +++ b/esr24_g10_radar_scanner/docs/HTML/search/functions_2.js @@ -1,4 +1,6 @@ var searchData= [ - ['sleep_0',['sleep',['../main_8c.html#a1169c3edde74ef5adcdc6e71ed80be0e',1,'main.c']]] + ['init_5fgpio_0',['init_gpio',['../main_8c.html#a017cc7467f17665eca1b702990d9832f',1,'main.c']]], + ['init_5fi2c_1',['init_i2c',['../main_8c.html#a44ff2fa430fff0f39b4bb6e017dc2f46',1,'main.c']]], + ['init_5ftimer_2',['init_timer',['../main_8c.html#a44f970d17544b1dbaded6f109580ee46',1,'main.c']]] ]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/functions_3.js b/esr24_g10_radar_scanner/docs/HTML/search/functions_3.js new file mode 100644 index 0000000000000000000000000000000000000000..d617ddc1741a792cb01b96d7aea0479bec74083c --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_0',['main',['../main_8c.html#a6288eba0f8e8ad3ab1544ad731eb7667',1,'main.c']]] +]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/functions_4.js b/esr24_g10_radar_scanner/docs/HTML/search/functions_4.js new file mode 100644 index 0000000000000000000000000000000000000000..de409e05e5db37637f18d42f10971736449a247a --- /dev/null +++ b/esr24_g10_radar_scanner/docs/HTML/search/functions_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['sleep_0',['sleep',['../main_8c.html#a1169c3edde74ef5adcdc6e71ed80be0e',1,'main.c']]], + ['startup_1',['startUp',['../main_8c.html#a5744efbe2df13c88415c74bbd39c52d7',1,'main.c']]] +]; diff --git a/esr24_g10_radar_scanner/docs/HTML/search/searchdata.js b/esr24_g10_radar_scanner/docs/HTML/search/searchdata.js index c8c3304972202774930d3f2c4cf5c3eaad20fd0d..7cfc029babb3abc6037c8ead0f553d69aa87cf6b 100644 --- a/esr24_g10_radar_scanner/docs/HTML/search/searchdata.js +++ b/esr24_g10_radar_scanner/docs/HTML/search/searchdata.js @@ -1,21 +1,24 @@ var indexSectionsWithContent = { - 0: "bhims", + 0: "bcdhims", 1: "m", - 2: "ims" + 2: "cdims", + 3: "s" }; var indexSectionNames = { 0: "all", 1: "files", - 2: "functions" + 2: "functions", + 3: "defines" }; var indexSectionLabels = { 0: "All", 1: "Files", - 2: "Functions" + 2: "Functions", + 3: "Macros" }; diff --git a/esr24_g10_radar_scanner/docs/Styleguide.dox b/esr24_g10_radar_scanner/docs/Styleguide.dox new file mode 100644 index 0000000000000000000000000000000000000000..29f2488ee176d7b1eae494da194af54be1ff3123 --- /dev/null +++ b/esr24_g10_radar_scanner/docs/Styleguide.dox @@ -0,0 +1,212 @@ +/** +@file Styleguide.dox +@page page_StyleGuide Styleguide +@author Sven Steddin +@version 0.2 +@date 2019-06-03 + +Vorwort +======= +Der hier vorliegende Styleguide ist noch im Entwurfsstudium! + +Die in diesem Styleguide enthaltenen Vorgaben sind kein allgemeingültiger Standard +sondern eine für einen bestimmten Geschäftsbereich definierte Vorschrift zur +Formatierung von Source Code Dateien. Diese Vorschriften können von jeder Organisation +eigenständig festgelegt werden und individuelle Unterschiede aufweisen. Der hier +vorliegende Styleguide soll dieses Konzept beispielhaft verdeutlichen. + +Unabhängig von den hier gezeigten Vorgaben gelten natürlich die als good style akzeptierten +Vorgaben, wie sie z.B. von xxx beschrieben wurden. + + +Deklaration von Variablen +========================= + +Zur Beschreibung der Basistypen von Variablen werden die in <inttypes.h> vorgegebenen Definitionen verwendet. +Es ergeben sich folgende Vorteile: +- kürzere Typbezeichner --> weniger Schreibarbeit +- maschinenunabhängige Datentypen + +Die Definition von Variablennamen erfolgt vorzugsweise in der Kamelhöckerschreibweise. + +Variablennamen beginnen mit einem kleinen Buchstaben. + + + +Präfixe für Variablennamen +========================== + +Es sollen die nachfolgend gelisteten Präfixe bei der Definition von Variablennamen verwendet werden. +Es ergeben sich folgende Vorteile: +- es kann direkt im Sourcecode erkannt werden, ... + - welchen Datentyp eine Variable besitzt + - welchen Sichtbarkeit eine Variable besitzt + - wie der Zugriff auf die Variable zu erfolgen hat + +| Präfix | Bedeutung | Beispiel | +| :----- | :-------- | :------- | +| p_ | Variable ist ein Zeiger | p_uiEvent | +| gp_ | Variable ist ein global verfügbarer Pointer für Schreib- und Lesezugriffe | gp_uiStatus | +| gcp_ | Variable ist ein global verfügbarer Konstantenpointer für Lesezugriffe. Der Inhalt der Variable, auf die der Pointer zeigt, kann über den Pointer nicht verändert werden. | gcp_uiTime_ms | +| m_ | Variable ist modulglobal, d.h. nur innerhalb des Moduls sichtbar, in dem sie als static deklariert wird. | m_uiWinkelgrad_deg | +| kein x_ - Präfix | Varaible ist nur lokal innerhalb des aktuellen Blocks verfügbar | uiZaehler | + +__Abkürzungen für bestimmte Datentypen:__ \n +(diese sind maschinenabhängig und beziehen sich hier auf den MSP430)\n +Die Typabkürzungen werden ohne Trennzeichen direkt dem Variablennamen vorangestellt. Der Variablennamen beginnt dann mit einem Großbuchstaben. + +| Präfix | Bedeutung | Beispiel | +| :----- | :-------- | :------- | +| uc | uint8_t | ucData | +| c | int8_t | cDifference | +| ui | uint16_t | uiFrequenz | +| i | int16_t | iDistance| +| ul | uint32_t | ulCount | +| l | int32_t | lValue | +| f | float | fGewicht | +| d | double | dToleranz | + +\n\n + +Zugriff auf externe Sensoren / Aktoren +====================================== +Der Zugriff auf Aktoren oder Sensoren erfolgt über einen standardisierten Satz von Funktionen (API): + +__XY-Init()__ + - Anlegen der für den Datenaustausch erforderlichen Datenstrukturen + - Konfiguration der MC-Register der für den Zugriff auf die Hardware erforderlichen Peripherals des MC + - Definition der Registerinhalte der externen Hardware, die ggf. zu Beginn auf die Hardeware übertragen werden müssen + - Aktivieren der für den Datenaustausch mit der externen Hardware benötigten Peripherals des MC + - Reset der Hardware + +__XY-Start()__ + - Übertragen der Konfigurationsregister auf die Hardware + - Start der Funktion der externen Hardware + +__XY-Write()__ + - Schreiben von Daten oder Kommandos auf die Hardware + +__XY-Read()__ + - Lesen von Daten von der Hardware + +__XY-Stop()__ + - Einfrieren des Zustandes der Hardware +\n +Es gelten folgende Anforderungen an das API: +- Sofern bestimmte Funktionen für den Betrieb der Hardware nicht erforderlich sind, können diese weggelassen werden +- Die Funktionen dürfen das Programm nicht blockieren bzw. müssen abbrechbar sein +- Die I/O-Funktionen sollen dazu geeignet sein, in Interrupt-Serviceroutinen aufgerufen zu werden +- Die Funktionen liefern einen Rückgabewert, der den Erfolgsstatus des Funktionsaufrufs kennzeichnet +- Die Werteübergabe erfolgt über Zeiger auf Datenstrukturen, die für die Nutzung der Funktionen definiert werden müssen +\n\n + + +Erstellung von doxygen Kommentaren +================================== +Erstellen von File Headers +-------------------------- + +Zu Beginn jeder Sourcedatei soll ein Header über die Bedeutung der Sourcedatei informieren. +Der hier enthaltene Text soll als Vorlage verwendet werden. Die enthaltenen Beispieltexte +müssen ersetzt werden. Die Bedeutung der doxygen tags ist der doxygen Dokumentation zu entnehmen: +[doxygen Handbuch] (http://www.stack.nl/~dimitri/doxygen/manual/markdown.html) + +@code + +/** @file mainSM.c + * @brief Modul beinhaltet die state machine, die das Verhalten des Hauptprogrammes umsetzt. + * @author Sven Steddin + * @date 2015-05-25 + */ + +@endcode + +### Erstellen von Function Headers ### +Zu Beginn jeder Funktion soll ein Header über die Bedeutung der Funktion informieren. +Der hier enthaltene Text soll als Vorlage verwendet werden. Die enthaltenen Beispieltexte +müssen ersetzt werden. Die Bedeutung der doxygen tags ist der doxygen Dokumentation zu entnehmen: +[doxygen Handbuch] (http://www.stack.nl/~dimitri/doxygen/manual/markdown.html) + +__Wichtig:__ \n +Nicht verwendete tags sollen entfernt werden, damit die erzeugte Dokumentation möglichst kurz und +übersichtlich bleibt. Die tags sind dann bei Bedarf in der vorgesehenen Reihenfolge wieder +einzufügen. + +@code + +//********************************************************************************************************/ +/*! @fn void i2cSM_Reset(void) + * @brief Initialisierung der I²C Protokoll state machine + * @author Sven Steddin + * @version 2 + * + * @date __Version 2 (ab 25.05.2015)__ + * - geändert: 2015-05-25 (Steddin) + * - Kommentierung der Quelldatei + * - Test und Freigabe: 2015-05-25 (Steddin) + * - Doxygen-generierte Dateien vollständig + * + * @date __Version 1 (ab 2015-05-17)__ + * - erstellt: 2015-05-17 (Steddin) + * - Erstausgabe der Funktion + * - Test und Freigabe: 2015-05-17 (Steddin) + * - Alle states werden fehlerfrei durchlaufen + + * @param [in] void + * @param [out] void + * @param [in,out] void + * @return void + * + * Zweck: + * ====== + * -# Verwaltung der Kommunikation mit dem MMA7660 Beschleunigungssensors + * -# Benutzung des USC-Moduls des MSP430 zur Abwicklung der I²C-Kommunikation + * (keine I²C Software Emulation, wie in vielen Arduino Beispielprogrammen). + * + * Umsetzung: + * ========== + * - Über die von TI Grace angelegten Funktionen wird die I²C Schnittstelle + * initialisiert. + * - Die I²C Protokoll state machine wird auf ihren Anfangsstatus zurückgesetzt. + * - Die modulglobalen Variablen werden zurückgesetzt. + * + * @sa USCI_B0_graceInit() + * @sa System_graceInit() + * + * Initialisierung: + * ---------------- + * nicht erforderlich + * + * @test Prüfen, ob nach dem Aufruf: + * - die modulglobalen Variablen den gewünschten Wert aufweisen + * - der Anfangsstate der state machine gesetzt ist + * + * @_code + * kein Beispielcode ( _-Zeichen entfernen, famit Tag funktioniert!) + * @_endcode + * + * @warning nicht belegt + * + * @riskman keine Hinweise zum Risikomanagement + * + * @todo + * + ************************************************************************************************************/ + +@endcode + +Das tag _riskman_ gehören nicht zu den doxygen Standardtags sondern ist eine benutzerabhängige +Erweiterungen, die im doxygen Konfigurationsfile unter ALIASES definiert werden muss. + +Einsatz von graphviz.dot +------------------------ +Doxygen kann Grafiken zu den Abhängigkeiten der Source-Dateien erstellen, wenn das Tool graphviz-dot +auf dem Rechner installiert ist. Der bin-Pfad der Installation muss im doxygen-File hinterlegt sein. + +Verwendung von Templates zur Neuanlage von Dateien +-------------------------------------------------- +Die CCS-IDE ist von Eclipse abgeleitet. Es gibt daher die in Eclipse definierte Vorgehensweise, +bei der Neuanlage von Dateien vorkonfigurierte Templates zu erstellen. Die Einstellung der +Template erfolgt unter dem Menüpunkt /Window/Preferences/Code Style/Code Templates/Files + +*/ \ No newline at end of file diff --git a/esr24_g10_radar_scanner/docs/mainpage.dox b/esr24_g10_radar_scanner/docs/mainpage.dox new file mode 100644 index 0000000000000000000000000000000000000000..e692e8583631b30d0f522b5e89fff79d0ce37eb4 --- /dev/null +++ b/esr24_g10_radar_scanner/docs/mainpage.dox @@ -0,0 +1,123 @@ +/** +@mainpage +@authors Alexander Görlitz, Aaron Kaipf, Christopher Seitz +@version 1.0.0 +@date 04.07.2024 + +Zweckbestimmung: +---------------- +Dieses Programm demonstriert, wie der Ultraschallsensor HC-SR04 zur Messung von Abständen +verwendet werden kann. Es steuert einen Servo-Motor zur Positionierung des Sensors und zeigt +die gemessenen Entfernungen auf einem LC-Display an. Der Einsatzbereich dieses Systems liegt +in der Erkennung von Patienten innerhalb eines definierten Bereichs. + +\n + +Funktionsbeschreibung / bestimmungsgemäßer Gebrauch: +---------------------------------------------------- +1. Ultraschallsensor gemäß Verdrahtungsplan mit dem Launchpad verbinden. Der Sensor soll mit 5V versorgt werden; + das an das Launchpad gesendete ECHO-Signal muss daher über einen Spannungsteiler mit dem CCIA Pin verbunden + werden, damit die maximal zulässigen 3,3V am DIO-Pin nicht überschritten werden. +2. Launchpad über USB-Buchse mit Spannung versorgen. +3. Radar Scanner an die gewünschte Position stellen und ausrichten +4. Über Breakpoint den errechneten Abstandswert auslesen oder auf dem LCD-Display anzeigen lassen. +5. Während des Betriebs wird der Servo-Motor in einem Bereich von 45° bis 135° geschwenkt, um Entfernungen + zu messen und zu überwachen. + +\n + +Beschreibung der Hardware: +-------------------------- +- TI Launchpad MSP430, Version 1.6 +- MSP430FR2355 +- Ultraschallsensor: HC-SR04 +- LCD-Display: 1602 Display mit I2C Schnittstelle +- Servo-Motor SG90 zur Ausrichtung des HC-SR04 +- Grüne LED zur Anzeige des Betriebsstatus + +@code + + Ultraschallsensor Verdrahtung: + MSP430FR2355 5V---| + ----------------- ----|------- + /|\| | | + | | P5.1/TB2.2out|---> US-TRIG (Pin2)----------->|US-TRIG (Pin2) + --|RST | | + | P1.0 |---> red LED --------|US-ECHO (Pin3) + | | | | + | | 1,5k |SR04 + | P5.0/TB2.1CCIA|<----------------------| ----|------- + | | 2,2k | + | | | GND + GND + + LCD und I2C Verdrahtung: + MSP430FR2355 PCF8574T + master + ----------------- + -|XIN P1.2/UCB0SDA|<-------->| SDA + | | | + -|XOUT | | + | P1.3/UCB0SCL|<-------->|SCL + LEDred<--|P1.0 | | + 5V-->| Vcc + + Servo Verdrahtung: + MSP430FR2355 + --------------- + /|\| | + | | | + --|RST | + | | + | P2.0/TB1.1|--> CCR1 - XX% PWM + | | + +@endcode + +\n\n + +@image images gehause_1.JPEG "Außenansicher vom Radar Scanner" +@image images gehause_2.JPEG "Außenansicher vom Radar Scanner" +@image images gehause_3.JPEG "Außenansicher vom Radar Scanner" +@image images gehause_4.JPEG "Außenansicher vom Radar Scanner" +@image images verdrahtung.JPEG "Verdrahtung der Komponenten" +@image images servo.JPEG "Verdrahtung des Servomotors" +@image images msp430_halterung_1.JPEG "Halterung des MSP430FR2355" +@image images msp430_halterung_2.JPEG "Halterung des MSP430FR2355" +@image images msp430_halterung_3.JPEG "Halterung des MSP430FR2355" + + +\n\n + + +\n\n + +Beschreibung der Software +------------------------- +__Werkzeuge__ +- Die Entwicklung erfolgte unter TI CCS Ver. 12.7.1.00001 +- UML Diagramme wurden mit UMLet Version 12.1 erstellt +- Die Dokumentation wurde mit doxygen Version 1.11.0 erstellt +- Das Konfigurationsmanagement erfolgt über Git +- Das erstellen der stl files wurde Tinkercad verwendet +- Elegoo Cura wurde zum erstellen des gcodes mit der Version 4.8.0 verwendet + +3D-Druck +-------- + +@image 3d_druck/images MSP430_halter_v1.png "Selbstentworfene Halterung für den MSP430FR2355" +@image 3d_druck/images sonar_deckel_v1.png "Selbstentworfener Deckel für das Gehäuse" +@image 3d_druck/images sonar_gehause_v1.png "Selbstentworfenes Gehäuse für die Komponenten" +@image 3d_druck/images sr04_abdeckung_v1.png "Selbstentworfene Abdeckung für den Ultraschallsensor" + +@image 3d_druck/images Radar_mount_rev2.png "Halterung für den Ultraschallsensor aus thingiverse" + +Handheld Sonic Radar by rjlew on Thingiverse: +@see https://www.thingiverse.com/thing:4800043 + + + +*/ + + + diff --git a/esr24_g10_radar_scanner/docs/rtf/main_8c.rtf b/esr24_g10_radar_scanner/docs/rtf/main_8c.rtf index 8795ed5e905886bfdbb8b61fce203ad1a3c1569f..f658df0ad7842de5746534157a4237c6714d9c91 100644 --- a/esr24_g10_radar_scanner/docs/rtf/main_8c.rtf +++ b/esr24_g10_radar_scanner/docs/rtf/main_8c.rtf @@ -163,6 +163,13 @@ Dies ist eine Beschreibung der {\b main.c} Datei. }}\par {\f2 #include "lcd1602.h"}\par {\f2 #include <stdio.h>}\par } +{ +\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Include dependency graph for main.c:{ +\pard\plain +\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "main_8c__incl.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par +} +\par +} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Macros\par \pard\plain @@ -179,10 +186,12 @@ Macros\par {\bkmkend AAAAAAAAAF} \par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -#define {\b SLAVE_ADDRESS}\~ 0x27{\bkmkstart AAAAAAAAAG} -{\bkmkend AAAAAAAAAG} -\par +#define {\b SLAVE_ADDRESS}\~ 0x27\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +I2C-Slave-Adresse für den PCF8574 I/O Expander. }{ +}\par +}\par} } \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Functions\par @@ -191,18 +200,23 @@ Functions\par { \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b init_gpio} (void){\bkmkstart AAAAAAAAAH} -{\bkmkend AAAAAAAAAH} +void {\b init_gpio} (void){\bkmkstart AAAAAAAAAG} +{\bkmkend AAAAAAAAAG} \par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +initialisiert die pins }{ +}\par +}\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b init_cs} (void){\bkmkstart AAAAAAAAAI} -{\bkmkend AAAAAAAAAI} +void {\b init_cs} (void){\bkmkstart AAAAAAAAAH} +{\bkmkend AAAAAAAAAH} \par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b init_timer} (void){\bkmkstart AAAAAAAAAJ} -{\bkmkend AAAAAAAAAJ} +void {\b init_timer} (void){\bkmkstart AAAAAAAAAI} +{\bkmkend AAAAAAAAAI} \par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -211,8 +225,8 @@ initialisiert den Timer }{ }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b init_i2c} (void){\bkmkstart AAAAAAAAAK} -{\bkmkend AAAAAAAAAK} +void {\b init_i2c} (void){\bkmkstart AAAAAAAAAJ} +{\bkmkend AAAAAAAAAJ} \par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -221,48 +235,51 @@ initialisiert I2C }{ }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b sleep} (uint16_t ms){\bkmkstart AAAAAAAAAL} -{\bkmkend AAAAAAAAAL} +void {\b sleep} (uint16_t ms){\bkmkstart AAAAAAAAAK} +{\bkmkend AAAAAAAAAK} \par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -Sleep für bestimmt anzahl clock cycles. }{ +Sleep für bestimmte anzahl clock cycles. }{ }\par }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -void {\b detectedSomething} (int i, uint16_t pDistance){\bkmkstart AAAAAAAAAM} -{\bkmkend AAAAAAAAAM} -\par +void {\b detectedSomething} (int pPosition, uint16_t pDistance)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Methode wird ausgeführt, wenn der HC-SR04-Ultraschallsensor etwas erkennt. }{ +}\par +}\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -void {\b configurePWM} (int pwmSignal){\bkmkstart AAAAAAAAAN} -{\bkmkend AAAAAAAAAN} -\par +void {\b configurePWM} (int pwmSignal)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Konfiguriert das PWM-Signal. }{ +}\par +}\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -void {\b startUp} (){\bkmkstart AAAAAAAAAO} -{\bkmkend AAAAAAAAAO} -\par +void {\b startUp} ()\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Startet die Initialisierungsprozedur beim Hochfahren des MSP430. }{ +}\par +}\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -void {\b main} (void){\bkmkstart AAAAAAAAAP} -{\bkmkend AAAAAAAAAP} -\par +void {\b main} (void)\par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -main funktion für Interactivität }{ +Hauptfunktion für die Interaktivität. }{ }\par }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -__interrupt void {\b NMI_ISR} (void){\bkmkstart AAAAAAAAAQ} -{\bkmkend AAAAAAAAAQ} +__interrupt void {\b NMI_ISR} (void){\bkmkstart AAAAAAAAAL} +{\bkmkend AAAAAAAAAL} \par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -__interrupt void {\b TIMER0_B0_ISR} (void){\bkmkstart AAAAAAAAAR} -{\bkmkend AAAAAAAAAR} +__interrupt void {\b TIMER0_B0_ISR} (void){\bkmkstart AAAAAAAAAM} +{\bkmkend AAAAAAAAAM} \par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} @@ -273,6 +290,144 @@ Detailed Description\par \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid Dies ist eine Beschreibung der {\b main.c} Datei. \par }{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -Detaillierte Beschreibung der Datei. \par +Diese Datei enthält die Hauptfunktion und die Initialisierungsroutinen für das System. Das System verwendet einen MSP430FR2355-Mikrocontroller, um verschiedene Hardware-Komponenten zu steuern, einschließlich eines Servos SG90, eines Ultraschallsensor HC-SR04 und eines LC-Displays HD44780.\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Authors\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +{ +\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +Alexander Görlitz\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +Aaron Kaipf\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +Christopher Seitz \par} +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Version\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +1.0.0 \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Date\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +04.07.2024 \par +}}}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Macro Definition Documentation\par +\pard\plain +{\xe \v SLAVE_ADDRESS\:main.c} +{\xe \v main.c\:SLAVE_ADDRESS} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define SLAVE_ADDRESS\~ 0x27}} +\par +{\bkmkstart AAAAAAAAAN} +{\bkmkend AAAAAAAAAN} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +I2C-Slave-Adresse für den PCF8574 I/O Expander. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Definition legt die I2C-Slave-Adresse für den PCF8574 I/O Expander fest. Je nach Version des PCF8574 (PCF8574T oder PCF8574AT) wird die entsprechende Adresse gewählt.{ +\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +PCF8574T: Adresse 0x27\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +PCF8574AT: Adresse 0x3F \par} +}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Function Documentation\par +\pard\plain +{\xe \v configurePWM\:main.c} +{\xe \v main.c\:configurePWM} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void configurePWM (int pwmSignal)}} +\par +{\bkmkstart AAAAAAAAAO} +{\bkmkend AAAAAAAAAO} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Konfiguriert das PWM-Signal. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Funktion konfiguriert das PWM-Signal mit einem angegebenen Wert. Der PWM-Signalwert kann offiziell zwischen 1000 und 2000 liegen, jedoch sind auch Werte zwischen 500 und 2500 möglich, was einem Bereich von 180 Grad entspricht.\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pwmSignal} \cell }{Der PWM-Signalwert, zwischen 500 und 2500. \cell } +{\row } +} +}} +{\xe \v detectedSomething\:main.c} +{\xe \v main.c\:detectedSomething} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void detectedSomething (int pPosition, uint16_t pDistance)}} +\par +{\bkmkstart AAAAAAAAAP} +{\bkmkend AAAAAAAAAP} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Methode wird ausgeführt, wenn der HC-SR04-Ultraschallsensor etwas erkennt. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Funktion wird aufgerufen, wenn der SR04-Sensor einen Patienten erkennt. Sie schaltet eine grüne LED ein, zeigt die erkannte Entfernung und die Position auf einem LCD-Display an und schaltet die LED wieder aus.\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i i} \cell }{Die Position des erkannten Objekts. \cell } +{\row } +\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pDistance} \cell }{Die gemessene Entfernung zum erkannten Objekt in Millimetern. \cell } +{\row } +} +}} +{\xe \v main\:main.c} +{\xe \v main.c\:main} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void main (void )}} +\par +{\bkmkstart AAAAAAAAAQ} +{\bkmkend AAAAAAAAAQ} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Hauptfunktion für die Interaktivität. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Funktion initialisiert die Hardware, konfiguriert den PWM für den Servo, startet den Ultraschallsensor und verarbeitet die Entfernungsmessungen, um erkannte Patienten anzuzeigen. \par +}} +{\xe \v startUp\:main.c} +{\xe \v main.c\:startUp} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void startUp ()}} +\par +{\bkmkstart AAAAAAAAAR} +{\bkmkend AAAAAAAAAR} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Startet die Initialisierungsprozedur beim Hochfahren des MSP430. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Funktion führt eine Prozedur aus, die beim Hochfahren des MSP430 aufgerufen wird. Sie schaltet eine grüne LED ein und führt eine Reihe von PWM-Konfigurationen und Verzögerungen durch, bevor sie die LED wieder ausschaltet. \par }} } \ No newline at end of file diff --git a/esr24_g10_radar_scanner/docs/rtf/main_8c__incl.md5 b/esr24_g10_radar_scanner/docs/rtf/main_8c__incl.md5 new file mode 100644 index 0000000000000000000000000000000000000000..adf08879663f4474ad802b1645083657a9825881 --- /dev/null +++ b/esr24_g10_radar_scanner/docs/rtf/main_8c__incl.md5 @@ -0,0 +1 @@ +1b5cef6612cc0e2caa96f95359d93a4c \ No newline at end of file diff --git a/esr24_g10_radar_scanner/docs/rtf/main_8c__incl.png b/esr24_g10_radar_scanner/docs/rtf/main_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..b34811e3738c18404197bf0bf067cfb61d9d0373 Binary files /dev/null and b/esr24_g10_radar_scanner/docs/rtf/main_8c__incl.png differ diff --git a/esr24_g10_radar_scanner/docs/rtf/refman.rtf b/esr24_g10_radar_scanner/docs/rtf/refman.rtf index 8a7075a5c43ea91acae6d36a1436710c8e5bfc90..d9595540fd9ffbfe2e0911e79966d7a266775a66 100644 --- a/esr24_g10_radar_scanner/docs/rtf/refman.rtf +++ b/esr24_g10_radar_scanner/docs/rtf/refman.rtf @@ -489,6 +489,13 @@ Dies ist eine Beschreibung der {\b main.c} Datei. }}\par {\f2 #include "lcd1602.h"}\par {\f2 #include <stdio.h>}\par } +{ +\pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid Include dependency graph for main.c:{ +\pard\plain +\par\pard \qc {\field\flddirty {\*\fldinst INCLUDEPICTURE "main_8c__incl.png" \\d \\*MERGEFORMAT}{\fldrslt IMAGE}}\par +} +\par +} \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Macros\par \pard\plain @@ -505,10 +512,12 @@ Macros\par {\bkmkend AAAAAAAAAF} \par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -#define {\b SLAVE_ADDRESS}\~ 0x27{\bkmkstart AAAAAAAAAG} -{\bkmkend AAAAAAAAAG} -\par +#define {\b SLAVE_ADDRESS}\~ 0x27\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +I2C-Slave-Adresse f\'FCr den PCF8574 I/O Expander. }{ +}\par +}\par} } \pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid Functions\par @@ -517,18 +526,23 @@ Functions\par { \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b init_gpio} (void){\bkmkstart AAAAAAAAAH} -{\bkmkend AAAAAAAAAH} +void {\b init_gpio} (void){\bkmkstart AAAAAAAAAG} +{\bkmkend AAAAAAAAAG} \par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +initialisiert die pins }{ +}\par +}\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b init_cs} (void){\bkmkstart AAAAAAAAAI} -{\bkmkend AAAAAAAAAI} +void {\b init_cs} (void){\bkmkstart AAAAAAAAAH} +{\bkmkend AAAAAAAAAH} \par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b init_timer} (void){\bkmkstart AAAAAAAAAJ} -{\bkmkend AAAAAAAAAJ} +void {\b init_timer} (void){\bkmkstart AAAAAAAAAI} +{\bkmkend AAAAAAAAAI} \par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -537,8 +551,8 @@ initialisiert den Timer }{ }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b init_i2c} (void){\bkmkstart AAAAAAAAAK} -{\bkmkend AAAAAAAAAK} +void {\b init_i2c} (void){\bkmkstart AAAAAAAAAJ} +{\bkmkend AAAAAAAAAJ} \par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid @@ -547,48 +561,51 @@ initialisiert I2C }{ }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -void {\b sleep} (uint16_t ms){\bkmkstart AAAAAAAAAL} -{\bkmkend AAAAAAAAAL} +void {\b sleep} (uint16_t ms){\bkmkstart AAAAAAAAAK} +{\bkmkend AAAAAAAAAK} \par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -Sleep f\'FCr bestimmt anzahl clock cycles. }{ +Sleep f\'FCr bestimmte anzahl clock cycles. }{ }\par }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -void {\b detectedSomething} (int i, uint16_t pDistance){\bkmkstart AAAAAAAAAM} -{\bkmkend AAAAAAAAAM} -\par +void {\b detectedSomething} (int pPosition, uint16_t pDistance)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Methode wird ausgef\'FChrt, wenn der HC-SR04-Ultraschallsensor etwas erkennt. }{ +}\par +}\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -void {\b configurePWM} (int pwmSignal){\bkmkstart AAAAAAAAAN} -{\bkmkend AAAAAAAAAN} -\par +void {\b configurePWM} (int pwmSignal)\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Konfiguriert das PWM-Signal. }{ +}\par +}\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -void {\b startUp} (){\bkmkstart AAAAAAAAAO} -{\bkmkend AAAAAAAAAO} -\par +void {\b startUp} ()\par +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Startet die Initialisierungsprozedur beim Hochfahren des MSP430. }{ +}\par +}\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid - -void {\b main} (void){\bkmkstart AAAAAAAAAP} -{\bkmkend AAAAAAAAAP} -\par +void {\b main} (void)\par { \pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid {\i {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -main funktion f\'FCr Interactivit\'E4t }{ +Hauptfunktion f\'FCr die Interaktivit\'E4t. }{ }\par }\par} \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -__interrupt void {\b NMI_ISR} (void){\bkmkstart AAAAAAAAAQ} -{\bkmkend AAAAAAAAAQ} +__interrupt void {\b NMI_ISR} (void){\bkmkstart AAAAAAAAAL} +{\bkmkend AAAAAAAAAL} \par \pard\plain \s120\fi-360\li360\widctlpar\jclisttab\tx360{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec }\ls1\adjustright \fs20\cgrid -__interrupt void {\b TIMER0_B0_ISR} (void){\bkmkstart AAAAAAAAAR} -{\bkmkend AAAAAAAAAR} +__interrupt void {\b TIMER0_B0_ISR} (void){\bkmkstart AAAAAAAAAM} +{\bkmkend AAAAAAAAAM} \par } {\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} @@ -599,7 +616,145 @@ Detailed Description\par \pard\plain \s17\sa60\sb30\widctlpar\qj \fs22\cgrid {\s17\sa60\sb30\widctlpar\qj \fs22\cgrid Dies ist eine Beschreibung der {\b main.c} Datei. \par }{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid -Detaillierte Beschreibung der Datei. \par +Diese Datei enth\'E4lt die Hauptfunktion und die Initialisierungsroutinen f\'FCr das System. Das System verwendet einen MSP430FR2355-Mikrocontroller, um verschiedene Hardware-Komponenten zu steuern, einschlie\'DFlich eines Servos SG90, eines Ultraschallsensor HC-SR04 und eines LC-Displays HD44780.\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Authors\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +{ +\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +Alexander G\'F6rlitz\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +Aaron Kaipf\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +Christopher Seitz \par} +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Version\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +1.0.0 \par +}}{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Date\par}\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30 +04.07.2024 \par +}}}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Macro Definition Documentation\par +\pard\plain +{\xe \v SLAVE_ADDRESS\:main.c} +{\xe \v main.c\:SLAVE_ADDRESS} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +#define SLAVE_ADDRESS\~ 0x27}} +\par +{\bkmkstart AAAAAAAAAN} +{\bkmkend AAAAAAAAAN} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +I2C-Slave-Adresse f\'FCr den PCF8574 I/O Expander. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Definition legt die I2C-Slave-Adresse f\'FCr den PCF8574 I/O Expander fest. Je nach Version des PCF8574 (PCF8574T oder PCF8574AT) wird die entsprechende Adresse gew\'E4hlt.{ +\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +PCF8574T: Adresse 0x27\par +\pard\plain {\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\nowidctlpar\cf0\hich\af0\langfe2052\dbch\af0\afs24\lang1081\loch\f0\fs24\lang1033{\listtext\pard\plain \hich\af3\dbch\af3\loch\f8 \'01\u9702\tab}\ilvl1\ls1 \li0\ri0\lin0\rin0\fi-360\tx720\li720\ri0\lin720\rin0\fi-360\kerning1\hich\af4\dbch\af5\rtlch \ltrch\loch\fs20 +PCF8574AT: Adresse 0x3F \par} +}} +{\pard\widctlpar\brdrb\brdrs\brdrw5\brsp20 \adjustright \par} +\pard\plain \s3\sb240\sa60\keepn\widctlpar\adjustright \b\f1\cgrid +Function Documentation\par +\pard\plain +{\xe \v configurePWM\:main.c} +{\xe \v main.c\:configurePWM} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void configurePWM (int pwmSignal)}} +\par +{\bkmkstart AAAAAAAAAO} +{\bkmkend AAAAAAAAAO} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Konfiguriert das PWM-Signal. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Funktion konfiguriert das PWM-Signal mit einem angegebenen Wert. Der PWM-Signalwert kann offiziell zwischen 1000 und 2000 liegen, jedoch sind auch Werte zwischen 500 und 2500 m\'F6glich, was einem Bereich von 180 Grad entspricht.\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pwmSignal} \cell }{Der PWM-Signalwert, zwischen 500 und 2500. \cell } +{\row } +} +}} +{\xe \v detectedSomething\:main.c} +{\xe \v main.c\:detectedSomething} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void detectedSomething (int pPosition, uint16_t pDistance)}} +\par +{\bkmkstart AAAAAAAAAP} +{\bkmkend AAAAAAAAAP} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Methode wird ausgef\'FChrt, wenn der HC-SR04-Ultraschallsensor etwas erkennt. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Funktion wird aufgerufen, wenn der SR04-Sensor einen Patienten erkennt. Sie schaltet eine gr\'FCne LED ein, zeigt die erkannte Entfernung und die Position auf einem LCD-Display an und schaltet die LED wieder aus.\par +{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs16\cgrid +Parameters\par} +\pard\plain \s81\li360\widctlpar\ql\adjustright \fs20\cgrid \trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i i} \cell }{Die Position des erkannten Objekts. \cell } +{\row } +\trowd \trgaph108\trleft426\tblind426\trbrdrt\brdrs\brdrw10\brdrcf15 \trbrdrl\brdrs\brdrw10\brdrcf15 \trbrdrb\brdrs\brdrw10\brdrcf15 \trbrdrr\brdrs\brdrw10\brdrcf15 \trbrdrh\brdrs\brdrw10\brdrcf15 \trbrdrv\brdrs\brdrw10\brdrcf15 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx2187 +\clvertalt\clbrdrt\brdrs\brdrw10\brdrcf15 \clbrdrl\brdrs\brdrw10\brdrcf15 \clbrdrb\brdrs\brdrw10\brdrcf15 \clbrdrr \brdrs\brdrw10\brdrcf15 \cltxlrtb \cellx8748 +\pard \widctlpar\intbl\adjustright +{{\i pDistance} \cell }{Die gemessene Entfernung zum erkannten Objekt in Millimetern. \cell } +{\row } +} +}} +{\xe \v main\:main.c} +{\xe \v main.c\:main} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void main (void )}} +\par +{\bkmkstart AAAAAAAAAQ} +{\bkmkend AAAAAAAAAQ} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Hauptfunktion f\'FCr die Interaktivit\'E4t. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Funktion initialisiert die Hardware, konfiguriert den PWM f\'FCr den Servo, startet den Ultraschallsensor und verarbeitet die Entfernungsmessungen, um erkannte Patienten anzuzeigen. \par +}} +{\xe \v startUp\:main.c} +{\xe \v main.c\:startUp} +\pard\plain \s4\sb240\sa60\keepn\widctlpar\adjustright \b\f1\fs20\cgrid { +{\b +void startUp ()}} +\par +{\bkmkstart AAAAAAAAAR} +{\bkmkend AAAAAAAAAR} +{ +\pard\plain \s61\li360\sa60\sb30\qj\widctlpar\qj\adjustright \fs20\cgrid +\par +{ +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Startet die Initialisierungsprozedur beim Hochfahren des MSP430. }}\par +{\s17\sa60\sb30\widctlpar\qj \fs22\cgrid +Diese Funktion f\'FChrt eine Prozedur aus, die beim Hochfahren des MSP430 aufgerufen wird. Sie schaltet eine gr\'FCne LED ein und f\'FChrt eine Reihe von PWM-Konfigurationen und Verz\'F6gerungen durch, bevor sie die LED wieder ausschaltet. \par }} \par \pard\plain diff --git a/esr24_g10_radar_scanner/main.c b/esr24_g10_radar_scanner/main.c index 64e9262c7180184edf69cd4e1381bda41c604d0e..8ebbd0c99bfb344c99108adeffe49e53d07a7026 100644 --- a/esr24_g10_radar_scanner/main.c +++ b/esr24_g10_radar_scanner/main.c @@ -10,6 +10,8 @@ * - Alexander Görlitz * - Aaron Kaipf * - Christopher Seitz + * @version 1.0.0 + * @date 04.07.2024 */ /* --COPYRIGHT--,BSD