Compare commits

...

4 Commits

Author SHA1 Message Date
15c0e3755d добавление bench_time и рефакторинг генетического алгоритма 2025-10-27 09:39:57 +03:00
5c4c815961 мелочь 2025-10-21 09:40:15 +03:00
9093084257 попытка замены батника на vbs, чтобы не ругался антивирус 2025-10-21 05:39:45 +03:00
141ea6bac9 Переструктурирование:
- MyLibs - максимально платформонезависимые библиотеки (кроме разве что RTT)
- RTT
- STM32_General - библиотеки для периферии stm32
2025-10-21 05:03:54 +03:00
587 changed files with 10814 additions and 7312 deletions

View File

@ -1,2 +0,0 @@
@echo off
start "" "%~dp0.\html\index.html"

6
Doc/Documentation.vbs Normal file
View File

@ -0,0 +1,6 @@
' open_index.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
scriptPath = WScript.ScriptFullName
scriptFolder = fso.GetParentFolderName(scriptPath)
htmlPath = scriptFolder & "\html\index.html"
CreateObject("WScript.Shell").Run """" & htmlPath & """", 1, False

View File

@ -558,7 +558,7 @@ EXTRACT_PACKAGE = NO
# included in the documentation.
# The default value is: NO.
EXTRACT_STATIC = NO
EXTRACT_STATIC = YES
# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO,
@ -991,7 +991,9 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = E:\.WORK\STM32\STM32_ExtendedLibs\MyLibsGeneral
INPUT = E:\.WORK\STM32\STM32_ExtendedLibs\MyLibs \
E:\.WORK\STM32\STM32_ExtendedLibs\STM32_General \
E:\.WORK\STM32\STM32_ExtendedLibs\mainpage.h
# This tag can be used to specify the character encoding of the source files
# that Doxygen parses. Internally Doxygen uses the UTF-8 encoding. Doxygen uses

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_flash.c Source File</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src/__general_flash.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@ -298,7 +298,7 @@ $(function(){initNavTree('____general__flash_8c_source.html','',''); });
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></li><li class="navelem"><b>__general_flash.c</b></li>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li><li class="navelem"><a href="dir_3d5e348fed410a00f9c665596ca3b887.html">Src</a></li><li class="navelem"><b>__general_flash.c</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_flash.h Source File</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Inc/__general_flash.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@ -151,7 +151,7 @@ $(function(){initNavTree('____general__flash_8h_source.html','',''); });
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_eb423fea8a9c4b9b32b922020ec391e1.html">Inc</a></li><li class="navelem"><b>__general_flash.h</b></li>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li><li class="navelem"><a href="dir_2cad7b5fa94233a09111fd73c6202518.html">Inc</a></li><li class="navelem"><b>__general_flash.h</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -1,417 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_spi.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('____general__spi_8c_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">__general_spi.c</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** </span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">**************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file general_spi.c</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Модуль для инициализации SPI.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">**************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* @details</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">*</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* Функции:</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* - SPI_Base_Init Инициализация SPI </span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* </span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">* Functions: spi initialize</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">* - SPI_GPIO_Init Инициализация GPIO для SPI</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">* - SPI_DMA_Init Инициализация DMA для SPI</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">* - SPI_MspInit Аналог HAL_MspInit для SPI</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">* - SPI_MspDeInit Аналог HAL_MspDeInit для SPI</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">*</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;general_spi.h&quot;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="general__gpio_8h.html">general_gpio.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">//------------------------SPI INIT FUNCTIONS------------------------</span><span class="comment"></span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">/** </span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * @brief Initialize SPI with SPI_SettingsTypeDef structure.</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * @param sspi - указатель на структуру с настройками SPI.</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * @note SPI_SettingsTypeDef структура содержит хендл SPI и настройки перефирии (GPIO)</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> */</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>HAL_StatusTypeDef SPI_Base_Init(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>{ <span class="comment">// function takes setting structure for init</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// check is settings are valid</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span>(Check_SPI_Init_Struct(sspi) != HAL_OK)</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> SPI_MspInit(&amp;sspi-&gt;hspi); </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> (HAL_SPI_Init(&amp;sspi-&gt;hspi) != HAL_OK)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <a class="code hl_define" href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f">MyLibs_Error_Handler</a>();</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> }</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// init gpio from SPISettings structure</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> SPI_GPIO_Init(sspi);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">// // init dma from SPISettings structure if need</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment">// if (sspi-&gt;DMAChannel != 0)</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment">// SPI_DMA_Init(&amp;sspi-&gt;hspi, sspi-&gt;hspi.hdmarx, sspi-&gt;DMAChannel, sspi-&gt;DMA_CHANNEL_X);</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>}</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment"></span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment">/** </span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"> * @brief Initialize GPIO for SPI.</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"> * @param GPIOx - порт для настройки.</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment"> * @param GPIO_PIN_RX - пин для настройки на прием.</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment"> * @param GPIO_PIN_TX - пин для настройки на передачу.</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> */</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="keywordtype">void</span> SPI_GPIO_Init(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span>{ </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> GPIO_InitTypeDef GPIO_InitStruct = {0}; </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// GPIO INIT </span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a>(sspi-&gt;CLK_GPIOx);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a>(sspi-&gt;MISO_GPIOx);</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a>(sspi-&gt;MOSI_GPIOx); </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// CLK PIN INIT</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> GPIO_InitStruct.Pin = sspi-&gt;CLK_PIN;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> GPIO_InitStruct.Alternate = sspi-&gt;CLK_GPIO_AlternageFunc;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> GPIO_InitStruct.Pull = GPIO_NOPULL;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> HAL_GPIO_Init(sspi-&gt;CLK_GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// MISO PIN INIT</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> GPIO_InitStruct.Pin = sspi-&gt;MISO_PIN;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> GPIO_InitStruct.Alternate = sspi-&gt;MISO_GPIO_AlternageFunc;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> GPIO_InitStruct.Pull = GPIO_NOPULL;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> HAL_GPIO_Init(sspi-&gt;MISO_GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// MOSI PIN INIT</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> GPIO_InitStruct.Pin = sspi-&gt;MOSI_PIN;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> GPIO_InitStruct.Alternate = sspi-&gt;MOSI_GPIO_AlternageFunc;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> GPIO_InitStruct.Pull = GPIO_NOPULL;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> HAL_GPIO_Init(sspi-&gt;MOSI_GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span>}</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"></span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment">/** </span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment"> * @brief Initialize DMA for SPI.</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * @param hspi - указатель на хендл SPI для настройки DMA.</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> * @param hdma_rx - указатель на хендл DMA для линии приема SPI.</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> * @param DMAChannel - указатель на канал DMA/поток DMA в STM32F407.</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"> * @param DMA_CHANNEL_X - канал DMA.</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment"> */</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="keywordtype">void</span> SPI_DMA_Init(SPI_HandleTypeDef *hspi, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X)</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span>{ <span class="comment">// function takes spi and dma handlers and dmachannel for spi</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment">// // for now only dma rx is supported, tx maybe later if needed</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment">// // calc defines on boot_project_setup.h</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="comment">// /* SPI3 DMA Init */</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment">// /* SPI3_RX Init */</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment">// </span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment">// hdma_rx-&gt;Instance = DMAChannel;</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment">//#if defined(STM32F407xx) // dma channel choose for 407</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment">// hdma_rx-&gt;Init.Channel = DMA_CHANNEL_X;</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment">//#endif</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment">// hdma_rx-&gt;Init.Direction = DMA_PERIPH_TO_MEMORY;</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment">// hdma_rx-&gt;Init.PeriphInc = DMA_PINC_DISABLE;</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment">// hdma_rx-&gt;Init.MemInc = DMA_MINC_ENABLE;</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment">// hdma_rx-&gt;Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment">// hdma_rx-&gt;Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment">// hdma_rx-&gt;Init.Mode = DMA_CIRCULAR;</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment">// hdma_rx-&gt;Init.Priority = DMA_PRIORITY_LOW;</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment">// if (HAL_DMA_Init(hdma_rx) != HAL_OK)</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment">// {</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment">// MyLibs_Error_Handler();</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment">// }</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment">// __USER_LINKDMA(hspi,hdmarx,hdma_rx); </span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment">// </span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment">// // __USER_LINKDMA is need because __HAL_LINKDMA is written for global defined hdma_rx</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment">// // so you get error because hal uses . insted of -&gt;</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span>}</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"></span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment">/** </span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> * @brief Initialize SPI &amp; DMA clock and interrupt.</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> * @param hspi - указатель на хендл SPI для инициализации.</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment"> * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых SPI,</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"> дефайнами в general_spi.h определяются используемые SPI.</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment"> */</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="keywordtype">void</span> SPI_MspInit(SPI_HandleTypeDef *hspi) <span class="comment">// analog for hal function</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span>{ </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// rcc, dma and interrupt init for SPIs</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="comment">// GPIO init was moved to own functions SPI_GPIO_Init </span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">if</span>(0);</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="preprocessor">#ifdef USE_SPI1</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI1)</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment">// /* DMA2 clock enable */</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment">// __HAL_RCC_DMA2_CLK_ENABLE();</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment">// HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="comment">/* SPI1 clock enable */</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> __HAL_RCC_SPI1_CLK_ENABLE();</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="comment">/* SPI1 interrupt Init */</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> HAL_NVIC_SetPriority(SPI1_IRQn, 0, 0);</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> HAL_NVIC_EnableIRQ(SPI1_IRQn);</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> }</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI1</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="preprocessor">#ifdef USE_SPI2</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI2)</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> {</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="comment">/* SPI2 clock enable */</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> __HAL_RCC_SPI2_CLK_ENABLE();</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="comment">/* SPI2 interrupt Init */</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> HAL_NVIC_SetPriority(SPI2_IRQn, 0, 0);</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> HAL_NVIC_EnableIRQ(SPI2_IRQn);</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> }</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI2</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="preprocessor">#ifdef USE_SPI3</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI3)</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> { </div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="comment">/* SPI3 clock enable */</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> __HAL_RCC_SPI3_CLK_ENABLE(); </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="comment">/* SPI3 interrupt Init */</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> HAL_NVIC_SetPriority(SPI3_IRQn, 0, 0);</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> HAL_NVIC_EnableIRQ(SPI3_IRQn);</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> }</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI3</span></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span>}</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="comment"></span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="comment">/** </span></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="comment"> * @brief Deinitialize SPI &amp; DMA clock and interrupt.</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="comment"> * @param hspi - указатель на хендл SPI для деинициализации.</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="comment"> * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых SPI,</span></div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><span class="comment"> дефайнами определяются используемые SPI.</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="comment"> */</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="keywordtype">void</span> SPI_MspDeInit(SPI_HandleTypeDef *hspi) <span class="comment">// analog for hal function</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span>{ </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// rcc, dma and interrupt init for SPIs</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="comment">// GPIO init was moved to own functions SPI_GPIO_Init </span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">if</span>(0);</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="preprocessor">#ifdef USE_SPI1</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI1)</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> {</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="comment">// /* DMA2 clock enable */</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="comment">// __HAL_RCC_DMA2_CLK_ENABLE();</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="comment">// HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="comment">/* SPI1 clock reset */</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> __HAL_RCC_SPI1_FORCE_RESET();</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> __HAL_RCC_SPI1_RELEASE_RESET();</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> }</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI1</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="preprocessor">#ifdef USE_SPI2</span></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI2)</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="comment">/* SPI2 clock reset */</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> __HAL_RCC_SPI2_FORCE_RESET();</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> __HAL_RCC_SPI2_RELEASE_RESET();</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> }</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI2</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="preprocessor">#ifdef USE_SPI3</span></div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI3)</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> { </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="comment">/* SPI3 clock reset */</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> __HAL_RCC_SPI3_FORCE_RESET();</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> __HAL_RCC_SPI3_RELEASE_RESET();</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> }</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI3</span></div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span>}</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="comment"></span> </div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="comment">/** </span></div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="comment"> * @brief Check that spi init structure have correct values.</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span><span class="comment"> * @param sspi - указатель на структуру с настройками SPI.</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="comment"> */</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span>HAL_StatusTypeDef Check_SPI_Init_Struct(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span>{</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="comment">// check is settings are valid</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">if</span> (!IS_SPI_ALL_INSTANCE(sspi-&gt;hspi.Instance))</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="comment">// check init settings</span></div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">if</span> (!IS_SPI_MODE(sspi-&gt;hspi.Init.Mode))</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">if</span> (!IS_SPI_DIRECTION(sspi-&gt;hspi.Init.Direction))</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">if</span> (!IS_SPI_DATASIZE(sspi-&gt;hspi.Init.DataSize))</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">if</span> (!IS_SPI_BAUDRATE_PRESCALER(sspi-&gt;hspi.Init.BaudRatePrescaler))</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordflow">if</span> (!IS_SPI_CPOL(sspi-&gt;hspi.Init.CLKPolarity))</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">if</span> (!IS_SPI_CPHA(sspi-&gt;hspi.Init.CLKPhase))</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">if</span> (!IS_SPI_NSS(sspi-&gt;hspi.Init.NSS))</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">if</span> (!IS_SPI_FIRST_BIT(sspi-&gt;hspi.Init.FirstBit))</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">if</span> (!IS_SPI_CRC_CALCULATION(sspi-&gt;hspi.Init.CRCCalculation))</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">if</span> (!IS_SPI_CRC_POLYNOMIAL(sspi-&gt;hspi.Init.NSS) &amp;&amp; </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> (sspi-&gt;hspi.Init.CRCCalculation != SPI_CRCCALCULATION_DISABLE))</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="keywordflow">if</span> (!IS_SPI_TIMODE(sspi-&gt;hspi.Init.TIMode))</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="comment">// check gpio</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">if</span> (!IS_GPIO_ALL_INSTANCE(sspi-&gt;CLK_GPIOx) || !IS_GPIO_ALL_INSTANCE(sspi-&gt;MISO_GPIOx) || !IS_GPIO_ALL_INSTANCE(sspi-&gt;MOSI_GPIOx))</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">if</span> (!IS_GPIO_PIN(sspi-&gt;CLK_PIN) &amp;&amp; !IS_GPIO_PIN(sspi-&gt;MISO_PIN) &amp;&amp; !IS_GPIO_PIN(sspi-&gt;MOSI_PIN)) <span class="comment">// if both pins arent set up</span></div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span>}</div>
<div class="ttc" id="ageneral__gpio_8h_html"><div class="ttname"><a href="general__gpio_8h.html">general_gpio.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации портов и работы с ними.</div></div>
<div class="ttc" id="agroup___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_html_gae110df81afd885a390bbeb152d7b709f"><div class="ttname"><a href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f">MyLibs_Error_Handler</a></div><div class="ttdeci">#define MyLibs_Error_Handler(params)</div><div class="ttdoc">Error_Handler который будет вызыватся в библиотеке</div><div class="ttdef"><b>Definition</b> <a href="mylibs__defs_8h_source.html#l00031">mylibs_defs.h:31</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_html_ga962f010f783b81fcdd27eb6b53db28e6"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)</div><div class="ttdoc">Включить тактирование порта GPIO.</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00022">general_gpio.c:22</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a></div><div class="ttdef"><b>Definition</b> <a href="____general__spi_8h_source.html#l00033">__general_spi.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a class="el" href="dir_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></li><li class="navelem"><b>__general_spi.c</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,225 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_spi.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('____general__spi_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">__general_spi.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** </span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">**************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file general_spi.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Заголовочны файл модуля инициализации SPI.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#ifndef __SPI_GENERAL_H_</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#define __SPI_GENERAL_H_</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"></span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">//////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"></span><span class="preprocessor">#define HAL_SPI_MODULE_ENABLED </span><span class="comment">// need to uncomment these defines in stm32f4xx_hal_conf.h</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// also need to add hal_spi.c (source code)</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#define USE_SPI1</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#define USE_SPI2</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#define USE_SPI3</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"></span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"></span><span class="preprocessor">#include &quot;<a class="code" href="mylibs__defs_8h.html">mylibs_defs.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"></span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"></span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="comment"></span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"></span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"></span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="foldopen" id="foldopen00033" data-start="{" data-end="};">
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html"> 33</a></span><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span><span class="comment">// struct with settings for custom function</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>{</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> SPI_HandleTypeDef hspi;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> GPIO_TypeDef *CLK_GPIOx;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> uint32_t CLK_PIN;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> uint32_t CLK_GPIO_AlternageFunc;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> GPIO_TypeDef *MISO_GPIOx;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> uint32_t MISO_PIN;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> uint32_t MISO_GPIO_AlternageFunc;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> GPIO_TypeDef *MOSI_GPIOx;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> uint32_t MOSI_PIN; </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> uint32_t MOSI_GPIO_AlternageFunc;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span>}<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a>;<span class="comment"></span></div>
</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment"></span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment"></span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment"></span><span class="comment">/** </span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"> * @brief Initialize SPI with SPI_SettingsTypeDef structure.</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"> * @param sspi - указатель на структуру с настройками SPI.</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment"> * @note Данная структура содержит хендл ЮАРТ и настройки перефирии (GPIO)</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> */</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>HAL_StatusTypeDef SPI_Base_Init(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi);<span class="comment"></span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment">/** </span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> * @brief Initialize GPIO for SPI.</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"> * @param GPIOx - порт для настройки.</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"> * @param GPIO_PIN_RX - пин для настройки на прием.</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"> * @param GPIO_PIN_TX - пин для настройки на передачу.</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"> */</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="keywordtype">void</span> SPI_GPIO_Init(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi);<span class="comment"></span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment">/** </span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment"> * @brief Initialize DMA for SPI.</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * @param hspi - указатель на хендл SPI для настройки DMA.</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> * @param hdma_rx - указатель на хендл DMA для линии приема SPI.</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment"> * @param DMAChannel - указатель на канал DMA/поток DMA в STM32F407.</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment"> * @param DMA_CHANNEL_X - канал DMA.</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"> */</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="keywordtype">void</span> SPI_DMA_Init(SPI_HandleTypeDef *hspi, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X);<span class="comment"></span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment">/** </span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> * @brief Initialize SPI &amp; DMA clock and interrupt.</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> * @param hspi - указатель на хендл SPI для инициализации.</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment"> * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых SPI,</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment"> дефайнами определяются используемые SPI.</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment"> */</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="keywordtype">void</span> SPI_MspInit(SPI_HandleTypeDef *hspi);<span class="comment"></span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment">/** </span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="comment"> * @brief Deinitialize SPI &amp; DMA clock and interrupt.</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment"> * @param hspi - указатель на хендл SPI для деинициализации.</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment"> * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых SPI,</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> дефайнами в rs_message.h определяются используемые SPI.</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> */</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="keywordtype">void</span> SPI_MspDeInit(SPI_HandleTypeDef *hspi);</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment"></span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment">/** </span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * @brief Check that spi init structure have correct values.</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> * @param sspi - указатель на структуру с настройками SPI.</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"> */</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>HAL_StatusTypeDef Check_SPI_Init_Struct(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi);<span class="comment"></span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"></span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="preprocessor">#endif </span><span class="comment">// __SPI_GENERAL_H_</span></div>
<div class="ttc" id="amylibs__defs_8h_html"><div class="ttname"><a href="mylibs__defs_8h.html">mylibs_defs.h</a></div><div class="ttdoc">Заголочный файл для дефайнов библиотеки MyLibsGeneral.</div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a></div><div class="ttdef"><b>Definition</b> <a href="#l00033">__general_spi.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a class="el" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html">Inc</a></li><li class="navelem"><b>__general_spi.h</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,505 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_uart.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('____general__uart_8c_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">__general_uart.c</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** </span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> **************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> * @file general_uart.c</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * @brief Модуль для инициализации UART.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> **************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * //-------------------Функции-------------------//</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * @verbatim</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * Functions: users</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> * - UART_Base_Init Инициализация UART </span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> * </span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * Functions: uart initialize</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * - UART_GPIO_Init Инициализация GPIO для UART</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * - UART_DMA_Init Инициализация DMA для UART</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> * - UART_MspInit Аналог HAL_MspInit для UART</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * - UART_MspDeInit Аналог HAL_MspDeInit для UART</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * @endverbatim</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">***************************************************************************/</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;general_uart.h&quot;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="general__gpio_8h.html">general_gpio.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">//------------------------UART INIT FUNCTIONS------------------------</span><span class="comment"></span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">/** </span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * @brief Initialize UART with UART_SettingsTypeDef structure.</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * @param suart - указатель на структуру с настройками UART.</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * @note Данная структура содержит хендл ЮАРТ и настройки перефирии (GPIO)</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> */</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>HAL_StatusTypeDef UART_Base_Init(<a class="code hl_struct" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart)</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>{ <span class="comment">// function takes setting structure for init</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// check is settings are valid</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span>(Check_UART_Init_Struct(suart) != HAL_OK)</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> suart-&gt;huart.Init.Mode = UART_MODE_TX_RX;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> UART_MspInit(&amp;suart-&gt;huart);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">if</span> (HAL_UART_Init(&amp;suart-&gt;huart) != HAL_OK)</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_define" href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f">MyLibs_Error_Handler</a>();</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> }</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// init gpio from UARTSettings structure</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> UART_GPIO_Init(suart-&gt;GPIOx, suart-&gt;GPIO_PIN_RX, suart-&gt;GPIO_PIN_TX);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> __HAL_UART_ENABLE_IT(&amp;suart-&gt;huart, UART_IT_IDLE);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// init dma from UARTSettings structure if need</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">if</span> (suart-&gt;DMAChannel != 0)</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> UART_DMA_Init(&amp;suart-&gt;huart, suart-&gt;huart.hdmarx, suart-&gt;DMAChannel, suart-&gt;DMA_CHANNEL_X);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment"></span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment">/** </span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> * @brief Initialize GPIO for UART.</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> * @param GPIOx - порт для настройки.</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> * @param GPIO_PIN_RX - пин для настройки на прием.</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"> * @param GPIO_PIN_TX - пин для настройки на передачу.</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"> */</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="keywordtype">void</span> UART_GPIO_Init(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_RX, uint16_t GPIO_PIN_TX)</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>{ <span class="comment">// function takes port and pins (for rx and tx)</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> GPIO_InitTypeDef GPIO_InitStruct = {0};</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// choose port for enable clock</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a>(GPIOx);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="comment">//USART3 GPIO Configuration</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="comment">//GPIO_PIN_TX ------&gt; USART_TX</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">//GPIO_PIN_RX ------&gt; USART_RX </span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor">#if defined(STM32F407xx) </span><span class="comment">// gpio init for 407</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> GPIO_InitStruct.Pin = GPIO_PIN_TX|GPIO_PIN_RX;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> GPIO_InitStruct.Pull = GPIO_NOPULL;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> GPIO_InitStruct.Alternate = GPIO_AF7_USART3;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> HAL_GPIO_Init(GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="preprocessor">#elif defined(STM32F103xG) </span><span class="comment">// gpio init for atm403/stm103</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="comment">//GPIO_PIN_TX ------&gt; USART_TX</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> GPIO_InitStruct.Pin = GPIO_PIN_TX;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> HAL_GPIO_Init(GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment">// GPIO_PIN_RX ------&gt; USART_RX </span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> GPIO_InitStruct.Pin = GPIO_PIN_RX;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> GPIO_InitStruct.Mode = GPIO_MODE_INPUT;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> GPIO_InitStruct.Pull = GPIO_NOPULL;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> HAL_GPIO_Init(GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>}</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"></span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment">/** </span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> * @brief Initialize DMA for UART.</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> * @param huart - указатель на хендл UART для настройки DMA.</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment"> * @param hdma_rx - указатель на хендл DMA для линии приема UART.</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="comment"> * @param DMAChannel - указатель на канал DMA/поток DMA в STM32F407.</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment"> * @param DMA_CHANNEL_X - канал DMA.</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment"> */</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="keywordtype">void</span> UART_DMA_Init(UART_HandleTypeDef *huart, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X)</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>{ <span class="comment">// function takes uart and dma handlers and dmachannel for uart</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// for now only dma rx is supported, tx maybe later if needed</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// calc defines on boot_project_setup.h</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="comment">/* USART3 DMA Init */</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="comment">/* USART3_RX Init */</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> hdma_rx-&gt;Instance = DMAChannel;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor">#if defined(STM32F407xx) </span><span class="comment">// dma channel choose for 407</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> hdma_rx-&gt;Init.Channel = DMA_CHANNEL_X;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> hdma_rx-&gt;Init.Direction = DMA_PERIPH_TO_MEMORY;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> hdma_rx-&gt;Init.PeriphInc = DMA_PINC_DISABLE;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> hdma_rx-&gt;Init.MemInc = DMA_MINC_ENABLE;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> hdma_rx-&gt;Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> hdma_rx-&gt;Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> hdma_rx-&gt;Init.Mode = DMA_CIRCULAR;</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> hdma_rx-&gt;Init.Priority = DMA_PRIORITY_LOW;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">if</span> (HAL_DMA_Init(hdma_rx) != HAL_OK)</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> {</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_define" href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f">MyLibs_Error_Handler</a>();</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> }</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> __USER_LINKDMA(huart,hdmarx,hdma_rx); </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// __USER_LINKDMA is need because __HAL_LINKDMA is written for global defined hdma_rx</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// so you get error because hal uses . insted of -&gt;</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span>}</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="comment"></span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment">/** </span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="comment"> * @brief Initialize UART &amp; DMA clock and interrupt.</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="comment"> * @param huart - указатель на хендл UART для инициализации.</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment"> * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых UART,</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"> дефайнами в rs_message.h определяются используемые UART.</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> */</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="keywordtype">void</span> UART_MspInit(UART_HandleTypeDef *huart) <span class="comment">// analog for hal function</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>{ </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment">// __RCC_DMA_UART_CLK_ENABLE();</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment">// /* DMA1_Stream1_IRQn interrupt configuration */</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="comment">// HAL_NVIC_SetPriority(DMA_UART_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA_UART_IRQn);</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="comment">// rcc, dma and interrupt init for USARTs</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="comment">// GPIO init was moved to own functions UART_GPIO_Init </span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">if</span>(0);</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="preprocessor">#ifdef USE_USART1</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART1)</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="comment">/* DMA2 clock enable */</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> __HAL_RCC_DMA2_CLK_ENABLE();</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> </div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="comment">/* USART1 clock enable */</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> __HAL_RCC_USART1_CLK_ENABLE();</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="comment">/* USART1 interrupt Init */</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> HAL_NVIC_EnableIRQ(USART1_IRQn);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> }</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART1</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="preprocessor">#ifdef USE_USART2</span></div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART2)</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> {</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="comment">/* DMA1 clock enable */</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> </div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="comment">/* USART2 clock enable */</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> __HAL_RCC_USART2_CLK_ENABLE();</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="comment">/* USART2 interrupt Init */</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> HAL_NVIC_EnableIRQ(USART2_IRQn);</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> }</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART2</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="preprocessor">#ifdef USE_USART3</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART3)</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> { </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="comment">/* DMA1 clock enable */</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="comment">/* USART3 clock enable */</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> __HAL_RCC_USART3_CLK_ENABLE(); </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="comment">/* USART3 interrupt Init */</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> HAL_NVIC_EnableIRQ(USART3_IRQn);</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> }</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART3</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span><span class="preprocessor">#ifdef USE_UART4</span></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==UART4)</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> {</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="comment">/* DMA1 clock enable */</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="comment">/* UART4 clock enable */</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> __HAL_RCC_UART4_CLK_ENABLE();</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="comment">/* UART4 interrupt Init */</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> HAL_NVIC_SetPriority(UART4_IRQn, 0, 0);</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> HAL_NVIC_EnableIRQ(UART4_IRQn);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> }</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="preprocessor">#endif </span><span class="comment">// USE_UART4</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="preprocessor">#ifdef USE_UART5</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==UART5)</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> {</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="comment">/* DMA1 clock enable */</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="comment">/* UART5 clock enable */</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="comment">/* UART5 interrupt Init */</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> HAL_NVIC_SetPriority(UART5_IRQn, 0, 0);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> HAL_NVIC_EnableIRQ(UART5_IRQn);</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> }</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="preprocessor">#endif </span><span class="comment">// USE_UART5</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="preprocessor">#ifdef USE_USART6</span></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART6)</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> {</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="comment">/* DMA2 clock enable */</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> __HAL_RCC_DMA2_CLK_ENABLE();</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="comment">/* USART6 clock enable */</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> __HAL_RCC_USART6_CLK_ENABLE();</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="comment">/* USART6 interrupt Init */</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> HAL_NVIC_SetPriority(USART6_IRQn, 0, 0);</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> HAL_NVIC_EnableIRQ(USART6_IRQn);</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> }</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART6</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span>}</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="comment"></span> </div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="comment">/** </span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="comment"> * @brief Deinitialize UART &amp; DMA clock and interrupt.</span></div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="comment"> * @param huart - указатель на хендл UART для деинициализации.</span></div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="comment"> * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых UART,</span></div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span><span class="comment"> дефайнами определяются используемые UART.</span></div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="comment"> */</span></div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="keywordtype">void</span> UART_MspDeInit(UART_HandleTypeDef *huart) <span class="comment">// analog for hal function</span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span>{ </div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="comment">// rcc, dma and interrupt init for USARTs</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="comment">// GPIO init was moved to own functions UART_GPIO_Init </span></div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">if</span>(0);</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="preprocessor">#ifdef USE_USART1</span></div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART1)</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> {</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="comment">// /* DMA2 clock enable */</span></div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><span class="comment">// __HAL_RCC_DMA2_CLK_ENABLE();</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="comment">// HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);</span></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> </div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="comment">/* USART1 clock reset */</span></div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> __HAL_RCC_USART1_FORCE_RESET();</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> __HAL_RCC_USART1_RELEASE_RESET();</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> }</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART1</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="preprocessor">#ifdef USE_USART2</span></div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART2)</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> {</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);</span></div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> </div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="comment">/* USART2 clock reset */</span></div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> __HAL_RCC_USART2_FORCE_RESET();</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> __HAL_RCC_USART2_RELEASE_RESET();</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> }</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART2</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="preprocessor">#ifdef USE_USART3</span></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART3)</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> { </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);</span></div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> </div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="comment">/* USART3 clock reset */</span></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> __HAL_RCC_USART3_FORCE_RESET();</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> __HAL_RCC_USART3_RELEASE_RESET();</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> }</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART3</span></div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span><span class="preprocessor">#ifdef USE_UART4</span></div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==UART4)</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> {</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);</span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> </div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="comment">/* UART4 clock reset */</span></div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> __HAL_RCC_UART4_FORCE_RESET();</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> __HAL_RCC_UART4_RELEASE_RESET();</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> }</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span><span class="preprocessor">#endif </span><span class="comment">// USE_UART4</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span><span class="preprocessor">#ifdef USE_UART5</span></div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==UART5)</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> {</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> </div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <span class="comment">/* UART5 clock reset */</span></div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> __HAL_RCC_UART5_FORCE_RESET();</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> __HAL_RCC_UART5_RELEASE_RESET();</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> }</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span><span class="preprocessor">#endif </span><span class="comment">// USE_UART5</span></div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span><span class="preprocessor">#ifdef USE_USART6</span></div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART6)</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> {</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span><span class="comment">// /* DMA2 clock enable */</span></div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span><span class="comment">// __HAL_RCC_DMA2_CLK_ENABLE();</span></div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span><span class="comment">// HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);</span></div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> </div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> <span class="comment">/* USART6 clock reset */</span></div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> __HAL_RCC_USART6_FORCE_RESET();</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> __HAL_RCC_USART6_RELEASE_RESET();</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> }</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART6</span></div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span>}</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span><span class="comment"></span> </div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span><span class="comment">/** </span></div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span><span class="comment"> * @brief Check that uart init structure have correct values.</span></div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span><span class="comment"> * @param suart - указатель на структуру с настройками UART.</span></div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span><span class="comment"> */</span></div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span>HAL_StatusTypeDef Check_UART_Init_Struct(<a class="code hl_struct" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart)</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span>{</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> <span class="comment">// check is settings are valid</span></div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keywordflow">if</span> (!IS_UART_INSTANCE(suart-&gt;huart.Instance))</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="keywordflow">if</span> (!IS_UART_BAUDRATE(suart-&gt;huart.Init.BaudRate) || (suart-&gt;huart.Init.BaudRate == NULL))</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <span class="keywordflow">if</span> (!IS_GPIO_ALL_INSTANCE(suart-&gt;GPIOx))</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> <span class="keywordflow">if</span> (!IS_GPIO_PIN(suart-&gt;GPIO_PIN_RX) &amp;&amp; !IS_GPIO_PIN(suart-&gt;GPIO_PIN_TX)) <span class="comment">// if both pins arent set up</span></div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> </div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span>}</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> </div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span><span class="comment">//------------------------UART INIT FUNCTIONS------------------------</span></div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="ttc" id="ageneral__gpio_8h_html"><div class="ttname"><a href="general__gpio_8h.html">general_gpio.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации портов и работы с ними.</div></div>
<div class="ttc" id="agroup___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_html_gae110df81afd885a390bbeb152d7b709f"><div class="ttname"><a href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f">MyLibs_Error_Handler</a></div><div class="ttdeci">#define MyLibs_Error_Handler(params)</div><div class="ttdoc">Error_Handler который будет вызыватся в библиотеке</div><div class="ttdef"><b>Definition</b> <a href="mylibs__defs_8h_source.html#l00031">mylibs_defs.h:31</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_html_ga962f010f783b81fcdd27eb6b53db28e6"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)</div><div class="ttdoc">Включить тактирование порта GPIO.</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00022">general_gpio.c:22</a></div></div>
<div class="ttc" id="astruct_u_a_r_t___settings_type_def_html"><div class="ttname"><a href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a></div><div class="ttdef"><b>Definition</b> <a href="____general__uart_8h_source.html#l00045">__general_uart.h:46</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a class="el" href="dir_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></li><li class="navelem"><b>__general_uart.c</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,233 +0,0 @@
<!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.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_uart.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('____general__uart_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">__general_uart.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** </span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">**************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file general_uart.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Заголовочный файл для модуля инициализации UART.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#ifndef __UART_GENERAL_H_</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#define __UART_GENERAL_H_</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"></span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">//////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"></span><span class="preprocessor">#define HAL_UART_MODULE_ENABLED </span><span class="comment">// need to uncomment these defines in stm32f4xx_hal_conf.h</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">//#define HAL_USART_MODULE_ENABLED // maybe also need to add hal_uart.h/.c (source code)</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">//#define USE_USART1</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">//#define USE_USART2</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">//#define USE_USART3</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">//#define USE_UART4</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">//#define USE_UART5</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">//#define USE_USART6</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">/* note: used uart defines in modbus.h */</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"></span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"></span><span class="preprocessor">#include &quot;interface_config.h&quot;</span> <span class="comment">/* used uart defines in modbus.h */</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"></span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"></span><span class="preprocessor">#include &quot;<a class="code" href="mylibs__defs_8h.html">mylibs_defs.h</a>&quot;</span><span class="comment"></span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">/** </span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> * @brief Analog for HAL define. Remade with pointer to structure.</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"> * @note @ref __HAL_LINKDMA.</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment"> */</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#define __USER_LINKDMA(__HANDLE__, __PPP_DMA_FIELD__, __DMA_HANDLE__) \</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">do{ \</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">(__HANDLE__)-&gt;__PPP_DMA_FIELD__ = (__DMA_HANDLE__); \</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">(__DMA_HANDLE__)-&gt;Parent = (__HANDLE__);} while(0U)</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="comment"></span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment"></span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"></span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="foldopen" id="foldopen00045" data-start="{" data-end="};">
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html"> 45</a></span><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span><span class="comment">// struct with settings for custom function</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>{</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> UART_HandleTypeDef huart;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> GPIO_TypeDef *GPIOx;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> uint16_t GPIO_PIN_RX;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> uint16_t GPIO_PIN_TX;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> DMA_Stream_TypeDef *DMAChannel; <span class="comment">// DMAChannel = 0 if doesnt need</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> uint32_t DMA_CHANNEL_X; <span class="comment">// DMAChannel = 0 if doesnt need</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}<a class="code hl_struct" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a>;<span class="comment"></span></div>
</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment"></span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"></span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"></span><span class="comment">/** </span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"> * @brief Initialize UART with UART_SettingsTypeDef structure.</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"> * @param suart - указатель на структуру с настройками UART.</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"> * @note Данная структура содержит хендл ЮАРТ и настройки перефирии (GPIO)</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment"> */</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span>HAL_StatusTypeDef UART_Base_Init(<a class="code hl_struct" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart);<span class="comment"></span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment">/** </span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * @brief Initialize GPIO for UART.</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> * @param GPIOx - порт для настройки.</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment"> * @param GPIO_PIN_RX - пин для настройки на прием.</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment"> * @param GPIO_PIN_TX - пин для настройки на передачу.</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"> */</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="keywordtype">void</span> UART_GPIO_Init(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_RX, uint16_t GPIO_PIN_TX);<span class="comment"></span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment">/** </span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> * @brief Initialize DMA for UART.</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> * @param huart - указатель на хендл UART для настройки DMA.</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment"> * @param hdma_rx - указатель на хендл DMA для линии приема UART.</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment"> * @param DMAChannel - указатель на канал DMA/поток DMA в STM32F407.</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment"> * @param DMA_CHANNEL_X - канал DMA.</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment"> */</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="keywordtype">void</span> UART_DMA_Init(UART_HandleTypeDef *huart, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X);<span class="comment"></span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="comment">/** </span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment"> * @brief Initialize UART &amp; DMA clock and interrupt.</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment"> * @param huart - указатель на хендл UART для инициализации.</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых UART,</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> дефайнами определяются используемые UART.</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"> */</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="keywordtype">void</span> UART_MspInit(UART_HandleTypeDef *huart);<span class="comment"></span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment">/** </span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * @brief Deinitialize UART &amp; DMA clock and interrupt.</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> * @param huart - указатель на хендл UART для деинициализации.</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых UART,</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"> дефайнами в rs_message.h определяются используемые UART.</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment"> */</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="keywordtype">void</span> UART_MspDeInit(UART_HandleTypeDef *huart);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"></span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment">/** </span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> * @brief Check that uart init structure have correct values.</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment"> * @param suart - указатель на структуру с настройками UART.</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment"> */</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>HAL_StatusTypeDef Check_UART_Init_Struct(<a class="code hl_struct" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart);<span class="comment"></span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"></span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor">#endif </span><span class="comment">// __UART_GENERAL_H_</span></div>
<div class="ttc" id="amylibs__defs_8h_html"><div class="ttname"><a href="mylibs__defs_8h.html">mylibs_defs.h</a></div><div class="ttdoc">Заголочный файл для дефайнов библиотеки MyLibsGeneral.</div></div>
<div class="ttc" id="astruct_u_a_r_t___settings_type_def_html"><div class="ttname"><a href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a></div><div class="ttdef"><b>Definition</b> <a href="#l00045">__general_uart.h:46</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a class="el" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html">Inc</a></li><li class="navelem"><b>__general_uart.h</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,165 +0,0 @@
<!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.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: SPI_Usage_Example</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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_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">
$(function(){initNavTree('_s_p_i__usage__example-example.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">SPI_Usage_Example</div></div>
</div><!--header-->
<div class="contents">
<p>Пример использования SPI_Base_Init.</p>
<p>Пример использования SPI_Base_Init. Инициализация SPI1 с базовыми настройками: </p><div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="general__spi_8h.html">general_spi.h</a>&quot;</span></div>
<div class="line"> </div>
<div class="line"><a id="_a0" name="_a0"></a><a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> mySPI;</div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">void</span> SPI1_Init(<span class="keywordtype">void</span>)</div>
<div class="line">{</div>
<div class="line"> <span class="comment">// Настройка SPI1</span></div>
<div class="line"> mySPI.<a id="a1" name="a1"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Instance = SPI1;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.Mode = SPI_MODE_MASTER;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.Direction = SPI_DIRECTION_2LINES;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.DataSize = SPI_DATASIZE_8BIT;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.CLKPolarity = SPI_POLARITY_LOW;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.CLKPhase = SPI_PHASE_1EDGE;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.NSS = SPI_NSS_SOFT;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.FirstBit = SPI_FIRSTBIT_MSB;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.TIMode = SPI_TIMODE_DISABLE;</div>
<div class="line"> mySPI.<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Настройка GPIO для SPI</span></div>
<div class="line"> mySPI.<a id="a2" name="a2"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">CLK_GPIOx</a> = GPIOA;</div>
<div class="line"> mySPI.<a id="a3" name="a3"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">CLK_PIN</a> = GPIO_PIN_5;</div>
<div class="line"> mySPI.<a id="a4" name="a4"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">CLK_GPIO_AlternageFunc</a> = GPIO_AF5_SPI1;</div>
<div class="line"> </div>
<div class="line"> mySPI.<a id="a5" name="a5"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">MISO_GPIOx</a> = GPIOA;</div>
<div class="line"> mySPI.<a id="a6" name="a6"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">MISO_PIN</a> = GPIO_PIN_6;</div>
<div class="line"> mySPI.<a id="a7" name="a7"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">MISO_GPIO_AlternageFunc</a> = GPIO_AF5_SPI1;</div>
<div class="line"> </div>
<div class="line"> mySPI.<a id="a8" name="a8"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">MOSI_GPIOx</a> = GPIOA;</div>
<div class="line"> mySPI.<a id="a9" name="a9"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">MOSI_PIN</a> = GPIO_PIN_7;</div>
<div class="line"> mySPI.<a id="a10" name="a10"></a><a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">MOSI_GPIO_AlternageFunc</a> = GPIO_AF5_SPI1;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">// Инициализация SPI</span></div>
<div class="line"> <span class="keywordflow">if</span>(<a id="a11" name="a11"></a><a class="code hl_function" href="group___m_y___l_i_b_s___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">SPI_Base_Init</a>(&amp;mySPI) != HAL_OK)</div>
<div class="line"> {</div>
<div class="line"> <span class="comment">// Обработка ошибки</span></div>
<div class="line"> }</div>
<div class="line">}</div>
<div class="ttc" id="ageneral__spi_8h_html"><div class="ttname"><a href="general__spi_8h.html">general_spi.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации SPI.</div></div>
<div class="ttc" id="agroup___m_y___l_i_b_s___s_p_i_html_ga0e177e3c57a8fcdc73b5602e72ec66ba"><div class="ttname"><a href="group___m_y___l_i_b_s___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">SPI_Base_Init</a></div><div class="ttdeci">HAL_StatusTypeDef SPI_Base_Init(SPI_SettingsTypeDef *sspi)</div><div class="ttdoc">Инициализация SPI с помощью структуры SPI_SettingsTypeDef.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8c_source.html#l00023">general_spi.c:23</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a></div><div class="ttdoc">Структура настроек SPI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00106">general_spi.h:107</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a0af3bdb273818ff97eb4ff3cff918820"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">SPI_SettingsTypeDef::MOSI_GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * MOSI_GPIOx</div><div class="ttdoc">Порт MOSI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00118">general_spi.h:118</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a0d55a2941854f61934487f3d209cfa95"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">SPI_SettingsTypeDef::MISO_GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * MISO_GPIOx</div><div class="ttdoc">Порт MISO.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00114">general_spi.h:114</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3366c654d7ec6dd41c6a0b504dc8509a"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">SPI_SettingsTypeDef::MISO_PIN</a></div><div class="ttdeci">uint32_t MISO_PIN</div><div class="ttdoc">Пин MISO.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00115">general_spi.h:115</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3bcb1ed12da3544e02e6d36493669bdc"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">SPI_SettingsTypeDef::CLK_PIN</a></div><div class="ttdeci">uint32_t CLK_PIN</div><div class="ttdoc">Пин CLK.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00111">general_spi.h:111</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3f3748103a0b7861f6700042fd691ba1"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">SPI_SettingsTypeDef::CLK_GPIO_AlternageFunc</a></div><div class="ttdeci">uint32_t CLK_GPIO_AlternageFunc</div><div class="ttdoc">Альтернативная функция для CLK.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00112">general_spi.h:112</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a6a15d48eccf92959de3a086031fdc979"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">SPI_SettingsTypeDef::CLK_GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * CLK_GPIOx</div><div class="ttdoc">Порт CLK.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00110">general_spi.h:110</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a961208869faf4a7369aaf4edde75f176"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">SPI_SettingsTypeDef::MOSI_PIN</a></div><div class="ttdeci">uint32_t MOSI_PIN</div><div class="ttdoc">Пин MOSI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00119">general_spi.h:119</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_ad203d8b8d67e4f477d002d15b03ba422"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">SPI_SettingsTypeDef::hspi</a></div><div class="ttdeci">SPI_HandleTypeDef hspi</div><div class="ttdoc">HAL handle SPI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00108">general_spi.h:108</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_aecd7a5c6e205335b8ed229d74cd35d14"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">SPI_SettingsTypeDef::MISO_GPIO_AlternageFunc</a></div><div class="ttdeci">uint32_t MISO_GPIO_AlternageFunc</div><div class="ttdoc">Альтернативная функция для MISO.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00116">general_spi.h:116</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_afbe75a1c36650a4a9b41fa706a4c7eab"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">SPI_SettingsTypeDef::MOSI_GPIO_AlternageFunc</a></div><div class="ttdeci">uint32_t MOSI_GPIO_AlternageFunc</div><div class="ttdoc">Альтернативная функция для MOSI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00120">general_spi.h:120</a></div></div>
</div><!-- fragment --><div class="fragment"></div><!-- fragment --> </div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -102,19 +102,22 @@ $(function(){initNavTree('annotated.html','',''); });
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_evolve_optimizer__t.html" target="_self">EvolveOptimizer_t</a></td><td class="desc">Структура эволюционного оптимизатора </td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_p_i_o___l_e_d_type_def.html" target="_self">GPIO_LEDTypeDef</a></td><td class="desc">Структура светодиода </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_p_i_o___switch_type_def.html" target="_self">GPIO_SwitchTypeDef</a></td><td class="desc">Структура кнопки </td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_h_f___stack_frame__t.html" target="_self">HF_StackFrame_t</a></td><td class="desc">Контекст стек-фрейма процессора при HardFault </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_r_t_t___flash_header__t.html" target="_self">RTT_FlashHeader_t</a></td><td class="desc">Структура RTT, которая будет положена в Flash </td></tr>
<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_s_p_i___settings_type_def.html" target="_self">SPI_SettingsTypeDef</a></td><td class="desc">Структура настроек SPI </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_t_i_m___encoder_type_def.html" target="_self">TIM_EncoderTypeDef</a></td><td class="desc">Структура инициализации енкодера </td></tr>
<tr id="row_7_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_t_i_m___settings_type_def.html" target="_self">TIM_SettingsTypeDef</a></td><td class="desc">Структура инициализации таймера </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_u_a_r_t___settings_type_def.html" target="_self">UART_SettingsTypeDef</a></td><td class="desc">Структура настроек UART </td></tr>
<tr id="row_9_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionuint16___bit_type_def.html" target="_self">uint16_BitTypeDef</a></td><td class="desc"></td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionuint32___bit_type_def.html" target="_self">uint32_BitTypeDef</a></td><td class="desc"></td></tr>
<tr id="row_11_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionuint64___bit_type_def.html" target="_self">uint64_BitTypeDef</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionuint8___bit_type_def.html" target="_self">uint8_BitTypeDef</a></td><td class="desc"></td></tr>
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bench_time__t.html" target="_self">BenchTime_t</a></td><td class="desc">Основная структура менеджера измерений </td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bench_time_channel__t.html" target="_self">BenchTimeChannel_t</a></td><td class="desc">Структура канала измерения </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bench_time_stats__t.html" target="_self">BenchTimeStats_t</a></td><td class="desc">Структура статистики измерений </td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_gen_optimizer__t.html" target="_self">GenOptimizer_t</a></td><td class="desc">Структура эволюционного оптимизатора </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_p_i_o___l_e_d_type_def.html" target="_self">GPIO_LEDTypeDef</a></td><td class="desc">Структура светодиода </td></tr>
<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_p_i_o___switch_type_def.html" target="_self">GPIO_SwitchTypeDef</a></td><td class="desc">Структура кнопки </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_h_f___stack_frame__t.html" target="_self">HF_StackFrame_t</a></td><td class="desc">Контекст стек-фрейма процессора при HardFault </td></tr>
<tr id="row_7_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_r_t_t___flash_header__t.html" target="_self">RTT_FlashHeader_t</a></td><td class="desc">Структура RTT, которая будет положена в Flash </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_s_p_i___settings_type_def.html" target="_self">SPI_SettingsTypeDef</a></td><td class="desc">Структура настроек SPI </td></tr>
<tr id="row_9_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_t_i_m___encoder_type_def.html" target="_self">TIM_EncoderTypeDef</a></td><td class="desc">Структура инициализации енкодера </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_t_i_m___settings_type_def.html" target="_self">TIM_SettingsTypeDef</a></td><td class="desc">Структура инициализации таймера </td></tr>
<tr id="row_11_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_u_a_r_t___settings_type_def.html" target="_self">UART_SettingsTypeDef</a></td><td class="desc">Структура настроек UART </td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionuint16___bit_type_def.html" target="_self">uint16_BitTypeDef</a></td><td class="desc"></td></tr>
<tr id="row_13_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionuint32___bit_type_def.html" target="_self">uint32_BitTypeDef</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionuint64___bit_type_def.html" target="_self">uint64_BitTypeDef</a></td><td class="desc"></td></tr>
<tr id="row_15_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionuint8___bit_type_def.html" target="_self">uint8_BitTypeDef</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->

View File

@ -1,6 +1,9 @@
var annotated_dup =
[
[ "EvolveOptimizer_t", "struct_evolve_optimizer__t.html", "struct_evolve_optimizer__t" ],
[ "BenchTime_t", "struct_bench_time__t.html", "struct_bench_time__t" ],
[ "BenchTimeChannel_t", "struct_bench_time_channel__t.html", "struct_bench_time_channel__t" ],
[ "BenchTimeStats_t", "struct_bench_time_stats__t.html", "struct_bench_time_stats__t" ],
[ "GenOptimizer_t", "struct_gen_optimizer__t.html", "struct_gen_optimizer__t" ],
[ "GPIO_LEDTypeDef", "struct_g_p_i_o___l_e_d_type_def.html", "struct_g_p_i_o___l_e_d_type_def" ],
[ "GPIO_SwitchTypeDef", "struct_g_p_i_o___switch_type_def.html", "struct_g_p_i_o___switch_type_def" ],
[ "HF_StackFrame_t", "struct_h_f___stack_frame__t.html", "struct_h_f___stack_frame__t" ],

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 635 B

View File

@ -0,0 +1,185 @@
<!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.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bench_time.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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_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">
$(function(){initNavTree('bench__time_8h.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">bench_time.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Заголовочный файл для измерения времени между событиями
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="mylibs__defs_8h_source.html">mylibs_defs.h</a>&quot;</code><br />
<code>#include &lt;stdint.h&gt;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for bench_time.h:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="bench__time_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2bench__time_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2bench__time_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2bench__time_8h">
<area shape="rect" title="Заголовочный файл для измерения времени между событиями" alt="" coords="29,5,206,64"/>
<area shape="rect" href="mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="13,112,115,139"/>
<area shape="poly" title=" " alt="" coords="102,66,82,100,77,97,98,63"/>
<area shape="rect" title=" " alt="" coords="140,112,204,139"/>
<area shape="poly" title=" " alt="" coords="137,63,159,97,154,100,133,66"/>
<area shape="rect" href="mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="8,187,120,213"/>
<area shape="poly" title=" " alt="" coords="67,139,67,171,61,171,61,139"/>
<area shape="rect" title=" " alt="" coords="5,261,123,288"/>
<area shape="poly" title=" " alt="" coords="67,214,67,246,61,246,61,214"/>
</map>
</div>
</div>
<p><a href="bench__time_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:BenchTimeStats_5Ft" id="r_BenchTimeStats_5Ft"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_bench_time_stats__t.html">BenchTimeStats_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура статистики измерений <a href="struct_bench_time_stats__t.html#details">More...</a><br /></td></tr>
<tr class="memitem:BenchTimeChannel_5Ft" id="r_BenchTimeChannel_5Ft"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_bench_time_channel__t.html">BenchTimeChannel_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура канала измерения <a href="struct_bench_time_channel__t.html#details">More...</a><br /></td></tr>
<tr class="memitem:BenchTime_5Ft" id="r_BenchTime_5Ft"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_bench_time__t.html">BenchTime_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Основная структура менеджера измерений <a href="struct_bench_time__t.html#details">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gabb7a665a9603ea2e4dbc4432e8cb6054" id="r_gabb7a665a9603ea2e4dbc4432e8cb6054"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#gabb7a665a9603ea2e4dbc4432e8cb6054">BenchTime_Init</a> (void)</td></tr>
<tr class="memdesc:gabb7a665a9603ea2e4dbc4432e8cb6054"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация системы измерения времени <br /></td></tr>
<tr class="memitem:gac65338df38129964ce3e9d9cb2fcb349" id="r_gac65338df38129964ce3e9d9cb2fcb349"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#gac65338df38129964ce3e9d9cb2fcb349">BenchTime_Start</a> (uint8_t channel, uint32_t ticks, uint32_t tick_period)</td></tr>
<tr class="memdesc:gac65338df38129964ce3e9d9cb2fcb349"><td class="mdescLeft">&#160;</td><td class="mdescRight">Начало измерения на указанном канале <br /></td></tr>
<tr class="memitem:ga47a69851a2089140eac00cde18a12439" id="r_ga47a69851a2089140eac00cde18a12439"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#ga47a69851a2089140eac00cde18a12439">BenchTime_End</a> (uint8_t channel, uint32_t ticks)</td></tr>
<tr class="memdesc:ga47a69851a2089140eac00cde18a12439"><td class="mdescLeft">&#160;</td><td class="mdescRight">Окончание измерения на указанном канале <br /></td></tr>
<tr class="memitem:ga273d45255fe4403fc25648d60cca7705" id="r_ga273d45255fe4403fc25648d60cca7705"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#ga273d45255fe4403fc25648d60cca7705">BenchTime_GetMin</a> (uint8_t channel)</td></tr>
<tr class="memdesc:ga273d45255fe4403fc25648d60cca7705"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получение минимального времени измерения <br /></td></tr>
<tr class="memitem:ga07e27d7b169c9fa1abd57281bb4e374e" id="r_ga07e27d7b169c9fa1abd57281bb4e374e"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#ga07e27d7b169c9fa1abd57281bb4e374e">BenchTime_GetMax</a> (uint8_t channel)</td></tr>
<tr class="memdesc:ga07e27d7b169c9fa1abd57281bb4e374e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получение максимального времени измерения <br /></td></tr>
<tr class="memitem:ga24e2450d5ea921074ec5d7a1e4d56ba8" id="r_ga24e2450d5ea921074ec5d7a1e4d56ba8"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#ga24e2450d5ea921074ec5d7a1e4d56ba8">BenchTime_GetAverage</a> (uint8_t channel)</td></tr>
<tr class="memdesc:ga24e2450d5ea921074ec5d7a1e4d56ba8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получение среднего времени измерения <br /></td></tr>
<tr class="memitem:gabd1301ca79a30c782970f89fd147df3a" id="r_gabd1301ca79a30c782970f89fd147df3a"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#gabd1301ca79a30c782970f89fd147df3a">BenchTime_GetCount</a> (uint8_t channel)</td></tr>
<tr class="memdesc:gabd1301ca79a30c782970f89fd147df3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получение количества измерений <br /></td></tr>
<tr class="memitem:gacf3a738d6423d71b238058a63558a4ed" id="r_gacf3a738d6423d71b238058a63558a4ed"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#gacf3a738d6423d71b238058a63558a4ed">BenchTime_GetLast</a> (uint8_t channel)</td></tr>
<tr class="memdesc:gacf3a738d6423d71b238058a63558a4ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получение последнего измеренного времени <br /></td></tr>
<tr class="memitem:ga31a6b2b181b92bcb15f46758f5d57f35" id="r_ga31a6b2b181b92bcb15f46758f5d57f35"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#ga31a6b2b181b92bcb15f46758f5d57f35">BenchTime_ResetStats</a> (uint8_t channel)</td></tr>
<tr class="memdesc:ga31a6b2b181b92bcb15f46758f5d57f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сброс статистики для канала <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-var-members" class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ga8e53ef7f7df233bd4e737a87bb203d9d" id="r_ga8e53ef7f7df233bd4e737a87bb203d9d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="struct_bench_time__t.html">BenchTime_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a> = {0}</td></tr>
<tr class="memdesc:ga8e53ef7f7df233bd4e737a87bb203d9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Внутренний экземпляр <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Заголовочный файл для измерения времени между событиями </p>
<p class="definition">Definition in file <a class="el" href="bench__time_8h_source.html">bench_time.h</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_d4b2573a0c19afb61452cc3d00967af1.html">MyLibs</a></li><li class="navelem"><a href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a></li><li class="navelem"><a href="bench__time_8h.html">bench_time.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,13 @@
var bench__time_8h =
[
[ "BenchTime_Init", "group___b_e_n_c_h___t_i_m_e.html#gabb7a665a9603ea2e4dbc4432e8cb6054", null ],
[ "BenchTime_Start", "group___b_e_n_c_h___t_i_m_e.html#gac65338df38129964ce3e9d9cb2fcb349", null ],
[ "BenchTime_End", "group___b_e_n_c_h___t_i_m_e.html#ga47a69851a2089140eac00cde18a12439", null ],
[ "BenchTime_GetMin", "group___b_e_n_c_h___t_i_m_e.html#ga273d45255fe4403fc25648d60cca7705", null ],
[ "BenchTime_GetMax", "group___b_e_n_c_h___t_i_m_e.html#ga07e27d7b169c9fa1abd57281bb4e374e", null ],
[ "BenchTime_GetAverage", "group___b_e_n_c_h___t_i_m_e.html#ga24e2450d5ea921074ec5d7a1e4d56ba8", null ],
[ "BenchTime_GetCount", "group___b_e_n_c_h___t_i_m_e.html#gabd1301ca79a30c782970f89fd147df3a", null ],
[ "BenchTime_GetLast", "group___b_e_n_c_h___t_i_m_e.html#gacf3a738d6423d71b238058a63558a4ed", null ],
[ "BenchTime_ResetStats", "group___b_e_n_c_h___t_i_m_e.html#ga31a6b2b181b92bcb15f46758f5d57f35", null ],
[ "hbt", "group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d", null ]
];

View File

@ -0,0 +1,11 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bench_time.h" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bench_time.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для измерения времени между событиями" alt="" coords="29,5,206,64"/>
<area shape="rect" id="Node000002" href="$mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="13,112,115,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="102,66,82,100,77,97,98,63"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="140,112,204,139"/>
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="137,63,159,97,154,100,133,66"/>
<area shape="rect" id="Node000003" href="$mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="8,187,120,213"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="67,139,67,171,61,171,61,139"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="5,261,123,288"/>
<area shape="poly" id="edge3_Node000003_Node000004" title=" " alt="" coords="67,214,67,246,61,246,61,214"/>
</map>

View File

@ -0,0 +1 @@
e2f287c82f2aba927295813f84ac4e31

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1,421 @@
<!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.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bench_time.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_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">
$(function(){initNavTree('bench__time_8h_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">bench_time.h</div></div>
</div><!--header-->
<div class="contents">
<a href="bench__time_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/**</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file bench_time.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Заголовочный файл для измерения времени между событиями</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* @addtogroup BENCH_TIME Time measurement</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* @ingroup MYLIBS_DEFINES</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* @brief Библиотека для измерения времени/тиков между событиями</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* @details</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">Поддерживает:</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">- Многоканальные измерения (несколько независимых таймеров)</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment">- Платформонезависимый интерфейс</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">- Измерение в тиках или временных единицах</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">- Статистику измерений (мин/макс/среднее)</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">- Настраиваемый размер тиков для каждого канала</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"></span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">Параметры для конфигурации:</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">- @ref BENCH_TIME_ENABLE - Включить бенч времени</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">- @ref BENCH_TIME_MAX_CHANNELS - Максимальное количество каналов измерения (по умолчанию 8)</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"></span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">@par Пример использования:</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">@code</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">#include &quot;bench_time.h&quot;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"></span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">// Инициализация</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment">BenchTime_Init();</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"></span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">// Измерение с SysTick</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">BenchTime_Start(0, HAL_GetTick, 0xFFFFFFFF);</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">some_function();</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">uint32_t time = BenchTime_End(0, HAL_GetTick);</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"></span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment">// Измерение с TIM2 (16-бит)</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment">BenchTime_Start(1, TIM2-&gt;CNT, 0xFFFF);</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">fast_function(); </span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">uint32_t time2 = BenchTime_End(1, TIM2-&gt;CNT);</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"></span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment">// Измерение с DWT цикловым счетчиком</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment">BenchTime_Start(2, DWT-&gt;CYCCNT, 0xFFFFFFFF);</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment">critical_function();</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment">uint32_t cycles = BenchTime_End(2, DWT-&gt;CYCCNT);</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"></span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment">// Многоканальное измерение</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment">BenchTime_Start(0, HAL_GetTick, 1000); // общее время</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">BenchTime_Start(1, TIM3-&gt;CNT, 500); // часть 1</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment"></span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">// ... код 1</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment"></span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment">uint32_t part1 = BenchTime_End(1, TIM3-&gt;CNT);</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment">BenchTime_Start(2, TIM4-&gt;CNT, 200); // часть 2 </span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment"></span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">// ... код 2</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment"></span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">uint32_t part2 = BenchTime_End(2, TIM4-&gt;CNT);</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment">uint32_t total = BenchTime_End(0, HAL_GetTick); // общее время</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"></span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment">// Статистика</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment">uint32_t min_time = BenchTime_GetMin(0);</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment">uint32_t max_time = BenchTime_GetMax(0);</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment">uint32_t avg_time = BenchTime_GetAverage(0);</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment">uint32_t count = BenchTime_GetCount(0);</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment">@endcode</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">* @{ </span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment">*****************************************************************************/</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor">#ifndef __BENCH_TIME_H_</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor">#define __BENCH_TIME_H_</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="preprocessor">#include &quot;<a class="code" href="mylibs__defs_8h.html">mylibs_defs.h</a>&quot;</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor">#ifdef BENCH_TIME_ENABLE</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment">// Конфигурация библиотеки</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="preprocessor">#ifndef BENCH_TIME_MAX_CHANNELS</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="preprocessor">#define BENCH_TIME_MAX_CHANNELS 8 </span><span class="comment">///&lt; Максимальное количество каналов измерения</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"></span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment">/**</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> * @brief Структура статистики измерений</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00081" data-start="{" data-end="};">
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="struct_bench_time_stats__t.html"> 81</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="struct_bench_time_stats__t.html#a39b71a5d48c4a51a553a26a9fb961ac8"> 82</a></span> uint32_t <a class="code hl_variable" href="struct_bench_time_stats__t.html#a39b71a5d48c4a51a553a26a9fb961ac8">min_ticks</a>; <span class="comment">///&lt; Минимальное время в тиках</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="struct_bench_time_stats__t.html#a3da36eb65b03ba995b5905b4650ea93c"> 83</a></span> uint32_t <a class="code hl_variable" href="struct_bench_time_stats__t.html#a3da36eb65b03ba995b5905b4650ea93c">max_ticks</a>; <span class="comment">///&lt; Максимальное время в тиках </span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="struct_bench_time_stats__t.html#a21499b0b19d1ed27f8cea069f674e8ec"> 84</a></span> uint32_t <a class="code hl_variable" href="struct_bench_time_stats__t.html#a21499b0b19d1ed27f8cea069f674e8ec">total_ticks</a>; <span class="comment">///&lt; Суммарное время в тиках</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71"> 85</a></span> uint32_t <a class="code hl_variable" href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71">count</a>; <span class="comment">///&lt; Количество измерений</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="struct_bench_time_stats__t.html#a2c739e1db6b26ceac5db3f2c44c177a0"> 86</a></span> uint32_t <a class="code hl_variable" href="struct_bench_time_stats__t.html#a2c739e1db6b26ceac5db3f2c44c177a0">last_ticks</a>; <span class="comment">///&lt; Последнее измеренное время</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span>} <a class="code hl_struct" href="struct_bench_time_stats__t.html">BenchTimeStats_t</a>;</div>
</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"></span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment">/**</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"> * @brief Структура канала измерения</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00092" data-start="{" data-end="};">
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="struct_bench_time_channel__t.html"> 92</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="struct_bench_time_channel__t.html#a8140fe9e3d323404651f0cfeeae53928"> 93</a></span> uint32_t <a class="code hl_variable" href="struct_bench_time_channel__t.html#a8140fe9e3d323404651f0cfeeae53928">start_tick</a>; <span class="comment">///&lt; Время старта в тиках</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="struct_bench_time_channel__t.html#a095d93e0228641f58b8661e263bc1bcd"> 94</a></span> uint32_t <a class="code hl_variable" href="struct_bench_time_channel__t.html#a095d93e0228641f58b8661e263bc1bcd">tick_period</a>; <span class="comment">///&lt; Период тиков для переполнения</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="struct_bench_time_channel__t.html#a0f80bb194231df7921712d20bac603c9"> 95</a></span> uint32_t <a class="code hl_variable" href="struct_bench_time_channel__t.html#a0f80bb194231df7921712d20bac603c9">is_running</a>; <span class="comment">///&lt; Флаг активного измерения</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="struct_bench_time_channel__t.html#a22a3913e7925aa89cc12ec1d24a6c16c"> 96</a></span> <a class="code hl_struct" href="struct_bench_time_stats__t.html">BenchTimeStats_t</a> <a class="code hl_variable" href="struct_bench_time_channel__t.html#a22a3913e7925aa89cc12ec1d24a6c16c">stats</a>; <span class="comment">///&lt; Статистика измерений</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>} <a class="code hl_struct" href="struct_bench_time_channel__t.html">BenchTimeChannel_t</a>;</div>
</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"></span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment">/**</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> * @brief Основная структура менеджера измерений</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00102" data-start="{" data-end="};">
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="struct_bench_time__t.html"> 102</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="struct_bench_time__t.html#a9ae6d45c610be9d4b7628a614ccb06d6"> 103</a></span> <a class="code hl_struct" href="struct_bench_time_channel__t.html">BenchTimeChannel_t</a> <a class="code hl_variable" href="struct_bench_time__t.html#a9ae6d45c610be9d4b7628a614ccb06d6">channels</a>[<a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>]; <span class="comment">///&lt; Каналы измерения</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>} <a class="code hl_struct" href="struct_bench_time__t.html">BenchTime_t</a>;</div>
</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d"> 106</a></span><span class="keyword">static</span> <a class="code hl_struct" href="struct_bench_time__t.html">BenchTime_t</a> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a> = {0}; <span class="comment">///&lt; Внутренний экземпляр</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"></span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment">/**</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"> * @brief Инициализация системы измерения времени</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00111" data-start="{" data-end="}">
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#gabb7a665a9603ea2e4dbc4432e8cb6054"> 111</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group___b_e_n_c_h___t_i_m_e.html#gabb7a665a9603ea2e4dbc4432e8cb6054">BenchTime_Init</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>; i++) {</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[i].start_tick = 0;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[i].tick_period = 0xFFFFFFFF;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[i].is_running = 0;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[i].stats.min_ticks = 0xFFFFFFFF;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[i].stats.max_ticks = 0;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[i].stats.total_ticks = 0;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[i].stats.count = 0;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[i].stats.last_ticks = 0;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> }</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span>}</div>
</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment"></span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment">/**</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> * @brief Начало измерения на указанном канале</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> * @param channel Номер канала (0..BENCH_TIME_MAX_CHANNELS-1)</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment"> * @param ticks Источник тиков (например: HAL_GetTick(), TIM2-&gt;CNT, DWT-&gt;CYCCNT)</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> * @param tick_period Период тиков для переполнения</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> * @return 1 - успех, 0 - ошибка</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00131" data-start="{" data-end="}">
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#gac65338df38129964ce3e9d9cb2fcb349"> 131</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group___b_e_n_c_h___t_i_m_e.html#gac65338df38129964ce3e9d9cb2fcb349">BenchTime_Start</a>(uint8_t channel, uint32_t ticks, uint32_t tick_period) {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">if</span> (channel &gt;= <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].is_running) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].start_tick = ticks;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].tick_period = tick_period;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].is_running = 1;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">return</span> 1;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span>}</div>
</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment"></span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment">/**</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> * @brief Окончание измерения на указанном канале</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"> * @param channel Номер канала (0..BENCH_TIME_MAX_CHANNELS-1)</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"> * @param ticks Источник тиков (должен быть тот же что в Start)</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment"> * @return Измеренное время в тиках, 0 - в случае ошибки</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00147" data-start="{" data-end="}">
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#ga47a69851a2089140eac00cde18a12439"> 147</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group___b_e_n_c_h___t_i_m_e.html#ga47a69851a2089140eac00cde18a12439">BenchTime_End</a>(uint8_t channel, uint32_t ticks) {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">if</span> (channel &gt;= <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].is_running) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> uint32_t end_tick = ticks;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> uint32_t start_tick = <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].start_tick;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> uint32_t tick_period = <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].tick_period;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> uint32_t elapsed_ticks;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span> (end_tick &gt;= start_tick) {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> elapsed_ticks = end_tick - start_tick;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> elapsed_ticks = (tick_period - start_tick) + end_tick + 1;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> }</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">if</span> (elapsed_ticks &gt; tick_period) {</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> elapsed_ticks = tick_period;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> }</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].is_running = 0;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// Обновление статистики</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_struct" href="struct_bench_time_stats__t.html">BenchTimeStats_t</a>* stats = &amp;<a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].stats;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a2c739e1db6b26ceac5db3f2c44c177a0">last_ticks</a> = elapsed_ticks;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">if</span> (elapsed_ticks &lt; stats-&gt;min_ticks) {</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a39b71a5d48c4a51a553a26a9fb961ac8">min_ticks</a> = elapsed_ticks;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">if</span> (elapsed_ticks &gt; stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a3da36eb65b03ba995b5905b4650ea93c">max_ticks</a>) {</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a3da36eb65b03ba995b5905b4650ea93c">max_ticks</a> = elapsed_ticks;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> }</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a21499b0b19d1ed27f8cea069f674e8ec">total_ticks</a> += elapsed_ticks;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71">count</a>++;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">return</span> elapsed_ticks;</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span>}</div>
</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment"></span> </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment">/**</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="comment"> * @brief Получение минимального времени измерения</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00189" data-start="{" data-end="}">
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#ga273d45255fe4403fc25648d60cca7705"> 189</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group___b_e_n_c_h___t_i_m_e.html#ga273d45255fe4403fc25648d60cca7705">BenchTime_GetMin</a>(uint8_t channel) {</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">if</span> (channel &gt;= <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].stats.min_ticks;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span>}</div>
</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="comment"></span> </div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="comment">/**</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="comment"> * @brief Получение максимального времени измерения</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00197" data-start="{" data-end="}">
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#ga07e27d7b169c9fa1abd57281bb4e374e"> 197</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group___b_e_n_c_h___t_i_m_e.html#ga07e27d7b169c9fa1abd57281bb4e374e">BenchTime_GetMax</a>(uint8_t channel) {</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">if</span> (channel &gt;= <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].stats.max_ticks;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span>}</div>
</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="comment"></span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="comment">/**</span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="comment"> * @brief Получение среднего времени измерения</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00205" data-start="{" data-end="}">
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#ga24e2450d5ea921074ec5d7a1e4d56ba8"> 205</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group___b_e_n_c_h___t_i_m_e.html#ga24e2450d5ea921074ec5d7a1e4d56ba8">BenchTime_GetAverage</a>(uint8_t channel) {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">if</span> (channel &gt;= <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_struct" href="struct_bench_time_stats__t.html">BenchTimeStats_t</a>* stats = &amp;<a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].stats;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">if</span> (stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71">count</a> == 0) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">return</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a21499b0b19d1ed27f8cea069f674e8ec">total_ticks</a> / stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71">count</a>;</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span>}</div>
</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="comment"></span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="comment">/**</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="comment"> * @brief Получение количества измерений</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00215" data-start="{" data-end="}">
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#gabd1301ca79a30c782970f89fd147df3a"> 215</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group___b_e_n_c_h___t_i_m_e.html#gabd1301ca79a30c782970f89fd147df3a">BenchTime_GetCount</a>(uint8_t channel) {</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">if</span> (channel &gt;= <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].stats.count;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>}</div>
</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="comment"></span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="comment">/**</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="comment"> * @brief Получение последнего измеренного времени</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00223" data-start="{" data-end="}">
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#gacf3a738d6423d71b238058a63558a4ed"> 223</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group___b_e_n_c_h___t_i_m_e.html#gacf3a738d6423d71b238058a63558a4ed">BenchTime_GetLast</a>(uint8_t channel) {</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keywordflow">if</span> (channel &gt;= <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>) <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].stats.last_ticks;</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span>}</div>
</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span><span class="comment"></span> </div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="comment">/**</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="comment"> * @brief Сброс статистики для канала</span></div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00231" data-start="{" data-end="}">
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"><a class="line" href="group___b_e_n_c_h___t_i_m_e.html#ga31a6b2b181b92bcb15f46758f5d57f35"> 231</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group___b_e_n_c_h___t_i_m_e.html#ga31a6b2b181b92bcb15f46758f5d57f35">BenchTime_ResetStats</a>(uint8_t channel) {</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">if</span> (channel &gt;= <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a>) <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <a class="code hl_struct" href="struct_bench_time_stats__t.html">BenchTimeStats_t</a>* stats = &amp;<a class="code hl_variable" href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a>.channels[channel].stats;</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a39b71a5d48c4a51a553a26a9fb961ac8">min_ticks</a> = 0xFFFFFFFF;</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a3da36eb65b03ba995b5905b4650ea93c">max_ticks</a> = 0;</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a21499b0b19d1ed27f8cea069f674e8ec">total_ticks</a> = 0;</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71">count</a> = 0;</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> stats-&gt;<a class="code hl_variable" href="struct_bench_time_stats__t.html#a2c739e1db6b26ceac5db3f2c44c177a0">last_ticks</a> = 0;</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span>}</div>
</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="preprocessor">#else </span><span class="comment">//BENCH_TIME_ENABLE</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="preprocessor">#define BenchTime_Init()</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="preprocessor">#define BenchTime_Start(channel, ticks, tick_period) 0</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="preprocessor">#define BenchTime_End(channel, ticks) 0</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="preprocessor">#define BenchTime_GetMin(channel) 0</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="preprocessor">#define BenchTime_GetMax(channel) 0</span></div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="preprocessor">#define BenchTime_GetAverage(channel) 0</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="preprocessor">#define BenchTime_GetCount(channel) 0</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="preprocessor">#define BenchTime_GetLast(channel) 0</span></div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="preprocessor">#define BenchTime_ResetStats(channel)</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="preprocessor">#endif </span><span class="comment">//BENCH_TIME_ENABLE</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="preprocessor">#endif </span><span class="comment">// __BENCH_TIME_H_</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="comment"></span> </div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="comment">/** BENCH_TIME</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="comment"> */</span></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_ga07e27d7b169c9fa1abd57281bb4e374e"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#ga07e27d7b169c9fa1abd57281bb4e374e">BenchTime_GetMax</a></div><div class="ttdeci">static uint32_t BenchTime_GetMax(uint8_t channel)</div><div class="ttdoc">Получение максимального времени измерения</div><div class="ttdef"><b>Definition</b> <a href="#l00197">bench_time.h:197</a></div></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_ga24e2450d5ea921074ec5d7a1e4d56ba8"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#ga24e2450d5ea921074ec5d7a1e4d56ba8">BenchTime_GetAverage</a></div><div class="ttdeci">static uint32_t BenchTime_GetAverage(uint8_t channel)</div><div class="ttdoc">Получение среднего времени измерения</div><div class="ttdef"><b>Definition</b> <a href="#l00205">bench_time.h:205</a></div></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_ga273d45255fe4403fc25648d60cca7705"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#ga273d45255fe4403fc25648d60cca7705">BenchTime_GetMin</a></div><div class="ttdeci">static uint32_t BenchTime_GetMin(uint8_t channel)</div><div class="ttdoc">Получение минимального времени измерения</div><div class="ttdef"><b>Definition</b> <a href="#l00189">bench_time.h:189</a></div></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_ga31a6b2b181b92bcb15f46758f5d57f35"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#ga31a6b2b181b92bcb15f46758f5d57f35">BenchTime_ResetStats</a></div><div class="ttdeci">static void BenchTime_ResetStats(uint8_t channel)</div><div class="ttdoc">Сброс статистики для канала</div><div class="ttdef"><b>Definition</b> <a href="#l00231">bench_time.h:231</a></div></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_ga47a69851a2089140eac00cde18a12439"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#ga47a69851a2089140eac00cde18a12439">BenchTime_End</a></div><div class="ttdeci">static uint32_t BenchTime_End(uint8_t channel, uint32_t ticks)</div><div class="ttdoc">Окончание измерения на указанном канале</div><div class="ttdef"><b>Definition</b> <a href="#l00147">bench_time.h:147</a></div></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_ga8e53ef7f7df233bd4e737a87bb203d9d"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d">hbt</a></div><div class="ttdeci">static BenchTime_t hbt</div><div class="ttdoc">Внутренний экземпляр</div><div class="ttdef"><b>Definition</b> <a href="#l00106">bench_time.h:106</a></div></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_gabb7a665a9603ea2e4dbc4432e8cb6054"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#gabb7a665a9603ea2e4dbc4432e8cb6054">BenchTime_Init</a></div><div class="ttdeci">static void BenchTime_Init(void)</div><div class="ttdoc">Инициализация системы измерения времени</div><div class="ttdef"><b>Definition</b> <a href="#l00111">bench_time.h:111</a></div></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_gabd1301ca79a30c782970f89fd147df3a"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#gabd1301ca79a30c782970f89fd147df3a">BenchTime_GetCount</a></div><div class="ttdeci">static uint32_t BenchTime_GetCount(uint8_t channel)</div><div class="ttdoc">Получение количества измерений</div><div class="ttdef"><b>Definition</b> <a href="#l00215">bench_time.h:215</a></div></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_gac65338df38129964ce3e9d9cb2fcb349"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#gac65338df38129964ce3e9d9cb2fcb349">BenchTime_Start</a></div><div class="ttdeci">static uint32_t BenchTime_Start(uint8_t channel, uint32_t ticks, uint32_t tick_period)</div><div class="ttdoc">Начало измерения на указанном канале</div><div class="ttdef"><b>Definition</b> <a href="#l00131">bench_time.h:131</a></div></div>
<div class="ttc" id="agroup___b_e_n_c_h___t_i_m_e_html_gacf3a738d6423d71b238058a63558a4ed"><div class="ttname"><a href="group___b_e_n_c_h___t_i_m_e.html#gacf3a738d6423d71b238058a63558a4ed">BenchTime_GetLast</a></div><div class="ttdeci">static uint32_t BenchTime_GetLast(uint8_t channel)</div><div class="ttdoc">Получение последнего измеренного времени</div><div class="ttdef"><b>Definition</b> <a href="#l00223">bench_time.h:223</a></div></div>
<div class="ttc" id="agroup___g_e_n___c_o_n_f_i_g_html_ga74fdf777ceefa5e7d67120fbda4cde52"><div class="ttname"><a href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52">BENCH_TIME_MAX_CHANNELS</a></div><div class="ttdeci">#define BENCH_TIME_MAX_CHANNELS</div><div class="ttdoc">Максимальное количество каналов измерения</div><div class="ttdef"><b>Definition</b> <a href="mylibs__config_8h_source.html#l00082">mylibs_config.h:82</a></div></div>
<div class="ttc" id="amylibs__defs_8h_html"><div class="ttname"><a href="mylibs__defs_8h.html">mylibs_defs.h</a></div><div class="ttdoc">Заголочный файл для дефайнов библиотеки MyLibsGeneral.</div></div>
<div class="ttc" id="astruct_bench_time__t_html"><div class="ttname"><a href="struct_bench_time__t.html">BenchTime_t</a></div><div class="ttdoc">Основная структура менеджера измерений</div><div class="ttdef"><b>Definition</b> <a href="#l00102">bench_time.h:102</a></div></div>
<div class="ttc" id="astruct_bench_time__t_html_a9ae6d45c610be9d4b7628a614ccb06d6"><div class="ttname"><a href="struct_bench_time__t.html#a9ae6d45c610be9d4b7628a614ccb06d6">BenchTime_t::channels</a></div><div class="ttdeci">BenchTimeChannel_t channels[16]</div><div class="ttdoc">Каналы измерения</div><div class="ttdef"><b>Definition</b> <a href="#l00103">bench_time.h:103</a></div></div>
<div class="ttc" id="astruct_bench_time_channel__t_html"><div class="ttname"><a href="struct_bench_time_channel__t.html">BenchTimeChannel_t</a></div><div class="ttdoc">Структура канала измерения</div><div class="ttdef"><b>Definition</b> <a href="#l00092">bench_time.h:92</a></div></div>
<div class="ttc" id="astruct_bench_time_channel__t_html_a095d93e0228641f58b8661e263bc1bcd"><div class="ttname"><a href="struct_bench_time_channel__t.html#a095d93e0228641f58b8661e263bc1bcd">BenchTimeChannel_t::tick_period</a></div><div class="ttdeci">uint32_t tick_period</div><div class="ttdoc">Период тиков для переполнения</div><div class="ttdef"><b>Definition</b> <a href="#l00094">bench_time.h:94</a></div></div>
<div class="ttc" id="astruct_bench_time_channel__t_html_a0f80bb194231df7921712d20bac603c9"><div class="ttname"><a href="struct_bench_time_channel__t.html#a0f80bb194231df7921712d20bac603c9">BenchTimeChannel_t::is_running</a></div><div class="ttdeci">uint32_t is_running</div><div class="ttdoc">Флаг активного измерения</div><div class="ttdef"><b>Definition</b> <a href="#l00095">bench_time.h:95</a></div></div>
<div class="ttc" id="astruct_bench_time_channel__t_html_a22a3913e7925aa89cc12ec1d24a6c16c"><div class="ttname"><a href="struct_bench_time_channel__t.html#a22a3913e7925aa89cc12ec1d24a6c16c">BenchTimeChannel_t::stats</a></div><div class="ttdeci">BenchTimeStats_t stats</div><div class="ttdoc">Статистика измерений</div><div class="ttdef"><b>Definition</b> <a href="#l00096">bench_time.h:96</a></div></div>
<div class="ttc" id="astruct_bench_time_channel__t_html_a8140fe9e3d323404651f0cfeeae53928"><div class="ttname"><a href="struct_bench_time_channel__t.html#a8140fe9e3d323404651f0cfeeae53928">BenchTimeChannel_t::start_tick</a></div><div class="ttdeci">uint32_t start_tick</div><div class="ttdoc">Время старта в тиках</div><div class="ttdef"><b>Definition</b> <a href="#l00093">bench_time.h:93</a></div></div>
<div class="ttc" id="astruct_bench_time_stats__t_html"><div class="ttname"><a href="struct_bench_time_stats__t.html">BenchTimeStats_t</a></div><div class="ttdoc">Структура статистики измерений</div><div class="ttdef"><b>Definition</b> <a href="#l00081">bench_time.h:81</a></div></div>
<div class="ttc" id="astruct_bench_time_stats__t_html_a21499b0b19d1ed27f8cea069f674e8ec"><div class="ttname"><a href="struct_bench_time_stats__t.html#a21499b0b19d1ed27f8cea069f674e8ec">BenchTimeStats_t::total_ticks</a></div><div class="ttdeci">uint32_t total_ticks</div><div class="ttdoc">Суммарное время в тиках</div><div class="ttdef"><b>Definition</b> <a href="#l00084">bench_time.h:84</a></div></div>
<div class="ttc" id="astruct_bench_time_stats__t_html_a2c739e1db6b26ceac5db3f2c44c177a0"><div class="ttname"><a href="struct_bench_time_stats__t.html#a2c739e1db6b26ceac5db3f2c44c177a0">BenchTimeStats_t::last_ticks</a></div><div class="ttdeci">uint32_t last_ticks</div><div class="ttdoc">Последнее измеренное время</div><div class="ttdef"><b>Definition</b> <a href="#l00086">bench_time.h:86</a></div></div>
<div class="ttc" id="astruct_bench_time_stats__t_html_a39b71a5d48c4a51a553a26a9fb961ac8"><div class="ttname"><a href="struct_bench_time_stats__t.html#a39b71a5d48c4a51a553a26a9fb961ac8">BenchTimeStats_t::min_ticks</a></div><div class="ttdeci">uint32_t min_ticks</div><div class="ttdoc">Минимальное время в тиках</div><div class="ttdef"><b>Definition</b> <a href="#l00082">bench_time.h:82</a></div></div>
<div class="ttc" id="astruct_bench_time_stats__t_html_a3da36eb65b03ba995b5905b4650ea93c"><div class="ttname"><a href="struct_bench_time_stats__t.html#a3da36eb65b03ba995b5905b4650ea93c">BenchTimeStats_t::max_ticks</a></div><div class="ttdeci">uint32_t max_ticks</div><div class="ttdoc">Максимальное время в тиках</div><div class="ttdef"><b>Definition</b> <a href="#l00083">bench_time.h:83</a></div></div>
<div class="ttc" id="astruct_bench_time_stats__t_html_a5e95ef31dd0daf973894ef2f034d1f71"><div class="ttname"><a href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71">BenchTimeStats_t::count</a></div><div class="ttdeci">uint32_t count</div><div class="ttdoc">Количество измерений</div><div class="ttdef"><b>Definition</b> <a href="#l00085">bench_time.h:85</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_d4b2573a0c19afb61452cc3d00967af1.html">MyLibs</a></li><li class="navelem"><a href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a></li><li class="navelem"><a href="bench__time_8h.html">bench_time.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h File Reference</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bit_access.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>
@ -108,26 +108,26 @@ $(function(){initNavTree('bit__access_8h.html','',''); });
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="bit__access_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2bit__access_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2bit__access_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2bit__access_8h">
<area shape="rect" title="Заголочный файл для дефайнов битового доступа." alt="" coords="5,5,204,64"/>
<area shape="rect" href="mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="53,112,156,139"/>
<area shape="poly" title=" " alt="" coords="107,64,107,96,102,96,102,64"/>
<area shape="rect" href="mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="48,187,161,213"/>
<area shape="poly" title=" " alt="" coords="107,139,107,171,102,171,102,139"/>
<area shape="rect" title=" " alt="" coords="46,261,163,288"/>
<area shape="poly" title=" " alt="" coords="107,214,107,246,102,246,102,214"/>
<div class="center"><img src="bit__access_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2bit__access_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2bit__access_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2bit__access_8h">
<area shape="rect" title="Заголочный файл для дефайнов битового доступа." alt="" coords="5,5,182,64"/>
<area shape="rect" href="mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="42,112,145,139"/>
<area shape="poly" title=" " alt="" coords="96,64,96,96,91,96,91,64"/>
<area shape="rect" href="mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="37,187,150,213"/>
<area shape="poly" title=" " alt="" coords="96,139,96,171,91,171,91,139"/>
<area shape="rect" title=" " alt="" coords="35,261,152,288"/>
<area shape="poly" title=" " alt="" coords="96,214,96,246,91,246,91,214"/>
</map>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="bit__access_8h__dep__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2bit__access_8hdep" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2bit__access_8hdep" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2bit__access_8hdep">
<area shape="rect" title="Заголочный файл для дефайнов битового доступа." alt="" coords="5,5,204,64"/>
<area shape="rect" href="mylibs__include_8h.html" title="Заголочный файл для всех библиотек" alt="" coords="5,112,204,171"/>
<area shape="poly" title=" " alt="" coords="107,80,107,112,102,112,102,80"/>
<div class="center"><img src="bit__access_8h__dep__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2bit__access_8hdep" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2bit__access_8hdep" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2bit__access_8hdep">
<area shape="rect" title="Заголочный файл для дефайнов битового доступа." alt="" coords="5,5,182,64"/>
<area shape="rect" href="mylibs__include_8h.html" title="Заголочный файл для всех библиотек" alt="" coords="5,112,182,171"/>
<area shape="poly" title=" " alt="" coords="96,80,96,112,91,112,91,80"/>
</map>
</div>
</div>
@ -168,7 +168,7 @@ Macros</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_eb423fea8a9c4b9b32b922020ec391e1.html">Inc</a></li><li class="navelem"><a href="bit__access_8h.html">bit_access.h</a></li>
<li class="navelem"><a href="dir_d4b2573a0c19afb61452cc3d00967af1.html">MyLibs</a></li><li class="navelem"><a href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a></li><li class="navelem"><a href="bit__access_8h.html">bit_access.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -1,5 +1,5 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h">
<area shape="rect" id="Node000001" title="Заголочный файл для дефайнов битового доступа." alt="" coords="5,5,204,64"/>
<area shape="rect" id="Node000002" href="$mylibs__include_8h.html" title="Заголочный файл для всех библиотек" alt="" coords="5,112,204,171"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="107,80,107,112,102,112,102,80"/>
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bit_access.h" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bit_access.h">
<area shape="rect" id="Node000001" title="Заголочный файл для дефайнов битового доступа." alt="" coords="5,5,182,64"/>
<area shape="rect" id="Node000002" href="$mylibs__include_8h.html" title="Заголочный файл для всех библиотек" alt="" coords="5,112,182,171"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="96,80,96,112,91,112,91,80"/>
</map>

View File

@ -1 +1 @@
9d0f52ae67584f7f09caa88b8c7ab4e9
90cf62b6f2167bce533474179c32e7c8

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,9 +1,9 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h">
<area shape="rect" id="Node000001" title="Заголочный файл для дефайнов битового доступа." alt="" coords="5,5,204,64"/>
<area shape="rect" id="Node000002" href="$mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="53,112,156,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="107,64,107,96,102,96,102,64"/>
<area shape="rect" id="Node000003" href="$mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="48,187,161,213"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="107,139,107,171,102,171,102,139"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="46,261,163,288"/>
<area shape="poly" id="edge3_Node000003_Node000004" title=" " alt="" coords="107,214,107,246,102,246,102,214"/>
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bit_access.h" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bit_access.h">
<area shape="rect" id="Node000001" title="Заголочный файл для дефайнов битового доступа." alt="" coords="5,5,182,64"/>
<area shape="rect" id="Node000002" href="$mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="42,112,145,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="96,64,96,96,91,96,91,64"/>
<area shape="rect" id="Node000003" href="$mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="37,187,150,213"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="96,139,96,171,91,171,91,139"/>
<area shape="rect" id="Node000004" title=" " alt="" coords="35,261,152,288"/>
<area shape="poly" id="edge3_Node000003_Node000004" title=" " alt="" coords="96,214,96,246,91,246,91,214"/>
</map>

View File

@ -1 +1 @@
4b8c2556090cdbb9271b9fbe97d7cf5b
5594521ddd55c9695dfd6f9ee1107722

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h Source File</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/bit_access.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@ -278,7 +278,7 @@ $(function(){initNavTree('bit__access_8h_source.html','',''); });
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_eb423fea8a9c4b9b32b922020ec391e1.html">Inc</a></li><li class="navelem"><a href="bit__access_8h.html">bit_access.h</a></li>
<li class="navelem"><a href="dir_d4b2573a0c19afb61452cc3d00967af1.html">MyLibs</a></li><li class="navelem"><a href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a></li><li class="navelem"><a href="bit__access_8h.html">bit_access.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -100,14 +100,14 @@ $(function(){initNavTree('classes.html','',''); });
<div class="headertitle"><div class="title">Class Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a></div>
<div class="qindex"><a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a></div>
<div class="classindex">
<dl class="classindex even">
<dt class="alphachar"><a id="letter_E" name="letter_E">E</a></dt>
<dd><a class="el" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></dd></dl>
<dt class="alphachar"><a id="letter_B" name="letter_B">B</a></dt>
<dd><a class="el" href="struct_bench_time__t.html">BenchTime_t</a></dd><dd><a class="el" href="struct_bench_time_channel__t.html">BenchTimeChannel_t</a></dd><dd><a class="el" href="struct_bench_time_stats__t.html">BenchTimeStats_t</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_G" name="letter_G">G</a></dt>
<dd><a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a></dd><dd><a class="el" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a></dd></dl>
<dd><a class="el" href="struct_gen_optimizer__t.html">GenOptimizer_t</a></dd><dd><a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a></dd><dd><a class="el" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a></dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_H" name="letter_H">H</a></dt>
<dd><a class="el" href="struct_h_f___stack_frame__t.html">HF_StackFrame_t</a></dd></dl>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

View File

@ -0,0 +1,118 @@
<!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.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc -&gt; STM32_General Relation</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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_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">
$(function(){initNavTree('dir_8eb68c124db7670c3cb56141b10519ea.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">
<h3>Inc &rarr; STM32_General Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in MyLibs/Inc</th><th class="dirtab">Includes file in STM32_General</th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="mylibs__include_8h.html">mylibs_include.h</a></td><td class="dirtab"><a class="el" href="dir_2cad7b5fa94233a09111fd73c6202518.html">Inc</a>&#160;/&#160;<a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr></table></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_d4b2573a0c19afb61452cc3d00967af1.html">MyLibs</a></li><li class="navelem"><a href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,118 @@
<!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.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Inc -&gt; MyLibs Relation</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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_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">
$(function(){initNavTree('dir_2cad7b5fa94233a09111fd73c6202518.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">
<h3>Inc &rarr; MyLibs Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in STM32_General/Inc</th><th class="dirtab">Includes file in MyLibs</th></tr><tr class="dirtab"><td class="dirtab"><b>__general_flash.h</b></td><td class="dirtab"><a class="el" href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a>&#160;/&#160;<a class="el" href="mylibs__defs_8h.html">mylibs_defs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td><td class="dirtab"><a class="el" href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a>&#160;/&#160;<a class="el" href="mylibs__defs_8h.html">mylibs_defs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__spi_8h.html">general_spi.h</a></td><td class="dirtab"><a class="el" href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a>&#160;/&#160;<a class="el" href="mylibs__defs_8h.html">mylibs_defs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__tim_8h.html">general_tim.h</a></td><td class="dirtab"><a class="el" href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a>&#160;/&#160;<a class="el" href="mylibs__defs_8h.html">mylibs_defs.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__uart_8h.html">general_uart.h</a></td><td class="dirtab"><a class="el" href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a>&#160;/&#160;<a class="el" href="mylibs__defs_8h.html">mylibs_defs.h</a></td></tr></table></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li><li class="navelem"><a href="dir_2cad7b5fa94233a09111fd73c6202518.html">Inc</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src -&gt; Inc Relation</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src -&gt; Inc Relation</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>
@ -71,7 +71,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('dir_9c80311a018e1f8cfb6659b73d634be4.html','',''); });
$(function(){initNavTree('dir_3d5e348fed410a00f9c665596ca3b887.html','',''); });
</script>
<div id="container">
<div id="doc-content">
@ -97,7 +97,7 @@ $(function(){initNavTree('dir_9c80311a018e1f8cfb6659b73d634be4.html','',''); });
</div>
<div class="contents">
<h3>Src &rarr; Inc Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in MyLibsGeneral/Src</th><th class="dirtab">Includes file in MyLibsGeneral/Inc</th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__gpio_8c.html">general_gpio.c</a></td><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__spi_8c.html">general_spi.c</a></td><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__spi_8c.html">general_spi.c</a></td><td class="dirtab"><a class="el" href="general__spi_8h.html">general_spi.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__tim_8c.html">general_tim.c</a></td><td class="dirtab"><a class="el" href="general__tim_8h.html">general_tim.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__uart_8c.html">general_uart.c</a></td><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__uart_8c.html">general_uart.c</a></td><td class="dirtab"><a class="el" href="general__uart_8h.html">general_uart.h</a></td></tr></table></div><!-- contents -->
<h3>Src &rarr; Inc Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in STM32_General/Src</th><th class="dirtab">Includes file in STM32_General/Inc</th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__gpio_8c.html">general_gpio.c</a></td><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__spi_8c.html">general_spi.c</a></td><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__spi_8c.html">general_spi.c</a></td><td class="dirtab"><a class="el" href="general__spi_8h.html">general_spi.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__tim_8c.html">general_tim.c</a></td><td class="dirtab"><a class="el" href="general__tim_8h.html">general_tim.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__uart_8c.html">general_uart.c</a></td><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__uart_8c.html">general_uart.c</a></td><td class="dirtab"><a class="el" href="general__uart_8h.html">general_uart.h</a></td></tr></table></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
@ -110,7 +110,7 @@ $(function(){initNavTree('dir_9c80311a018e1f8cfb6659b73d634be4.html','',''); });
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></li>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li><li class="navelem"><a href="dir_3d5e348fed410a00f9c665596ca3b887.html">Src</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -0,0 +1,147 @@
<!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.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Inc Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_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">
$(function(){initNavTree('dir_2cad7b5fa94233a09111fd73c6202518.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">Inc Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Directory dependency graph for Inc:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="dir_2cad7b5fa94233a09111fd73c6202518_dep.png" border="0" usemap="#adir__2cad7b5fa94233a09111fd73c6202518__dep" loading="lazy" alt="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Inc"/></div>
<map name="adir__2cad7b5fa94233a09111fd73c6202518__dep" id="adir__2cad7b5fa94233a09111fd73c6202518__dep">
<area shape="rect" href="dir_2cad7b5fa94233a09111fd73c6202518.html" title="Inc" alt="" coords="54,53,93,80"/>
<area shape="rect" href="dir_d4b2573a0c19afb61452cc3d00967af1.html" title="MyLibs" alt="" coords="42,128,105,155"/>
<area shape="poly" href="dir_000001_000002.html" alt="" coords="76,81,76,112,71,112,71,81"/>
<area shape="rect" href="dir_000001_000002.html" title="5" alt="" coords="78,101,85,117"/>
<area shape="rect" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" title="STM32_General" alt="" coords="16,16,132,91"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-files" class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:_5F_5Fgeneral_5Fflash_2Eh" id="r__5F_5Fgeneral_5Fflash_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="____general__flash_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><b>__general_flash.h</b></td></tr>
<tr class="memitem:general_5Fgpio_2Eh" id="r_general_5Fgpio_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__gpio_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr>
<tr class="memdesc:general__gpio_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации портов и работы с ними. <br /></td></tr>
<tr class="memitem:general_5Fspi_2Eh" id="r_general_5Fspi_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__spi_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__spi_8h.html">general_spi.h</a></td></tr>
<tr class="memdesc:general__spi_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации SPI. <br /></td></tr>
<tr class="memitem:general_5Ftim_2Eh" id="r_general_5Ftim_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__tim_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__tim_8h.html">general_tim.h</a></td></tr>
<tr class="memdesc:general__tim_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации таймеров и работы с ними. <br /></td></tr>
<tr class="memitem:general_5Fuart_2Eh" id="r_general_5Fuart_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__uart_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__uart_8h.html">general_uart.h</a></td></tr>
<tr class="memdesc:general__uart_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации UART. <br /></td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li><li class="navelem"><a href="dir_2cad7b5fa94233a09111fd73c6202518.html">Inc</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,8 @@
var dir_2cad7b5fa94233a09111fd73c6202518 =
[
[ "__general_flash.h", "____general__flash_8h_source.html", null ],
[ "general_gpio.h", "general__gpio_8h.html", "general__gpio_8h" ],
[ "general_spi.h", "general__spi_8h.html", "general__spi_8h" ],
[ "general_tim.h", "general__tim_8h.html", "general__tim_8h" ],
[ "general_uart.h", "general__uart_8h.html", "general__uart_8h" ]
];

View File

@ -0,0 +1,7 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Inc" name="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Inc">
<area shape="rect" id="node1" href="dir_2cad7b5fa94233a09111fd73c6202518.html" title="Inc" alt="" coords="54,53,93,80"/>
<area shape="rect" id="node2" href="dir_d4b2573a0c19afb61452cc3d00967af1.html" title="MyLibs" alt="" coords="42,128,105,155"/>
<area shape="poly" id="edge1" href="dir_000001_000002.html" alt="" coords="76,81,76,112,71,112,71,81"/>
<area shape="rect" id="edge1-headlabel" href="dir_000001_000002.html" title="5" alt="" coords="78,101,85,117"/>
<area shape="rect" id="clust1" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" title="STM32_General" alt="" coords="16,16,132,91"/>
</map>

View File

@ -0,0 +1 @@
4c7a0465ed840078237ca199294c9aab

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src Directory Reference</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@ -71,7 +71,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('dir_9c80311a018e1f8cfb6659b73d634be4.html','',''); });
$(function(){initNavTree('dir_3d5e348fed410a00f9c665596ca3b887.html','',''); });
</script>
<div id="container">
<div id="doc-content">
@ -104,13 +104,13 @@ $(function(){initNavTree('dir_9c80311a018e1f8cfb6659b73d634be4.html','',''); });
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="dir_9c80311a018e1f8cfb6659b73d634be4_dep.png" border="0" usemap="#adir__9c80311a018e1f8cfb6659b73d634be4__dep" loading="lazy" alt="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src"/></div>
<map name="adir__9c80311a018e1f8cfb6659b73d634be4__dep" id="adir__9c80311a018e1f8cfb6659b73d634be4__dep">
<area shape="rect" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html" title="Inc" alt="" coords="50,128,89,155"/>
<area shape="rect" href="dir_9c80311a018e1f8cfb6659b73d634be4.html" title="Src" alt="" coords="49,53,90,80"/>
<area shape="poly" href="dir_000002_000000.html" alt="" coords="72,81,72,112,67,112,67,81"/>
<area shape="rect" href="dir_000002_000000.html" title="6" alt="" coords="74,101,81,117"/>
<area shape="rect" href="dir_9e11e9a41112194af3eee6cc728f9515.html" title="MyLibsGeneral" alt="" coords="16,16,124,165"/>
<div class="center"><img src="dir_3d5e348fed410a00f9c665596ca3b887_dep.png" border="0" usemap="#adir__3d5e348fed410a00f9c665596ca3b887__dep" loading="lazy" alt="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src"/></div>
<map name="adir__3d5e348fed410a00f9c665596ca3b887__dep" id="adir__3d5e348fed410a00f9c665596ca3b887__dep">
<area shape="rect" href="dir_2cad7b5fa94233a09111fd73c6202518.html" title="Inc" alt="" coords="54,128,93,155"/>
<area shape="rect" href="dir_3d5e348fed410a00f9c665596ca3b887.html" title="Src" alt="" coords="53,53,94,80"/>
<area shape="poly" href="dir_000003_000001.html" alt="" coords="76,81,76,112,71,112,71,81"/>
<area shape="rect" href="dir_000003_000001.html" title="6" alt="" coords="78,101,85,117"/>
<area shape="rect" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" title="STM32_General" alt="" coords="16,16,132,165"/>
</map>
</div>
<table class="memberdecls">
@ -139,7 +139,7 @@ Files</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></li>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li><li class="navelem"><a href="dir_3d5e348fed410a00f9c665596ca3b887.html">Src</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -1,4 +1,4 @@
var dir_9c80311a018e1f8cfb6659b73d634be4 =
var dir_3d5e348fed410a00f9c665596ca3b887 =
[
[ "__general_flash.c", "____general__flash_8c_source.html", null ],
[ "general_gpio.c", "general__gpio_8c.html", "general__gpio_8c" ],

View File

@ -0,0 +1,7 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src" name="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src">
<area shape="rect" id="node1" href="dir_2cad7b5fa94233a09111fd73c6202518.html" title="Inc" alt="" coords="54,128,93,155"/>
<area shape="rect" id="node2" href="dir_3d5e348fed410a00f9c665596ca3b887.html" title="Src" alt="" coords="53,53,94,80"/>
<area shape="poly" id="edge1" href="dir_000003_000001.html" alt="" coords="76,81,76,112,71,112,71,81"/>
<area shape="rect" id="edge1-headlabel" href="dir_000003_000001.html" title="6" alt="" coords="78,101,85,117"/>
<area shape="rect" id="clust1" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" title="STM32_General" alt="" coords="16,16,132,165"/>
</map>

View File

@ -0,0 +1 @@
5cc6d7a2540515568af57b2a10316ffd

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral Directory Reference</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@ -71,7 +71,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('dir_9e11e9a41112194af3eee6cc728f9515.html','',''); });
$(function(){initNavTree('dir_57feeba75fefbd1a9c832b76e3bce520.html','',''); });
</script>
<div id="container">
<div id="doc-content">
@ -97,31 +97,30 @@ $(function(){initNavTree('dir_9e11e9a41112194af3eee6cc728f9515.html','',''); });
</div>
<div class="header">
<div class="headertitle"><div class="title">MyLibsGeneral Directory Reference</div></div>
<div class="headertitle"><div class="title">STM32_General Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Directory dependency graph for MyLibsGeneral:</div>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Directory dependency graph for STM32_General:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="dir_9e11e9a41112194af3eee6cc728f9515_dep.png" border="0" usemap="#adir__9e11e9a41112194af3eee6cc728f9515__dep" loading="lazy" alt="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral"/></div>
<map name="adir__9e11e9a41112194af3eee6cc728f9515__dep" id="adir__9e11e9a41112194af3eee6cc728f9515__dep">
<area shape="rect" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html" title="Inc" alt="" coords="160,101,200,128"/>
<area shape="rect" href="dir_9c80311a018e1f8cfb6659b73d634be4.html" title="Src" alt="" coords="159,27,201,53"/>
<area shape="poly" href="dir_000002_000000.html" alt="" coords="183,54,183,86,177,86,177,54"/>
<area shape="rect" href="dir_000002_000000.html" title="6" alt="" coords="185,75,192,91"/>
<area shape="rect" href="dir_9e11e9a41112194af3eee6cc728f9515.html" alt="" coords="16,16,212,139"/>
<div class="center"><img src="dir_57feeba75fefbd1a9c832b76e3bce520_dep.png" border="0" usemap="#adir__57feeba75fefbd1a9c832b76e3bce520__dep" loading="lazy" alt="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General"/></div>
<map name="adir__57feeba75fefbd1a9c832b76e3bce520__dep" id="adir__57feeba75fefbd1a9c832b76e3bce520__dep">
<area shape="rect" href="dir_2cad7b5fa94233a09111fd73c6202518.html" title="Inc" alt="" coords="167,101,206,128"/>
<area shape="rect" href="dir_d4b2573a0c19afb61452cc3d00967af1.html" title="MyLibs" alt="" coords="155,176,218,203"/>
<area shape="poly" href="dir_000001_000002.html" alt="" coords="189,129,189,160,184,160,184,129"/>
<area shape="rect" href="dir_000001_000002.html" title="5" alt="" coords="192,149,199,165"/>
<area shape="rect" href="dir_3d5e348fed410a00f9c665596ca3b887.html" title="Src" alt="" coords="166,27,207,53"/>
<area shape="poly" href="dir_000003_000001.html" alt="" coords="189,54,189,86,184,86,184,54"/>
<area shape="rect" href="dir_000003_000001.html" title="6" alt="" coords="192,75,199,91"/>
<area shape="rect" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" alt="" coords="16,16,219,139"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-subdirs" class="groupheader"><a id="subdirs" name="subdirs"></a>
Directories</h2></td></tr>
<tr class="memitem:Inc" id="r_Inc"><td class="memItemLeft" align="right" valign="top"><span class="iconfolder"><div class="folder-icon"></div></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html">Inc</a></td></tr>
<tr class="memitem:Src" id="r_Src"><td class="memItemLeft" align="right" valign="top"><span class="iconfolder"><div class="folder-icon"></div></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-files" class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:mainpage_2Eh" id="r_mainpage_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="mainpage_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><b>mainpage.h</b></td></tr>
<tr class="memitem:Inc" id="r_Inc"><td class="memItemLeft" align="right" valign="top"><span class="iconfolder"><div class="folder-icon"></div></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_2cad7b5fa94233a09111fd73c6202518.html">Inc</a></td></tr>
<tr class="memitem:Src" id="r_Src"><td class="memItemLeft" align="right" valign="top"><span class="iconfolder"><div class="folder-icon"></div></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_3d5e348fed410a00f9c665596ca3b887.html">Src</a></td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
@ -136,7 +135,7 @@ Files</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -0,0 +1,5 @@
var dir_57feeba75fefbd1a9c832b76e3bce520 =
[
[ "Inc", "dir_2cad7b5fa94233a09111fd73c6202518.html", "dir_2cad7b5fa94233a09111fd73c6202518" ],
[ "Src", "dir_3d5e348fed410a00f9c665596ca3b887.html", "dir_3d5e348fed410a00f9c665596ca3b887" ]
];

View File

@ -0,0 +1,10 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General" name="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General">
<area shape="rect" id="node2" href="dir_2cad7b5fa94233a09111fd73c6202518.html" title="Inc" alt="" coords="167,101,206,128"/>
<area shape="rect" id="node4" href="dir_d4b2573a0c19afb61452cc3d00967af1.html" title="MyLibs" alt="" coords="155,176,218,203"/>
<area shape="poly" id="edge1" href="dir_000001_000002.html" alt="" coords="189,129,189,160,184,160,184,129"/>
<area shape="rect" id="edge1-headlabel" href="dir_000001_000002.html" title="5" alt="" coords="192,149,199,165"/>
<area shape="rect" id="node3" href="dir_3d5e348fed410a00f9c665596ca3b887.html" title="Src" alt="" coords="166,27,207,53"/>
<area shape="poly" id="edge2" href="dir_000003_000001.html" alt="" coords="189,54,189,86,184,86,184,54"/>
<area shape="rect" id="edge2-headlabel" href="dir_000003_000001.html" title="6" alt="" coords="192,75,199,91"/>
<area shape="rect" id="clust1" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" alt="" coords="16,16,219,139"/>
</map>

View File

@ -0,0 +1 @@
00df5832c3671ec71ddedfed2e441e5b

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc Directory Reference</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@ -71,7 +71,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('dir_eb423fea8a9c4b9b32b922020ec391e1.html','',''); });
$(function(){initNavTree('dir_8eb68c124db7670c3cb56141b10519ea.html','',''); });
</script>
<div id="container">
<div id="doc-content">
@ -104,28 +104,24 @@ $(function(){initNavTree('dir_eb423fea8a9c4b9b32b922020ec391e1.html','',''); });
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="dir_eb423fea8a9c4b9b32b922020ec391e1_dep.png" border="0" usemap="#adir__eb423fea8a9c4b9b32b922020ec391e1__dep" loading="lazy" alt="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc"/></div>
<map name="adir__eb423fea8a9c4b9b32b922020ec391e1__dep" id="adir__eb423fea8a9c4b9b32b922020ec391e1__dep">
<area shape="rect" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html" title="Inc" alt="" coords="50,53,89,80"/>
<area shape="rect" href="dir_9e11e9a41112194af3eee6cc728f9515.html" title="MyLibsGeneral" alt="" coords="16,16,124,91"/>
<div class="center"><img src="dir_8eb68c124db7670c3cb56141b10519ea_dep.png" border="0" usemap="#adir__8eb68c124db7670c3cb56141b10519ea__dep" loading="lazy" alt="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc"/></div>
<map name="adir__8eb68c124db7670c3cb56141b10519ea__dep" id="adir__8eb68c124db7670c3cb56141b10519ea__dep">
<area shape="rect" href="dir_8eb68c124db7670c3cb56141b10519ea.html" title="Inc" alt="" coords="43,53,83,80"/>
<area shape="rect" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" title="STM32_General" alt="" coords="5,128,121,155"/>
<area shape="poly" href="dir_000000_000004.html" alt="" coords="66,81,66,112,60,112,60,81"/>
<area shape="rect" href="dir_000000_000004.html" title="1" alt="" coords="68,101,75,117"/>
<area shape="rect" href="dir_d4b2573a0c19afb61452cc3d00967af1.html" title="MyLibs" alt="" coords="31,16,95,91"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-files" class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:_5F_5Fgeneral_5Fflash_2Eh" id="r__5F_5Fgeneral_5Fflash_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="____general__flash_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><b>__general_flash.h</b></td></tr>
<tr class="memitem:bench_5Ftime_2Eh" id="r_bench_5Ftime_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="bench__time_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bench__time_8h.html">bench_time.h</a></td></tr>
<tr class="memdesc:bench__time_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для измерения времени между событиями <br /></td></tr>
<tr class="memitem:bit_5Faccess_2Eh" id="r_bit_5Faccess_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="bit__access_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bit__access_8h.html">bit_access.h</a></td></tr>
<tr class="memdesc:bit__access_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголочный файл для дефайнов битового доступа. <br /></td></tr>
<tr class="memitem:evolve_5Foptimizer_2Eh" id="r_evolve_5Foptimizer_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="evolve__optimizer_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="evolve__optimizer_8h.html">evolve_optimizer.h</a></td></tr>
<tr class="memdesc:evolve__optimizer_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для адаптивного подбора параметров <br /></td></tr>
<tr class="memitem:general_5Fgpio_2Eh" id="r_general_5Fgpio_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__gpio_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr>
<tr class="memdesc:general__gpio_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации портов и работы с ними. <br /></td></tr>
<tr class="memitem:general_5Fspi_2Eh" id="r_general_5Fspi_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__spi_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__spi_8h.html">general_spi.h</a></td></tr>
<tr class="memdesc:general__spi_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации SPI. <br /></td></tr>
<tr class="memitem:general_5Ftim_2Eh" id="r_general_5Ftim_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__tim_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__tim_8h.html">general_tim.h</a></td></tr>
<tr class="memdesc:general__tim_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации таймеров и работы с ними. <br /></td></tr>
<tr class="memitem:general_5Fuart_2Eh" id="r_general_5Fuart_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__uart_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__uart_8h.html">general_uart.h</a></td></tr>
<tr class="memdesc:general__uart_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации UART. <br /></td></tr>
<tr class="memitem:gen_5Foptimizer_2Eh" id="r_gen_5Foptimizer_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="gen__optimizer_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gen__optimizer_8h.html">gen_optimizer.h</a></td></tr>
<tr class="memdesc:gen__optimizer_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для адаптивного подбора параметров <br /></td></tr>
<tr class="memitem:mylibs_5Fconfig_2Eh" id="r_mylibs_5Fconfig_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="mylibs__config_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mylibs__config_8h.html">mylibs_config.h</a></td></tr>
<tr class="memdesc:mylibs__config_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Конфигурации для библиотек MyLibs. <br /></td></tr>
<tr class="memitem:mylibs_5Fdefs_2Eh" id="r_mylibs_5Fdefs_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="mylibs__defs_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mylibs__defs_8h.html">mylibs_defs.h</a></td></tr>
@ -150,7 +146,7 @@ Files</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_eb423fea8a9c4b9b32b922020ec391e1.html">Inc</a></li>
<li class="navelem"><a href="dir_d4b2573a0c19afb61452cc3d00967af1.html">MyLibs</a></li><li class="navelem"><a href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -0,0 +1,11 @@
var dir_8eb68c124db7670c3cb56141b10519ea =
[
[ "bench_time.h", "bench__time_8h.html", "bench__time_8h" ],
[ "bit_access.h", "bit__access_8h.html", "bit__access_8h" ],
[ "gen_optimizer.h", "gen__optimizer_8h.html", "gen__optimizer_8h" ],
[ "mylibs_config.h", "mylibs__config_8h.html", "mylibs__config_8h" ],
[ "mylibs_defs.h", "mylibs__defs_8h.html", "mylibs__defs_8h" ],
[ "mylibs_include.h", "mylibs__include_8h.html", null ],
[ "trace.h", "trace_8h.html", "trace_8h" ],
[ "trackers.h", "trackers_8h.html", "trackers_8h" ]
];

View File

@ -0,0 +1,7 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc">
<area shape="rect" id="node1" href="dir_8eb68c124db7670c3cb56141b10519ea.html" title="Inc" alt="" coords="43,53,83,80"/>
<area shape="rect" id="node2" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" title="STM32_General" alt="" coords="5,128,121,155"/>
<area shape="poly" id="edge1" href="dir_000000_000004.html" alt="" coords="66,81,66,112,60,112,60,81"/>
<area shape="rect" id="edge1-headlabel" href="dir_000000_000004.html" title="1" alt="" coords="68,101,75,117"/>
<area shape="rect" id="clust1" href="dir_d4b2573a0c19afb61452cc3d00967af1.html" title="MyLibs" alt="" coords="31,16,95,91"/>
</map>

View File

@ -0,0 +1 @@
ae7b3aba5d71eb1d9172fce905d93d12

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,7 +0,0 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src">
<area shape="rect" id="node1" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html" title="Inc" alt="" coords="50,128,89,155"/>
<area shape="rect" id="node2" href="dir_9c80311a018e1f8cfb6659b73d634be4.html" title="Src" alt="" coords="49,53,90,80"/>
<area shape="poly" id="edge1" href="dir_000002_000000.html" alt="" coords="72,81,72,112,67,112,67,81"/>
<area shape="rect" id="edge1-headlabel" href="dir_000002_000000.html" title="6" alt="" coords="74,101,81,117"/>
<area shape="rect" id="clust1" href="dir_9e11e9a41112194af3eee6cc728f9515.html" title="MyLibsGeneral" alt="" coords="16,16,124,165"/>
</map>

View File

@ -1 +0,0 @@
ffa428a4e7938b24bbf734d10d788ade

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,6 +0,0 @@
var dir_9e11e9a41112194af3eee6cc728f9515 =
[
[ "Inc", "dir_eb423fea8a9c4b9b32b922020ec391e1.html", "dir_eb423fea8a9c4b9b32b922020ec391e1" ],
[ "Src", "dir_9c80311a018e1f8cfb6659b73d634be4.html", "dir_9c80311a018e1f8cfb6659b73d634be4" ],
[ "mainpage.h", "mainpage_8h_source.html", null ]
];

View File

@ -1,7 +0,0 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral">
<area shape="rect" id="node2" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html" title="Inc" alt="" coords="160,101,200,128"/>
<area shape="rect" id="node3" href="dir_9c80311a018e1f8cfb6659b73d634be4.html" title="Src" alt="" coords="159,27,201,53"/>
<area shape="poly" id="edge1" href="dir_000002_000000.html" alt="" coords="183,54,183,86,177,86,177,54"/>
<area shape="rect" id="edge1-headlabel" href="dir_000002_000000.html" title="6" alt="" coords="185,75,192,91"/>
<area shape="rect" id="clust1" href="dir_9e11e9a41112194af3eee6cc728f9515.html" alt="" coords="16,16,212,139"/>
</map>

View File

@ -1 +0,0 @@
8443f86a129039a222fea0f68a874d48

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,139 @@
<!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.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.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">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_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">
$(function(){initNavTree('dir_d4b2573a0c19afb61452cc3d00967af1.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">MyLibs Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Directory dependency graph for MyLibs:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="dir_d4b2573a0c19afb61452cc3d00967af1_dep.png" border="0" usemap="#adir__d4b2573a0c19afb61452cc3d00967af1__dep" loading="lazy" alt="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs"/></div>
<map name="adir__d4b2573a0c19afb61452cc3d00967af1__dep" id="adir__d4b2573a0c19afb61452cc3d00967af1__dep">
<area shape="rect" href="dir_8eb68c124db7670c3cb56141b10519ea.html" title="Inc" alt="" coords="115,27,154,53"/>
<area shape="rect" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" title="STM32_General" alt="" coords="77,101,192,128"/>
<area shape="poly" href="dir_000000_000004.html" alt="" coords="137,54,137,86,132,86,132,54"/>
<area shape="rect" href="dir_000000_000004.html" title="1" alt="" coords="140,75,147,91"/>
<area shape="rect" href="dir_d4b2573a0c19afb61452cc3d00967af1.html" alt="" coords="16,16,165,64"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-subdirs" class="groupheader"><a id="subdirs" name="subdirs"></a>
Directories</h2></td></tr>
<tr class="memitem:Inc" id="r_Inc"><td class="memItemLeft" align="right" valign="top"><span class="iconfolder"><div class="folder-icon"></div></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a></td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_d4b2573a0c19afb61452cc3d00967af1.html">MyLibs</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
var dir_d4b2573a0c19afb61452cc3d00967af1 =
[
[ "Inc", "dir_8eb68c124db7670c3cb56141b10519ea.html", "dir_8eb68c124db7670c3cb56141b10519ea" ]
];

View File

@ -0,0 +1,7 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs">
<area shape="rect" id="node2" href="dir_8eb68c124db7670c3cb56141b10519ea.html" title="Inc" alt="" coords="115,27,154,53"/>
<area shape="rect" id="node3" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" title="STM32_General" alt="" coords="77,101,192,128"/>
<area shape="poly" id="edge1" href="dir_000000_000004.html" alt="" coords="137,54,137,86,132,86,132,54"/>
<area shape="rect" id="edge1-headlabel" href="dir_000000_000004.html" title="1" alt="" coords="140,75,147,91"/>
<area shape="rect" id="clust1" href="dir_d4b2573a0c19afb61452cc3d00967af1.html" alt="" coords="16,16,165,64"/>
</map>

View File

@ -0,0 +1 @@
0bfaa81751ac1e7c7d71433f3f44b7e3

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,15 +0,0 @@
var dir_eb423fea8a9c4b9b32b922020ec391e1 =
[
[ "__general_flash.h", "____general__flash_8h_source.html", null ],
[ "bit_access.h", "bit__access_8h.html", "bit__access_8h" ],
[ "evolve_optimizer.h", "evolve__optimizer_8h.html", "evolve__optimizer_8h" ],
[ "general_gpio.h", "general__gpio_8h.html", "general__gpio_8h" ],
[ "general_spi.h", "general__spi_8h.html", "general__spi_8h" ],
[ "general_tim.h", "general__tim_8h.html", "general__tim_8h" ],
[ "general_uart.h", "general__uart_8h.html", "general__uart_8h" ],
[ "mylibs_config.h", "mylibs__config_8h.html", "mylibs__config_8h" ],
[ "mylibs_defs.h", "mylibs__defs_8h.html", "mylibs__defs_8h" ],
[ "mylibs_include.h", "mylibs__include_8h.html", null ],
[ "trace.h", "trace_8h.html", "trace_8h" ],
[ "trackers.h", "trackers_8h.html", "trackers_8h" ]
];

View File

@ -1,4 +0,0 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc">
<area shape="rect" id="node1" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html" title="Inc" alt="" coords="50,53,89,80"/>
<area shape="rect" id="clust1" href="dir_9e11e9a41112194af3eee6cc728f9515.html" title="MyLibsGeneral" alt="" coords="16,16,124,91"/>
</map>

View File

@ -1 +0,0 @@
51bda8bf2e3b4eafeabf6cf3520068b7

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<g style="fill:#4665A2">
<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
</g>
<g style="fill:#D8DFEE;stroke-width:0">
<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<g style="fill:#C4CFE5">
<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
</g>
<g style="fill:#4665A2;stroke-width:0">
<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -11,19 +11,25 @@
<a href="____general__flash_8c_source.html"/>
<a href="____general__flash_8h_source.html"/>
<a href="annotated.html"/>
<a href="bench__time_8h.html"/>
<a href="bench__time_8h_source.html"/>
<a href="bit__access_8h.html"/>
<a href="bit__access_8h_source.html"/>
<a href="classes.html"/>
<a href="dir_000002_000000.html"/>
<a href="dir_9c80311a018e1f8cfb6659b73d634be4.html"/>
<a href="dir_9e11e9a41112194af3eee6cc728f9515.html"/>
<a href="dir_eb423fea8a9c4b9b32b922020ec391e1.html"/>
<a href="dir_000000_000004.html"/>
<a href="dir_000001_000002.html"/>
<a href="dir_000003_000001.html"/>
<a href="dir_2cad7b5fa94233a09111fd73c6202518.html"/>
<a href="dir_3d5e348fed410a00f9c665596ca3b887.html"/>
<a href="dir_57feeba75fefbd1a9c832b76e3bce520.html"/>
<a href="dir_8eb68c124db7670c3cb56141b10519ea.html"/>
<a href="dir_d4b2573a0c19afb61452cc3d00967af1.html"/>
<a href="doxygen_crawl.html"/>
<a href="evolve__optimizer_8h.html"/>
<a href="evolve__optimizer_8h_source.html"/>
<a href="files.html"/>
<a href="functions.html"/>
<a href="functions_vars.html"/>
<a href="gen__optimizer_8h.html"/>
<a href="gen__optimizer_8h_source.html"/>
<a href="general__gpio_8c.html"/>
<a href="general__gpio_8c_source.html"/>
<a href="general__gpio_8h.html"/>
@ -44,11 +50,39 @@
<a href="general__uart_8h.html"/>
<a href="general__uart_8h_source.html"/>
<a href="globals.html"/>
<a href="globals_b.html"/>
<a href="globals_c.html"/>
<a href="globals_d.html"/>
<a href="globals_defs.html"/>
<a href="globals_e.html"/>
<a href="globals_enum.html"/>
<a href="globals_eval.html"/>
<a href="globals_f.html"/>
<a href="globals_func.html"/>
<a href="globals_g.html"/>
<a href="globals_h.html"/>
<a href="globals_i.html"/>
<a href="globals_l.html"/>
<a href="globals_m.html"/>
<a href="globals_n.html"/>
<a href="globals_p.html"/>
<a href="globals_r.html"/>
<a href="globals_s.html"/>
<a href="globals_t.html"/>
<a href="globals_u.html"/>
<a href="globals_vars.html"/>
<a href="graph_legend.html"/>
<a href="group___b_e_n_c_h___t_i_m_e.html"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#ga07e27d7b169c9fa1abd57281bb4e374e"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#ga24e2450d5ea921074ec5d7a1e4d56ba8"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#ga273d45255fe4403fc25648d60cca7705"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#ga31a6b2b181b92bcb15f46758f5d57f35"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#ga47a69851a2089140eac00cde18a12439"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#ga8e53ef7f7df233bd4e737a87bb203d9d"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#gabb7a665a9603ea2e4dbc4432e8cb6054"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#gabd1301ca79a30c782970f89fd147df3a"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#gac65338df38129964ce3e9d9cb2fcb349"/>
<a href="group___b_e_n_c_h___t_i_m_e.html#gacf3a738d6423d71b238058a63558a4ed"/>
<a href="group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html"/>
<a href="group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html#ga47eb69ce9330a1c73fe8031240f02f0a"/>
<a href="group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html#ga57dc3bb3472a66fc92312f89d42d2396"/>
@ -66,30 +100,33 @@
<a href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga838b40542faa9aa273d18f921b21fda2"/>
<a href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gaab0aafd7a4a21ec4f338b19269f65490"/>
<a href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f"/>
<a href="group___e_v_o_l_v_e___c_o_n_f_i_g.html"/>
<a href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga2cac097081444a7a9b040f4b11550e47"/>
<a href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971"/>
<a href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef"/>
<a href="group___g_e_n___c_o_n_f_i_g.html"/>
<a href="group___g_e_n___c_o_n_f_i_g.html#ga201cffde04ebc6540869c74bd1dae869"/>
<a href="group___g_e_n___c_o_n_f_i_g.html#ga67c3c54503b9bbd5d175ac46d37866d9"/>
<a href="group___g_e_n___c_o_n_f_i_g.html#ga74fdf777ceefa5e7d67120fbda4cde52"/>
<a href="group___g_e_n___c_o_n_f_i_g.html#ga8daf4b266a95353d580bd7946f47c0ab"/>
<a href="group___g_e_n___c_o_n_f_i_g.html#gae6d1db3c0b21f67cb0db2673d207b62c"/>
<a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html"/>
<a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga2db1df46b4082ad9280ef4344fdf4e8a"/>
<a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb"/>
<a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga3db7bdf57549722427e1e72dcaa87068"/>
<a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga48dca8f0a0c9b96d02236ef76ac827fd"/>
<a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e"/>
<a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3"/>
<a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa9a4c4f43f7beb926c85bd4817ebd628"/>
<a href="group___g_p_i_o___i_n_i_t.html"/>
<a href="group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9"/>
<a href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023"/>
<a href="group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29"/>
<a href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653"/>
<a href="group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067"/>
<a href="group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25"/>
<a href="group___l_i_b_s___c_o_n_f_i_g.html"/>
<a href="group___l_i_b_s___c_o_n_f_i_g.html#ga0a3ca94b616997069dd53e2c6c2687d7"/>
<a href="group___l_i_b_s___c_o_n_f_i_g.html#ga181a46326e46b60afb160190832c7281"/>
<a href="group___l_i_b_s___c_o_n_f_i_g.html#ga3cdc9ef47fd3ff080d38481295327692"/>
<a href="group___l_i_b_s___c_o_n_f_i_g.html#ga4403055986b70bb02b8d37073a122e32"/>
<a href="group___l_i_b_s___c_o_n_f_i_g.html#ga57c369737d5c0cfdb7baeecba0a4b151"/>
<a href="group___l_i_b_s___c_o_n_f_i_g.html#ga66560656d080d6551627a19dfb847c66"/>
<a href="group___l_i_b_s___c_o_n_f_i_g.html#ga9c853b02c22f26023c34d1d404b6d653"/>
<a href="group___l_i_b_s___c_o_n_f_i_g.html#gaf4ddb2a71ec0d05c2480e197cd17c0be"/>
<a href="group___m_y___l_i_b_s___g_p_i_o.html"/>
@ -256,19 +293,22 @@
<a href="mylibs__defs_8h_source.html"/>
<a href="mylibs__include_8h.html"/>
<a href="mylibs__include_8h_source.html"/>
<a href="struct_evolve_optimizer__t-members.html"/>
<a href="struct_evolve_optimizer__t.html"/>
<a href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae"/>
<a href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8"/>
<a href="struct_evolve_optimizer__t.html#a3be8c0c34db8429210ff470497a56727"/>
<a href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a"/>
<a href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c"/>
<a href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df"/>
<a href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6"/>
<a href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1"/>
<a href="struct_evolve_optimizer__t.html#ad0f464d7048a9ed0753b61f76f563108"/>
<a href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4"/>
<a href="struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8"/>
<a href="struct_bench_time__t-members.html"/>
<a href="struct_bench_time__t.html"/>
<a href="struct_bench_time__t.html#a9ae6d45c610be9d4b7628a614ccb06d6"/>
<a href="struct_bench_time_channel__t-members.html"/>
<a href="struct_bench_time_channel__t.html"/>
<a href="struct_bench_time_channel__t.html#a095d93e0228641f58b8661e263bc1bcd"/>
<a href="struct_bench_time_channel__t.html#a0f80bb194231df7921712d20bac603c9"/>
<a href="struct_bench_time_channel__t.html#a22a3913e7925aa89cc12ec1d24a6c16c"/>
<a href="struct_bench_time_channel__t.html#a8140fe9e3d323404651f0cfeeae53928"/>
<a href="struct_bench_time_stats__t-members.html"/>
<a href="struct_bench_time_stats__t.html"/>
<a href="struct_bench_time_stats__t.html#a21499b0b19d1ed27f8cea069f674e8ec"/>
<a href="struct_bench_time_stats__t.html#a2c739e1db6b26ceac5db3f2c44c177a0"/>
<a href="struct_bench_time_stats__t.html#a39b71a5d48c4a51a553a26a9fb961ac8"/>
<a href="struct_bench_time_stats__t.html#a3da36eb65b03ba995b5905b4650ea93c"/>
<a href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71"/>
<a href="struct_g_p_i_o___l_e_d_type_def-members.html"/>
<a href="struct_g_p_i_o___l_e_d_type_def.html"/>
<a href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978"/>
@ -283,6 +323,19 @@
<a href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405"/>
<a href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032"/>
<a href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a"/>
<a href="struct_gen_optimizer__t-members.html"/>
<a href="struct_gen_optimizer__t.html"/>
<a href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc"/>
<a href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df"/>
<a href="struct_gen_optimizer__t.html#a8201f1eede36a2c04ec7b4caac7465c9"/>
<a href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73"/>
<a href="struct_gen_optimizer__t.html#a8f226c85e9bb034cb811aa0366bb191c"/>
<a href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9"/>
<a href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192"/>
<a href="struct_gen_optimizer__t.html#acfeb93ef4823e09473ddba52fae9a6b1"/>
<a href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12"/>
<a href="struct_gen_optimizer__t.html#ad4dc0e53b3ca6bf2a642dfe7a1d1f26c"/>
<a href="struct_gen_optimizer__t.html#afe598a90024a8aa628dd16f3a2b38eb5"/>
<a href="struct_h_f___stack_frame__t-members.html"/>
<a href="struct_h_f___stack_frame__t.html"/>
<a href="struct_h_f___stack_frame__t.html#a16563896004751c90e41c81ae4570732"/>

View File

@ -1,10 +0,0 @@
var evolve__optimizer_8h =
[
[ "PARAM_SCALE", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e", null ],
[ "PARAM_UNSCALE", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3", null ],
[ "EVOLVE_MUTATION_MIN_PCT", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6", null ],
[ "EVOLVE_MUTATION_MAX_PCT", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc", null ],
[ "ELOVLE_N_ELITE_CANDIDATE", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb", null ],
[ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21", null ],
[ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef", null ]
];

View File

@ -1 +0,0 @@
41a81c5527cb10d478e05e49562aedc3

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1 +0,0 @@
4993f7378dc2ed7a2e950385e8313f89

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -1,4 +0,0 @@
var examples =
[
[ "SPI_Usage_Example", "_s_p_i__usage__example-example.html", null ]
];

View File

@ -102,27 +102,30 @@ $(function(){initNavTree('files.html','',''); });
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:dynsection.toggleLevel(1);">1</span><span onclick="javascript:dynsection.toggleLevel(2);">2</span><span onclick="javascript:dynsection.toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="dynsection.toggleFolder('0_')"><span class="arrowhead opened"></span></span><span id="img_0_" class="iconfolder" onclick="dynsection.toggleFolder('0_')"><div class="folder-icon open"></div></span><a class="el" href="dir_9e11e9a41112194af3eee6cc728f9515.html" target="_self">MyLibsGeneral</a></td><td class="desc"></td></tr>
<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="dynsection.toggleFolder('0_0_')"><span class="arrowhead opened"></span></span><span id="img_0_0_" class="iconfolder" onclick="dynsection.toggleFolder('0_0_')"><div class="folder-icon open"></div></span><a class="el" href="dir_eb423fea8a9c4b9b32b922020ec391e1.html" target="_self">Inc</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="____general__flash_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>__general_flash.h</b></td><td class="desc"></td></tr>
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="dynsection.toggleFolder('0_')"><span class="arrowhead opened"></span></span><span id="img_0_" class="iconfolder" onclick="dynsection.toggleFolder('0_')"><div class="folder-icon open"></div></span><a class="el" href="dir_d4b2573a0c19afb61452cc3d00967af1.html" target="_self">MyLibs</a></td><td class="desc"></td></tr>
<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="dynsection.toggleFolder('0_0_')"><span class="arrowhead opened"></span></span><span id="img_0_0_" class="iconfolder" onclick="dynsection.toggleFolder('0_0_')"><div class="folder-icon open"></div></span><a class="el" href="dir_8eb68c124db7670c3cb56141b10519ea.html" target="_self">Inc</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="bench__time_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="bench__time_8h.html" target="_self">bench_time.h</a></td><td class="desc">Заголовочный файл для измерения времени между событиями </td></tr>
<tr id="row_0_0_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="bit__access_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="bit__access_8h.html" target="_self">bit_access.h</a></td><td class="desc">Заголочный файл для дефайнов битового доступа </td></tr>
<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="evolve__optimizer_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="evolve__optimizer_8h.html" target="_self">evolve_optimizer.h</a></td><td class="desc">Заголовочный файл для адаптивного подбора параметров </td></tr>
<tr id="row_0_0_3_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__gpio_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__gpio_8h.html" target="_self">general_gpio.h</a></td><td class="desc">Заголовочный файл для модуля инициализации портов и работы с ними </td></tr>
<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__spi_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__spi_8h.html" target="_self">general_spi.h</a></td><td class="desc">Заголовочный файл для модуля инициализации SPI </td></tr>
<tr id="row_0_0_5_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__tim_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__tim_8h.html" target="_self">general_tim.h</a></td><td class="desc">Заголовочный файл для модуля инициализации таймеров и работы с ними </td></tr>
<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__uart_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__uart_8h.html" target="_self">general_uart.h</a></td><td class="desc">Заголовочный файл для модуля инициализации UART </td></tr>
<tr id="row_0_0_7_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="mylibs__config_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="mylibs__config_8h.html" target="_self">mylibs_config.h</a></td><td class="desc">Конфигурации для библиотек MyLibs </td></tr>
<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="mylibs__defs_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="mylibs__defs_8h.html" target="_self">mylibs_defs.h</a></td><td class="desc">Заголочный файл для дефайнов библиотеки MyLibsGeneral </td></tr>
<tr id="row_0_0_9_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="mylibs__include_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="mylibs__include_8h.html" target="_self">mylibs_include.h</a></td><td class="desc">Заголочный файл для всех библиотек </td></tr>
<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="trace_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="trace_8h.html" target="_self">trace.h</a></td><td class="desc">Заголочный файл для работы с трассировкой </td></tr>
<tr id="row_0_0_11_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="trackers_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="trackers_8h.html" target="_self">trackers.h</a></td><td class="desc">Заголочный файл для работы с трекерами <a class="el" href="group___t_r_a_c_k_e_r_s.html">Trackers defines</a> </td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="dynsection.toggleFolder('0_1_')"><span class="arrowhead opened"></span></span><span id="img_0_1_" class="iconfolder" onclick="dynsection.toggleFolder('0_1_')"><div class="folder-icon open"></div></span><a class="el" href="dir_9c80311a018e1f8cfb6659b73d634be4.html" target="_self">Src</a></td><td class="desc"></td></tr>
<tr id="row_0_1_0_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="____general__flash_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>__general_flash.c</b></td><td class="desc"></td></tr>
<tr id="row_0_1_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__gpio_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__gpio_8c.html" target="_self">general_gpio.c</a></td><td class="desc">Модуль для инициализации портов и работы с ними </td></tr>
<tr id="row_0_1_2_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__spi_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__spi_8c.html" target="_self">general_spi.c</a></td><td class="desc">Модуль для инициализации SPI </td></tr>
<tr id="row_0_1_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__tim_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__tim_8c.html" target="_self">general_tim.c</a></td><td class="desc">Модуль для инициализации таймеров и работы с ними </td></tr>
<tr id="row_0_1_4_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__uart_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__uart_8c.html" target="_self">general_uart.c</a></td><td class="desc">Модуль для инициализации UART </td></tr>
<tr id="row_0_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="mainpage_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>mainpage.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="gen__optimizer_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="gen__optimizer_8h.html" target="_self">gen_optimizer.h</a></td><td class="desc">Заголовочный файл для адаптивного подбора параметров </td></tr>
<tr id="row_0_0_3_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="mylibs__config_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="mylibs__config_8h.html" target="_self">mylibs_config.h</a></td><td class="desc">Конфигурации для библиотек MyLibs </td></tr>
<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="mylibs__defs_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="mylibs__defs_8h.html" target="_self">mylibs_defs.h</a></td><td class="desc">Заголочный файл для дефайнов библиотеки MyLibsGeneral </td></tr>
<tr id="row_0_0_5_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="mylibs__include_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="mylibs__include_8h.html" target="_self">mylibs_include.h</a></td><td class="desc">Заголочный файл для всех библиотек </td></tr>
<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="trace_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="trace_8h.html" target="_self">trace.h</a></td><td class="desc">Заголочный файл для работы с трассировкой </td></tr>
<tr id="row_0_0_7_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="trackers_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="trackers_8h.html" target="_self">trackers.h</a></td><td class="desc">Заголочный файл для работы с трекерами <a class="el" href="group___t_r_a_c_k_e_r_s.html">Trackers defines</a> </td></tr>
<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="dynsection.toggleFolder('1_')"><span class="arrowhead opened"></span></span><span id="img_1_" class="iconfolder" onclick="dynsection.toggleFolder('1_')"><div class="folder-icon open"></div></span><a class="el" href="dir_57feeba75fefbd1a9c832b76e3bce520.html" target="_self">STM32_General</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_0_" class="arrow" onclick="dynsection.toggleFolder('1_0_')"><span class="arrowhead opened"></span></span><span id="img_1_0_" class="iconfolder" onclick="dynsection.toggleFolder('1_0_')"><div class="folder-icon open"></div></span><a class="el" href="dir_2cad7b5fa94233a09111fd73c6202518.html" target="_self">Inc</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="____general__flash_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>__general_flash.h</b></td><td class="desc"></td></tr>
<tr id="row_1_0_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__gpio_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__gpio_8h.html" target="_self">general_gpio.h</a></td><td class="desc">Заголовочный файл для модуля инициализации портов и работы с ними </td></tr>
<tr id="row_1_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__spi_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__spi_8h.html" target="_self">general_spi.h</a></td><td class="desc">Заголовочный файл для модуля инициализации SPI </td></tr>
<tr id="row_1_0_3_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__tim_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__tim_8h.html" target="_self">general_tim.h</a></td><td class="desc">Заголовочный файл для модуля инициализации таймеров и работы с ними </td></tr>
<tr id="row_1_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__uart_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__uart_8h.html" target="_self">general_uart.h</a></td><td class="desc">Заголовочный файл для модуля инициализации UART </td></tr>
<tr id="row_1_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_1_" class="arrow" onclick="dynsection.toggleFolder('1_1_')"><span class="arrowhead opened"></span></span><span id="img_1_1_" class="iconfolder" onclick="dynsection.toggleFolder('1_1_')"><div class="folder-icon open"></div></span><a class="el" href="dir_3d5e348fed410a00f9c665596ca3b887.html" target="_self">Src</a></td><td class="desc"></td></tr>
<tr id="row_1_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="____general__flash_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>__general_flash.c</b></td><td class="desc"></td></tr>
<tr id="row_1_1_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__gpio_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__gpio_8c.html" target="_self">general_gpio.c</a></td><td class="desc">Модуль для инициализации портов и работы с ними </td></tr>
<tr id="row_1_1_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__spi_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__spi_8c.html" target="_self">general_spi.c</a></td><td class="desc">Модуль для инициализации SPI </td></tr>
<tr id="row_1_1_3_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__tim_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__tim_8c.html" target="_self">general_tim.c</a></td><td class="desc">Модуль для инициализации таймеров и работы с ними </td></tr>
<tr id="row_1_1_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="general__uart_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__uart_8c.html" target="_self">general_uart.c</a></td><td class="desc">Модуль для инициализации UART </td></tr>
<tr id="row_2_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="mainpage_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>mainpage.h</b></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->

View File

@ -1,4 +1,6 @@
var files_dup =
[
[ "MyLibsGeneral", "dir_9e11e9a41112194af3eee6cc728f9515.html", "dir_9e11e9a41112194af3eee6cc728f9515" ]
[ "MyLibs", "dir_d4b2573a0c19afb61452cc3d00967af1.html", "dir_d4b2573a0c19afb61452cc3d00967af1" ],
[ "STM32_General", "dir_57feeba75fefbd1a9c832b76e3bce520.html", "dir_57feeba75fefbd1a9c832b76e3bce520" ],
[ "mainpage.h", "mainpage_8h_source.html", null ]
];

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<g style="fill:#4665A2;">
<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
</g>
<g style="fill:#D8DFEE;stroke-width:0;">
<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<g style="fill:#C4CFE5;">
<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
</g>
<g style="fill:#4665A2;stroke-width:0;">
<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<g style="fill:#4665A2;">
<path
d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"
id="path2" />
</g>
<g style="fill:#D8DFEE;stroke-width:0;">
<path
d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z"
id="path199" /><path
d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z"
id="path201" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<g style="fill:#C4CFE5;">
<path d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"/>
</g>
<g style="fill:#4665A2;stroke-width:0;">
<path d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z" />
<path d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -100,11 +100,13 @@ $(function(){initNavTree('functions.html','',''); });
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
<h3 class="doxsection"><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>cand_index&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">EvolveOptimizer_t</a></li>
<li>candidates&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">EvolveOptimizer_t</a></li>
<li>cand_index&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">GenOptimizer_t</a></li>
<li>candidates&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">GenOptimizer_t</a></li>
<li>channels&#160;:&#160;<a class="el" href="struct_bench_time__t.html#a9ae6d45c610be9d4b7628a614ccb06d6">BenchTime_t</a></li>
<li>CLK_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">SPI_SettingsTypeDef</a></li>
<li>CLK_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">SPI_SettingsTypeDef</a></li>
<li>CLK_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">SPI_SettingsTypeDef</a></li>
<li>count&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71">BenchTimeStats_t</a></li>
</ul>
@ -122,8 +124,8 @@ $(function(){initNavTree('functions.html','',''); });
<h3 class="doxsection"><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>gen_index&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#ad0f464d7048a9ed0753b61f76f563108">EvolveOptimizer_t</a></li>
<li>gen_mut&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a3be8c0c34db8429210ff470497a56727">EvolveOptimizer_t</a></li>
<li>gen_index&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a8f226c85e9bb034cb811aa0366bb191c">GenOptimizer_t</a></li>
<li>gen_mut&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#acfeb93ef4823e09473ddba52fae9a6b1">GenOptimizer_t</a></li>
<li>GPIO_PIN_RX&#160;:&#160;<a class="el" href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49">UART_SettingsTypeDef</a></li>
<li>GPIO_PIN_SW&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">TIM_EncoderTypeDef</a></li>
<li>GPIO_PIN_TI1&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e">TIM_EncoderTypeDef</a></li>
@ -140,31 +142,39 @@ $(function(){initNavTree('functions.html','',''); });
</ul>
<h3 class="doxsection"><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>is_running&#160;:&#160;<a class="el" href="struct_bench_time_channel__t.html#a0f80bb194231df7921712d20bac603c9">BenchTimeChannel_t</a></li>
</ul>
<h3 class="doxsection"><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>last_ticks&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a2c739e1db6b26ceac5db3f2c44c177a0">BenchTimeStats_t</a></li>
<li>LED_ActiveLvl&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">GPIO_LEDTypeDef</a></li>
<li>LED_Period&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">GPIO_LEDTypeDef</a></li>
<li>LED_Pin&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">GPIO_LEDTypeDef</a></li>
<li>LED_Port&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">GPIO_LEDTypeDef</a></li>
<li>loss&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">EvolveOptimizer_t</a></li>
<li>loss&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">GenOptimizer_t</a></li>
<li>lr&#160;:&#160;<a class="el" href="struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577">HF_StackFrame_t</a></li>
</ul>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>max_ticks&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a3da36eb65b03ba995b5905b4650ea93c">BenchTimeStats_t</a></li>
<li>min_ticks&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a39b71a5d48c4a51a553a26a9fb961ac8">BenchTimeStats_t</a></li>
<li>MISO_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">SPI_SettingsTypeDef</a></li>
<li>MISO_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">SPI_SettingsTypeDef</a></li>
<li>MISO_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">SPI_SettingsTypeDef</a></li>
<li>MOSI_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">SPI_SettingsTypeDef</a></li>
<li>MOSI_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">SPI_SettingsTypeDef</a></li>
<li>MOSI_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">SPI_SettingsTypeDef</a></li>
<li>mutation_amp&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8">EvolveOptimizer_t</a></li>
<li>mutation_amp&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#ad4dc0e53b3ca6bf2a642dfe7a1d1f26c">GenOptimizer_t</a></li>
</ul>
<h3 class="doxsection"><a id="index_n" name="index_n"></a>- n -</h3><ul>
<li>n_best&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6">EvolveOptimizer_t</a></li>
<li>n_cand&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">EvolveOptimizer_t</a></li>
<li>n_params&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8">EvolveOptimizer_t</a></li>
<li>n_best&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a8201f1eede36a2c04ec7b4caac7465c9">GenOptimizer_t</a></li>
<li>n_cand&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9">GenOptimizer_t</a></li>
<li>n_params&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#afe598a90024a8aa628dd16f3a2b38eb5">GenOptimizer_t</a></li>
</ul>
@ -189,10 +199,12 @@ $(function(){initNavTree('functions.html','',''); });
<li>sConfig&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">TIM_EncoderTypeDef</a></li>
<li>size&#160;:&#160;<a class="el" href="struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699">RTT_FlashHeader_t</a></li>
<li>sMasterConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">TIM_SettingsTypeDef</a></li>
<li>sorted_idx&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">EvolveOptimizer_t</a></li>
<li>sorted_idx&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">GenOptimizer_t</a></li>
<li>sSlaveConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">TIM_SettingsTypeDef</a></li>
<li>stability&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c">EvolveOptimizer_t</a></li>
<li>stability&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192">GenOptimizer_t</a></li>
<li>start_tick&#160;:&#160;<a class="el" href="struct_bench_time_channel__t.html#a8140fe9e3d323404651f0cfeeae53928">BenchTimeChannel_t</a></li>
<li>state&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">GPIO_LEDTypeDef</a></li>
<li>stats&#160;:&#160;<a class="el" href="struct_bench_time_channel__t.html#a22a3913e7925aa89cc12ec1d24a6c16c">BenchTimeChannel_t</a></li>
<li>sTickBasePrescaler&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">TIM_SettingsTypeDef</a></li>
<li>sTickBaseUS&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">TIM_SettingsTypeDef</a></li>
<li>sTimAHBFreqMHz&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">TIM_SettingsTypeDef</a></li>
@ -209,6 +221,8 @@ $(function(){initNavTree('functions.html','',''); });
<h3 class="doxsection"><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>tag&#160;:&#160;<a class="el" href="struct_r_t_t___flash_header__t.html#a844ee5470a323a749856cbb7a682dc57">RTT_FlashHeader_t</a></li>
<li>tick_period&#160;:&#160;<a class="el" href="struct_bench_time_channel__t.html#a095d93e0228641f58b8661e263bc1bcd">BenchTimeChannel_t</a></li>
<li>total_ticks&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a21499b0b19d1ed27f8cea069f674e8ec">BenchTimeStats_t</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->

View File

@ -100,11 +100,13 @@ $(function(){initNavTree('functions_vars.html','',''); });
<div class="textblock">Here is a list of all documented variables with links to the class documentation for each member:</div>
<h3 class="doxsection"><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>cand_index&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">EvolveOptimizer_t</a></li>
<li>candidates&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">EvolveOptimizer_t</a></li>
<li>cand_index&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">GenOptimizer_t</a></li>
<li>candidates&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">GenOptimizer_t</a></li>
<li>channels&#160;:&#160;<a class="el" href="struct_bench_time__t.html#a9ae6d45c610be9d4b7628a614ccb06d6">BenchTime_t</a></li>
<li>CLK_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">SPI_SettingsTypeDef</a></li>
<li>CLK_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">SPI_SettingsTypeDef</a></li>
<li>CLK_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">SPI_SettingsTypeDef</a></li>
<li>count&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a5e95ef31dd0daf973894ef2f034d1f71">BenchTimeStats_t</a></li>
</ul>
@ -122,8 +124,8 @@ $(function(){initNavTree('functions_vars.html','',''); });
<h3 class="doxsection"><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>gen_index&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#ad0f464d7048a9ed0753b61f76f563108">EvolveOptimizer_t</a></li>
<li>gen_mut&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a3be8c0c34db8429210ff470497a56727">EvolveOptimizer_t</a></li>
<li>gen_index&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a8f226c85e9bb034cb811aa0366bb191c">GenOptimizer_t</a></li>
<li>gen_mut&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#acfeb93ef4823e09473ddba52fae9a6b1">GenOptimizer_t</a></li>
<li>GPIO_PIN_RX&#160;:&#160;<a class="el" href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49">UART_SettingsTypeDef</a></li>
<li>GPIO_PIN_SW&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">TIM_EncoderTypeDef</a></li>
<li>GPIO_PIN_TI1&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e">TIM_EncoderTypeDef</a></li>
@ -140,31 +142,39 @@ $(function(){initNavTree('functions_vars.html','',''); });
</ul>
<h3 class="doxsection"><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>is_running&#160;:&#160;<a class="el" href="struct_bench_time_channel__t.html#a0f80bb194231df7921712d20bac603c9">BenchTimeChannel_t</a></li>
</ul>
<h3 class="doxsection"><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>last_ticks&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a2c739e1db6b26ceac5db3f2c44c177a0">BenchTimeStats_t</a></li>
<li>LED_ActiveLvl&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">GPIO_LEDTypeDef</a></li>
<li>LED_Period&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">GPIO_LEDTypeDef</a></li>
<li>LED_Pin&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">GPIO_LEDTypeDef</a></li>
<li>LED_Port&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">GPIO_LEDTypeDef</a></li>
<li>loss&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">EvolveOptimizer_t</a></li>
<li>loss&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">GenOptimizer_t</a></li>
<li>lr&#160;:&#160;<a class="el" href="struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577">HF_StackFrame_t</a></li>
</ul>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>max_ticks&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a3da36eb65b03ba995b5905b4650ea93c">BenchTimeStats_t</a></li>
<li>min_ticks&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a39b71a5d48c4a51a553a26a9fb961ac8">BenchTimeStats_t</a></li>
<li>MISO_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">SPI_SettingsTypeDef</a></li>
<li>MISO_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">SPI_SettingsTypeDef</a></li>
<li>MISO_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">SPI_SettingsTypeDef</a></li>
<li>MOSI_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">SPI_SettingsTypeDef</a></li>
<li>MOSI_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">SPI_SettingsTypeDef</a></li>
<li>MOSI_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">SPI_SettingsTypeDef</a></li>
<li>mutation_amp&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8">EvolveOptimizer_t</a></li>
<li>mutation_amp&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#ad4dc0e53b3ca6bf2a642dfe7a1d1f26c">GenOptimizer_t</a></li>
</ul>
<h3 class="doxsection"><a id="index_n" name="index_n"></a>- n -</h3><ul>
<li>n_best&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6">EvolveOptimizer_t</a></li>
<li>n_cand&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">EvolveOptimizer_t</a></li>
<li>n_params&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8">EvolveOptimizer_t</a></li>
<li>n_best&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a8201f1eede36a2c04ec7b4caac7465c9">GenOptimizer_t</a></li>
<li>n_cand&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9">GenOptimizer_t</a></li>
<li>n_params&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#afe598a90024a8aa628dd16f3a2b38eb5">GenOptimizer_t</a></li>
</ul>
@ -189,10 +199,12 @@ $(function(){initNavTree('functions_vars.html','',''); });
<li>sConfig&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">TIM_EncoderTypeDef</a></li>
<li>size&#160;:&#160;<a class="el" href="struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699">RTT_FlashHeader_t</a></li>
<li>sMasterConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">TIM_SettingsTypeDef</a></li>
<li>sorted_idx&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">EvolveOptimizer_t</a></li>
<li>sorted_idx&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">GenOptimizer_t</a></li>
<li>sSlaveConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">TIM_SettingsTypeDef</a></li>
<li>stability&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c">EvolveOptimizer_t</a></li>
<li>stability&#160;:&#160;<a class="el" href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192">GenOptimizer_t</a></li>
<li>start_tick&#160;:&#160;<a class="el" href="struct_bench_time_channel__t.html#a8140fe9e3d323404651f0cfeeae53928">BenchTimeChannel_t</a></li>
<li>state&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">GPIO_LEDTypeDef</a></li>
<li>stats&#160;:&#160;<a class="el" href="struct_bench_time_channel__t.html#a22a3913e7925aa89cc12ec1d24a6c16c">BenchTimeChannel_t</a></li>
<li>sTickBasePrescaler&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">TIM_SettingsTypeDef</a></li>
<li>sTickBaseUS&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">TIM_SettingsTypeDef</a></li>
<li>sTimAHBFreqMHz&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">TIM_SettingsTypeDef</a></li>
@ -209,6 +221,8 @@ $(function(){initNavTree('functions_vars.html','',''); });
<h3 class="doxsection"><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>tag&#160;:&#160;<a class="el" href="struct_r_t_t___flash_header__t.html#a844ee5470a323a749856cbb7a682dc57">RTT_FlashHeader_t</a></li>
<li>tick_period&#160;:&#160;<a class="el" href="struct_bench_time_channel__t.html#a095d93e0228641f58b8661e263bc1bcd">BenchTimeChannel_t</a></li>
<li>total_ticks&#160;:&#160;<a class="el" href="struct_bench_time_stats__t.html#a21499b0b19d1ed27f8cea069f674e8ec">BenchTimeStats_t</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h File Reference</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/gen_optimizer.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>
@ -71,7 +71,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('evolve__optimizer_8h.html','',''); });
$(function(){initNavTree('gen__optimizer_8h.html','',''); });
</script>
<div id="container">
<div id="doc-content">
@ -97,7 +97,7 @@ $(function(){initNavTree('evolve__optimizer_8h.html','',''); });
</div>
<div class="header">
<div class="headertitle"><div class="title">evolve_optimizer.h File Reference</div></div>
<div class="headertitle"><div class="title">gen_optimizer.h File Reference</div></div>
</div><!--header-->
<div class="contents">
@ -106,13 +106,13 @@ $(function(){initNavTree('evolve__optimizer_8h.html','',''); });
<div class="textblock"><code>#include &quot;<a class="el" href="mylibs__defs_8h_source.html">mylibs_defs.h</a>&quot;</code><br />
<code>#include &lt;stdint.h&gt;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for evolve_optimizer.h:</div>
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for gen_optimizer.h:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="evolve__optimizer_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2evolve__optimizer_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2evolve__optimizer_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2evolve__optimizer_8h">
<area shape="rect" title="Заголовочный файл для адаптивного подбора параметров" alt="" coords="73,5,271,64"/>
<div class="center"><img src="gen__optimizer_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2gen__optimizer_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2gen__optimizer_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2gen__optimizer_8h">
<area shape="rect" title="Заголовочный файл для адаптивного подбора параметров" alt="" coords="84,5,260,64"/>
<area shape="rect" href="mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="13,112,115,139"/>
<area shape="poly" title=" " alt="" coords="139,66,93,104,89,100,136,62"/>
<area shape="rect" title=" " alt="" coords="140,112,204,139"/>
@ -129,45 +129,45 @@ $(function(){initNavTree('evolve__optimizer_8h.html','',''); });
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="evolve__optimizer_8h__dep__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2evolve__optimizer_8hdep" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2evolve__optimizer_8hdep" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_inc_2evolve__optimizer_8hdep">
<area shape="rect" title="Заголовочный файл для адаптивного подбора параметров" alt="" coords="5,5,204,64"/>
<area shape="rect" href="mylibs__include_8h.html" title="Заголочный файл для всех библиотек" alt="" coords="5,112,204,171"/>
<area shape="poly" title=" " alt="" coords="107,80,107,112,102,112,102,80"/>
<div class="center"><img src="gen__optimizer_8h__dep__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2gen__optimizer_8hdep" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2gen__optimizer_8hdep" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_2_inc_2gen__optimizer_8hdep">
<area shape="rect" title="Заголовочный файл для адаптивного подбора параметров" alt="" coords="5,5,182,64"/>
<area shape="rect" href="mylibs__include_8h.html" title="Заголочный файл для всех библиотек" alt="" coords="5,112,182,171"/>
<area shape="poly" title=" " alt="" coords="96,80,96,112,91,112,91,80"/>
</map>
</div>
</div>
<p><a href="evolve__optimizer_8h_source.html">Go to the source code of this file.</a></p>
<p><a href="gen__optimizer_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:EvolveOptimizer_5Ft" id="r_EvolveOptimizer_5Ft"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура эволюционного оптимизатора <a href="struct_evolve_optimizer__t.html#details">More...</a><br /></td></tr>
<tr class="memitem:GenOptimizer_5Ft" id="r_GenOptimizer_5Ft"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gen_optimizer__t.html">GenOptimizer_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура эволюционного оптимизатора <a href="struct_gen_optimizer__t.html#details">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga83abbcabaff9111c03ae2475ee72ea3e" id="r_ga83abbcabaff9111c03ae2475ee72ea3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e">PARAM_SCALE</a>(x, min_val, max_val)</td></tr>
<tr class="memitem:ga83abbcabaff9111c03ae2475ee72ea3e" id="r_ga83abbcabaff9111c03ae2475ee72ea3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e">PARAM_SCALE</a>(x, min_val, max_val)</td></tr>
<tr class="memdesc:ga83abbcabaff9111c03ae2475ee72ea3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Линейное масштабирование x из диапазона [min_val, max_val] в диапазон [0, 1) <br /></td></tr>
<tr class="memitem:gaa1d5510fe5f0bd989473f3ebe324bde3" id="r_gaa1d5510fe5f0bd989473f3ebe324bde3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3">PARAM_UNSCALE</a>(val, min_val, max_val)</td></tr>
<tr class="memitem:gaa1d5510fe5f0bd989473f3ebe324bde3" id="r_gaa1d5510fe5f0bd989473f3ebe324bde3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3">PARAM_UNSCALE</a>(val, min_val, max_val)</td></tr>
<tr class="memdesc:gaa1d5510fe5f0bd989473f3ebe324bde3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обратное линейное масштабирование значения из [0, 1) в диапазон [min_val, max_val]. <br /></td></tr>
<tr class="memitem:ga2f2b1be34ad4eb1bf3267237200cd6c6" id="r_ga2f2b1be34ad4eb1bf3267237200cd6c6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6">EVOLVE_MUTATION_MIN_PCT</a>&#160;&#160;&#160;10</td></tr>
<tr class="memdesc:ga2f2b1be34ad4eb1bf3267237200cd6c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Минимальная мутация (в процентах от Loss) <br /></td></tr>
<tr class="memitem:ga861c1c6a503c21441abcec0d57b848bc" id="r_ga861c1c6a503c21441abcec0d57b848bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc">EVOLVE_MUTATION_MAX_PCT</a>&#160;&#160;&#160;100</td></tr>
<tr class="memdesc:ga861c1c6a503c21441abcec0d57b848bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Максимальная мутация (в процентах от Loss) <br /></td></tr>
<tr class="memitem:ga38607e23d9234524bc7de5869b15b8eb" id="r_ga38607e23d9234524bc7de5869b15b8eb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb">ELOVLE_N_ELITE_CANDIDATE</a>&#160;&#160;&#160;2</td></tr>
<tr class="memitem:ga3db7bdf57549722427e1e72dcaa87068" id="r_ga3db7bdf57549722427e1e72dcaa87068"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga3db7bdf57549722427e1e72dcaa87068">GEN_MUTATION_MIN_PCT</a>&#160;&#160;&#160;10</td></tr>
<tr class="memdesc:ga3db7bdf57549722427e1e72dcaa87068"><td class="mdescLeft">&#160;</td><td class="mdescRight">Минимальная мутация (в процентах от Loss) <br /></td></tr>
<tr class="memitem:ga48dca8f0a0c9b96d02236ef76ac827fd" id="r_ga48dca8f0a0c9b96d02236ef76ac827fd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga48dca8f0a0c9b96d02236ef76ac827fd">GEN_MUTATION_MAX_PCT</a>&#160;&#160;&#160;100</td></tr>
<tr class="memdesc:ga48dca8f0a0c9b96d02236ef76ac827fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Максимальная мутация (в процентах от Loss) <br /></td></tr>
<tr class="memitem:ga38607e23d9234524bc7de5869b15b8eb" id="r_ga38607e23d9234524bc7de5869b15b8eb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb">ELOVLE_N_ELITE_CANDIDATE</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ga38607e23d9234524bc7de5869b15b8eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2) <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga4e3ea118b5b9068619c57724a925ba21" id="r_ga4e3ea118b5b9068619c57724a925ba21"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21">EvolveOptimizer_Init</a> (<a class="el" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a> *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, float mutation_amp, float *start_params)</td></tr>
<tr class="memdesc:ga4e3ea118b5b9068619c57724a925ba21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация эволюционного оптимизатора. <br /></td></tr>
<tr class="memitem:gaef44a1f3298514569cc2b396a92101ef" id="r_gaef44a1f3298514569cc2b396a92101ef"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef">EvolveOptimizer_Step</a> (<a class="el" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a> *opt, float *params, float loss)</td></tr>
<tr class="memdesc:gaef44a1f3298514569cc2b396a92101ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Один шаг эволюционного оптимизатора. <br /></td></tr>
<tr class="memitem:ga2db1df46b4082ad9280ef4344fdf4e8a" id="r_ga2db1df46b4082ad9280ef4344fdf4e8a"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga2db1df46b4082ad9280ef4344fdf4e8a">GenOptimizer_Init</a> (<a class="el" href="struct_gen_optimizer__t.html">GenOptimizer_t</a> *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, float mutation_amp, float *start_params)</td></tr>
<tr class="memdesc:ga2db1df46b4082ad9280ef4344fdf4e8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация эволюционного оптимизатора. <br /></td></tr>
<tr class="memitem:gaa9a4c4f43f7beb926c85bd4817ebd628" id="r_gaa9a4c4f43f7beb926c85bd4817ebd628"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa9a4c4f43f7beb926c85bd4817ebd628">GenOptimizer_Step</a> (<a class="el" href="struct_gen_optimizer__t.html">GenOptimizer_t</a> *opt, float *params, float loss)</td></tr>
<tr class="memdesc:gaa9a4c4f43f7beb926c85bd4817ebd628"><td class="mdescLeft">&#160;</td><td class="mdescRight">Один шаг эволюционного оптимизатора. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Заголовочный файл для адаптивного подбора параметров </p>
<p class="definition">Definition in file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
<p class="definition">Definition in file <a class="el" href="gen__optimizer_8h_source.html">gen_optimizer.h</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
@ -181,7 +181,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_eb423fea8a9c4b9b32b922020ec391e1.html">Inc</a></li><li class="navelem"><a href="evolve__optimizer_8h.html">evolve_optimizer.h</a></li>
<li class="navelem"><a href="dir_d4b2573a0c19afb61452cc3d00967af1.html">MyLibs</a></li><li class="navelem"><a href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a></li><li class="navelem"><a href="gen__optimizer_8h.html">gen_optimizer.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -0,0 +1,10 @@
var gen__optimizer_8h =
[
[ "PARAM_SCALE", "group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e", null ],
[ "PARAM_UNSCALE", "group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3", null ],
[ "GEN_MUTATION_MIN_PCT", "group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga3db7bdf57549722427e1e72dcaa87068", null ],
[ "GEN_MUTATION_MAX_PCT", "group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga48dca8f0a0c9b96d02236ef76ac827fd", null ],
[ "ELOVLE_N_ELITE_CANDIDATE", "group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb", null ],
[ "GenOptimizer_Init", "group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga2db1df46b4082ad9280ef4344fdf4e8a", null ],
[ "GenOptimizer_Step", "group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa9a4c4f43f7beb926c85bd4817ebd628", null ]
];

View File

@ -1,5 +1,5 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для адаптивного подбора параметров" alt="" coords="5,5,204,64"/>
<area shape="rect" id="Node000002" href="$mylibs__include_8h.html" title="Заголочный файл для всех библиотек" alt="" coords="5,112,204,171"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="107,80,107,112,102,112,102,80"/>
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/gen_optimizer.h" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/gen_optimizer.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для адаптивного подбора параметров" alt="" coords="5,5,182,64"/>
<area shape="rect" id="Node000002" href="$mylibs__include_8h.html" title="Заголочный файл для всех библиотек" alt="" coords="5,112,182,171"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="96,80,96,112,91,112,91,80"/>
</map>

View File

@ -0,0 +1 @@
bc415c9dddbdac24a11e95d2be89e955

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,5 +1,5 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для адаптивного подбора параметров" alt="" coords="73,5,271,64"/>
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/gen_optimizer.h" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/gen_optimizer.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для адаптивного подбора параметров" alt="" coords="84,5,260,64"/>
<area shape="rect" id="Node000002" href="$mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="13,112,115,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="139,66,93,104,89,100,136,62"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="140,112,204,139"/>

View File

@ -0,0 +1 @@
0acd416c6eac40e5c785db60f3cb0711

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h Source File</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibs/Inc/gen_optimizer.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@ -71,7 +71,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
$(function(){initNavTree('gen__optimizer_8h_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
@ -97,15 +97,15 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
</div>
<div class="header">
<div class="headertitle"><div class="title">evolve_optimizer.h</div></div>
<div class="headertitle"><div class="title">gen_optimizer.h</div></div>
</div><!--header-->
<div class="contents">
<a href="evolve__optimizer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/**</span></div>
<a href="gen__optimizer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/**</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file evolve_optimizer.h</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file gen_optimizer.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Заголовочный файл для адаптивного подбора параметров</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">******************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* @addtogroup EVOLVE_OPTIMIZER Evolve optimizer</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* @addtogroup GEN_OPTIMIZER Genetic optimizer</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* @ingroup MYLIBS_DEFINES</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* @brief Библиотека для эволюционного подбора параметров</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* @details</span></div>
@ -117,24 +117,24 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"></span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"></span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">Параметры для конфигурации:</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">- @ref ENABLE_EVOLVE_OPTIMIZATION - Включить оптимизацию параметров</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> Если библиотека отключена @ref ENABLE_EVOLVE_OPTIMIZATION, то вставляются </span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">- @ref GEN_OPTIMIZATION_ENABLE - Включить оптимизацию параметров</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> Если библиотека отключена @ref GEN_OPTIMIZATION_ENABLE, то вставляются </span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> заглушки, никак не влияющие на параметры и остальную программу</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">- @ref EVOLVE_MAX_PARAMS - Максимальное количество параметров</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">- @ref EVOLVE_MAX_CANDIDATES - Максимальное количество кандидатов для обучения</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">- (опционально) @ref EVOLVE_MUTATION_MIN_PCT - Минимальная мутация в процентах от Loss (по умолчанию 10%)</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">- (опционально) @ref EVOLVE_MUTATION_MAX_PCT - Максимальная мутация в процентах от Loss (по умолчанию 100%)</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">- @ref GEN_MAX_PARAMS - Максимальное количество параметров</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">- @ref GEN_MAX_CANDIDATES - Максимальное количество кандидатов для обучения</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">- (опционально) @ref GEN_MUTATION_MIN_PCT - Минимальная мутация в процентах от Loss (по умолчанию 10%)</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">- (опционально) @ref GEN_MUTATION_MAX_PCT - Максимальная мутация в процентах от Loss (по умолчанию 100%)</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">- (опционально) @ref ELOVLE_N_ELITE_CANDIDATE - Количество кандидатов, которые проходят в поколение без изменений</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"></span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">@par Пример использования:</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">@code</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">#include &quot;evolve_optimizer.h&quot;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">#include &quot;gen_optimizer.h&quot;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">#define N_PARAMS 4</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">#define N_CANDIDATES 100</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment">#define N_BEST 10</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment">#define MUTATION 0.1f</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment">float params[N_PARAMS];</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">EvolveOptimizer_t optimizer;</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">GenOptimizer_t optimizer;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"></span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">// Формирование параметров</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment">uint16_t param_u16 = 800;</span></div>
@ -147,11 +147,11 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">params[3] = PARAM_SCALE(param_i16, 500.0f, 5000.0f);</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment"></span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">// Инициалиазция</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment">EvolveOptimizer_Init(&amp;optimizer, N_PARAMS, N_CANDIDATES, N_BEST, MUTATION, params);</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment">GenOptimizer_Init(&amp;optimizer, N_PARAMS, N_CANDIDATES, N_BEST, MUTATION, params);</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment"></span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment">// Шаг эволюции</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment">float loss = calc_loss(); // расчет эффективности параметров (от 0 до 1)</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">EvolveOptimizer_Step(&amp;optimizer, params, loss);</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">GenOptimizer_Step(&amp;optimizer, params, loss);</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment"></span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">// Взятие следующих для эволюции параметров</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment">param_u16 = PARAM_UNSCALE(params[0], 0.0f, 1000.0f);</span></div>
@ -161,19 +161,19 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment">@endcode</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment">* @{ </span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment">*****************************************************************************/</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor">#ifndef __EVOLVE_OPTIMIZER_H_</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="preprocessor">#define __EVOLVE_OPTIMIZER_H_</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor">#ifndef __GEN_OPTIMIZER_H_</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="preprocessor">#define __GEN_OPTIMIZER_H_</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor">#include &quot;<a class="code" href="mylibs__defs_8h.html">mylibs_defs.h</a>&quot;</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor">#ifdef ENABLE_EVOLVE_OPTIMIZATION</span><span class="comment"></span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor">#ifdef GEN_OPTIMIZATION_ENABLE</span><span class="comment"></span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment">/**</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * @brief Линейное масштабирование x из диапазона [min_val, max_val] в диапазон [0, 1)</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> */</span><span class="preprocessor"></span></div>
<div class="foldopen" id="foldopen00073" data-start="" data-end="">
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e"> 73</a></span><span class="preprocessor">#define PARAM_SCALE(x, min_val, max_val) \</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e"> 73</a></span><span class="preprocessor">#define PARAM_SCALE(x, min_val, max_val) \</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="preprocessor">(((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val)))</span></div>
</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"></span> </div>
@ -181,7 +181,7 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"> * @brief Обратное линейное масштабирование значения из [0, 1) в диапазон [min_val, max_val]</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00079" data-start="" data-end="">
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3"> 79</a></span><span class="preprocessor">#define PARAM_UNSCALE(val, min_val, max_val) \</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3"> 79</a></span><span class="preprocessor">#define PARAM_UNSCALE(val, min_val, max_val) \</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor">(((float)(val)) * ((float)(max_val) - (float)(min_val)) + (float)(min_val))</span></div>
</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
@ -191,14 +191,14 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="preprocessor">#ifndef EVOLVE_MUTATION_MIN_PCT</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6"> 89</a></span><span class="preprocessor">#define EVOLVE_MUTATION_MIN_PCT 10 </span><span class="comment">///&lt; Минимальная мутация (в процентах от Loss)</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="preprocessor">#ifndef GEN_MUTATION_MIN_PCT</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga3db7bdf57549722427e1e72dcaa87068"> 89</a></span><span class="preprocessor">#define GEN_MUTATION_MIN_PCT 10 </span><span class="comment">///&lt; Минимальная мутация (в процентах от Loss)</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor">#ifndef EVOLVE_MUTATION_MAX_PCT</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc"> 92</a></span><span class="preprocessor">#define EVOLVE_MUTATION_MAX_PCT 100 </span><span class="comment">///&lt; Максимальная мутация (в процентах от Loss)</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor">#ifndef GEN_MUTATION_MAX_PCT</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga48dca8f0a0c9b96d02236ef76ac827fd"> 92</a></span><span class="preprocessor">#define GEN_MUTATION_MAX_PCT 100 </span><span class="comment">///&lt; Максимальная мутация (в процентах от Loss)</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor">#ifndef ELOVLE_N_ELITE_CANDIDATE</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb"> 95</a></span><span class="preprocessor">#define ELOVLE_N_ELITE_CANDIDATE 2 </span><span class="comment">///&lt; Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2)</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb"> 95</a></span><span class="preprocessor">#define ELOVLE_N_ELITE_CANDIDATE 2 </span><span class="comment">///&lt; Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2)</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"></span> </div>
@ -206,40 +206,40 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> * @brief Структура эволюционного оптимизатора</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00102" data-start="{" data-end="};">
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html"> 102</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c"> 103</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c">stability</a>; <span class="comment">///&lt; Коэффициент насколько стабильная популяция (0..1)(@ref n_cand)</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html"> 102</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192"> 103</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192">stability</a>; <span class="comment">///&lt; Коэффициент насколько стабильная популяция (0..1)(@ref n_cand)</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8"> 105</a></span> uint16_t <a class="code hl_variable" href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8">n_params</a>; <span class="comment">///&lt; Количество параметров</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1"> 106</a></span> uint16_t <a class="code hl_variable" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">n_cand</a>; <span class="comment">///&lt; Количество кандидатов в популяции</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6"> 107</a></span> uint16_t <a class="code hl_variable" href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6">n_best</a>; <span class="comment">///&lt; Количество лучших, усредняемых</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8"> 108</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8">mutation_amp</a>; <span class="comment">///&lt; Амплитуда мутации (0..1)</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#afe598a90024a8aa628dd16f3a2b38eb5"> 105</a></span> uint16_t <a class="code hl_variable" href="struct_gen_optimizer__t.html#afe598a90024a8aa628dd16f3a2b38eb5">n_params</a>; <span class="comment">///&lt; Количество параметров</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9"> 106</a></span> uint16_t <a class="code hl_variable" href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9">n_cand</a>; <span class="comment">///&lt; Количество кандидатов в популяции</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#a8201f1eede36a2c04ec7b4caac7465c9"> 107</a></span> uint16_t <a class="code hl_variable" href="struct_gen_optimizer__t.html#a8201f1eede36a2c04ec7b4caac7465c9">n_best</a>; <span class="comment">///&lt; Количество лучших, усредняемых</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#ad4dc0e53b3ca6bf2a642dfe7a1d1f26c"> 108</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_gen_optimizer__t.html#ad4dc0e53b3ca6bf2a642dfe7a1d1f26c">mutation_amp</a>; <span class="comment">///&lt; Амплитуда мутации (0..1)</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae"> 110</a></span> uint16_t <a class="code hl_variable" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">cand_index</a>; <span class="comment">///&lt; Индекс кандидата для обработки</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#ad0f464d7048a9ed0753b61f76f563108"> 111</a></span> uint16_t <a class="code hl_variable" href="struct_evolve_optimizer__t.html#ad0f464d7048a9ed0753b61f76f563108">gen_index</a>; <span class="comment">///&lt; Индекс популяции </span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc"> 110</a></span> uint16_t <a class="code hl_variable" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">cand_index</a>; <span class="comment">///&lt; Индекс текущего кандидата</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#a8f226c85e9bb034cb811aa0366bb191c"> 111</a></span> uint16_t <a class="code hl_variable" href="struct_gen_optimizer__t.html#a8f226c85e9bb034cb811aa0366bb191c">gen_index</a>; <span class="comment">///&lt; Индекс популяции </span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="comment">//INTERNAL</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#a3be8c0c34db8429210ff470497a56727"> 114</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_evolve_optimizer__t.html#a3be8c0c34db8429210ff470497a56727">gen_mut</a>; <span class="comment">///&lt; Амплитуда мутации у текущей популяции </span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#acfeb93ef4823e09473ddba52fae9a6b1"> 114</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_gen_optimizer__t.html#acfeb93ef4823e09473ddba52fae9a6b1">gen_mut</a>; <span class="comment">///&lt; Амплитуда мутации у текущей популяции </span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df"> 116</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[<a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971">EVOLVE_MAX_CANDIDATES</a>]; <span class="comment">///&lt; Loss для каждого кандидата</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4"> 117</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[<a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971">EVOLVE_MAX_CANDIDATES</a>][<a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee">EVOLVE_MAX_PARAMS</a>]; <span class="comment">///&lt; Параметры кандидатов</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a"> 118</a></span> uint16_t <a class="code hl_variable" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">sorted_idx</a>[<a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971">EVOLVE_MAX_CANDIDATES</a>]; <span class="comment">///&lt; Индексы отсортированных кандидатов</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span>} <a class="code hl_struct" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a>;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73"> 116</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[<a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga201cffde04ebc6540869c74bd1dae869">GEN_MAX_CANDIDATES</a>]; <span class="comment">///&lt; Loss для каждого кандидата</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df"> 117</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[<a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga201cffde04ebc6540869c74bd1dae869">GEN_MAX_CANDIDATES</a>][<a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga8daf4b266a95353d580bd7946f47c0ab">GEN_MAX_PARAMS</a>]; <span class="comment">///&lt; Параметры кандидатов</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12"> 118</a></span> uint16_t <a class="code hl_variable" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">sorted_idx</a>[<a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga201cffde04ebc6540869c74bd1dae869">GEN_MAX_CANDIDATES</a>]; <span class="comment">///&lt; Индексы отсортированных кандидатов</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span>} <a class="code hl_struct" href="struct_gen_optimizer__t.html">GenOptimizer_t</a>;</div>
</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"></span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment">/** </span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> * @cond EVOLVE_INTERNAL</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> * @cond GEN_INTERNAL</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> */</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment">// Вспомогательный указатель для сортировки</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="keyword">static</span> <a class="code hl_struct" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a> *g_sort_opt; <span class="comment">// глобальный указатель на текущий оптимизатор</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="keyword">static</span> <a class="code hl_struct" href="struct_gen_optimizer__t.html">GenOptimizer_t</a> *g_sort_opt; <span class="comment">// глобальный указатель на текущий оптимизатор</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment">// функция условия сортировки</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="keyword">static</span> <span class="keywordtype">int</span> cmp_idx(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b) {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">if</span> (g_sort_opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[*(<span class="keyword">const</span> uint16_t*)a] &lt; g_sort_opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[*(<span class="keyword">const</span> uint16_t*)b]) </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">if</span> (g_sort_opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[*(<span class="keyword">const</span> uint16_t*)a] &lt; g_sort_opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[*(<span class="keyword">const</span> uint16_t*)b]) </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">if</span> (g_sort_opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[*(<span class="keyword">const</span> uint16_t*)a] &gt; g_sort_opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[*(<span class="keyword">const</span> uint16_t*)b]) </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">if</span> (g_sort_opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[*(<span class="keyword">const</span> uint16_t*)a] &gt; g_sort_opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[*(<span class="keyword">const</span> uint16_t*)b]) </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">return</span> 1;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span>}<span class="comment"></span></div>
@ -261,7 +261,7 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="comment"> * -1 — если ошибка</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00155" data-start="{" data-end="}">
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21"> 155</a></span>__STATIC_INLINE <span class="keywordtype">int</span> <a class="code hl_function" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21">EvolveOptimizer_Init</a>(<a class="code hl_struct" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a>* opt,</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga2db1df46b4082ad9280ef4344fdf4e8a"> 155</a></span><span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_function" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga2db1df46b4082ad9280ef4344fdf4e8a">GenOptimizer_Init</a>(<a class="code hl_struct" href="struct_gen_optimizer__t.html">GenOptimizer_t</a>* opt,</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> uint16_t n_params,</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> uint16_t n_cand,</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> uint16_t n_best,</div>
@ -271,24 +271,24 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">if</span>((opt == NULL) || (start_params == NULL))</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">if</span>(n_params &gt; <a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee">EVOLVE_MAX_PARAMS</a>)</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">if</span>(n_params &gt; <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga8daf4b266a95353d580bd7946f47c0ab">GEN_MAX_PARAMS</a>)</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">return</span> -1; </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8">n_params</a> = n_params;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#afe598a90024a8aa628dd16f3a2b38eb5">n_params</a> = n_params;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">if</span>(n_cand &gt; <a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971">EVOLVE_MAX_CANDIDATES</a>)</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">if</span>(n_cand &gt; <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga201cffde04ebc6540869c74bd1dae869">GEN_MAX_CANDIDATES</a>)</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> -1; </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">n_cand</a> = n_cand;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9">n_cand</a> = n_cand;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">if</span>(n_best &gt; <a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971">EVOLVE_MAX_CANDIDATES</a>/2)</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">if</span>(n_best &gt; <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga201cffde04ebc6540869c74bd1dae869">GEN_MAX_CANDIDATES</a>/2)</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">return</span> -1; </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6">n_best</a> = n_best;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8201f1eede36a2c04ec7b4caac7465c9">n_best</a> = n_best;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> </div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">if</span>((mutation_amp &gt; 1) || (mutation_amp &lt; 0))</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">return</span> -1; </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">if</span>(mutation_amp &lt;= 0.001f)</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> mutation_amp = 0.001f; </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8">mutation_amp</a> = mutation_amp;</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#ad4dc0e53b3ca6bf2a642dfe7a1d1f26c">mutation_amp</a> = mutation_amp;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> uint32_t seed = <a class="code hl_define" href="group___l_i_b_s___c_o_n_f_i_g.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a>();</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="preprocessor">#ifdef ADC1</span></div>
@ -302,15 +302,15 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordtype">float</span> base = start_params[j];</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordtype">float</span> inv_randmax = 1.0f / (float)RAND_MAX;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keywordtype">float</span> noise = ((float)rand() * inv_randmax * 2.0f - 1.0f) * mutation_amp;</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[i][j] = base + noise;</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[i][j] &lt; 0.0f) opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[i][j] = 0.0f;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[i][j] &gt; 1.0f) opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[i][j] = 1.0f;</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[i][j] = base + noise;</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[i][j] &lt; 0.0f) opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[i][j] = 0.0f;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[i][j] &gt; 1.0f) opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[i][j] = 1.0f;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> }</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[i] = 0.0f;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[i] = 0.0f;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> }</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">cand_index</a> = 0;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#ad0f464d7048a9ed0753b61f76f563108">gen_index</a> = 0;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">cand_index</a> = 0;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8f226c85e9bb034cb811aa0366bb191c">gen_index</a> = 0;</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span>}</div>
</div>
@ -333,50 +333,50 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment"> * Надо убедится что только один экземпляр функции запущен в момент времени</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00225" data-start="{" data-end="}">
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef"> 225</a></span>__STATIC_INLINE <span class="keywordtype">int</span> <a class="code hl_function" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef">EvolveOptimizer_Step</a>(<a class="code hl_struct" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a>* opt,</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"><a class="line" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa9a4c4f43f7beb926c85bd4817ebd628"> 225</a></span><span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code hl_function" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa9a4c4f43f7beb926c85bd4817ebd628">GenOptimizer_Step</a>(<a class="code hl_struct" href="struct_gen_optimizer__t.html">GenOptimizer_t</a>* opt,</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keywordtype">float</span>* params,</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordtype">float</span> loss)</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span>{</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">if</span>((opt == NULL) || (params == NULL))</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> uint16_t n_params = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8">n_params</a>; </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">if</span>(n_params &gt; <a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee">EVOLVE_MAX_PARAMS</a>)</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> uint16_t n_params = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#afe598a90024a8aa628dd16f3a2b38eb5">n_params</a>; </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">if</span>(n_params &gt; <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga8daf4b266a95353d580bd7946f47c0ab">GEN_MAX_PARAMS</a>)</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">return</span> -1; </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> uint16_t n_cand = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">n_cand</a>; </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">if</span>(n_cand &gt; <a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971">EVOLVE_MAX_CANDIDATES</a>)</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> uint16_t n_cand = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9">n_cand</a>; </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">if</span>(n_cand &gt; <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga201cffde04ebc6540869c74bd1dae869">GEN_MAX_CANDIDATES</a>)</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">return</span> -1; </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> </div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> uint16_t n_best = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6">n_best</a>; </div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">if</span>(n_best &gt; <a class="code hl_define" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971">EVOLVE_MAX_CANDIDATES</a>/2)</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> uint16_t n_best = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8201f1eede36a2c04ec7b4caac7465c9">n_best</a>; </div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">if</span>(n_best &gt; <a class="code hl_define" href="group___g_e_n___c_o_n_f_i_g.html#ga201cffde04ebc6540869c74bd1dae869">GEN_MAX_CANDIDATES</a>/2)</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordtype">float</span> mut = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8">mutation_amp</a>;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordtype">float</span> mut = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#ad4dc0e53b3ca6bf2a642dfe7a1d1f26c">mutation_amp</a>;</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">if</span>((mut &gt; 1) ||(mut &lt; 0))</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// 1. Сохраняем loss текущего кандидата</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">cand_index</a>] = loss;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">cand_index</a>++;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">cand_index</a>] = loss;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">cand_index</a>++;</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">cand_index</a> &gt;= n_cand) {</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">cand_index</a> &gt;= n_cand) {</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="comment">// 2. Сортируем текущее поколение по loss</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">n_cand</a>; i++)</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">sorted_idx</a>[i] = i;</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">for</span>(uint16_t i = 0; i &lt; opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9">n_cand</a>; i++)</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">sorted_idx</a>[i] = i;</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> g_sort_opt = opt;</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> qsort(opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">sorted_idx</a>, opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">n_cand</a>, <span class="keyword">sizeof</span>(uint16_t), cmp_idx);</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> qsort(opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">sorted_idx</a>, opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9">n_cand</a>, <span class="keyword">sizeof</span>(uint16_t), cmp_idx);</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> g_sort_opt = NULL;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> </div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="comment">// --- Адаптивная мутация в зависимости от Loss ---</span></div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordtype">float</span> best_loss = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">sorted_idx</a>[0]];</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordtype">float</span> worst_loss = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">sorted_idx</a>[opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">n_cand</a> - 1]];</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordtype">float</span> best_loss = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">sorted_idx</a>[0]];</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordtype">float</span> worst_loss = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">sorted_idx</a>[opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9">n_cand</a> - 1]];</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="keywordtype">float</span> diff = worst_loss - best_loss;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordtype">float</span> sum_loss = 0.0f;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">for</span> (uint16_t i = 0; i &lt; n_cand; i++)</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> sum_loss += opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[i];</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> sum_loss += opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[i];</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordtype">float</span> avg_loss = sum_loss / (float)n_cand;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> </div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
@ -387,47 +387,47 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="comment">// Записываем стабильность популяции в структуру</span></div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">if</span>(diff &lt; 0.0f) diff = 0.0f;</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keywordflow">if</span>(diff &gt; 1.0f) diff = 1.0f;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c">stability</a> = (1.0f - worst_loss) * (1.0f - (worst_loss - best_loss));</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">if</span>(opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c">stability</a> &lt; 0.0f) opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c">stability</a> = 0.0f;</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">if</span>(opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c">stability</a> &gt; 1.0f) opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c">stability</a> = 1.0f;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192">stability</a> = (1.0f - worst_loss) * (1.0f - (worst_loss - best_loss));</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">if</span>(opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192">stability</a> &lt; 0.0f) opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192">stability</a> = 0.0f;</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">if</span>(opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192">stability</a> &gt; 1.0f) opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192">stability</a> = 1.0f;</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordtype">float</span> mut_pct = <a class="code hl_define" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6">EVOLVE_MUTATION_MIN_PCT</a> +</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> (<a class="code hl_define" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc">EVOLVE_MUTATION_MAX_PCT</a> - <a class="code hl_define" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6">EVOLVE_MUTATION_MIN_PCT</a>) * loss_ratio;</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordtype">float</span> mut_pct = <a class="code hl_define" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga3db7bdf57549722427e1e72dcaa87068">GEN_MUTATION_MIN_PCT</a> +</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> (<a class="code hl_define" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga48dca8f0a0c9b96d02236ef76ac827fd">GEN_MUTATION_MAX_PCT</a> - <a class="code hl_define" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga3db7bdf57549722427e1e72dcaa87068">GEN_MUTATION_MIN_PCT</a>) * loss_ratio;</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordtype">float</span> adaptive_mut = mut * (mut_pct / 100.0f);</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">if</span> (adaptive_mut &lt; 0.0001f) adaptive_mut = 0.0001f;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a3be8c0c34db8429210ff470497a56727">gen_mut</a> = adaptive_mut;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#acfeb93ef4823e09473ddba52fae9a6b1">gen_mut</a> = adaptive_mut;</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> </div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="comment">// 3. Генерируем новое поколение</span></div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> uint16_t n_elite = <a class="code hl_define" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb">ELOVLE_N_ELITE_CANDIDATE</a>;</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> uint16_t n_elite = <a class="code hl_define" href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb">ELOVLE_N_ELITE_CANDIDATE</a>;</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">for</span> (uint16_t c = 0; c &lt; n_cand; c++) {</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">if</span> (c &lt; n_elite) {</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">for</span> (uint16_t i = 0; i &lt; n_params; i++)</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[c][i] = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">sorted_idx</a>[c]][i];</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[c] = 0.0f;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[c][i] = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">sorted_idx</a>[c]][i];</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[c] = 0.0f;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">for</span> (uint16_t i = 0; i &lt; n_params; i++) {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordtype">float</span> inv_randmax = 1.0f / (float)RAND_MAX;</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keywordtype">float</span> noise = ((float)rand() * inv_randmax * 2.0f - 1.0f) * adaptive_mut;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> uint16_t parent = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">sorted_idx</a>[rand() % opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6">n_best</a>];</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[c][i] = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[parent][i] + noise;</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[c][i] &lt; 0.0f) opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[c][i] = 0.0f;</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[c][i] &gt; 1.0f) opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[c][i] = 1.0f;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> uint16_t parent = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">sorted_idx</a>[rand() % opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8201f1eede36a2c04ec7b4caac7465c9">n_best</a>];</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[c][i] = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[parent][i] + noise;</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[c][i] &lt; 0.0f) opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[c][i] = 0.0f;</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">if</span> (opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[c][i] &gt; 1.0f) opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[c][i] = 1.0f;</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> }</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">loss</a>[c] = 0.0f;</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">loss</a>[c] = 0.0f;</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> }</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> }</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">cand_index</a> = 0;</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#ad0f464d7048a9ed0753b61f76f563108">gen_index</a>++;</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">cand_index</a> = 0;</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a8f226c85e9bb034cb811aa0366bb191c">gen_index</a>++;</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> }</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> </div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="comment">// 4. Возвращаем параметры следующего кандидата</span></div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">for</span> (uint16_t i = 0; i &lt; opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8">n_params</a>; i++)</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> params[i] = opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">candidates</a>[opt-&gt;<a class="code hl_variable" href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">cand_index</a>][i];</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">for</span> (uint16_t i = 0; i &lt; opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#afe598a90024a8aa628dd16f3a2b38eb5">n_params</a>; i++)</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> params[i] = opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">candidates</a>[opt-&gt;<a class="code hl_variable" href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">cand_index</a>][i];</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> </div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span>}</div>
</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="preprocessor">#else </span><span class="comment">// ENABLE_EVOLVE_OPTIMIZATION</span></div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="preprocessor">#else </span><span class="comment">// GEN_OPTIMIZATION_ENABLE</span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span><span class="comment">//заглушки</span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> uint16_t n_params; </div>
@ -436,46 +436,46 @@ $(function(){initNavTree('evolve__optimizer_8h_source.html','',''); });
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordtype">float</span> mutation_amp; </div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="keywordtype">float</span> loss[0]; </div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <span class="keywordtype">float</span> candidates[0][0]; </div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span>} <a class="code hl_struct" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a>;</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span><span class="preprocessor">#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, mutation_amp, start_params)</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span><span class="preprocessor">#define EvolveOptimizer_Step(opt, params, LossFunc)</span></div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span>} <a class="code hl_struct" href="struct_gen_optimizer__t.html">GenOptimizer_t</a>;</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span><span class="preprocessor">#define GenOptimizer_Init(opt, n_params, n_cand, n_best, mutation_amp, start_params)</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span><span class="preprocessor">#define GenOptimizer_Step(opt, params, LossFunc)</span></div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span><span class="preprocessor">#define PARAM_SCALE(x, min_val, max_val) (x)</span></div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span><span class="preprocessor">#define PARAM_UNSCALE(val, min_val, max_val) (val)</span></div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span><span class="preprocessor">#endif </span><span class="comment">// ENABLE_EVOLVE_OPTIMIZATION</span></div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span><span class="preprocessor">#endif </span><span class="comment">// GEN_OPTIMIZATION_ENABLE</span></div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> </div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span><span class="preprocessor">#endif </span><span class="comment">// __EVOLVE_OPTIMIZER_H_</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span><span class="preprocessor">#endif </span><span class="comment">// __GEN_OPTIMIZER_H_</span></div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span><span class="comment"></span> </div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span><span class="comment">/** EVOLVE_OPTIMIZER</span></div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span><span class="comment">/** GEN_OPTIMIZER</span></div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span><span class="comment"> */</span></div>
<div class="ttc" id="agroup___e_v_o_l_v_e___c_o_n_f_i_g_html_ga7c1396e5c95c766afccdb45cbfcf5971"><div class="ttname"><a href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971">EVOLVE_MAX_CANDIDATES</a></div><div class="ttdeci">#define EVOLVE_MAX_CANDIDATES</div><div class="ttdoc">Максимальное количество кандидатов для обучения</div><div class="ttdef"><b>Definition</b> <a href="mylibs__config_8h_source.html#l00066">mylibs_config.h:66</a></div></div>
<div class="ttc" id="agroup___e_v_o_l_v_e___c_o_n_f_i_g_html_ga80d6162495fc3776d8902610657d4fee"><div class="ttname"><a href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee">EVOLVE_MAX_PARAMS</a></div><div class="ttdeci">#define EVOLVE_MAX_PARAMS</div><div class="ttdoc">Максимальное количество параметров</div><div class="ttdef"><b>Definition</b> <a href="mylibs__config_8h_source.html#l00065">mylibs_config.h:65</a></div></div>
<div class="ttc" id="agroup___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_html_ga2f2b1be34ad4eb1bf3267237200cd6c6"><div class="ttname"><a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6">EVOLVE_MUTATION_MIN_PCT</a></div><div class="ttdeci">#define EVOLVE_MUTATION_MIN_PCT</div><div class="ttdoc">Минимальная мутация (в процентах от Loss)</div><div class="ttdef"><b>Definition</b> <a href="#l00089">evolve_optimizer.h:89</a></div></div>
<div class="ttc" id="agroup___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_html_ga38607e23d9234524bc7de5869b15b8eb"><div class="ttname"><a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb">ELOVLE_N_ELITE_CANDIDATE</a></div><div class="ttdeci">#define ELOVLE_N_ELITE_CANDIDATE</div><div class="ttdoc">Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2)</div><div class="ttdef"><b>Definition</b> <a href="#l00095">evolve_optimizer.h:95</a></div></div>
<div class="ttc" id="agroup___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_html_ga4e3ea118b5b9068619c57724a925ba21"><div class="ttname"><a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21">EvolveOptimizer_Init</a></div><div class="ttdeci">__STATIC_INLINE int EvolveOptimizer_Init(EvolveOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, float mutation_amp, float *start_params)</div><div class="ttdoc">Инициализация эволюционного оптимизатора.</div><div class="ttdef"><b>Definition</b> <a href="#l00155">evolve_optimizer.h:155</a></div></div>
<div class="ttc" id="agroup___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_html_ga861c1c6a503c21441abcec0d57b848bc"><div class="ttname"><a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc">EVOLVE_MUTATION_MAX_PCT</a></div><div class="ttdeci">#define EVOLVE_MUTATION_MAX_PCT</div><div class="ttdoc">Максимальная мутация (в процентах от Loss)</div><div class="ttdef"><b>Definition</b> <a href="#l00092">evolve_optimizer.h:92</a></div></div>
<div class="ttc" id="agroup___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_html_gaef44a1f3298514569cc2b396a92101ef"><div class="ttname"><a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef">EvolveOptimizer_Step</a></div><div class="ttdeci">__STATIC_INLINE int EvolveOptimizer_Step(EvolveOptimizer_t *opt, float *params, float loss)</div><div class="ttdoc">Один шаг эволюционного оптимизатора.</div><div class="ttdef"><b>Definition</b> <a href="#l00225">evolve_optimizer.h:225</a></div></div>
<div class="ttc" id="agroup___l_i_b_s___c_o_n_f_i_g_html_ga9c853b02c22f26023c34d1d404b6d653"><div class="ttname"><a href="group___l_i_b_s___c_o_n_f_i_g.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a></div><div class="ttdeci">#define local_time()</div><div class="ttdoc">Локальное время</div><div class="ttdef"><b>Definition</b> <a href="mylibs__config_8h_source.html#l00080">mylibs_config.h:80</a></div></div>
<div class="ttc" id="agroup___g_e_n___c_o_n_f_i_g_html_ga201cffde04ebc6540869c74bd1dae869"><div class="ttname"><a href="group___g_e_n___c_o_n_f_i_g.html#ga201cffde04ebc6540869c74bd1dae869">GEN_MAX_CANDIDATES</a></div><div class="ttdeci">#define GEN_MAX_CANDIDATES</div><div class="ttdoc">Максимальное количество кандидатов для обучения</div><div class="ttdef"><b>Definition</b> <a href="mylibs__config_8h_source.html#l00066">mylibs_config.h:66</a></div></div>
<div class="ttc" id="agroup___g_e_n___c_o_n_f_i_g_html_ga8daf4b266a95353d580bd7946f47c0ab"><div class="ttname"><a href="group___g_e_n___c_o_n_f_i_g.html#ga8daf4b266a95353d580bd7946f47c0ab">GEN_MAX_PARAMS</a></div><div class="ttdeci">#define GEN_MAX_PARAMS</div><div class="ttdoc">Максимальное количество параметров</div><div class="ttdef"><b>Definition</b> <a href="mylibs__config_8h_source.html#l00065">mylibs_config.h:65</a></div></div>
<div class="ttc" id="agroup___g_e_n___o_p_t_i_m_i_z_e_r_html_ga2db1df46b4082ad9280ef4344fdf4e8a"><div class="ttname"><a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga2db1df46b4082ad9280ef4344fdf4e8a">GenOptimizer_Init</a></div><div class="ttdeci">static int GenOptimizer_Init(GenOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, float mutation_amp, float *start_params)</div><div class="ttdoc">Инициализация эволюционного оптимизатора.</div><div class="ttdef"><b>Definition</b> <a href="#l00155">gen_optimizer.h:155</a></div></div>
<div class="ttc" id="agroup___g_e_n___o_p_t_i_m_i_z_e_r_html_ga38607e23d9234524bc7de5869b15b8eb"><div class="ttname"><a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb">ELOVLE_N_ELITE_CANDIDATE</a></div><div class="ttdeci">#define ELOVLE_N_ELITE_CANDIDATE</div><div class="ttdoc">Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2)</div><div class="ttdef"><b>Definition</b> <a href="#l00095">gen_optimizer.h:95</a></div></div>
<div class="ttc" id="agroup___g_e_n___o_p_t_i_m_i_z_e_r_html_ga3db7bdf57549722427e1e72dcaa87068"><div class="ttname"><a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga3db7bdf57549722427e1e72dcaa87068">GEN_MUTATION_MIN_PCT</a></div><div class="ttdeci">#define GEN_MUTATION_MIN_PCT</div><div class="ttdoc">Минимальная мутация (в процентах от Loss)</div><div class="ttdef"><b>Definition</b> <a href="#l00089">gen_optimizer.h:89</a></div></div>
<div class="ttc" id="agroup___g_e_n___o_p_t_i_m_i_z_e_r_html_ga48dca8f0a0c9b96d02236ef76ac827fd"><div class="ttname"><a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#ga48dca8f0a0c9b96d02236ef76ac827fd">GEN_MUTATION_MAX_PCT</a></div><div class="ttdeci">#define GEN_MUTATION_MAX_PCT</div><div class="ttdoc">Максимальная мутация (в процентах от Loss)</div><div class="ttdef"><b>Definition</b> <a href="#l00092">gen_optimizer.h:92</a></div></div>
<div class="ttc" id="agroup___g_e_n___o_p_t_i_m_i_z_e_r_html_gaa9a4c4f43f7beb926c85bd4817ebd628"><div class="ttname"><a href="group___g_e_n___o_p_t_i_m_i_z_e_r.html#gaa9a4c4f43f7beb926c85bd4817ebd628">GenOptimizer_Step</a></div><div class="ttdeci">static int GenOptimizer_Step(GenOptimizer_t *opt, float *params, float loss)</div><div class="ttdoc">Один шаг эволюционного оптимизатора.</div><div class="ttdef"><b>Definition</b> <a href="#l00225">gen_optimizer.h:225</a></div></div>
<div class="ttc" id="agroup___l_i_b_s___c_o_n_f_i_g_html_ga9c853b02c22f26023c34d1d404b6d653"><div class="ttname"><a href="group___l_i_b_s___c_o_n_f_i_g.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a></div><div class="ttdeci">#define local_time()</div><div class="ttdoc">Локальное время</div><div class="ttdef"><b>Definition</b> <a href="mylibs__config_8h_source.html#l00097">mylibs_config.h:97</a></div></div>
<div class="ttc" id="amylibs__defs_8h_html"><div class="ttname"><a href="mylibs__defs_8h.html">mylibs_defs.h</a></div><div class="ttdoc">Заголочный файл для дефайнов библиотеки MyLibsGeneral.</div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html"><div class="ttname"><a href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></div><div class="ttdoc">Структура эволюционного оптимизатора</div><div class="ttdef"><b>Definition</b> <a href="#l00102">evolve_optimizer.h:102</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_a0ae0e63ba351335d4445d927991c64ae"><div class="ttname"><a href="struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae">EvolveOptimizer_t::cand_index</a></div><div class="ttdeci">uint16_t cand_index</div><div class="ttdoc">Индекс кандидата для обработки</div><div class="ttdef"><b>Definition</b> <a href="#l00110">evolve_optimizer.h:110</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_a1c270fce82e0c97e6c88fd0971c1eed8"><div class="ttname"><a href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8">EvolveOptimizer_t::n_params</a></div><div class="ttdeci">uint16_t n_params</div><div class="ttdoc">Количество параметров</div><div class="ttdef"><b>Definition</b> <a href="#l00105">evolve_optimizer.h:105</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_a3be8c0c34db8429210ff470497a56727"><div class="ttname"><a href="struct_evolve_optimizer__t.html#a3be8c0c34db8429210ff470497a56727">EvolveOptimizer_t::gen_mut</a></div><div class="ttdeci">float gen_mut</div><div class="ttdoc">Амплитуда мутации у текущей популяции</div><div class="ttdef"><b>Definition</b> <a href="#l00114">evolve_optimizer.h:114</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_a74b81df1c298c99162310f3f7d91735a"><div class="ttname"><a href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">EvolveOptimizer_t::sorted_idx</a></div><div class="ttdeci">uint16_t sorted_idx[100]</div><div class="ttdoc">Индексы отсортированных кандидатов</div><div class="ttdef"><b>Definition</b> <a href="#l00118">evolve_optimizer.h:118</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_a80eb0b8525b6bb838484f5922b9d8f7c"><div class="ttname"><a href="struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c">EvolveOptimizer_t::stability</a></div><div class="ttdeci">float stability</div><div class="ttdoc">Коэффициент насколько стабильная популяция (0..1)(n_cand)</div><div class="ttdef"><b>Definition</b> <a href="#l00103">evolve_optimizer.h:103</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_a93f628397c2f8d4027f2906752b650df"><div class="ttname"><a href="struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df">EvolveOptimizer_t::loss</a></div><div class="ttdeci">float loss[100]</div><div class="ttdoc">Loss для каждого кандидата</div><div class="ttdef"><b>Definition</b> <a href="#l00116">evolve_optimizer.h:116</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_a950cd70cb6bff33b78ad35ee58c729a6"><div class="ttname"><a href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6">EvolveOptimizer_t::n_best</a></div><div class="ttdeci">uint16_t n_best</div><div class="ttdoc">Количество лучших, усредняемых</div><div class="ttdef"><b>Definition</b> <a href="#l00107">evolve_optimizer.h:107</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_ac35c7ca8cede4ab9c53a2845a91cd1b1"><div class="ttname"><a href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">EvolveOptimizer_t::n_cand</a></div><div class="ttdeci">uint16_t n_cand</div><div class="ttdoc">Количество кандидатов в популяции</div><div class="ttdef"><b>Definition</b> <a href="#l00106">evolve_optimizer.h:106</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_ad0f464d7048a9ed0753b61f76f563108"><div class="ttname"><a href="struct_evolve_optimizer__t.html#ad0f464d7048a9ed0753b61f76f563108">EvolveOptimizer_t::gen_index</a></div><div class="ttdeci">uint16_t gen_index</div><div class="ttdoc">Индекс популяции</div><div class="ttdef"><b>Definition</b> <a href="#l00111">evolve_optimizer.h:111</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_aec67667fd1f1533e693e41c79bc28da4"><div class="ttname"><a href="struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4">EvolveOptimizer_t::candidates</a></div><div class="ttdeci">float candidates[100][20]</div><div class="ttdoc">Параметры кандидатов</div><div class="ttdef"><b>Definition</b> <a href="#l00117">evolve_optimizer.h:117</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html_af779c7aeba0053e36cee7aade160f1c8"><div class="ttname"><a href="struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8">EvolveOptimizer_t::mutation_amp</a></div><div class="ttdeci">float mutation_amp</div><div class="ttdoc">Амплитуда мутации (0..1)</div><div class="ttdef"><b>Definition</b> <a href="#l00108">evolve_optimizer.h:108</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html"><div class="ttname"><a href="struct_gen_optimizer__t.html">GenOptimizer_t</a></div><div class="ttdoc">Структура эволюционного оптимизатора</div><div class="ttdef"><b>Definition</b> <a href="#l00102">gen_optimizer.h:102</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_a04a72c1a13e17581e84eaaf3d245bbfc"><div class="ttname"><a href="struct_gen_optimizer__t.html#a04a72c1a13e17581e84eaaf3d245bbfc">GenOptimizer_t::cand_index</a></div><div class="ttdeci">uint16_t cand_index</div><div class="ttdoc">Индекс текущего кандидата</div><div class="ttdef"><b>Definition</b> <a href="#l00110">gen_optimizer.h:110</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_a2c9a50ea7d975b9bc22a67e453ab83df"><div class="ttname"><a href="struct_gen_optimizer__t.html#a2c9a50ea7d975b9bc22a67e453ab83df">GenOptimizer_t::candidates</a></div><div class="ttdeci">float candidates[100][20]</div><div class="ttdoc">Параметры кандидатов</div><div class="ttdef"><b>Definition</b> <a href="#l00117">gen_optimizer.h:117</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_a8201f1eede36a2c04ec7b4caac7465c9"><div class="ttname"><a href="struct_gen_optimizer__t.html#a8201f1eede36a2c04ec7b4caac7465c9">GenOptimizer_t::n_best</a></div><div class="ttdeci">uint16_t n_best</div><div class="ttdoc">Количество лучших, усредняемых</div><div class="ttdef"><b>Definition</b> <a href="#l00107">gen_optimizer.h:107</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_a8b5066935d99f2fc7ebb94cc3652fc73"><div class="ttname"><a href="struct_gen_optimizer__t.html#a8b5066935d99f2fc7ebb94cc3652fc73">GenOptimizer_t::loss</a></div><div class="ttdeci">float loss[100]</div><div class="ttdoc">Loss для каждого кандидата</div><div class="ttdef"><b>Definition</b> <a href="#l00116">gen_optimizer.h:116</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_a8f226c85e9bb034cb811aa0366bb191c"><div class="ttname"><a href="struct_gen_optimizer__t.html#a8f226c85e9bb034cb811aa0366bb191c">GenOptimizer_t::gen_index</a></div><div class="ttdeci">uint16_t gen_index</div><div class="ttdoc">Индекс популяции</div><div class="ttdef"><b>Definition</b> <a href="#l00111">gen_optimizer.h:111</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_a9e20d2f6f39a5147e6dbac46baca73a9"><div class="ttname"><a href="struct_gen_optimizer__t.html#a9e20d2f6f39a5147e6dbac46baca73a9">GenOptimizer_t::n_cand</a></div><div class="ttdeci">uint16_t n_cand</div><div class="ttdoc">Количество кандидатов в популяции</div><div class="ttdef"><b>Definition</b> <a href="#l00106">gen_optimizer.h:106</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_abe0aacea949fbe93e5d4c002e37d7192"><div class="ttname"><a href="struct_gen_optimizer__t.html#abe0aacea949fbe93e5d4c002e37d7192">GenOptimizer_t::stability</a></div><div class="ttdeci">float stability</div><div class="ttdoc">Коэффициент насколько стабильная популяция (0..1)(n_cand)</div><div class="ttdef"><b>Definition</b> <a href="#l00103">gen_optimizer.h:103</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_acfeb93ef4823e09473ddba52fae9a6b1"><div class="ttname"><a href="struct_gen_optimizer__t.html#acfeb93ef4823e09473ddba52fae9a6b1">GenOptimizer_t::gen_mut</a></div><div class="ttdeci">float gen_mut</div><div class="ttdoc">Амплитуда мутации у текущей популяции</div><div class="ttdef"><b>Definition</b> <a href="#l00114">gen_optimizer.h:114</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_ad37161efa27ef1390d1f7e6ee2f79b12"><div class="ttname"><a href="struct_gen_optimizer__t.html#ad37161efa27ef1390d1f7e6ee2f79b12">GenOptimizer_t::sorted_idx</a></div><div class="ttdeci">uint16_t sorted_idx[100]</div><div class="ttdoc">Индексы отсортированных кандидатов</div><div class="ttdef"><b>Definition</b> <a href="#l00118">gen_optimizer.h:118</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_ad4dc0e53b3ca6bf2a642dfe7a1d1f26c"><div class="ttname"><a href="struct_gen_optimizer__t.html#ad4dc0e53b3ca6bf2a642dfe7a1d1f26c">GenOptimizer_t::mutation_amp</a></div><div class="ttdeci">float mutation_amp</div><div class="ttdoc">Амплитуда мутации (0..1)</div><div class="ttdef"><b>Definition</b> <a href="#l00108">gen_optimizer.h:108</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html_afe598a90024a8aa628dd16f3a2b38eb5"><div class="ttname"><a href="struct_gen_optimizer__t.html#afe598a90024a8aa628dd16f3a2b38eb5">GenOptimizer_t::n_params</a></div><div class="ttdeci">uint16_t n_params</div><div class="ttdoc">Количество параметров</div><div class="ttdef"><b>Definition</b> <a href="#l00105">gen_optimizer.h:105</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_eb423fea8a9c4b9b32b922020ec391e1.html">Inc</a></li><li class="navelem"><a href="evolve__optimizer_8h.html">evolve_optimizer.h</a></li>
<li class="navelem"><a href="dir_d4b2573a0c19afb61452cc3d00967af1.html">MyLibs</a></li><li class="navelem"><a href="dir_8eb68c124db7670c3cb56141b10519ea.html">Inc</a></li><li class="navelem"><a href="gen__optimizer_8h.html">gen_optimizer.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_gpio.c File Reference</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src/general_gpio.c 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>
@ -108,17 +108,17 @@ $(function(){initNavTree('general__gpio_8c.html','',''); });
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__gpio_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_src_2general__gpio_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_src_2general__gpio_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_my_libs_general_2_src_2general__gpio_8c">
<area shape="rect" title="Модуль для инициализации портов и работы с ними." alt="" coords="5,5,204,64"/>
<area shape="rect" href="general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="52,112,157,139"/>
<area shape="poly" title=" " alt="" coords="107,64,107,96,102,96,102,64"/>
<area shape="rect" href="mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="53,187,156,213"/>
<area shape="poly" title=" " alt="" coords="107,139,107,171,102,171,102,139"/>
<area shape="rect" href="mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="48,261,161,288"/>
<area shape="poly" title=" " alt="" coords="107,214,107,246,102,246,102,214"/>
<area shape="rect" title=" " alt="" coords="46,336,163,363"/>
<area shape="poly" title=" " alt="" coords="107,289,107,320,102,320,102,289"/>
<div class="center"><img src="general__gpio_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_s_t_m32___general_2_src_2general__gpio_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_s_t_m32___general_2_src_2general__gpio_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m32___extended_libs_2_s_t_m32___general_2_src_2general__gpio_8c">
<area shape="rect" title="Модуль для инициализации портов и работы с ними." alt="" coords="5,5,211,64"/>
<area shape="rect" href="general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="55,112,161,139"/>
<area shape="poly" title=" " alt="" coords="111,64,111,96,105,96,105,64"/>
<area shape="rect" href="mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="57,187,159,213"/>
<area shape="poly" title=" " alt="" coords="111,139,111,171,105,171,105,139"/>
<area shape="rect" href="mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="52,261,164,288"/>
<area shape="poly" title=" " alt="" coords="111,214,111,246,105,246,105,214"/>
<area shape="rect" title=" " alt="" coords="49,336,167,363"/>
<area shape="poly" title=" " alt="" coords="111,289,111,320,105,320,105,289"/>
</map>
</div>
</div>
@ -170,7 +170,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></li><li class="navelem"><a href="general__gpio_8c.html">general_gpio.c</a></li>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li><li class="navelem"><a href="dir_3d5e348fed410a00f9c665596ca3b887.html">Src</a></li><li class="navelem"><a href="general__gpio_8c.html">general_gpio.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

View File

@ -1,11 +1,11 @@
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_gpio.c" name="E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_gpio.c">
<area shape="rect" id="Node000001" title="Модуль для инициализации портов и работы с ними." alt="" coords="5,5,204,64"/>
<area shape="rect" id="Node000002" href="$general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="52,112,157,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="107,64,107,96,102,96,102,64"/>
<area shape="rect" id="Node000003" href="$mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="53,187,156,213"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="107,139,107,171,102,171,102,139"/>
<area shape="rect" id="Node000004" href="$mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="48,261,161,288"/>
<area shape="poly" id="edge3_Node000003_Node000004" title=" " alt="" coords="107,214,107,246,102,246,102,214"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="46,336,163,363"/>
<area shape="poly" id="edge4_Node000004_Node000005" title=" " alt="" coords="107,289,107,320,102,320,102,289"/>
<map id="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src/general_gpio.c" name="E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src/general_gpio.c">
<area shape="rect" id="Node000001" title="Модуль для инициализации портов и работы с ними." alt="" coords="5,5,211,64"/>
<area shape="rect" id="Node000002" href="$general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="55,112,161,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="111,64,111,96,105,96,105,64"/>
<area shape="rect" id="Node000003" href="$mylibs__defs_8h.html" title="Заголочный файл для дефайнов библиотеки MyLibsGeneral." alt="" coords="57,187,159,213"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="111,139,111,171,105,171,105,139"/>
<area shape="rect" id="Node000004" href="$mylibs__config_8h.html" title="Конфигурации для библиотек MyLibs." alt="" coords="52,261,164,288"/>
<area shape="poly" id="edge3_Node000003_Node000004" title=" " alt="" coords="111,214,111,246,105,246,105,214"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="49,336,167,363"/>
<area shape="poly" id="edge4_Node000004_Node000005" title=" " alt="" coords="111,289,111,320,105,320,105,289"/>
</map>

View File

@ -1 +1 @@
6e517891df2cdbcb0824fafba9ac3005
3a2b6777588aefbcc57665f957601b87

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_gpio.c Source File</title>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Src/general_gpio.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@ -450,7 +450,7 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); });
<div class="ttc" id="agroup___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_html_ga5d066a5b9781f9437e75d98677489eb9"><div class="ttname"><a href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga5d066a5b9781f9437e75d98677489eb9">check_null_ptr_1</a></div><div class="ttdeci">#define check_null_ptr_1(p1)</div><div class="ttdoc">Проверить один указатель на NULL.</div><div class="ttdef"><b>Definition</b> <a href="mylibs__defs_8h_source.html#l00038">mylibs_defs.h:38</a></div></div>
<div class="ttc" id="agroup___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_html_ga838b40542faa9aa273d18f921b21fda2"><div class="ttname"><a href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga838b40542faa9aa273d18f921b21fda2">check_null_ptr_3</a></div><div class="ttdeci">#define check_null_ptr_3(p1, p2, p3)</div><div class="ttdoc">Проверить три указателя на NULL.</div><div class="ttdef"><b>Definition</b> <a href="mylibs__defs_8h_source.html#l00044">mylibs_defs.h:44</a></div></div>
<div class="ttc" id="agroup___g_p_i_o___i_n_i_t_html_ga1d42e219765ec526d99e306638ac0023"><div class="ttname"><a href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">LED_PWM_TICKS</a></div><div class="ttdeci">#define LED_PWM_TICKS</div><div class="ttdoc">Количество тиков в периоде ШИМ</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00035">general_gpio.h:35</a></div></div>
<div class="ttc" id="agroup___l_i_b_s___c_o_n_f_i_g_html_ga9c853b02c22f26023c34d1d404b6d653"><div class="ttname"><a href="group___l_i_b_s___c_o_n_f_i_g.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a></div><div class="ttdeci">#define local_time()</div><div class="ttdoc">Локальное время</div><div class="ttdef"><b>Definition</b> <a href="mylibs__config_8h_source.html#l00080">mylibs_config.h:80</a></div></div>
<div class="ttc" id="agroup___l_i_b_s___c_o_n_f_i_g_html_ga9c853b02c22f26023c34d1d404b6d653"><div class="ttname"><a href="group___l_i_b_s___c_o_n_f_i_g.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a></div><div class="ttdeci">#define local_time()</div><div class="ttdoc">Локальное время</div><div class="ttdef"><b>Definition</b> <a href="mylibs__config_8h_source.html#l00097">mylibs_config.h:97</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_html_ga962f010f783b81fcdd27eb6b53db28e6"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)</div><div class="ttdoc">Включить тактирование порта GPIO.</div><div class="ttdef"><b>Definition</b> <a href="#l00022">general_gpio.c:22</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ga4b9572949326b050694cd55d0a7e5f6c"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">GPIO_LED_On</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)</div><div class="ttdoc">Включить светодиод</div><div class="ttdef"><b>Definition</b> <a href="#l00091">general_gpio.c:91</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gaa00f20021781464af3dfe74aa3e59a0a"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">GPIO_LED_Fading_Start</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)</div><div class="ttdoc">Активировать моргание светодиодом</div><div class="ttdef"><b>Definition</b> <a href="#l00164">general_gpio.c:164</a></div></div>
@ -483,7 +483,7 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); });
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></li><li class="navelem"><a href="general__gpio_8c.html">general_gpio.c</a></li>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li><li class="navelem"><a href="dir_3d5e348fed410a00f9c665596ca3b887.html">Src</a></li><li class="navelem"><a href="general__gpio_8c.html">general_gpio.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>

Some files were not shown because too many files have changed in this diff Show More