STM32_ExtendedLibs/Doc/html/____general__tim_8c_source.html
Razvalyaev f61aa1ff0f init commit
сделаны базовые хедеры:
- mylibs_config
- mylibs_defs
- mylibs_include
- trace
- trackers
- bit_access

также сделан модуль general_gpio.c/.h

Но надо проверить переструктуризированные модули

Остальные модули  __general_XXX в целом готовы и как-то работают (на МЗКТЭ) но не структуризированы
2025-10-18 18:27:37 +03:00

778 lines
94 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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/MyLibsGeneral/Src/__general_tim.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="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('____general__tim_8c_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">__general_tim.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_tim.c</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"> @verbatim</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"> Functions: user init</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> - TIM_Base_Init Инициализация TIM</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> - TIM_Encoder_Init Инициализация режима энкодера</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> - TIM_Output_PWM_Init Инициализация PWM с выводом на GPIO</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> - TIM_OC_Comparator_Init Инициализация TIM как компаратора</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"> Functions: user</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> - TIM_Delay Задержка с помощью TIM</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"> Functions: tim initialize</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> - TIM_Base_MspInit Аналог HAL_MspInit для таймера</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> - TIM_Base_MspDeInit Аналог HAL_MspDeInit для таймера</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> @endverbatim</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="preprocessor">#include &quot;general_tim.h&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</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="l00024" name="l00024"></a><span class="lineno"> 24</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">//-------------------------TIM INIT FUNCTIONS------------------------ </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"> * @brief Initialize TIM with TIM_SettingsTypeDef structure.</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"> * @param stim - указатель на структуру с настройками таймера.</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> * @note Данная структура содержит хендл таймера и структуры для его настройки.</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>HAL_StatusTypeDef TIM_Base_Init(<a class="code hl_struct" href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a> *stim)</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>{ <span class="comment">// function takes structure for init</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// check that htim is defined</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span> (stim-&gt;htim.Instance == NULL)</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> HAL_ERROR;</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> </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>(stim-&gt;sTickBaseUS) <span class="comment">// if tickbase isnt disable</span></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> <span class="keywordflow">if</span>(stim-&gt;sTimAHBFreqMHz == NULL)</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> stim-&gt;htim.Init.Prescaler = (stim-&gt;sTimAHBFreqMHz*stim-&gt;sTickBaseUS) - 1;</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="keywordflow">if</span> ((stim-&gt;sTimFreqHz != NULL))</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> stim-&gt;htim.Init.Period = ((1000000/stim-&gt;sTickBaseUS) / stim-&gt;sTimFreqHz) - 1;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stim-&gt;htim.Init.Period == NULL)</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> stim-&gt;htim.Init.Period = 0xFFFF;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">if</span>(stim-&gt;sTickBasePrescaler)</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> stim-&gt;htim.Init.Prescaler = (stim-&gt;htim.Init.Prescaler + 1)/stim-&gt;sTickBasePrescaler - 1;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> stim-&gt;htim.Init.Period = (stim-&gt;htim.Init.Period + 1)*stim-&gt;sTickBasePrescaler - 1;</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> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> stim-&gt;sTickBasePrescaler = 1;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// fix overflow of presc and period if need</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; (stim-&gt;htim.Init.Prescaler &gt; 0xFFFF) || (stim-&gt;htim.Init.Period &gt; 0xFFFF); i++)</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> { </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">if</span> (i&gt;10) <span class="comment">// if it isnt fixed after 10 itteration - return HAL_ERRPOR</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> HAL_ERROR;</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> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// if timbase is too big (prescaller too big for choosen base from MHZ)</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">if</span>(stim-&gt;htim.Init.Prescaler &gt; 0xFFFF)</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// переносим часть пресскалера в период</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> stim-&gt;htim.Init.Prescaler = ((stim-&gt;htim.Init.Prescaler + 1)/2) - 1;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> stim-&gt;htim.Init.Period = ((stim-&gt;htim.Init.Period + 1)*2) - 1;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// обновляем TickBase, если есть куда обновлять</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">if</span>(stim-&gt;sTickBaseUS &gt; 1)</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> stim-&gt;sTickBaseUS /= 2;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// обновляем sTickBasePrescaler, если sTickBaseUS - уже в минимуме</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stim-&gt;sTickBaseUS == 1)</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> stim-&gt;sTickBasePrescaler *= 2;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">else</span> <span class="comment">// if TickBase = 0 - return error</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// if freq is too low (period too big for choosen base)</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">if</span>(stim-&gt;htim.Init.Period &gt; 0xFFFF)</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> <span class="comment">// переносим часть периода в прескалер</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> stim-&gt;htim.Init.Period = ((stim-&gt;htim.Init.Period + 1)/2) - 1;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> stim-&gt;htim.Init.Prescaler = ((stim-&gt;htim.Init.Prescaler + 1)*2) - 1;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// обновляем TickBase</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> stim-&gt;sTickBaseUS *= 2;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> }</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="comment">//-------------TIM BASE INIT----------------</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// tim base init </span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> TIM_Base_MspInit(&amp;stim-&gt;htim, stim-&gt;sTimMode);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">if</span> (HAL_TIM_Base_Init(&amp;stim-&gt;htim) != HAL_OK)</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</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="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">return</span> HAL_ERROR;</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> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="comment">//-------------CLOCK SRC INIT---------------</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// fill sClockSourceConfig if its NULL</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">if</span> (stim-&gt;sClockSourceConfig.ClockSource == NULL)</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> stim-&gt;sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// clock source init </span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">if</span> (HAL_TIM_ConfigClockSource(&amp;stim-&gt;htim, &amp;stim-&gt;sClockSourceConfig) != HAL_OK)</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> <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="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">return</span> HAL_ERROR;</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> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="comment">//--------------SLAVE INIT------------------ </span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// if slave mode enables - config it</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">if</span> (stim-&gt;sSlaveConfig.SlaveMode)</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// slave mode init </span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordflow">if</span> (HAL_TIM_SlaveConfigSynchro(&amp;stim-&gt;htim, &amp;stim-&gt;sSlaveConfig) != HAL_OK)</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> <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="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">return</span> HAL_ERROR;</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> }</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="comment">//--------------MASTER INIT----------------- </span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// master mode init </span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">if</span> (HAL_TIMEx_MasterConfigSynchronization(&amp;stim-&gt;htim, &amp;stim-&gt;sMasterConfig) != HAL_OK)</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> <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="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">return</span> HAL_ERROR;</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> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="comment">//--------------BDTR INIT----------------- </span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">if</span> (HAL_TIMEx_ConfigBreakDeadTime(&amp;stim-&gt;htim, &amp;stim-&gt;sBreakDeadTimeConfig) != HAL_OK)</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> <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="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="comment">//----------------IT CLEAR------------------- </span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> __HAL_TIM_CLEAR_IT(&amp;stim-&gt;htim, TIM_IT_UPDATE);</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> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// обновляем TickBase</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor"> #ifdef UPDATE_TIM_PARAMS_AFTER_INITIALIZATION</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> stim-&gt;sTickBaseUS = (stim-&gt;htim.Instance-&gt;PSC+1)*stim-&gt;sTickBasePrescaler/(stim-&gt;sTimAHBFreqMHz);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">if</span>(stim-&gt;sTickBaseUS == 0) <span class="comment">// if prescaler is too high</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> { <span class="comment">// recalc what is prescaler irl</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> stim-&gt;sTickBaseUS = 1;</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> stim-&gt;sTickBasePrescaler = stim-&gt;sTimAHBFreqMHz/(stim-&gt;htim.Instance-&gt;PSC+1);</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="preprocessor"> #endif</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> stim-&gt;htim.Instance-&gt;CNT = 0;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">return</span> HAL_OK;</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> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment"></span> </div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="comment">/** </span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment"> * @brief Initialize TIM Encoder functional.</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment"> * @param htim - указатель на хендл таймера.</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"> * @param sConfigOC - указатель на настрйоки канала таймера.</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment"> * @param GPIOx - порт для приема енкодера.</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment"> * @param GPIO_PIN1 - первый пин для енкодера.</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment"> * @param GPIO_PIN2 - второй пин для енкодера.</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="comment"> * @param GPIO_PIN_SW - пин для кнопки енкодера.</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="comment"> */</span></div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span>HAL_StatusTypeDef TIM_Encoder_Init(<a class="code hl_struct" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc, TIM_HandleTypeDef *htim)</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> GPIO_InitTypeDef GPIO_InitStruct = {0};</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> HAL_StatusTypeDef RES = HAL_ERROR;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> henc-&gt;htim = htim;</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="comment">// setup channel for pwm</span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> RES = HAL_TIM_Encoder_Init(henc-&gt;htim, &amp;henc-&gt;sConfig);</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">if</span> (RES != HAL_OK)</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> <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="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">return</span> RES;</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="comment">// choose port for enable clock</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> RES = <a class="code hl_function" href="group___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a>(henc-&gt;GPIOx);</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keywordflow">if</span>(RES != HAL_OK)</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> {</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</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="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">return</span> RES;</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> </div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> GPIO_InitStruct.Pin = henc-&gt;GPIO_PIN_TI1|henc-&gt;GPIO_PIN_TI2;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> GPIO_InitStruct.Pull = GPIO_PULLUP;</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> GPIO_InitStruct.Alternate = <a class="code hl_define" href="group___g_p_i_o___g_e_n_e_r_a_l.html#ga34242874b455a72aa6e25841678ed105">TIM_Alternate_Mapping</a>(henc-&gt;htim-&gt;Instance);</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">if</span>(GPIO_InitStruct.Alternate)</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> HAL_GPIO_Init(henc-&gt;GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keywordflow">if</span>(henc-&gt;GPIO_PIN_SW)</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">/*Configure switch pin */</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> GPIO_InitStruct.Pin = henc-&gt;GPIO_PIN_SW;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> GPIO_InitStruct.Mode = GPIO_MODE_INPUT;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> GPIO_InitStruct.Pull = GPIO_PULLUP;</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> HAL_GPIO_Init(GPIOA, &amp;GPIO_InitStruct);</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="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span>}</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="comment"></span></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"> * @brief Initialize PWM Channel and GPIO for output.</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="comment"> * @param htim - указатель на хендл таймера.</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="comment"> * @param sConfigOC - указатель на настрйоки канала таймера.</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="comment"> * @param TIM_CHANNEL - канал таймера для настройки.</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment"> * @param GPIOx - порт для вывода ШИМ.</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment"> * @param GPIO_PIN - пин для вывода ШИМ.</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="comment"> * @return HAL status.</span></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>HAL_StatusTypeDef TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN)</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> GPIO_InitTypeDef GPIO_InitStruct = {0};</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> HAL_StatusTypeDef RES = HAL_ERROR;</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">// setup channel for pwm</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> RES = HAL_TIM_PWM_ConfigChannel(htim, sConfigOC, TIM_CHANNEL);</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordflow">if</span> (RES != HAL_OK)</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> <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="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">return</span> RES;</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="comment">// choose port for enable clock</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> RES = <a class="code hl_function" href="group___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a>(GPIOx);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">if</span>(RES != HAL_OK)</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> <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="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span> RES;</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> }</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> GPIO_InitStruct.Pin = GPIO_PIN;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">if</span>(sConfigOC-&gt;OCPolarity == TIM_OCNPOLARITY_HIGH)</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> GPIO_InitStruct.Pull = GPIO_PULLDOWN;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> GPIO_InitStruct.Pull = GPIO_PULLUP;</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> GPIO_InitStruct.Alternate = <a class="code hl_define" href="group___g_p_i_o___g_e_n_e_r_a_l.html#ga34242874b455a72aa6e25841678ed105">TIM_Alternate_Mapping</a>(htim-&gt;Instance);</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">if</span>(GPIO_InitStruct.Alternate)</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> HAL_GPIO_Init(GPIOx, &amp;GPIO_InitStruct);</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="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</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><span class="comment">/** </span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="comment"> * @brief Initialize OC Comparator.</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="comment"> * @param htim - указатель на хендл таймера.</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="comment"> * @param TIM_CHANNEL - канал таймера для настройки.</span></div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="comment"> */</span></div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span>HAL_StatusTypeDef TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span>{ </div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> TIM_OC_InitTypeDef sConfigOC = {0};</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> HAL_StatusTypeDef RES = HAL_ERROR;</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> sConfigOC.OCMode = TIM_OCMODE_ACTIVE;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> sConfigOC.Pulse = 0;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> RES = HAL_TIM_OC_ConfigChannel(htim, &amp;sConfigOC, TIM_CHANNEL);</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">if</span> (RES != HAL_OK)</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> <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="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">return</span> RES;</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> }</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">return</span> RES;</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span>}</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</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> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="comment">//-------------------------TIM USER FUNCTIONS------------------------ </span><span class="comment"></span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="comment">/** </span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="comment"> * @brief Delay via TIM.</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="comment"> * @param htim - указатель на хендл таймера.</span></div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span><span class="comment"> * @param delay - задержка в тиках таймера.</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="comment"> * @note Таймер должен быть уже запущен.</span></div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><span class="comment"> */</span></div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span>HAL_StatusTypeDef TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay)</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">if</span>(delay &gt;= htim-&gt;Instance-&gt;ARR)</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="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> }</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> htim-&gt;Instance-&gt;CNT = 0;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">while</span>(1)</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">if</span>(htim-&gt;Instance-&gt;CNT &gt; delay)</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> {</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> }</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> }</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span>}</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span><span class="comment"></span> </div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="comment">/** </span></div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span><span class="comment"> * @brief Start delay via TIM.</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span><span class="comment"> * @param htim - указатель на хендл таймера.</span></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span><span class="comment"> * @note Таймер должен быть уже запущен.</span></div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span><span class="comment"> */</span></div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span>HAL_StatusTypeDef TIM_Delay_Start(TIM_HandleTypeDef *htim)</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span>{ </div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> htim-&gt;Instance-&gt;CNT = 0;</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="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span>}</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span><span class="comment"></span> </div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="comment">/** </span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span><span class="comment"> * @brief Wait Delay via TIM without blocking app.</span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="comment"> * @param htim - указатель на хендл таймера.</span></div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span><span class="comment"> * @param delay - задержка в тиках таймера.</span></div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span><span class="comment"> * @note Перед ожиданием задержки надо запутстить таймер её @ref TIM_Delay_Start</span></div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span><span class="comment"> * @note Таймер не должен использоваться на время этой задержки</span></div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span><span class="comment"> */</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span>HAL_StatusTypeDef TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay)</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span>{ </div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="keywordflow">if</span>(delay &gt;= htim-&gt;Instance-&gt;ARR)</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> {</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> }</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> <span class="keywordflow">if</span>(htim-&gt;Instance-&gt;CNT &lt;= delay)</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="keywordflow">return</span> HAL_BUSY;</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> }</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="keywordflow">else</span></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="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> }</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span>}</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span><span class="comment"></span> </div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span><span class="comment">/** </span></div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span><span class="comment"> * @brief Initialize TIMs clock and interrupt.</span></div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="comment"> * @param htim - указатель на хендл таймера.</span></div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span><span class="comment"> * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых таймеров,</span></div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span><span class="comment"> дефайнами в general_tim.h определяются используемые таймеры.</span></div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span><span class="comment"> */</span></div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span><span class="keywordtype">void</span> TIM_Base_MspInit(TIM_HandleTypeDef* htim, TIM_ITModeTypeDef it_mode)</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span>{</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> it_mode = it_mode&amp;TIM_IT_CONF;</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span><span class="preprocessor">#ifdef USE_TIM1</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM1)</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">/* TIM2 clock enable */</span></div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> __HAL_RCC_TIM1_CLK_ENABLE();</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="comment">/* TIM2 interrupt Init */</span></div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> {</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> }</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> }</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span><span class="preprocessor">#ifdef USE_TIM2</span></div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM2)</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> {</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> <span class="comment">/* TIM2 clock enable */</span></div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> __HAL_RCC_TIM2_CLK_ENABLE();</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> </div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <span class="comment">/* TIM2 interrupt Init */</span></div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> {</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> HAL_NVIC_EnableIRQ(TIM2_IRQn);</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="preprocessor">#endif </span></div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span><span class="preprocessor">#ifdef USE_TIM3</span></div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM3)</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> {</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> <span class="comment">/* TIM3 clock enable */</span></div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> __HAL_RCC_TIM3_CLK_ENABLE();</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> </div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> <span class="comment">/* TIM3 interrupt Init */</span></div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> {</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> HAL_NVIC_EnableIRQ(TIM3_IRQn);</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> }</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> }</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span><span class="preprocessor">#ifdef USE_TIM4</span></div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM4)</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> {</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> <span class="comment">/* TIM4 clock enable */</span></div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> __HAL_RCC_TIM4_CLK_ENABLE();</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> <span class="comment">/* TIM4 interrupt Init */</span></div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> {</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0);</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> HAL_NVIC_EnableIRQ(TIM4_IRQn);</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> }</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> }</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span><span class="preprocessor">#ifdef USE_TIM5</span></div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM5)</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> {</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> <span class="comment">/* TIM5 clock enable */</span></div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> __HAL_RCC_TIM5_CLK_ENABLE();</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> </div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="comment">/* TIM5 interrupt Init */</span></div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> {</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> HAL_NVIC_SetPriority(TIM5_IRQn, 0, 0);</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> HAL_NVIC_EnableIRQ(TIM5_IRQn);</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> }</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> }</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span><span class="preprocessor">#ifdef USE_TIM6</span></div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM6)</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> {</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> <span class="comment">/* TIM6 clock enable */</span></div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> __HAL_RCC_TIM6_CLK_ENABLE();</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> </div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="comment">/* TIM6 interrupt Init */</span></div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> {</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> }</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> }</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span><span class="preprocessor">#ifdef USE_TIM7</span></div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM7)</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> {</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> <span class="comment">/* TIM7 clock enable */</span></div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> __HAL_RCC_TIM7_CLK_ENABLE();</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> </div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> <span class="comment">/* TIM7 interrupt Init */</span></div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> {</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> HAL_NVIC_SetPriority(TIM7_IRQn, 0, 0);</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> HAL_NVIC_EnableIRQ(TIM7_IRQn);</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> }</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> }</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span><span class="preprocessor">#ifdef USE_TIM8</span></div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM8)</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> {</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> <span class="comment">/* TIM8 clock enable */</span></div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> __HAL_RCC_TIM8_CLK_ENABLE();</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> </div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <span class="comment">/* TIM8 interrupt Init */</span></div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> {</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 0, 0);</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> }</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> }</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span><span class="preprocessor">#ifdef USE_TIM9</span></div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM9)</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> {</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> <span class="comment">/* TIM9 clock enable */</span></div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> __HAL_RCC_TIM9_CLK_ENABLE();</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> </div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> <span class="comment">/* TIM9 interrupt Init */</span></div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> {</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> HAL_NVIC_SetPriority(TIM1_BRK_TIM9_IRQn, 0, 0);</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> HAL_NVIC_EnableIRQ(TIM1_BRK_TIM9_IRQn);</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> }</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> }</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span><span class="preprocessor">#ifdef USE_TIM10</span></div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM10)</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> {</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> <span class="comment">/* TIM10 clock enable */</span></div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> __HAL_RCC_TIM10_CLK_ENABLE();</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> </div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> <span class="comment">/* TIM10 interrupt Init */</span></div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> {</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> }</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> } </div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span><span class="preprocessor">#ifdef USE_TIM11</span></div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM11)</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> {</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="comment">/* TIM11 clock enable */</span></div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> __HAL_RCC_TIM11_CLK_ENABLE();</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> </div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="comment">/* TIM11 interrupt Init */</span></div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> {</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> HAL_NVIC_SetPriority(TIM1_TRG_COM_TIM11_IRQn, 0, 0);</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> HAL_NVIC_EnableIRQ(TIM1_TRG_COM_TIM11_IRQn);</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> }</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> }</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span><span class="preprocessor">#ifdef USE_TIM12</span></div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM12)</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> {</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> <span class="comment">/* TIM12 clock enable */</span></div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> __HAL_RCC_TIM12_CLK_ENABLE();</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <span class="comment">/* TIM12 interrupt Init */</span></div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> {</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> HAL_NVIC_SetPriority(TIM8_BRK_TIM12_IRQn, 0, 0);</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> HAL_NVIC_EnableIRQ(TIM8_BRK_TIM12_IRQn);</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> }</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> }</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span><span class="preprocessor">#ifdef USE_TIM13</span></div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM13)</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> {</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="comment">/* TIM13 clock enable */</span></div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> __HAL_RCC_TIM13_CLK_ENABLE();</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> </div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> <span class="comment">/* TIM13 interrupt Init */</span></div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> {</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 0, 0);</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> }</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> }</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span><span class="preprocessor">#ifdef USE_TIM14</span></div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM14)</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> {</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="comment">/* TIM14 clock enable */</span></div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> __HAL_RCC_TIM14_CLK_ENABLE();</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> </div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <span class="comment">/* TIM14 interrupt Init */</span></div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> {</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> HAL_NVIC_SetPriority(TIM8_TRG_COM_TIM14_IRQn, 0, 0);</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> HAL_NVIC_EnableIRQ(TIM8_TRG_COM_TIM14_IRQn);</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> }</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> }</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span>}<span class="comment"></span></div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span><span class="comment">/** </span></div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span><span class="comment"> * @brief DeInitialize TIMs clock and interrupt.</span></div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span><span class="comment"> * @param htim - указатель на хендл таймера.</span></div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span><span class="comment"> * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых таймеров,</span></div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span><span class="comment"> дефайнами в general_tim.h определяются используемые таймеры.</span></div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span><span class="comment"> */</span></div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span><span class="keywordtype">void</span> TIM_Base_MspDeInit(TIM_HandleTypeDef* htim)</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span>{</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span><span class="preprocessor">#ifdef USE_TIM1</span></div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM1)</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> {</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> __HAL_RCC_TIM1_FORCE_RESET();</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> __HAL_RCC_TIM1_RELEASE_RESET();</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> }</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span><span class="preprocessor">#ifdef USE_TIM2</span></div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM2)</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> {</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> __HAL_RCC_TIM2_FORCE_RESET();</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> __HAL_RCC_TIM2_RELEASE_RESET();</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> }</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span><span class="preprocessor">#ifdef USE_TIM3</span></div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM3)</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> {</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> __HAL_RCC_TIM3_FORCE_RESET();</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> __HAL_RCC_TIM3_RELEASE_RESET();</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> }</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span><span class="preprocessor">#ifdef USE_TIM4</span></div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM4)</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> {</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> __HAL_RCC_TIM4_FORCE_RESET();</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> __HAL_RCC_TIM4_RELEASE_RESET();</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> }</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span><span class="preprocessor">#ifdef USE_TIM5</span></div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM5)</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> {</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> __HAL_RCC_TIM5_FORCE_RESET();</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> __HAL_RCC_TIM5_RELEASE_RESET();</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> }</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span><span class="preprocessor">#ifdef USE_TIM6</span></div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM6)</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> {</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> __HAL_RCC_TIM6_FORCE_RESET();</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> __HAL_RCC_TIM6_RELEASE_RESET();</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> }</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span><span class="preprocessor">#ifdef USE_TIM7</span></div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM7)</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> {</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> __HAL_RCC_TIM7_FORCE_RESET();</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> __HAL_RCC_TIM7_RELEASE_RESET();</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> }</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span><span class="preprocessor">#ifdef USE_TIM8</span></div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM8)</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> {</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> __HAL_RCC_TIM8_FORCE_RESET();</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> __HAL_RCC_TIM8_RELEASE_RESET();</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> }</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span><span class="preprocessor">#ifdef USE_TIM9</span></div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM9)</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> {</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> __HAL_RCC_TIM9_FORCE_RESET();</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> __HAL_RCC_TIM9_RELEASE_RESET();</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> }</div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span><span class="preprocessor">#ifdef USE_TIM10</span></div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM10)</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> {</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> __HAL_RCC_TIM10_FORCE_RESET();</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> __HAL_RCC_TIM10_RELEASE_RESET();</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> } </div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span><span class="preprocessor">#ifdef USE_TIM11</span></div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM11)</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> {</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> __HAL_RCC_TIM11_FORCE_RESET();</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> __HAL_RCC_TIM11_RELEASE_RESET();</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> }</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span><span class="preprocessor">#ifdef USE_TIM12</span></div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM12)</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> {</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> __HAL_RCC_TIM12_FORCE_RESET();</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> __HAL_RCC_TIM12_RELEASE_RESET();</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> }</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span><span class="preprocessor">#ifdef USE_TIM13</span></div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM13)</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> {</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> __HAL_RCC_TIM13_FORCE_RESET();</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> __HAL_RCC_TIM13_RELEASE_RESET();</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> }</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span><span class="preprocessor">#ifdef USE_TIM14</span></div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM14)</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> {</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> __HAL_RCC_TIM14_FORCE_RESET();</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> __HAL_RCC_TIM14_RELEASE_RESET();</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> }</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span>}</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span><span class="comment">//-------------------------TIM INIT FUNCTIONS------------------------</span></div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</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___g_p_i_o___g_e_n_e_r_a_l_html_ga34242874b455a72aa6e25841678ed105"><div class="ttname"><a href="group___g_p_i_o___g_e_n_e_r_a_l.html#ga34242874b455a72aa6e25841678ed105">TIM_Alternate_Mapping</a></div><div class="ttdeci">#define TIM_Alternate_Mapping(INSTANCE)</div><div class="ttdoc">Маппинг альтернативной функции SPI между GPIO.</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00061">general_gpio.h:61</a></div></div>
<div class="ttc" id="agroup___g_p_i_o___g_e_n_e_r_a_l_html_ga962f010f783b81fcdd27eb6b53db28e6"><div class="ttname"><a href="group___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#l00021">general_gpio.c:21</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a></div><div class="ttdef"><b>Definition</b> <a href="____general__tim_8h_source.html#l00093">__general_tim.h:94</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a></div><div class="ttdef"><b>Definition</b> <a href="____general__tim_8h_source.html#l00076">__general_tim.h:77</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_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></li><li class="navelem"><b>__general_tim.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>
</body>
</html>