diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f83ae28 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/MyLibsGeneral/.vscode/ diff --git a/Doc/Doxyfile b/Doc/Doxyfile index ba9121b..bf9845b 100644 --- a/Doc/Doxyfile +++ b/Doc/Doxyfile @@ -1119,7 +1119,7 @@ EXCLUDE_PATTERNS = # wildcard * is used, a substring. Examples: ANamespace, AClass, # ANamespace::AClass, ANamespace::*Test -EXCLUDE_SYMBOLS = +EXCLUDE_SYMBOLS = Q16_MUL # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include diff --git a/Doc/html/annotated.html b/Doc/html/annotated.html index a2c2e40..17dc897 100644 --- a/Doc/html/annotated.html +++ b/Doc/html/annotated.html @@ -102,18 +102,19 @@ $(function(){initNavTree('annotated.html','',''); });
Here are the classes, structs, unions and interfaces with brief descriptions:
- - - - - - - - - - - - + + + + + + + + + + + + +
 CGPIO_LEDTypeDefСтруктура светодиода
 CGPIO_SwitchTypeDefСтруктура кнопки
 CHF_StackFrame_tКонтекст стек-фрейма процессора при HardFault
 CRTT_FlashHeader_tСтруктура RTT, которая будет положена в Flash
 CSPI_SettingsTypeDef
 CTIM_EncoderTypeDefСтруктура инициализации енкодера
 CTIM_SettingsTypeDefСтруктура инициализации таймера
 CUART_SettingsTypeDef
 Cuint16_BitTypeDef
 Cuint32_BitTypeDef
 Cuint64_BitTypeDef
 Cuint8_BitTypeDef
 CEvolveOptimizer_tСтруктура эволюционного оптимизатора
 CGPIO_LEDTypeDefСтруктура светодиода
 CGPIO_SwitchTypeDefСтруктура кнопки
 CHF_StackFrame_tКонтекст стек-фрейма процессора при HardFault
 CRTT_FlashHeader_tСтруктура RTT, которая будет положена в Flash
 CSPI_SettingsTypeDef
 CTIM_EncoderTypeDefСтруктура инициализации енкодера
 CTIM_SettingsTypeDefСтруктура инициализации таймера
 CUART_SettingsTypeDef
 Cuint16_BitTypeDef
 Cuint32_BitTypeDef
 Cuint64_BitTypeDef
 Cuint8_BitTypeDef
diff --git a/Doc/html/annotated_dup.js b/Doc/html/annotated_dup.js index 555ef5f..74f25da 100644 --- a/Doc/html/annotated_dup.js +++ b/Doc/html/annotated_dup.js @@ -1,5 +1,6 @@ var annotated_dup = [ + [ "EvolveOptimizer_t", "struct_evolve_optimizer__t.html", "struct_evolve_optimizer__t" ], [ "GPIO_LEDTypeDef", "struct_g_p_i_o___l_e_d_type_def.html", "struct_g_p_i_o___l_e_d_type_def" ], [ "GPIO_SwitchTypeDef", "struct_g_p_i_o___switch_type_def.html", "struct_g_p_i_o___switch_type_def" ], [ "HF_StackFrame_t", "struct_h_f___stack_frame__t.html", "struct_h_f___stack_frame__t" ], diff --git a/Doc/html/classes.html b/Doc/html/classes.html index 6035bf4..29c6937 100644 --- a/Doc/html/classes.html +++ b/Doc/html/classes.html @@ -100,24 +100,27 @@ $(function(){initNavTree('classes.html','',''); });
Class Index
-
G | H | R | S | T | U
+
E | G | H | R | S | T | U
+
E
+
EvolveOptimizer_t
+
G
GPIO_LEDTypeDef
GPIO_SwitchTypeDef
-
+
H
HF_StackFrame_t
-
+
R
RTT_FlashHeader_t
-
+
S
SPI_SettingsTypeDef
-
+
T
TIM_EncoderTypeDef
TIM_SettingsTypeDef
-
+
U
UART_SettingsTypeDef
uint16_BitTypeDef
uint32_BitTypeDef
uint64_BitTypeDef
uint8_BitTypeDef
diff --git a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html index 28e8558..480c66b 100644 --- a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html +++ b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html @@ -118,6 +118,10 @@ $(function(){initNavTree('dir_9e11e9a41112194af3eee6cc728f9515.html','',''); }); Directories
 Inc
 Src + + +

+Files

 
mainpage.h
diff --git a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.js b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.js index c8b3f9e..7596784 100644 --- a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.js +++ b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.js @@ -1,5 +1,6 @@ var dir_9e11e9a41112194af3eee6cc728f9515 = [ [ "Inc", "dir_eb423fea8a9c4b9b32b922020ec391e1.html", "dir_eb423fea8a9c4b9b32b922020ec391e1" ], - [ "Src", "dir_9c80311a018e1f8cfb6659b73d634be4.html", "dir_9c80311a018e1f8cfb6659b73d634be4" ] + [ "Src", "dir_9c80311a018e1f8cfb6659b73d634be4.html", "dir_9c80311a018e1f8cfb6659b73d634be4" ], + [ "mainpage.h", "mainpage_8h_source.html", null ] ]; \ No newline at end of file diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html index f6e79a3..62931e7 100644 --- a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html +++ b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html @@ -118,6 +118,8 @@ Files
 __general_uart.h
 bit_access.h  Заголочный файл для дефайнов битового доступа.
+
 evolve_optimizer.h + Заголовочный файл для адаптивного подбора параметров
 general_gpio.h  Заголовочный файл для модуля инициализации портов и работы с ними.
 general_tim.h diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.js b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.js index 9316149..68cf10b 100644 --- a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.js +++ b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.js @@ -4,6 +4,7 @@ var dir_eb423fea8a9c4b9b32b922020ec391e1 = [ "__general_spi.h", "____general__spi_8h_source.html", null ], [ "__general_uart.h", "____general__uart_8h_source.html", null ], [ "bit_access.h", "bit__access_8h.html", "bit__access_8h" ], + [ "evolve_optimizer.h", "evolve__optimizer_8h.html", "evolve__optimizer_8h" ], [ "general_gpio.h", "general__gpio_8h.html", "general__gpio_8h" ], [ "general_tim.h", "general__tim_8h.html", "general__tim_8h" ], [ "mylibs_config.h", "mylibs__config_8h.html", "mylibs__config_8h" ], diff --git a/Doc/html/doxygen_crawl.html b/Doc/html/doxygen_crawl.html index a4b8d18..41c0090 100644 --- a/Doc/html/doxygen_crawl.html +++ b/Doc/html/doxygen_crawl.html @@ -23,6 +23,8 @@ + + @@ -57,6 +59,15 @@ + + + + + + + + + @@ -67,6 +78,7 @@ + @@ -204,12 +216,22 @@ + + + + + + + + + + diff --git a/Doc/html/evolve__optimizer_8h.html b/Doc/html/evolve__optimizer_8h.html new file mode 100644 index 0000000..42c96c5 --- /dev/null +++ b/Doc/html/evolve__optimizer_8h.html @@ -0,0 +1,183 @@ + + + + + + + +MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h File Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
evolve_optimizer.h File Reference
+
+
+ +

Заголовочный файл для адаптивного подбора параметров +More...

+
#include "mylibs_defs.h"
+#include <stdint.h>
+#include <stdlib.h>
+
Include dependency graph for evolve_optimizer.h:
+
+
+ +
This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Classes

struct  EvolveOptimizer_t
 Структура эволюционного оптимизатора More...
+ + + + + +

+Macros

#define PARAM_SCALE_Q16(x, min_val, max_val)
 Линейное масштабирование x из диапазона [min_val, max_val] в Q16.16 [0, 65536)
#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val)
 Обратное линейное масштабирование Q16.16 значения в диапазон [min_val, max_val].
+ + + + + +

+Functions

__STATIC_INLINE void EvolveOptimizer_Init (EvolveOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, uint16_t iq_mutation, int32_t *start_params)
 Инициализация эволюционного оптимизатора.
__STATIC_INLINE void EvolveOptimizer_Step (EvolveOptimizer_t *opt, int32_t *params, int32_t loss)
 Один шаг эволюционного оптимизатора.
+

Detailed Description

+

Заголовочный файл для адаптивного подбора параметров

+ +

Definition in file evolve_optimizer.h.

+
+
+ +
+ + + + diff --git a/Doc/html/evolve__optimizer_8h.js b/Doc/html/evolve__optimizer_8h.js new file mode 100644 index 0000000..46d46b4 --- /dev/null +++ b/Doc/html/evolve__optimizer_8h.js @@ -0,0 +1,7 @@ +var evolve__optimizer_8h = +[ + [ "PARAM_SCALE_Q16", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaff223481fcffea77394a331afde29fdc", null ], + [ "PARAM_UNSCALE_Q16", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga71a0c240c667e976d9caef391ab767ba", null ], + [ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9", null ], + [ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563", null ] +]; \ No newline at end of file diff --git a/Doc/html/evolve__optimizer_8h__dep__incl.map b/Doc/html/evolve__optimizer_8h__dep__incl.map new file mode 100644 index 0000000..2741c58 --- /dev/null +++ b/Doc/html/evolve__optimizer_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/Doc/html/evolve__optimizer_8h__dep__incl.md5 b/Doc/html/evolve__optimizer_8h__dep__incl.md5 new file mode 100644 index 0000000..4ae7408 --- /dev/null +++ b/Doc/html/evolve__optimizer_8h__dep__incl.md5 @@ -0,0 +1 @@ +41a81c5527cb10d478e05e49562aedc3 \ No newline at end of file diff --git a/Doc/html/evolve__optimizer_8h__dep__incl.png b/Doc/html/evolve__optimizer_8h__dep__incl.png new file mode 100644 index 0000000..02dd104 Binary files /dev/null and b/Doc/html/evolve__optimizer_8h__dep__incl.png differ diff --git a/Doc/html/evolve__optimizer_8h__incl.map b/Doc/html/evolve__optimizer_8h__incl.map new file mode 100644 index 0000000..97465e0 --- /dev/null +++ b/Doc/html/evolve__optimizer_8h__incl.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/Doc/html/evolve__optimizer_8h__incl.md5 b/Doc/html/evolve__optimizer_8h__incl.md5 new file mode 100644 index 0000000..29bbece --- /dev/null +++ b/Doc/html/evolve__optimizer_8h__incl.md5 @@ -0,0 +1 @@ +4993f7378dc2ed7a2e950385e8313f89 \ No newline at end of file diff --git a/Doc/html/evolve__optimizer_8h__incl.png b/Doc/html/evolve__optimizer_8h__incl.png new file mode 100644 index 0000000..09857dc Binary files /dev/null and b/Doc/html/evolve__optimizer_8h__incl.png differ diff --git a/Doc/html/evolve__optimizer_8h_source.html b/Doc/html/evolve__optimizer_8h_source.html new file mode 100644 index 0000000..70acfe3 --- /dev/null +++ b/Doc/html/evolve__optimizer_8h_source.html @@ -0,0 +1,356 @@ + + + + + + + +MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h Source File + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
evolve_optimizer.h
+
+
+Go to the documentation of this file.
1/**
+
2******************************************************************************
+
3* @file evolve_optimizer.h
+
4* @brief Заголовочный файл для адаптивного подбора параметров
+
5******************************************************************************
+
6* @addtogroup EVOLVE_OPTIMIZER Evolve optimizer
+
7* @ingroup MYLIBS_DEFINES
+
8* @brief Библиотека для эволюционного подбора параметров
+
9* @details
+
10Поддерживает:
+
11- Любое количество параметров
+
12- Генерацию новых параметров на основе лучших кандидатов
+
13- Мутацию для поиска оптимальных параметров
+
14- Несколько независимых оптимизаторов в одной программе
+
15
+
16Если библиотека отключена @ref ENABLE_EVOLVE_OPTIMIZATION, то вставляются
+
17заглушки, никак не влияющие на параметры и остальную программу
+
18
+
19@par Пример использования:
+
20@code
+
21#include "evolve_optimizer.h"
+
22#define N_PARAMS 4
+
23#define N_CANDIDATES 100
+
24#define N_BEST 10
+
25#define IQ_MUTATION 655
+
26int32_t params[N_PARAMS];
+
27EvolveOptimizer_t optimizer;
+
28
+
29// Формирование параметров
+
30uint16_t param_u16 = 800;
+
31float param_f = 0.01f;
+
32uint8_t param_u8 = 40;
+
33int16_t param_i16 = 1600;
+
34params[0] = PARAM_SCALE_Q16(param_u16, 0, 1000);
+
35params[1] = PARAM_SCALE_Q16(param_f, 0.001f, 0.1f);
+
36params[2] = PARAM_SCALE_Q16(param_u8, 10, 100);
+
37params[3] = PARAM_SCALE_Q16(param_i16, 500, 5000);
+
38
+
39// Инициалиазция
+
40EvolveOptimizer_Init(&optimizer, N_PARAMS, N_CANDIDATES, N_BEST, IQ_MUTATION, params);
+
41
+
42// Шаг эволюции
+
43int32_t loss = calc_iq_loss(); // расчет эффективности параметров
+
44EvolveOptimizer_Step(&optimizer, params, loss);
+
45
+
46// Взятие следующих для эволюции параметров
+
47param_u16 = PARAM_UNSCALE_Q16(params[0], 0, 1000);
+
48param_f = PARAM_UNSCALE_Q16(params[1], 0.001f, 0.1f);
+
49param_u8 = PARAM_UNSCALE_Q16(params[2], 10, 100);
+
50param_i16 = PARAM_UNSCALE_Q16(params[3], 500, 5000);
+
51@endcode
+
52* @{
+
53*****************************************************************************/
+
54#ifndef __EVOLVE_OPTIMIZER_H_
+
55#define __EVOLVE_OPTIMIZER_H_
+
56
+
57#include "mylibs_defs.h"
+
58#include <stdint.h>
+
59#include <stdlib.h>
+
60
+
61#ifdef ENABLE_EVOLVE_OPTIMIZATION
+
62
+
63#define Q16_MUL(a,b) ((int32_t)(((int64_t)(a) * (int64_t)(b)) >> 16))
+
64
+
65/**
+
66 * @brief Линейное масштабирование x из диапазона [min_val, max_val] в Q16.16 [0, 65536)
+
67 */
+
+
68#define PARAM_SCALE_Q16(x, min_val, max_val) \
+
69((int32_t)((((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val))) * 65536.0f))
+
+
70
+
71/**
+
72 * @brief Обратное линейное масштабирование Q16.16 значения в диапазон [min_val, max_val]
+
73 */
+
+
74#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) \
+
75(((float)(q16_val) / 65536.0f) * ((float)(max_val) - (float)(min_val)) + (float)(min_val))
+
+
76
+
77
+
78/**
+
79 * @brief Структура эволюционного оптимизатора
+
80 */
+
+
81typedef struct {
+
82 uint16_t n_params; ///< Количество параметров
+
83 uint16_t n_cand; ///< Количество кандидатов
+
84 uint16_t n_best; ///< Количество лучших, усредняемых
+
85 uint16_t iq_mutation; ///< Амплитуда мутации в Q16.16
+
86 uint16_t cand_index; ///< Индекс кандидата для обработки
+
87 int32_t loss[EVOLVE_MAX_CANDIDATES]; ///< Loss для каждого кандидата
+
88 int32_t candidates[EVOLVE_MAX_CANDIDATES][EVOLVE_MAX_PARAMS]; ///< Параметры кандидатов
+ +
+
90
+
91
+
92/**
+
93 * @brief Инициализация эволюционного оптимизатора.
+
94 * @param opt Указатель на структуру оптимизатора
+
95 * @param n_params Количество параметров в одном кандидате
+
96 * @param n_cand Количество кандидатов
+
97 * @param n_best Количество лучших, усредняемых
+
98 * @param iq_mutation Амплитуда мутации в Q16.16
+
99 * @param start_params Начальные параметры (Q16.16)
+
100 */
+
+
101__STATIC_INLINE void EvolveOptimizer_Init(EvolveOptimizer_t* opt,
+
102 uint16_t n_params,
+
103 uint16_t n_cand,
+
104 uint16_t n_best,
+
105 uint16_t iq_mutation,
+
106 int32_t* start_params)
+
107{
+
108 if(check_null_ptr_2(opt, start_params))
+
109 return;
+
110
+
111 opt->n_params = n_params;
+
112 opt->n_cand = n_cand;
+
113 opt->n_best = n_best;
+
114 opt->iq_mutation = iq_mutation;
+
115
+
116 for (uint16_t i = 0; i < n_cand; i++) {
+
117 for (uint16_t j = 0; j < n_params; j++) {
+
118 opt->candidates[i][j] = start_params[j];
+
119 }
+
120 opt->loss[i] = 0;
+
121 }
+
122}
+
+
123
+
124
+
125/**
+
126 * @brief Один шаг эволюционного оптимизатора.
+
127 * @param opt Указатель на структуру оптимизатора
+
128 * @param params Массив параметров, которые будут обновлены (на выходе — новые параметры)
+
129 * @param loss Loss текущего кандидата (Q16.16)
+
130 * @details
+
131 * Сохраняет loss текущего кандидата и формирует параметры следующего кандидата.
+
132 * Если накоплено n_cand кандидатов, генерируется новое поколение.
+
133 * Новое поколение формируется случайным выбором из n_best лучших с добавлением мутации.
+
134 *
+
135 * На выходе params содержит параметры следующего кандидата для измерений.
+
136 */
+
+
137__STATIC_INLINE void EvolveOptimizer_Step(EvolveOptimizer_t* opt,
+
138 int32_t* params,
+
139 int32_t loss)
+
140{
+
141 if(check_null_ptr_2(opt, params))
+
142 return;
+
143
+
144 uint16_t n_params = opt->n_params;
+
145 uint16_t n_cand = opt->n_cand;
+
146 uint16_t n_best = opt->n_best;
+
147 uint16_t mut = opt->iq_mutation;
+
148
+
149 // 1. Сохраняем loss текущего кандидата
+
150 opt->loss[opt->cand_index] = loss;
+
151
+
152 opt->cand_index++;
+
153
+
154 if (opt->cand_index >= n_cand) {
+
155 // 2. Сортируем текущее поколение по loss
+
156 for (uint16_t i = 0; i < n_cand - 1; i++) {
+
157 for (uint16_t j = i + 1; j < n_cand; j++) {
+
158 if (opt->loss[j] < opt->loss[i]) {
+
159 int32_t tmp_loss = opt->loss[i];
+
160 opt->loss[i] = opt->loss[j];
+
161 opt->loss[j] = tmp_loss;
+
162
+
163 for (uint16_t k = 0; k < n_params; k++) {
+
164 int32_t tmp = opt->candidates[i][k];
+
165 opt->candidates[i][k] = opt->candidates[j][k];
+
166 opt->candidates[j][k] = tmp;
+
167 }
+
168 }
+
169 }
+
170 }
+
171
+
172 // 3. Генерируем новое поколение: каждый кандидат берется случайно из лучших с мутацией
+
173 uint16_t n_elite = 2; // количество элитных кандидатов, которые сохраняем без изменений
+
174 for (uint16_t c = 0; c < n_cand; c++) {
+
175 if (c < n_elite) {
+
176 // Копируем лучших кандидатов напрямую без мутации
+
177 for (uint16_t i = 0; i < n_params; i++) {
+
178 opt->candidates[c][i] = opt->candidates[c][i]; // просто сохраняем параметры
+
179 }
+
180 opt->loss[c] = 0;
+
181 } else {
+
182 // Остальные кандидаты формируются с кроссовером и мутацией
+
183 for (uint16_t i = 0; i < n_params; i++) {
+
184 int32_t noise = (rand() % (2 * mut)) - mut;
+
185 uint16_t parent = rand() % n_best; // каждый параметр из случайного лучшего
+
186 opt->candidates[c][i] = opt->candidates[parent][i] + noise;
+
187 }
+
188 opt->loss[c] = 0;
+
189 }
+
190 }
+
191 opt->cand_index = 0;
+
192 }
+
193
+
194 // 4. Возвращаем параметры следующего кандидата
+
195 for (uint16_t i = 0; i < opt->n_params; i++)
+
196 params[i] = opt->candidates[opt->cand_index][i];
+
197}
+
+
198#else // ENABLE_EVOLVE_OPTIMIZATION
+
199//заглушки
+
200typedef struct {
+
201 uint16_t n_params;
+
202 uint16_t n_cand;
+
203 uint16_t n_best;
+
204 uint16_t iq_mutation;
+
205 int32_t loss[0];
+
206 int32_t candidates[0][0];
+ +
208#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, iq_mutation, start_params)
+
209#define EvolveOptimizer_Step(opt, params, LossFunc)
+
210#define PARAM_SCALE_Q16(x, min_val, max_val) (x)
+
211#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) (q16_val) (q16_val)
+
212#endif // ENABLE_EVOLVE_OPTIMIZATION
+
213
+
214#endif // __EVOLVE_OPTIMIZER_H_
+
215
+
216/** EVOLVE_OPTIMIZER
+
217 * @}
+
218 */
+
#define check_null_ptr_2(p1, p2)
Проверить два указателя на NULL.
Definition mylibs_defs.h:41
+
#define EVOLVE_MAX_CANDIDATES
Максимальное количество кандидатов для обучения
+
#define EVOLVE_MAX_PARAMS
Максимальное количество параметров
+
__STATIC_INLINE void EvolveOptimizer_Step(EvolveOptimizer_t *opt, int32_t *params, int32_t loss)
Один шаг эволюционного оптимизатора.
+
__STATIC_INLINE void EvolveOptimizer_Init(EvolveOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, uint16_t iq_mutation, int32_t *start_params)
Инициализация эволюционного оптимизатора.
+
Заголочный файл для дефайнов библиотеки MyLibsGeneral.
+
Структура эволюционного оптимизатора
+
uint16_t cand_index
Индекс кандидата для обработки
+
uint16_t n_params
Количество параметров
+
uint16_t iq_mutation
Амплитуда мутации в Q16.16.
+
int32_t candidates[100][20]
Параметры кандидатов
+
uint16_t n_best
Количество лучших, усредняемых
+
uint16_t n_cand
Количество кандидатов
+
int32_t loss[100]
Loss для каждого кандидата
+
+
+
+ + + + diff --git a/Doc/html/files.html b/Doc/html/files.html index be04d52..4b8cceb 100644 --- a/Doc/html/files.html +++ b/Doc/html/files.html @@ -108,19 +108,21 @@ $(function(){initNavTree('files.html','',''); });  
__general_spi.h  
__general_uart.h  
bit_access.hЗаголочный файл для дефайнов битового доступа - 
general_gpio.hЗаголовочный файл для модуля инициализации портов и работы с ними - 
general_tim.hЗаголовочный файл для модуля инициализации таймеров и работы с ними - 
mylibs_config.hКонфигурации для библиотек MyLibs - 
mylibs_defs.hЗаголочный файл для дефайнов библиотеки MyLibsGeneral - 
mylibs_include.hЗаголочный файл для всех библиотек - 
trace.hЗаголочный файл для работы с трассировкой - 
trackers.hЗаголочный файл для работы с трекерами Trackers defines - 
Src - 
__general_flash.c - 
__general_spi.c - 
__general_uart.c - 
general_gpio.cМодуль для инициализации портов и работы с ними - 
general_tim.cМодуль для инициализации таймеров и работы с ними + 
evolve_optimizer.hЗаголовочный файл для адаптивного подбора параметров + 
general_gpio.hЗаголовочный файл для модуля инициализации портов и работы с ними + 
general_tim.hЗаголовочный файл для модуля инициализации таймеров и работы с ними + 
mylibs_config.hКонфигурации для библиотек MyLibs + 
mylibs_defs.hЗаголочный файл для дефайнов библиотеки MyLibsGeneral + 
mylibs_include.hЗаголочный файл для всех библиотек + 
trace.hЗаголочный файл для работы с трассировкой + 
trackers.hЗаголочный файл для работы с трекерами Trackers defines + 
Src + 
__general_flash.c + 
__general_spi.c + 
__general_uart.c + 
general_gpio.cМодуль для инициализации портов и работы с ними + 
general_tim.cМодуль для инициализации таймеров и работы с ними + 
mainpage.h diff --git a/Doc/html/functions.html b/Doc/html/functions.html index 1411471..4793d9d 100644 --- a/Doc/html/functions.html +++ b/Doc/html/functions.html @@ -99,6 +99,12 @@ $(function(){initNavTree('functions.html','',''); });
Here is a list of all documented class members with links to the class documentation for each member:
+

- c -

+ +

- d -

@@ -123,15 +129,28 @@ $(function(){initNavTree('functions.html','',''); }); +

- i -

+ +

- l -

+

- n -

+ +

- p -

+

- i -

+ +

- l -

+

- n -

+ +

- p -

+

- e -

+ +

- g -

+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Evolve configs
+
+
+ +

Конфигурация однослойного персептрона и алгоритма обучения +More...

+
Collaboration diagram for Evolve configs:
+
+
+ + + + + + + + + +

+Macros

#define ENABLE_EVOLVE_OPTIMIZATION
 Включить оптимизацию параметров
#define EVOLVE_MAX_PARAMS   20
 Максимальное количество параметров
#define EVOLVE_MAX_CANDIDATES   100
 Максимальное количество кандидатов для обучения
+

Detailed Description

+

Конфигурация однослойного персептрона и алгоритма обучения

+

Macro Definition Documentation

+ +

◆ ENABLE_EVOLVE_OPTIMIZATION

+ +
+
+ + + + +
#define ENABLE_EVOLVE_OPTIMIZATION
+
+ +

Включить оптимизацию параметров

+ +

Definition at line 64 of file mylibs_config.h.

+ +
+
+ +

◆ EVOLVE_MAX_PARAMS

+ +
+
+ + + + +
#define EVOLVE_MAX_PARAMS   20
+
+ +

Максимальное количество параметров

+ +

Definition at line 65 of file mylibs_config.h.

+ +
+
+ +

◆ EVOLVE_MAX_CANDIDATES

+ +
+
+ + + + +
#define EVOLVE_MAX_CANDIDATES   100
+
+ +

Максимальное количество кандидатов для обучения

+ +

Definition at line 66 of file mylibs_config.h.

+ +
+
+
+
+ +
+ + + + diff --git a/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.js b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.js new file mode 100644 index 0000000..1e10ab2 --- /dev/null +++ b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.js @@ -0,0 +1,6 @@ +var group___e_v_o_l_v_e___c_o_n_f_i_g = +[ + [ "ENABLE_EVOLVE_OPTIMIZATION", "group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga2cac097081444a7a9b040f4b11550e47", null ], + [ "EVOLVE_MAX_PARAMS", "group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee", null ], + [ "EVOLVE_MAX_CANDIDATES", "group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971", null ] +]; \ No newline at end of file diff --git a/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.map b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.map new file mode 100644 index 0000000..491aa34 --- /dev/null +++ b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.md5 b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.md5 new file mode 100644 index 0000000..53dee98 --- /dev/null +++ b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.md5 @@ -0,0 +1 @@ +0e28d80dcd04448aed641d64d20b3125 \ No newline at end of file diff --git a/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.png b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.png new file mode 100644 index 0000000..9c2b43f Binary files /dev/null and b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.png differ diff --git a/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html new file mode 100644 index 0000000..c418edc --- /dev/null +++ b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html @@ -0,0 +1,359 @@ + + + + + + + +MyLibs: Evolve optimizer + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Evolve optimizer
+
+
+ +

Библиотека для эволюционного подбора параметров +More...

+
Collaboration diagram for Evolve optimizer:
+
+
+ + + + + +

+Classes

struct  EvolveOptimizer_t
 Структура эволюционного оптимизатора More...
+ + + + + +

+Macros

#define PARAM_SCALE_Q16(x, min_val, max_val)
 Линейное масштабирование x из диапазона [min_val, max_val] в Q16.16 [0, 65536)
#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val)
 Обратное линейное масштабирование Q16.16 значения в диапазон [min_val, max_val].
+ + + + + +

+Functions

__STATIC_INLINE void EvolveOptimizer_Init (EvolveOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, uint16_t iq_mutation, int32_t *start_params)
 Инициализация эволюционного оптимизатора.
__STATIC_INLINE void EvolveOptimizer_Step (EvolveOptimizer_t *opt, int32_t *params, int32_t loss)
 Один шаг эволюционного оптимизатора.
+

Detailed Description

+

Библиотека для эволюционного подбора параметров

+

Поддерживает:

    +
  • Любое количество параметров
  • +
  • Генерацию новых параметров на основе лучших кандидатов
  • +
  • Мутацию для поиска оптимальных параметров
  • +
  • Несколько независимых оптимизаторов в одной программе
  • +
+

Если библиотека отключена ENABLE_EVOLVE_OPTIMIZATION, то вставляются заглушки, никак не влияющие на параметры и остальную программу

+
Пример использования:
+
#define N_PARAMS 4
+
#define N_CANDIDATES 100
+
#define N_BEST 10
+
#define IQ_MUTATION 655
+
int32_t params[N_PARAMS];
+ +
+
// Формирование параметров
+
uint16_t param_u16 = 800;
+
float param_f = 0.01f;
+
uint8_t param_u8 = 40;
+
int16_t param_i16 = 1600;
+
params[0] = PARAM_SCALE_Q16(param_u16, 0, 1000);
+
params[1] = PARAM_SCALE_Q16(param_f, 0.001f, 0.1f);
+
params[2] = PARAM_SCALE_Q16(param_u8, 10, 100);
+
params[3] = PARAM_SCALE_Q16(param_i16, 500, 5000);
+
+
// Инициалиазция
+
EvolveOptimizer_Init(&optimizer, N_PARAMS, N_CANDIDATES, N_BEST, IQ_MUTATION, params);
+
+
// Шаг эволюции
+
int32_t loss = calc_iq_loss(); // расчет эффективности параметров
+
EvolveOptimizer_Step(&optimizer, params, loss);
+
+
// Взятие следующих для эволюции параметров
+
param_u16 = PARAM_UNSCALE_Q16(params[0], 0, 1000);
+
param_f = PARAM_UNSCALE_Q16(params[1], 0.001f, 0.1f);
+
param_u8 = PARAM_UNSCALE_Q16(params[2], 10, 100);
+
param_i16 = PARAM_UNSCALE_Q16(params[3], 500, 5000);
+
Заголовочный файл для адаптивного подбора параметров
+
__STATIC_INLINE void EvolveOptimizer_Step(EvolveOptimizer_t *opt, int32_t *params, int32_t loss)
Один шаг эволюционного оптимизатора.
+
#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val)
Обратное линейное масштабирование Q16.16 значения в диапазон [min_val, max_val].
+
__STATIC_INLINE void EvolveOptimizer_Init(EvolveOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, uint16_t iq_mutation, int32_t *start_params)
Инициализация эволюционного оптимизатора.
+
#define PARAM_SCALE_Q16(x, min_val, max_val)
Линейное масштабирование x из диапазона [min_val, max_val] в Q16.16 [0, 65536)
+
Структура эволюционного оптимизатора
+
+

Macro Definition Documentation

+ +

◆ PARAM_SCALE_Q16

+ +
+
+ + + + + + + + + + + + + + + + +
#define PARAM_SCALE_Q16( x,
min_val,
max_val )
+
+Value:
((int32_t)((((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val))) * 65536.0f))
+
+

Линейное масштабирование x из диапазона [min_val, max_val] в Q16.16 [0, 65536)

+ +

Definition at line 68 of file evolve_optimizer.h.

+ +
+
+ +

◆ PARAM_UNSCALE_Q16

+ +
+
+ + + + + + + + + + + + + + + + +
#define PARAM_UNSCALE_Q16( q16_val,
min_val,
max_val )
+
+Value:
(((float)(q16_val) / 65536.0f) * ((float)(max_val) - (float)(min_val)) + (float)(min_val))
+
+

Обратное линейное масштабирование Q16.16 значения в диапазон [min_val, max_val].

+ +

Definition at line 74 of file evolve_optimizer.h.

+ +
+
+

Function Documentation

+ +

◆ EvolveOptimizer_Init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
__STATIC_INLINE void EvolveOptimizer_Init (EvolveOptimizer_t * opt,
uint16_t n_params,
uint16_t n_cand,
uint16_t n_best,
uint16_t iq_mutation,
int32_t * start_params )
+
+ +

Инициализация эволюционного оптимизатора.

+
Parameters
+ + + + + + + +
optУказатель на структуру оптимизатора
n_paramsКоличество параметров в одном кандидате
n_candКоличество кандидатов
n_bestКоличество лучших, усредняемых
iq_mutationАмплитуда мутации в Q16.16
start_paramsНачальные параметры (Q16.16)
+
+
+ +

Definition at line 101 of file evolve_optimizer.h.

+ +
+
+ +

◆ EvolveOptimizer_Step()

+ +
+
+ + + + + + + + + + + + + + + + +
__STATIC_INLINE void EvolveOptimizer_Step (EvolveOptimizer_t * opt,
int32_t * params,
int32_t loss )
+
+ +

Один шаг эволюционного оптимизатора.

+
Parameters
+ + + + +
optУказатель на структуру оптимизатора
paramsМассив параметров, которые будут обновлены (на выходе — новые параметры)
lossLoss текущего кандидата (Q16.16)
+
+
+

Сохраняет loss текущего кандидата и формирует параметры следующего кандидата. Если накоплено n_cand кандидатов, генерируется новое поколение. Новое поколение формируется случайным выбором из n_best лучших с добавлением мутации.

+

На выходе params содержит параметры следующего кандидата для измерений.

+ +

Definition at line 137 of file evolve_optimizer.h.

+ +
+
+
+
+ +
+ + + + diff --git a/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.js b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.js new file mode 100644 index 0000000..70ed915 --- /dev/null +++ b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.js @@ -0,0 +1,16 @@ +var group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r = +[ + [ "EvolveOptimizer_t", "struct_evolve_optimizer__t.html", [ + [ "n_params", "struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8", null ], + [ "n_cand", "struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1", null ], + [ "n_best", "struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6", null ], + [ "iq_mutation", "struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5", null ], + [ "cand_index", "struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae", null ], + [ "loss", "struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d", null ], + [ "candidates", "struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d", null ] + ] ], + [ "PARAM_SCALE_Q16", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaff223481fcffea77394a331afde29fdc", null ], + [ "PARAM_UNSCALE_Q16", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga71a0c240c667e976d9caef391ab767ba", null ], + [ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9", null ], + [ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563", null ] +]; \ No newline at end of file diff --git a/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.map b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.map new file mode 100644 index 0000000..60c0efb --- /dev/null +++ b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.md5 b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.md5 new file mode 100644 index 0000000..b136329 --- /dev/null +++ b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.md5 @@ -0,0 +1 @@ +222e7e00155a235ae6b55b58801480e4 \ No newline at end of file diff --git a/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.png b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.png new file mode 100644 index 0000000..d5cec84 Binary files /dev/null and b/Doc/html/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.png differ diff --git a/Doc/html/group___l_i_b_s___c_o_n_f_i_g.html b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.html index 867c7fa..2d37dfe 100644 --- a/Doc/html/group___l_i_b_s___c_o_n_f_i_g.html +++ b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.html @@ -116,6 +116,8 @@ $(function(){initNavTree('group___l_i_b_s___c_o_n_f_i_g.html','',''); }); + + @@ -128,6 +130,24 @@ Macros

Detailed Description

Подключение различных модулей библиотеки

Macro Definition Documentation

+ +

◆ INCLUDE_EVOLVE_OPTIMIZER

+ +
+
+

Macros

#define INCLUDE_EVOLVE_OPTIMIZER
 Подключить библиотеку для оптимизации параметров
#define INCLUDE_BIT_ACCESS_LIB
 Подключить библиотеку с typedef с битовыми полями
#define INCLUDE_TRACKERS_LIB
+ + + +
#define INCLUDE_EVOLVE_OPTIMIZER
+
+ +

Подключить библиотеку для оптимизации параметров

+ +

Definition at line 80 of file mylibs_config.h.

+ +
+

◆ INCLUDE_BIT_ACCESS_LIB

@@ -142,7 +162,7 @@ Macros

Подключить библиотеку с typedef с битовыми полями

-

Definition at line 65 of file mylibs_config.h.

+

Definition at line 81 of file mylibs_config.h.

@@ -160,7 +180,7 @@ Macros

Подключить библиотеку с трекерами

-

Definition at line 66 of file mylibs_config.h.

+

Definition at line 82 of file mylibs_config.h.

@@ -178,7 +198,7 @@ Macros

Подключить библиотеку с трейсами

-

Definition at line 67 of file mylibs_config.h.

+

Definition at line 83 of file mylibs_config.h.

@@ -196,7 +216,7 @@ Macros

Подключить библиотеку с периферией

-

Definition at line 68 of file mylibs_config.h.

+

Definition at line 84 of file mylibs_config.h.

diff --git a/Doc/html/group___l_i_b_s___c_o_n_f_i_g.js b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.js index 4c6d0ce..7938549 100644 --- a/Doc/html/group___l_i_b_s___c_o_n_f_i_g.js +++ b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.js @@ -1,5 +1,6 @@ var group___l_i_b_s___c_o_n_f_i_g = [ + [ "INCLUDE_EVOLVE_OPTIMIZER", "group___l_i_b_s___c_o_n_f_i_g.html#ga66560656d080d6551627a19dfb847c66", null ], [ "INCLUDE_BIT_ACCESS_LIB", "group___l_i_b_s___c_o_n_f_i_g.html#gaf4ddb2a71ec0d05c2480e197cd17c0be", null ], [ "INCLUDE_TRACKERS_LIB", "group___l_i_b_s___c_o_n_f_i_g.html#ga4403055986b70bb02b8d37073a122e32", null ], [ "INCLUDE_TRACE_LIB", "group___l_i_b_s___c_o_n_f_i_g.html#ga0a3ca94b616997069dd53e2c6c2687d7", null ], diff --git a/Doc/html/group___m_y_l_i_b_s___a_l_l.html b/Doc/html/group___m_y_l_i_b_s___a_l_l.html index 53bf563..2edb3f9 100644 --- a/Doc/html/group___m_y_l_i_b_s___a_l_l.html +++ b/Doc/html/group___m_y_l_i_b_s___a_l_l.html @@ -110,9 +110,9 @@ $(function(){initNavTree('group___m_y_l_i_b_s___a_l_l.html','',''); });
- - - + + + @@ -120,7 +120,7 @@ $(function(){initNavTree('group___m_y_l_i_b_s___a_l_l.html','',''); }); Topics - + diff --git a/Doc/html/group___m_y_l_i_b_s___a_l_l.js b/Doc/html/group___m_y_l_i_b_s___a_l_l.js index 59889a3..54a84ed 100644 --- a/Doc/html/group___m_y_l_i_b_s___a_l_l.js +++ b/Doc/html/group___m_y_l_i_b_s___a_l_l.js @@ -1,6 +1,6 @@ var group___m_y_l_i_b_s___a_l_l = [ [ "Configs", "group___m_y_l_i_b_s___c_o_n_f_i_g.html", "group___m_y_l_i_b_s___c_o_n_f_i_g" ], - [ "General Defines", "group___m_y_l_i_b_s___d_e_f_i_n_e_s.html", "group___m_y_l_i_b_s___d_e_f_i_n_e_s" ], + [ "General Tools", "group___m_y_l_i_b_s___d_e_f_i_n_e_s.html", "group___m_y_l_i_b_s___d_e_f_i_n_e_s" ], [ "Peripheral", "group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.html", "group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l" ] ]; \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___a_l_l.map b/Doc/html/group___m_y_l_i_b_s___a_l_l.map index c9782eb..3343382 100644 --- a/Doc/html/group___m_y_l_i_b_s___a_l_l.map +++ b/Doc/html/group___m_y_l_i_b_s___a_l_l.map @@ -1,6 +1,6 @@ - - - + + + diff --git a/Doc/html/group___m_y_l_i_b_s___a_l_l.md5 b/Doc/html/group___m_y_l_i_b_s___a_l_l.md5 index 81f0885..4e0e91b 100644 --- a/Doc/html/group___m_y_l_i_b_s___a_l_l.md5 +++ b/Doc/html/group___m_y_l_i_b_s___a_l_l.md5 @@ -1 +1 @@ -1691ab8f633ae5af69d18398681fcba8 \ No newline at end of file +52c11e57bdabafd5d7af3828f403f995 \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___a_l_l.png b/Doc/html/group___m_y_l_i_b_s___a_l_l.png index 71949d5..bbe49fc 100644 Binary files a/Doc/html/group___m_y_l_i_b_s___a_l_l.png and b/Doc/html/group___m_y_l_i_b_s___a_l_l.png differ diff --git a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.html b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.html index a7ac5d3..04d29e3 100644 --- a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.html +++ b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.html @@ -109,10 +109,11 @@ $(function(){initNavTree('group___m_y_l_i_b_s___c_o_n_f_i_g.html','',''); });
 Configs
 Конфигурации для библиотек MyLibs.
 General Defines
 General Tools
 Общие макросы и typedef'ы, используемые по всему проекту
 Peripheral
 Модули для управления периферией
@@ -120,6 +121,8 @@ $(function(){initNavTree('group___m_y_l_i_b_s___c_o_n_f_i_g.html','',''); }); Topics + +
 Trace configs
 Конфигурация трекеров и трассировки
 Evolve configs
 Конфигурация однослойного персептрона и алгоритма обучения
 Libraries configs
 Подключение различных модулей библиотеки
diff --git a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.js b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.js index 6dc81df..06b8a2b 100644 --- a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.js +++ b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.js @@ -1,5 +1,6 @@ var group___m_y_l_i_b_s___c_o_n_f_i_g = [ [ "Trace configs", "group___t_r_a_c_e___c_o_n_f_i_g.html", "group___t_r_a_c_e___c_o_n_f_i_g" ], + [ "Evolve configs", "group___e_v_o_l_v_e___c_o_n_f_i_g.html", "group___e_v_o_l_v_e___c_o_n_f_i_g" ], [ "Libraries configs", "group___l_i_b_s___c_o_n_f_i_g.html", "group___l_i_b_s___c_o_n_f_i_g" ] ]; \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.map b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.map index 737cfde..d5531ea 100644 --- a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.map +++ b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.map @@ -1,6 +1,7 @@ - - - - + + + + + diff --git a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.md5 b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.md5 index a4575c4..3f02def 100644 --- a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.md5 +++ b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.md5 @@ -1 +1 @@ -e912e48de31ed02538c355498d1a7e66 \ No newline at end of file +e39777f4e691429c305a230cb7233db5 \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.png b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.png index 253e028..d0783d6 100644 Binary files a/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.png and b/Doc/html/group___m_y_l_i_b_s___c_o_n_f_i_g.png differ diff --git a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.html b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.html index 6e2a896..093beb8 100644 --- a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.html +++ b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.html @@ -5,7 +5,7 @@ -MyLibs: General Defines +MyLibs: General Tools @@ -97,26 +97,27 @@ $(function(){initNavTree('group___m_y_l_i_b_s___d_e_f_i_n_e_s.html','',''); });
-
General Defines
+
General Tools

Общие макросы и typedef'ы, используемые по всему проекту More...

-
Collaboration diagram for General Defines:
+
Collaboration diagram for General Tools:
@@ -124,6 +125,8 @@ $(function(){initNavTree('group___m_y_l_i_b_s___d_e_f_i_n_e_s.html','',''); }); Topics + + diff --git a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.js b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.js index 2a15720..3161a87 100644 --- a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.js +++ b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.js @@ -1,6 +1,7 @@ var group___m_y_l_i_b_s___d_e_f_i_n_e_s = [ [ "Bit access defines", "group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html", "group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s" ], + [ "Evolve optimizer", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r" ], [ "Error Handler defines", "group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html", "group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s" ], [ "Delays defines", "group___d_e_l_a_y_s___d_e_f_i_n_e_s.html", "group___d_e_l_a_y_s___d_e_f_i_n_e_s" ], [ "Utils defines", "group___u_t_i_l_s___d_e_f_i_n_e_s.html", "group___u_t_i_l_s___d_e_f_i_n_e_s" ], diff --git a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.map b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.map index 2a3961c..0281dad 100644 --- a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.map +++ b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.map @@ -1,10 +1,11 @@ - - - - - - - - - + + + + + + + + + + diff --git a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.md5 b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.md5 index 45245e0..21a4273 100644 --- a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.md5 +++ b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.md5 @@ -1 +1 @@ -cd205bbe89e6c9feea836cb8938585ac \ No newline at end of file +e21133381fcfb6b51ca1c555273b8ce6 \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.png b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.png index 611987b..742664d 100644 Binary files a/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.png and b/Doc/html/group___m_y_l_i_b_s___d_e_f_i_n_e_s.png differ diff --git a/Doc/html/group___t_r_a_c_e.html b/Doc/html/group___t_r_a_c_e.html index 2be89a9..6941ffc 100644 --- a/Doc/html/group___t_r_a_c_e.html +++ b/Doc/html/group___t_r_a_c_e.html @@ -97,7 +97,7 @@ $(function(){initNavTree('group___t_r_a_c_e.html','',''); });
-
Trace defines
+
Trace defines
@@ -109,12 +109,12 @@ $(function(){initNavTree('group___t_r_a_c_e.html','',''); });
 Bit access defines
 Макросы и typedef'ы для работы с битами в unsigned типах.
 Evolve optimizer
 Библиотека для эволюционного подбора параметров
 Error Handler defines
 Дефайны для обработки ошибок
 Delays defines
diff --git a/Doc/html/group___t_r_a_c_e.map b/Doc/html/group___t_r_a_c_e.map index 0c4f8df..cf0579e 100644 --- a/Doc/html/group___t_r_a_c_e.map +++ b/Doc/html/group___t_r_a_c_e.map @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/Doc/html/group___t_r_a_c_e.md5 b/Doc/html/group___t_r_a_c_e.md5 index 8707b6e..940cd9f 100644 --- a/Doc/html/group___t_r_a_c_e.md5 +++ b/Doc/html/group___t_r_a_c_e.md5 @@ -1 +1 @@ -af53452e0ed934b43a42a30e5eaddc2c \ No newline at end of file +231806d9df0ebec28cd371e85eb1e78c \ No newline at end of file diff --git a/Doc/html/group___t_r_a_c_e.png b/Doc/html/group___t_r_a_c_e.png index 3b9e235..3da1dc4 100644 Binary files a/Doc/html/group___t_r_a_c_e.png and b/Doc/html/group___t_r_a_c_e.png differ diff --git a/Doc/html/group___t_r_a_c_e___g_p_i_o.html b/Doc/html/group___t_r_a_c_e___g_p_i_o.html index ebe37bc..750167e 100644 --- a/Doc/html/group___t_r_a_c_e___g_p_i_o.html +++ b/Doc/html/group___t_r_a_c_e___g_p_i_o.html @@ -97,7 +97,7 @@ $(function(){initNavTree('group___t_r_a_c_e___g_p_i_o.html','',''); });
-
GPIO trace defines
+
GPIO trace defines
diff --git a/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html b/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html index 069857a..4a44208 100644 --- a/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html +++ b/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html @@ -97,7 +97,7 @@ $(function(){initNavTree('group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html','',''); })
-
Hardfault trace defines
+
Hardfault trace defines
diff --git a/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.html b/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.html index d1626ca..8cbfe53 100644 --- a/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.html +++ b/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.html @@ -97,7 +97,7 @@ $(function(){initNavTree('group___t_r_a_c_e___r_t_t___f_l_a_s_h.html','',''); })
-
Flash RTT Buffer
+
Flash RTT Buffer
diff --git a/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.html b/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.html index 8a13055..136bbf1 100644 --- a/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.html +++ b/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.html @@ -97,7 +97,7 @@ $(function(){initNavTree('group___t_r_a_c_e___s_e_r_i_a_l.html','',''); });
-
Serial trace defines
+
Serial trace defines
diff --git a/Doc/html/group___t_r_a_c_k_e_r_s.html b/Doc/html/group___t_r_a_c_k_e_r_s.html index 9b3c87b..70836c7 100644 --- a/Doc/html/group___t_r_a_c_k_e_r_s.html +++ b/Doc/html/group___t_r_a_c_k_e_r_s.html @@ -97,7 +97,7 @@ $(function(){initNavTree('group___t_r_a_c_k_e_r_s.html','',''); });
-
Trackers defines
+
Trackers defines
@@ -109,8 +109,8 @@ $(function(){initNavTree('group___t_r_a_c_k_e_r_s.html','',''); });
diff --git a/Doc/html/group___t_r_a_c_k_e_r_s.map b/Doc/html/group___t_r_a_c_k_e_r_s.map index 27e2e01..bf5f146 100644 --- a/Doc/html/group___t_r_a_c_k_e_r_s.map +++ b/Doc/html/group___t_r_a_c_k_e_r_s.map @@ -1,4 +1,4 @@ - - + + diff --git a/Doc/html/group___t_r_a_c_k_e_r_s.md5 b/Doc/html/group___t_r_a_c_k_e_r_s.md5 index 3069cfa..d924fcc 100644 --- a/Doc/html/group___t_r_a_c_k_e_r_s.md5 +++ b/Doc/html/group___t_r_a_c_k_e_r_s.md5 @@ -1 +1 @@ -648d2934940db23a5223abb744a436e6 \ No newline at end of file +a7565b03babdeb6094e59ffacae9c523 \ No newline at end of file diff --git a/Doc/html/group___t_r_a_c_k_e_r_s.png b/Doc/html/group___t_r_a_c_k_e_r_s.png index 6e59314..64eb575 100644 Binary files a/Doc/html/group___t_r_a_c_k_e_r_s.png and b/Doc/html/group___t_r_a_c_k_e_r_s.png differ diff --git a/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.html b/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.html index 722474f..066db90 100644 --- a/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.html +++ b/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.html @@ -97,7 +97,7 @@ $(function(){initNavTree('group___u_t_i_l_s___d_e_f_i_n_e_s.html','',''); });
-
Utils defines
+
Utils defines
@@ -109,8 +109,8 @@ $(function(){initNavTree('group___u_t_i_l_s___d_e_f_i_n_e_s.html','',''); });
@@ -153,7 +153,7 @@ Macros

Макрос использует memset для обнуления всей памяти структуры. Используется для быстрой и безопасной инициализации переменных структур до нуля.

-

Definition at line 154 of file mylibs_defs.h.

+

Definition at line 151 of file mylibs_defs.h.

@@ -188,7 +188,7 @@ Macros
Returns
Результат деления, округленный вверх.

Если результат деления без остатка: он возвращается как есть Если с остатком - округляется вверх

-

Definition at line 165 of file mylibs_defs.h.

+

Definition at line 162 of file mylibs_defs.h.

@@ -218,7 +218,7 @@ Macros
Returns
Результат с поменяными местами старшим и младшим байтом.

Переключения между двумя типами хранения слова: HI-LO байты и LO-HI байты.

-

Definition at line 173 of file mylibs_defs.h.

+

Definition at line 170 of file mylibs_defs.h.

@@ -248,7 +248,7 @@ Macros
Returns
Абсолютное значение числа x.

Берет число по модулю. Хз как работает библиотечный abs в stdlib.h, мб это быстрее, но вряд ли конечно.

-

Definition at line 181 of file mylibs_defs.h.

+

Definition at line 178 of file mylibs_defs.h.

diff --git a/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.map b/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.map index f176eba..f130ade 100644 --- a/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.map +++ b/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.map @@ -1,4 +1,4 @@ - - + + diff --git a/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.md5 b/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.md5 index 9687ecf..ead6af3 100644 --- a/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.md5 +++ b/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.md5 @@ -1 +1 @@ -a22e11e67b1cc3135ba7e3b5e903043c \ No newline at end of file +e4f09128a7c7fea7dcaa8c425861feae \ No newline at end of file diff --git a/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.png b/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.png index 25fc9b1..74a98f9 100644 Binary files a/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.png and b/Doc/html/group___u_t_i_l_s___d_e_f_i_n_e_s.png differ diff --git a/Doc/html/index.html b/Doc/html/index.html index a233fa5..87e4bf6 100644 --- a/Doc/html/index.html +++ b/Doc/html/index.html @@ -106,37 +106,35 @@ $(function(){initNavTree('index.html','',''); });

Основные возможности

-Общие утилиты General Defines

+Общие утилиты (General Tools)

Трассировка Trace defines

Модуль GPIO GPIO Tools

Модуль таймеров TIM Tools

Структура проекта

diff --git a/Doc/html/mainpage_8h_source.html b/Doc/html/mainpage_8h_source.html new file mode 100644 index 0000000..14c5a8d --- /dev/null +++ b/Doc/html/mainpage_8h_source.html @@ -0,0 +1,218 @@ + + + + + + + +MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/mainpage.h Source File + + + + + + + + + + + + + + + + + +
+
+
+ + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + + +
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mainpage.h
+
+
+
1
+
2/**
+
3@mainpage
+
4
+
5@section overview Обзор
+
6MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32.
+
7
+
8@subsection features Основные возможности
+
9
+
10@subsubsection utils_module Общие утилиты (@ref MYLIBS_DEFINES)
+
11- Макросы для задержек и утилит (@ref DELAYS_DEFINES и @ref UTILS_DEFINES)
+
12- Трекеры для статистики и отладки (@ref TRACKERS и @ref TRACE)
+
13- Эволюционный алгоритм для оптимизации параметров (@ref EVOLVE_OPTIMIZER)
+
14- Битовый доступ к регистрам через union (@ref BIT_ACCESS_DEFINES)
+
15
+
16@subsubsection trace_module Трассировка @ref TRACE
+
17- Serial трассировка через SWO и RTT (@ref TRACE_SERIAL)
+
18- GPIO трассировка для отладки (@ref TRACE_GPIO)
+
19- Сохранение логов в Flash память (@ref TRACE_RTT_FLASH)
+
20- Обработка HardFault с сохранением контекста (@ref TRACE_HARDFAULT)
+
21
+
22@subsubsection gpio_module Модуль GPIO @ref MY_LIBS_GPIO
+
23- Инициализация портов и тактирования (@ref MYLIBS_GPIO_GENERAL)
+
24- Управление светодиодами (включение/выключение, моргание, плавное затухание) (@ref MYLIBS_GPIO_LEDS)
+
25- Работа с кнопками (чтение состояния, фильтрация дребезга) (@ref MYLIBS_GPIO_SWITCH)
+
26
+
27@subsubsection tim_module Модуль таймеров @ref MY_LIBS_TIM
+
28- Базовая инициализация таймеров (@ref MYLIBS_TIM_GENERAL)
+
29- Формирование задержек (блокирующие и неблокирующие) (@ref MYLIBS_TIM_DELAY)
+
30- Работа с энкодерами (чтение положения, обработка кнопок) (@ref MYLIBS_TIM_ENCODER)
+
31- Настройка ШИМ и Output Compare (@ref MYLIBS_TIM_OC)
+
32
+
33
+
34@subsection structure Структура проекта
+
35
+
36@code
+
37├── inc/ # Заголовочные файлы
+
38│ ├── mylibs_include.h # Главный include файл
+
39│ ├── mylibs_config.h # Конфигурация библиотек
+
40│ ├── mylibs_defs.h # Общие определения и макросы
+
41│ ├── bit_access.h # Битовый доступ к регистрам
+
42│ ├── trackers.h # Трекеры для отладки
+
43│ ├── trace.h # Трассировка и логирование
+
44│ ├── general_gpio.h # Работа с GPIO
+
45│ └── general_tim.h # Работа с таймерами
+
46└── src/ # Исходные файлы
+
47 ├── general_gpio.c # Реализация GPIO
+
48 └── general_tim.c # Реализация TIM
+
49@endcode
+
50
+
51@subsection usage_basic Использование
+
52
+
53Инструкция по подключению:
+
54
+
551. Настройте конфигурацию @ref MYLIBS_CONFIG в @ref mylibs_config.h
+
56
+
572. Подключите главный заголовочный файл:
+
58@code
+
59#include "mylibs_include.h"
+
60@endcode
+
61
+
623. Используйте нужные модули в своем коде
+
63
+
64@subsubsection gpio_example Пример работы с GPIO
+
65
+
66@code
+
67// Инициализация светодиода
+
68MX_GPIO_Init();
+
69GPIO_LEDTypeDef led;
+
70GPIO_LED_Init(&led, GPIOA, GPIO_PIN_5, 1);
+
71
+
72// Включение светодиода
+
73GPIO_LED_On(&led);
+
74
+
75// Запуск моргания
+
76GPIO_LED_Blink_Start(&led, 500); // Период 500 мс
+
77
+
78// В основном цикле
+
79while (1) {
+
80GPIO_LED_Dynamic_Handle(&led);
+
81}
+
82@endcode
+
83
+
84@subsubsection tim_example Пример работы с таймером
+
85
+
86@code
+
87// Настройка таймера
+
88TIM_SettingsTypeDef tim_settings = {0};
+
89tim_settings.htim.Instance = TIM2;
+
90tim_settings.sTimAHBFreqMHz = SystemCoreClock;
+
91tim_settings.sTickBaseUS = TIM_TickBase_1MS;
+
92tim_settings.sTimFreqHz = 1000; // 1 кГц
+
93tim_settings.sTimMode = TIM_IT_CONF;
+
94
+
95TIM_Base_Init(&tim_settings);
+
96HAL_TIM_Base_Start(&tim_settings.htim);
+
97@endcode
+
98
+
99@subsection dependencies Зависимости
+
100
+
101- HAL библиотека STM32
+
102- SEGGER RTT (опционально, для RTT трассировки)
+
103- FreeRTOS (опционально, для FreeRTOS задержек)
+
104 */
+
+
+
+ + + + diff --git a/Doc/html/menudata.js b/Doc/html/menudata.js index 3561c54..7655322 100644 --- a/Doc/html/menudata.js +++ b/Doc/html/menudata.js @@ -30,21 +30,27 @@ var menudata={children:[ {text:"Class Index",url:"classes.html"}, {text:"Class Members",url:"functions.html",children:[ {text:"All",url:"functions.html",children:[ +{text:"c",url:"functions.html#index_c"}, {text:"d",url:"functions.html#index_d"}, {text:"e",url:"functions.html#index_e"}, {text:"g",url:"functions.html#index_g"}, {text:"h",url:"functions.html#index_h"}, +{text:"i",url:"functions.html#index_i"}, {text:"l",url:"functions.html#index_l"}, +{text:"n",url:"functions.html#index_n"}, {text:"p",url:"functions.html#index_p"}, {text:"r",url:"functions.html#index_r"}, {text:"s",url:"functions.html#index_s"}, {text:"t",url:"functions.html#index_t"}]}, {text:"Variables",url:"functions_vars.html",children:[ +{text:"c",url:"functions_vars.html#index_c"}, {text:"d",url:"functions_vars.html#index_d"}, {text:"e",url:"functions_vars.html#index_e"}, {text:"g",url:"functions_vars.html#index_g"}, {text:"h",url:"functions_vars.html#index_h"}, +{text:"i",url:"functions_vars.html#index_i"}, {text:"l",url:"functions_vars.html#index_l"}, +{text:"n",url:"functions_vars.html#index_n"}, {text:"p",url:"functions_vars.html#index_p"}, {text:"r",url:"functions_vars.html#index_r"}, {text:"s",url:"functions_vars.html#index_s"}, @@ -57,17 +63,20 @@ var menudata={children:[ {text:"b",url:"globals.html#index_b"}, {text:"c",url:"globals.html#index_c"}, {text:"d",url:"globals.html#index_d"}, +{text:"e",url:"globals.html#index_e"}, {text:"g",url:"globals.html#index_g"}, {text:"h",url:"globals.html#index_h"}, {text:"i",url:"globals.html#index_i"}, {text:"l",url:"globals.html#index_l"}, {text:"m",url:"globals.html#index_m"}, {text:"n",url:"globals.html#index_n"}, +{text:"p",url:"globals.html#index_p"}, {text:"r",url:"globals.html#index_r"}, {text:"s",url:"globals.html#index_s"}, {text:"t",url:"globals.html#index_t"}, {text:"u",url:"globals.html#index_u"}]}, {text:"Functions",url:"globals_func.html",children:[ +{text:"e",url:"globals_func.html#index_e"}, {text:"g",url:"globals_func.html#index_g"}, {text:"h",url:"globals_func.html#index_h"}, {text:"r",url:"globals_func.html#index_r"}, @@ -79,12 +88,14 @@ var menudata={children:[ {text:"b",url:"globals_defs.html#index_b"}, {text:"c",url:"globals_defs.html#index_c"}, {text:"d",url:"globals_defs.html#index_d"}, +{text:"e",url:"globals_defs.html#index_e"}, {text:"g",url:"globals_defs.html#index_g"}, {text:"h",url:"globals_defs.html#index_h"}, {text:"i",url:"globals_defs.html#index_i"}, {text:"l",url:"globals_defs.html#index_l"}, {text:"m",url:"globals_defs.html#index_m"}, {text:"n",url:"globals_defs.html#index_n"}, +{text:"p",url:"globals_defs.html#index_p"}, {text:"r",url:"globals_defs.html#index_r"}, {text:"s",url:"globals_defs.html#index_s"}, {text:"t",url:"globals_defs.html#index_t"}, diff --git a/Doc/html/mylibs__config_8h.html b/Doc/html/mylibs__config_8h.html index d0e7bd6..4c94c66 100644 --- a/Doc/html/mylibs__config_8h.html +++ b/Doc/html/mylibs__config_8h.html @@ -121,41 +121,44 @@ $(function(){initNavTree('mylibs__config_8h.html','',''); }); @@ -195,6 +198,14 @@ Macros  Конец RAM памяти (чтобы во время анализа стека не выйти за пределы)
#define GPIO_TRACE_ENABLE  Включить GPIO трассировку
+#define ENABLE_EVOLVE_OPTIMIZATION + Включить оптимизацию параметров
+#define EVOLVE_MAX_PARAMS   20 + Максимальное количество параметров
+#define EVOLVE_MAX_CANDIDATES   100 + Максимальное количество кандидатов для обучения
+#define INCLUDE_EVOLVE_OPTIMIZER + Подключить библиотеку для оптимизации параметров
#define INCLUDE_BIT_ACCESS_LIB  Подключить библиотеку с typedef с битовыми полями
#define INCLUDE_TRACKERS_LIB diff --git a/Doc/html/mylibs__config_8h.js b/Doc/html/mylibs__config_8h.js index 88d39b2..18173b2 100644 --- a/Doc/html/mylibs__config_8h.js +++ b/Doc/html/mylibs__config_8h.js @@ -16,6 +16,10 @@ var mylibs__config_8h = [ "HF_FLASH_ADDR", "group___t_r_a_c_e___c_o_n_f_i_g.html#ga0c602733a4a359bf8c095d71cd4d0f63", null ], [ "HF_RAM_END", "group___t_r_a_c_e___c_o_n_f_i_g.html#ga92d0d14732edb7dfa21d483304bdb051", null ], [ "GPIO_TRACE_ENABLE", "group___t_r_a_c_e___c_o_n_f_i_g.html#ga4222e0e400ad81737cefcabeb03fd23b", null ], + [ "ENABLE_EVOLVE_OPTIMIZATION", "group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga2cac097081444a7a9b040f4b11550e47", null ], + [ "EVOLVE_MAX_PARAMS", "group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee", null ], + [ "EVOLVE_MAX_CANDIDATES", "group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971", null ], + [ "INCLUDE_EVOLVE_OPTIMIZER", "group___l_i_b_s___c_o_n_f_i_g.html#ga66560656d080d6551627a19dfb847c66", null ], [ "INCLUDE_BIT_ACCESS_LIB", "group___l_i_b_s___c_o_n_f_i_g.html#gaf4ddb2a71ec0d05c2480e197cd17c0be", null ], [ "INCLUDE_TRACKERS_LIB", "group___l_i_b_s___c_o_n_f_i_g.html#ga4403055986b70bb02b8d37073a122e32", null ], [ "INCLUDE_TRACE_LIB", "group___l_i_b_s___c_o_n_f_i_g.html#ga0a3ca94b616997069dd53e2c6c2687d7", null ], diff --git a/Doc/html/mylibs__config_8h__dep__incl.map b/Doc/html/mylibs__config_8h__dep__incl.map index cbc8c7e..64974ec 100644 --- a/Doc/html/mylibs__config_8h__dep__incl.map +++ b/Doc/html/mylibs__config_8h__dep__incl.map @@ -1,37 +1,40 @@ - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Doc/html/mylibs__config_8h__dep__incl.md5 b/Doc/html/mylibs__config_8h__dep__incl.md5 index 191dedc..2f6fe17 100644 --- a/Doc/html/mylibs__config_8h__dep__incl.md5 +++ b/Doc/html/mylibs__config_8h__dep__incl.md5 @@ -1 +1 @@ -1d30e7f7262a5810100c1f2c179cf017 \ No newline at end of file +29f3209273b7878fca69d464878bc9ff \ No newline at end of file diff --git a/Doc/html/mylibs__config_8h__dep__incl.png b/Doc/html/mylibs__config_8h__dep__incl.png index d59b97a..e12080c 100644 Binary files a/Doc/html/mylibs__config_8h__dep__incl.png and b/Doc/html/mylibs__config_8h__dep__incl.png differ diff --git a/Doc/html/mylibs__config_8h_source.html b/Doc/html/mylibs__config_8h_source.html index 3859a5d..8ba7606 100644 --- a/Doc/html/mylibs__config_8h_source.html +++ b/Doc/html/mylibs__config_8h_source.html @@ -155,29 +155,45 @@ $(function(){initNavTree('mylibs__config_8h_source.html','',''); });
53 * @}
54 */
55
-
56
-
57
-
58/**
-
59 * @addtogroup LIBS_CONFIG Libraries configs
-
60 * @ingroup MYLIBS_CONFIG
-
61 * @brief Подключение различных модулей библиотеки
-
62 * @{
-
63 */
-
64
-
65#define INCLUDE_BIT_ACCESS_LIB ///< Подключить библиотеку с typedef с битовыми полями
-
66#define INCLUDE_TRACKERS_LIB ///< Подключить библиотеку с трекерами
-
67#define INCLUDE_TRACE_LIB ///< Подключить библиотеку с трейсами
-
68#define INCLUDE_GENERAL_PERIPH_LIBS ///< Подключить библиотеку с периферией
-
69//#define FREERTOS_DELAY ///< Использовать FreeRTOS задержку, вместо HAL
-
70
-
71/** LIBS_CONFIG
-
72 * @}
-
73 */
-
74
-
75/** MYLIBS_CONFIG
-
76 * @}
-
77 */
-
78#endif //__MYLIBS_CONFIG_H_
+
56
+
57/**
+
58 * @addtogroup EVOLVE_CONFIG Evolve configs
+
59 * @ingroup MYLIBS_CONFIG
+
60 * @brief Конфигурация однослойного персептрона и алгоритма обучения
+
61 * @{
+
62 */
+
63
+
64#define ENABLE_EVOLVE_OPTIMIZATION ///< Включить оптимизацию параметров
+
65#define EVOLVE_MAX_PARAMS 20 ///< Максимальное количество параметров
+
66#define EVOLVE_MAX_CANDIDATES 100 ///< Максимальное количество кандидатов для обучения
+
67
+
68/** EVOLVE_CONFIG
+
69 * @}
+
70 */
+
71
+
72
+
73/**
+
74 * @addtogroup LIBS_CONFIG Libraries configs
+
75 * @ingroup MYLIBS_CONFIG
+
76 * @brief Подключение различных модулей библиотеки
+
77 * @{
+
78 */
+
79
+
80#define INCLUDE_EVOLVE_OPTIMIZER ///< Подключить библиотеку для оптимизации параметров
+
81#define INCLUDE_BIT_ACCESS_LIB ///< Подключить библиотеку с typedef с битовыми полями
+
82#define INCLUDE_TRACKERS_LIB ///< Подключить библиотеку с трекерами
+
83#define INCLUDE_TRACE_LIB ///< Подключить библиотеку с трейсами
+
84#define INCLUDE_GENERAL_PERIPH_LIBS ///< Подключить библиотеку с периферией
+
85//#define FREERTOS_DELAY ///< Использовать FreeRTOS задержку, вместо HAL
+
86
+
87/** LIBS_CONFIG
+
88 * @}
+
89 */
+
90
+
91/** MYLIBS_CONFIG
+
92 * @}
+
93 */
+
94#endif //__MYLIBS_CONFIG_H_
diff --git a/Doc/html/mylibs__defs_8h.html b/Doc/html/mylibs__defs_8h.html index b1f09da..639bfe0 100644 --- a/Doc/html/mylibs__defs_8h.html +++ b/Doc/html/mylibs__defs_8h.html @@ -123,39 +123,42 @@ $(function(){initNavTree('mylibs__defs_8h.html','',''); }); diff --git a/Doc/html/mylibs__defs_8h__dep__incl.map b/Doc/html/mylibs__defs_8h__dep__incl.map index 705a23a..a1ac985 100644 --- a/Doc/html/mylibs__defs_8h__dep__incl.map +++ b/Doc/html/mylibs__defs_8h__dep__incl.map @@ -1,35 +1,38 @@ - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Doc/html/mylibs__defs_8h__dep__incl.md5 b/Doc/html/mylibs__defs_8h__dep__incl.md5 index 6f2aaa0..77cf79b 100644 --- a/Doc/html/mylibs__defs_8h__dep__incl.md5 +++ b/Doc/html/mylibs__defs_8h__dep__incl.md5 @@ -1 +1 @@ -40a69cba061c10e4f05878fe09df0f2e \ No newline at end of file +3009d51b0bc5d0623e8c666bec71ce5b \ No newline at end of file diff --git a/Doc/html/mylibs__defs_8h__dep__incl.png b/Doc/html/mylibs__defs_8h__dep__incl.png index 89f4fe8..a5864bb 100644 Binary files a/Doc/html/mylibs__defs_8h__dep__incl.png and b/Doc/html/mylibs__defs_8h__dep__incl.png differ diff --git a/Doc/html/mylibs__defs_8h_source.html b/Doc/html/mylibs__defs_8h_source.html index 41719c1..86e81c3 100644 --- a/Doc/html/mylibs__defs_8h_source.html +++ b/Doc/html/mylibs__defs_8h_source.html @@ -105,7 +105,7 @@ $(function(){initNavTree('mylibs__defs_8h_source.html','',''); });
3* @file mylibs_defs.h
4* @brief Заголочный файл для дефайнов библиотеки MyLibsGeneral.
5**************************************************************************
-
6* @defgroup MYLIBS_DEFINES General Defines
+
6* @defgroup MYLIBS_DEFINES General Tools
7* @ingroup MYLIBS_ALL
8* @brief Общие макросы и typedef'ы, используемые по всему проекту
9*
@@ -157,136 +157,133 @@ $(function(){initNavTree('mylibs__defs_8h_source.html','',''); });
55
56
57/***************************************************************************
-
58********************************ACCESS_DEFINES*****************************/
-
59
-
60
-
61/***************************************************************************
-
62******************************DELAYS_DEFINES*******************************/
-
63/**
-
64 * @addtogroup DELAYS_DEFINES Delays defines
-
65 * @ingroup MYLIBS_DEFINES
-
66 * @brief Макросы и определения для работы с задержками в миллисекундах.
-
67 * @details
-
68 * Этот блок содержит макросы для реализации задержек с использованием HAL или FreeRTOS:
-
69 * - @ref msDelay — простая задержка заданной длительности;
-
70 * - @ref msDelayStart — сохранение текущего времени начала задержки;
-
71 * - @ref msDelayWhileActive — проверка, активна ли задержка;
-
72 * - @ref msDelayWaitDone — проверка, завершена ли задержка.
-
73 * Эти макросы удобны для реализации неблокирующих задержек.
-
74 * @{
-
75 */
-
76
-
77/**
-
78 * @def msDelay(_ms_)
-
79 * @brief Задержка на указанное количество миллисекунд.
-
80 * @param _ms_ Время задержки в миллисекундах.
-
81 * @note Использует HAL_Delay или osDelay в зависимости от @ref FREERTOS_DELAY.
-
82 */
-
83#ifdef FREERTOS_DELAY
-
84 #define msDelay(_ms_) osDelay(_ms_)
-
85#else
-
86 #define msDelay(_ms_) HAL_Delay(_ms_)
-
87#endif
-
88
-
89
-
90/**
-
91 * @brief Начать отсчет задержки.
-
92 * @param _pvar_ Указатель на переменную типа uint32_t для хранения времени старта.
-
93 * @details После вызова этого макроса переменная _pvar_ содержит текущее количество миллисекунд
-
94 * с момента запуска системы (HAL_GetTick).
-
95 *
-
96 * Используется для реализации неблокирующих задержек.
-
97 */
-
98#define msDelayStart(_pvar_) *(_pvar_) = HAL_GetTick()
-
99
-
100/**
-
101 * @brief Проверяет, активна ли задержка.
-
102 * @param _ms_ Длительность задержки в миллисекундах.
-
103 * @param _pvar_ Указатель на переменную, в которой сохранено время начала (@ref msDelayStart).
-
104 * @retval 1 Задержка еще активна.
-
105 * @retval 0 Задержка завершена.
-
106 * @details
-
107 * Возвращает true, пока время задержки не истекло. Используется в проверках,
-
108 * когда нужно **действовать, пока задержка выполняется**. Пример:
-
109 * @code
-
110 * while(msDelayWhileActive(1000, &tick)) {
-
111 * // выполняем другие задачи, задержка не блокирует поток
-
112 * }
-
113 * @endcode
-
114 */
-
115#define msDelayWhileActive(_ms_, _pvar_) (HAL_GetTick() - *(_pvar_) < _ms_)
-
116
-
117/**
-
118 * @brief Проверяет, завершилась ли задержка.
-
119 * @param _ms_ Длительность задержки в миллисекундах.
-
120 * @param _pvar_ Указатель на переменную, в которой сохранено время начала (msDelayStart).
-
121 * @retval 1 Задержка завершена.
-
122 * @retval 0 Задержка еще активна.
-
123 * @details
-
124 * Возвращает true, когда задержка уже завершена. Используется в проверках,
-
125 * когда нужно **выполнить действие только после окончания задержки**. Пример:
-
126 * @code
-
127 * if(msDelayWaitDone(1000, &tick)) {
-
128 * // выполняем действие после завершения задержки
-
129 * }
-
130 * @endcode
-
131 */
-
132#define msDelayWaitDone(_ms_, _pvar_) (HAL_GetTick() - *(_pvar_) >= _ms_)
-
133
-
134/** DELAYS_DEFINES
-
135 * @}
-
136 */
-
137
-
138
-
139/***************************************************************************
-
140*******************************MATH_DEFINES********************************/
-
141/**
-
142 * @addtogroup UTILS_DEFINES Utils defines
-
143 * @ingroup MYLIBS_DEFINES
-
144 * @brief Общие вспомогательные макросы
-
145 * @{
-
146 */
-
147
-
148/**
-
149 * @brief Обнуление структуры.
-
150 * @param _struct_ Структура, которую нужно обнулить.
-
151 * @details Макрос использует memset для обнуления всей памяти структуры.
-
152 * Используется для быстрой и безопасной инициализации переменных структур до нуля.
-
153 */
-
154#define ClearStruct(_struct_) memset(&(_struct_), 0, sizeof(_struct_))
-
155
-
156/**
-
157 * @brief Деление с округлением вверх
-
158 * @param _val_ Делимое.
-
159 * @param _div_ Делитель.
-
160 * @return Результат деления, округленный вверх.
-
161 * @details Если результат деления без остатка: он возвращается как есть
-
162 Если с остатком - округляется вверх
-
163 */
-
164//#define Divide_Up(_val_, _div_) (((_val_)%(_div_))? (_val_)/(_div_)+1 : (_val_)/_div_) /* через тернарный оператор */
-
165#define Divide_Up(_val_, _div_) ((_val_ - 1) / _div_) + 1 /* через мат выражение */
-
166
-
167/**
-
168 * @brief Swap between Little Endian and Big Endian
-
169 * @param v Исходное 16-битное значение.
-
170 * @return Результат с поменяными местами старшим и младшим байтом.
-
171 * @details Переключения между двумя типами хранения слова: HI-LO байты и LO-HI байты.
-
172 */
-
173#define ByteSwap16(v) (((v&0xFF00) >> (8)) | ((v&0x00FF) << (8)))
-
174
-
175/**
-
176 * @brief Абсолютное значение числа
-
177 * @param x Число.
-
178 * @return Абсолютное значение числа x.
-
179 * @details Берет число по модулю. Хз как работает библиотечный abs в stdlib.h, мб это быстрее, но вряд ли конечно.
-
180 */
-
181#define ABS(x) ( ((x) > 0)? (x) : -(x))
-
182
-
183/** UTILS_DEFINES
-
184 * @}
-
185 */
-
186
-
187#endif //__MYLIBS_DEFINES_H_
+
58******************************DELAYS_DEFINES*******************************/
+
59/**
+
60 * @addtogroup DELAYS_DEFINES Delays defines
+
61 * @ingroup MYLIBS_DEFINES
+
62 * @brief Макросы и определения для работы с задержками в миллисекундах.
+
63 * @details
+
64 * Этот блок содержит макросы для реализации задержек с использованием HAL или FreeRTOS:
+
65 * - @ref msDelay — простая задержка заданной длительности;
+
66 * - @ref msDelayStart — сохранение текущего времени начала задержки;
+
67 * - @ref msDelayWhileActive — проверка, активна ли задержка;
+
68 * - @ref msDelayWaitDone — проверка, завершена ли задержка.
+
69 * Эти макросы удобны для реализации неблокирующих задержек.
+
70 * @{
+
71 */
+
72
+
73/**
+
74 * @def msDelay(_ms_)
+
75 * @brief Задержка на указанное количество миллисекунд.
+
76 * @param _ms_ Время задержки в миллисекундах.
+
77 * @note Использует HAL_Delay или osDelay в зависимости от @ref FREERTOS_DELAY.
+
78 */
+
79#ifdef FREERTOS_DELAY
+
80 #define msDelay(_ms_) osDelay(_ms_)
+
81#else
+
82 #define msDelay(_ms_) HAL_Delay(_ms_)
+
83#endif
+
84
+
85
+
86/**
+
87 * @brief Начать отсчет задержки.
+
88 * @param _pvar_ Указатель на переменную типа uint32_t для хранения времени старта.
+
89 * @details После вызова этого макроса переменная _pvar_ содержит текущее количество миллисекунд
+
90 * с момента запуска системы (HAL_GetTick).
+
91 *
+
92 * Используется для реализации неблокирующих задержек.
+
93 */
+
94#define msDelayStart(_pvar_) *(_pvar_) = HAL_GetTick()
+
95
+
96/**
+
97 * @brief Проверяет, активна ли задержка.
+
98 * @param _ms_ Длительность задержки в миллисекундах.
+
99 * @param _pvar_ Указатель на переменную, в которой сохранено время начала (@ref msDelayStart).
+
100 * @retval 1 Задержка еще активна.
+
101 * @retval 0 Задержка завершена.
+
102 * @details
+
103 * Возвращает true, пока время задержки не истекло. Используется в проверках,
+
104 * когда нужно **действовать, пока задержка выполняется**. Пример:
+
105 * @code
+
106 * while(msDelayWhileActive(1000, &tick)) {
+
107 * // выполняем другие задачи, задержка не блокирует поток
+
108 * }
+
109 * @endcode
+
110 */
+
111#define msDelayWhileActive(_ms_, _pvar_) (HAL_GetTick() - *(_pvar_) < _ms_)
+
112
+
113/**
+
114 * @brief Проверяет, завершилась ли задержка.
+
115 * @param _ms_ Длительность задержки в миллисекундах.
+
116 * @param _pvar_ Указатель на переменную, в которой сохранено время начала (msDelayStart).
+
117 * @retval 1 Задержка завершена.
+
118 * @retval 0 Задержка еще активна.
+
119 * @details
+
120 * Возвращает true, когда задержка уже завершена. Используется в проверках,
+
121 * когда нужно **выполнить действие только после окончания задержки**. Пример:
+
122 * @code
+
123 * if(msDelayWaitDone(1000, &tick)) {
+
124 * // выполняем действие после завершения задержки
+
125 * }
+
126 * @endcode
+
127 */
+
128#define msDelayWaitDone(_ms_, _pvar_) (HAL_GetTick() - *(_pvar_) >= _ms_)
+
129
+
130/** DELAYS_DEFINES
+
131 * @}
+
132 */
+
133
+
134
+
135/***************************************************************************
+
136*******************************UTIL_DEFINES********************************/
+
137static int dummy;
+
138/**
+
139 * @addtogroup UTILS_DEFINES Utils defines
+
140 * @ingroup MYLIBS_DEFINES
+
141 * @brief Общие вспомогательные макросы
+
142 * @{
+
143 */
+
144
+
145/**
+
146 * @brief Обнуление структуры.
+
147 * @param _struct_ Структура, которую нужно обнулить.
+
148 * @details Макрос использует memset для обнуления всей памяти структуры.
+
149 * Используется для быстрой и безопасной инициализации переменных структур до нуля.
+
150 */
+
151#define ClearStruct(_struct_) memset(&(_struct_), 0, sizeof(_struct_))
+
152
+
153/**
+
154 * @brief Деление с округлением вверх
+
155 * @param _val_ Делимое.
+
156 * @param _div_ Делитель.
+
157 * @return Результат деления, округленный вверх.
+
158 * @details Если результат деления без остатка: он возвращается как есть
+
159 Если с остатком - округляется вверх
+
160 */
+
161//#define Divide_Up(_val_, _div_) (((_val_)%(_div_))? (_val_)/(_div_)+1 : (_val_)/_div_) /* через тернарный оператор */
+
162#define Divide_Up(_val_, _div_) ((_val_ - 1) / _div_) + 1 /* через мат выражение */
+
163
+
164/**
+
165 * @brief Swap between Little Endian and Big Endian
+
166 * @param v Исходное 16-битное значение.
+
167 * @return Результат с поменяными местами старшим и младшим байтом.
+
168 * @details Переключения между двумя типами хранения слова: HI-LO байты и LO-HI байты.
+
169 */
+
170#define ByteSwap16(v) (((v&0xFF00) >> (8)) | ((v&0x00FF) << (8)))
+
171
+
172/**
+
173 * @brief Абсолютное значение числа
+
174 * @param x Число.
+
175 * @return Абсолютное значение числа x.
+
176 * @details Берет число по модулю. Хз как работает библиотечный abs в stdlib.h, мб это быстрее, но вряд ли конечно.
+
177 */
+
178#define ABS(x) ( ((x) > 0)? (x) : -(x))
+
179
+
180/** UTILS_DEFINES
+
181 * @}
+
182 */
+
183
+
184#endif //__MYLIBS_DEFINES_H_
mylibs_config.h
Конфигурации для библиотек MyLibs.
diff --git a/Doc/html/mylibs__include_8h.html b/Doc/html/mylibs__include_8h.html index 6070469..a47e7ab 100644 --- a/Doc/html/mylibs__include_8h.html +++ b/Doc/html/mylibs__include_8h.html @@ -104,9 +104,11 @@ $(function(){initNavTree('mylibs__include_8h.html','',''); });

Заголочный файл для всех библиотек More...

#include "mylibs_defs.h"
+#include "math.h"
#include "bit_access.h"
#include "trackers.h"
#include "trace.h"
+#include "evolve_optimizer.h"
#include "general_flash.h"
#include "general_gpio.h"
#include "general_tim.h"
@@ -116,35 +118,44 @@ $(function(){initNavTree('mylibs__include_8h.html','',''); });
diff --git a/Doc/html/mylibs__include_8h__incl.map b/Doc/html/mylibs__include_8h__incl.map index 7a50c10..325308a 100644 --- a/Doc/html/mylibs__include_8h__incl.map +++ b/Doc/html/mylibs__include_8h__incl.map @@ -1,31 +1,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Doc/html/mylibs__include_8h__incl.md5 b/Doc/html/mylibs__include_8h__incl.md5 index 1931951..48042dd 100644 --- a/Doc/html/mylibs__include_8h__incl.md5 +++ b/Doc/html/mylibs__include_8h__incl.md5 @@ -1 +1 @@ -ce4a5806741b3eb40f3fb015cc24db98 \ No newline at end of file +d43d5a141d087c4ef99d3ea25bfc5d0a \ No newline at end of file diff --git a/Doc/html/mylibs__include_8h__incl.png b/Doc/html/mylibs__include_8h__incl.png index fdfeb36..5c944d3 100644 Binary files a/Doc/html/mylibs__include_8h__incl.png and b/Doc/html/mylibs__include_8h__incl.png differ diff --git a/Doc/html/mylibs__include_8h_source.html b/Doc/html/mylibs__include_8h_source.html index a411e0b..4b13774 100644 --- a/Doc/html/mylibs__include_8h_source.html +++ b/Doc/html/mylibs__include_8h_source.html @@ -132,162 +132,105 @@ $(function(){initNavTree('mylibs__include_8h_source.html','',''); });
30
31#ifdef ARM_MATH_CM4
32 #include "arm_math.h"
-
33#endif
-
34
-
35
-
36#ifdef INCLUDE_BIT_ACCESS_LIB
-
37#include "bit_access.h"
-
38#endif
-
39
-
40#ifdef INCLUDE_TRACKERS_LIB
-
41#include "trackers.h"
-
42#endif
-
43
-
44#ifdef INCLUDE_TRACE_LIB
-
45#include "trace.h"
-
46#endif
-
47
-
48
-
49
-
50#ifdef INCLUDE_GENERAL_PERIPH_LIBS
-
51
-
52#include "general_flash.h"
-
53#include "general_gpio.h"
-
54#ifdef HAL_SPI_MODULE_ENABLED
-
55#include "general_spi.h"
-
56#endif
-
57#ifdef HAL_UART_MODULE_ENABLED
-
58#include "general_uart.h"
-
59#endif
-
60#ifdef HAL_TIM_MODULE_ENABLED
-
61#include "general_tim.h"
-
62#endif
-
63
-
64#endif //INCLUDE_GENERAL_PERIPH_LIBS
-
65
+
33#else
+
34 #include "math.h"
+
35#endif
+
36
+
37
+
38#ifdef INCLUDE_BIT_ACCESS_LIB
+
39#include "bit_access.h"
+
40#endif
+
41
+
42#ifdef INCLUDE_TRACKERS_LIB
+
43#include "trackers.h"
+
44#else
+
45 #define TrackerTypeDef(num_user_vars) void *
+
46 #define num_of_usercnts(_user_) 0
+
47 #define assert_tracecnt(_cntstruct_, _uservarnumb_) 0
+
48 #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(0)
+
49 #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) 0
+
50 #define TrackerGet_Ok(_cntstruct_) dummy
+
51 #define TrackerGet_Err(_cntstruct_) dummy
+
52 #define TrackerGet_Warn(_cntstruct_) dummy
+
53 #define TrackerGet_User(_cntstruct_, _uservarnumb_) dummy
+
54 #define TrackerCnt_Ok(_cntstruct_)
+
55 #define TrackerCnt_Err(_cntstruct_)
+
56 #define TrackerCnt_Warn(_cntstruct_)
+
57 #define TrackerCnt_User(_cntstruct_, _uservarnumb_)
+
58 #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)
+
59 #define TrackerClear_All(_cntstruct_)
+
60 #define TrackerClear_Ok(_cntstruct_)
+
61 #define TrackerClear_Err(_cntstruct_)
+
62 #define TrackerClear_Warn(_cntstruct_)
+
63 #define TrackerClear_User(_cntstruct_)
+
64 #define TrackerClear_UserAll(_cntstruct_)
+
65#endif
66
-
67
-
68
-
69/////////////////////////---USER SETTINGS---/////////////////////////
-
70// user includes
-
71
-
72// user settings
-
73/////////////////////////---USER SETTINGS---/////////////////////////
-
74
-
75
-
76#endif // __MYLIBS_INCLUDE_H_
-
77
-
78/**
-
79@mainpage
-
80
-
81@section overview Обзор
-
82MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32.
-
83
-
84@subsection features Основные возможности
-
85
-
86@subsubsection utils_module Общие утилиты @ref MYLIBS_DEFINES
-
87- Битовый доступ к регистрам через union
-
88- Трекеры для статистики и отладки
-
89- Макросы для задержек и утилит
-
90- Поддержка FreeRTOS
-
91
-
92@subsubsection trace_module Трассировка @ref TRACE
-
93
-
94- Serial трассировка через SWO и RTT
-
95- GPIO трассировка для отладки
-
96- Сохранение логов в Flash память
-
97- Обработка HardFault с сохранением контекста
-
98
-
99@subsubsection gpio_module Модуль GPIO @ref MY_LIBS_GPIO
-
100- Управление светодиодами (включение/выключение, моргание, плавное затухание)
-
101- Работа с кнопками (чтение состояния, фильтрация дребезга)
-
102- Инициализация портов и тактирования
-
103- Поддержка альтернативных функций
-
104
-
105@subsubsection tim_module Модуль таймеров @ref MY_LIBS_TIM
-
106
-
107- Базовая инициализация таймеров
-
108- Режимы прерываний
-
109- Формирование задержек (блокирующие и неблокирующие)
-
110- Работа с энкодерами (чтение положения, обработка кнопок)
-
111- Настройка ШИМ и Output Compare
-
112
-
113
-
114@subsection structure Структура проекта
-
115
-
116@code
-
117├── inc/ # Заголовочные файлы
-
118│ ├── mylibs_include.h # Главный include файл
-
119│ ├── mylibs_config.h # Конфигурация библиотек
-
120│ ├── mylibs_defs.h # Общие определения и макросы
-
121│ ├── bit_access.h # Битовый доступ к регистрам
-
122│ ├── trackers.h # Трекеры для отладки
-
123│ ├── trace.h # Трассировка и логирование
-
124│ ├── general_gpio.h # Работа с GPIO
-
125│ └── general_tim.h # Работа с таймерами
-
126└── src/ # Исходные файлы
-
127 ├── general_gpio.c # Реализация GPIO
-
128 └── general_tim.c # Реализация TIM
-
129@endcode
-
130
-
131@subsection usage_basic Использование
-
132
-
133Инструкция по подключению:
-
134
-
1351. Настройте конфигурацию @ref MYLIBS_CONFIG в @ref mylibs_config.h
-
136
-
1372. Подключите главный заголовочный файл:
-
138@code
-
139#include "mylibs_include.h"
-
140@endcode
-
141
-
1423. Используйте нужные модули в своем коде
-
143
-
144@subsubsection gpio_example Пример работы с GPIO
-
145
-
146@code
-
147// Инициализация светодиода
-
148MX_GPIO_Init();
-
149GPIO_LEDTypeDef led;
-
150GPIO_LED_Init(&led, GPIOA, GPIO_PIN_5, 1);
-
151
-
152// Включение светодиода
-
153GPIO_LED_On(&led);
-
154
-
155// Запуск моргания
-
156GPIO_LED_Blink_Start(&led, 500); // Период 500 мс
-
157
-
158// В основном цикле
-
159while (1) {
-
160GPIO_LED_Dynamic_Handle(&led);
-
161}
-
162@endcode
-
163
-
164@subsubsection tim_example Пример работы с таймером
-
165
-
166@code
-
167// Настройка таймера
-
168TIM_SettingsTypeDef tim_settings = {0};
-
169tim_settings.htim.Instance = TIM2;
-
170tim_settings.sTimAHBFreqMHz = SystemCoreClock;
-
171tim_settings.sTickBaseUS = TIM_TickBase_1MS;
-
172tim_settings.sTimFreqHz = 1000; // 1 кГц
-
173tim_settings.sTimMode = TIM_IT_CONF;
-
174
-
175TIM_Base_Init(&tim_settings);
-
176HAL_TIM_Base_Start(&tim_settings.htim);
-
177@endcode
-
178
-
179@subsection dependencies Зависимости
-
180
-
181- HAL библиотека STM32
-
182- SEGGER RTT (опционально, для RTT трассировки)
-
183- FreeRTOS (опционально, для FreeRTOS задержек)
-
184 */
+
67#ifdef INCLUDE_TRACE_LIB
+
68#include "trace.h"
+
69#else
+
70#define my_printf(...)
+
71#define log_printf(TAG, fmt, ...)
+
72#define TRACE_GPIO_SET(_gpio_,_pin_)
+
73#define TRACE_GPIO_RESET(_gpio_,_pin_)
+
74#define RTT_FlashPrepare(...)
+
75#define RTT_EraseFlash(...) 0
+
76#define RTT_SaveToFlash(...) 0
+
77#define RTT_ReadFromFlash(...) 0
+
78#define HF_CheckRecovered(...) 0
+
79#define HF_HandleFault(...)
+
80#endif
+
81
+
82#ifdef INCLUDE_EVOLVE_OPTIMIZER
+
83#include "evolve_optimizer.h"
+
84#else
+
85typedef struct {
+
86 uint16_t n_params;
+
87 uint16_t n_cand;
+
88 uint16_t n_best;
+
89 uint16_t iq_mutation;
+
90 int32_t loss[0];
+
91 int32_t candidates[0][0];
+
92} EvolveOptimizer_t;
+
93#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, iq_mutation, start_params)
+
94#define EvolveOptimizer_Step(opt, params, LossFunc)
+
95#define PARAM_SCALE_Q16(x, min_val, max_val) (x)
+
96#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) (q16_val)
+
97#endif
+
98
+
99#ifdef INCLUDE_GENERAL_PERIPH_LIBS
+
100
+
101#include "general_flash.h"
+
102#include "general_gpio.h"
+
103#ifdef HAL_SPI_MODULE_ENABLED
+
104#include "general_spi.h"
+
105#endif
+
106#ifdef HAL_UART_MODULE_ENABLED
+
107#include "general_uart.h"
+
108#endif
+
109#ifdef HAL_TIM_MODULE_ENABLED
+
110#include "general_tim.h"
+
111#endif
+
112
+
113#endif //INCLUDE_GENERAL_PERIPH_LIBS
+
114
+
115
+
116
+
117
+
118/////////////////////////---USER SETTINGS---/////////////////////////
+
119// user includes
+
120
+
121// user settings
+
122/////////////////////////---USER SETTINGS---/////////////////////////
+
123
+
124
+
125#endif // __MYLIBS_INCLUDE_H_
bit_access.h
Заголочный файл для дефайнов битового доступа.
+
evolve_optimizer.h
Заголовочный файл для адаптивного подбора параметров
general_gpio.h
Заголовочный файл для модуля инициализации портов и работы с ними.
general_tim.h
Заголовочный файл для модуля инициализации таймеров и работы с ними.
mylibs_defs.h
Заголочный файл для дефайнов библиотеки MyLibsGeneral.
+
EvolveOptimizer_t
Структура эволюционного оптимизатора
Definition evolve_optimizer.h:81
trace.h
Заголочный файл для работы с трассировкой.
trackers.h
Заголочный файл для работы с трекерами Trackers defines.
diff --git a/Doc/html/navtreedata.js b/Doc/html/navtreedata.js index 32e9b19..2fdddcb 100644 --- a/Doc/html/navtreedata.js +++ b/Doc/html/navtreedata.js @@ -27,7 +27,7 @@ var NAVTREE = [ "MyLibs", "index.html", [ [ "Обзор", "index.html#overview", [ [ "Основные возможности", "index.html#features", [ - [ "Общие утилиты General Defines", "index.html#utils_module", null ], + [ "Общие утилиты (General Tools)", "index.html#utils_module", null ], [ "Трассировка Trace defines", "index.html#trace_module", null ], [ "Модуль GPIO GPIO Tools", "index.html#gpio_module", null ], [ "Модуль таймеров TIM Tools", "index.html#tim_module", null ] @@ -64,7 +64,7 @@ var NAVTREE = var NAVTREEINDEX = [ "____general__flash_8c_source.html", -"trace_8h_source.html" +"struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e" ]; var SYNCONMSG = 'click to disable panel synchronization'; diff --git a/Doc/html/navtreeindex0.js b/Doc/html/navtreeindex0.js index 7323ed5..e45e5a6 100644 --- a/Doc/html/navtreeindex0.js +++ b/Doc/html/navtreeindex0.js @@ -13,17 +13,19 @@ var NAVTREEINDEX0 = "dir_9c80311a018e1f8cfb6659b73d634be4.html":[3,0,0,1], "dir_9e11e9a41112194af3eee6cc728f9515.html":[3,0,0], "dir_eb423fea8a9c4b9b32b922020ec391e1.html":[3,0,0,0], +"evolve__optimizer_8h.html":[3,0,0,0,4], +"evolve__optimizer_8h_source.html":[3,0,0,0,4], "files.html":[3,0], "functions.html":[2,2,0], "functions_vars.html":[2,2,1], "general__gpio_8c.html":[3,0,0,1,3], "general__gpio_8c_source.html":[3,0,0,1,3], -"general__gpio_8h.html":[3,0,0,0,4], -"general__gpio_8h_source.html":[3,0,0,0,4], +"general__gpio_8h.html":[3,0,0,0,5], +"general__gpio_8h_source.html":[3,0,0,0,5], "general__tim_8c.html":[3,0,0,1,4], "general__tim_8c_source.html":[3,0,0,1,4], -"general__tim_8h.html":[3,0,0,0,5], -"general__tim_8h_source.html":[3,0,0,0,5], +"general__tim_8h.html":[3,0,0,0,6], +"general__tim_8h_source.html":[3,0,0,0,6], "globals.html":[3,1,0], "globals_defs.html":[3,1,4], "globals_enum.html":[3,1,2], @@ -34,29 +36,39 @@ var NAVTREEINDEX0 = "group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html#ga57dc3bb3472a66fc92312f89d42d2396":[1,0,1,0,4], "group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html#ga6a122b536ad99ae611c8cf01437af086":[1,0,1,0,5], "group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html#gafaa2080168b1b6f7281e8bfabab022d1":[1,0,1,0,6], -"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html":[1,0,1,2], -"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#ga0b97e172659a59ee4fa56f851643ae85":[1,0,1,2,2], -"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#ga8a5051b1292d1019fe8dd3fc5521ab25":[1,0,1,2,1], -"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#gabeb97579daeb622c6651ed03c4a27479":[1,0,1,2,0], -"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#gaed082c07b9fc4d1894330d885b9b5518":[1,0,1,2,3], -"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html":[1,0,1,1], -"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga27b363f333cacdccc15f5174e096b5b3":[1,0,1,1,2], -"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga590973be111afc3f9ba15e6939530254":[1,0,1,1,4], -"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga5d066a5b9781f9437e75d98677489eb9":[1,0,1,1,1], -"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga838b40542faa9aa273d18f921b21fda2":[1,0,1,1,3], -"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gaab0aafd7a4a21ec4f338b19269f65490":[1,0,1,1,5], -"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f":[1,0,1,1,0], +"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html":[1,0,1,3], +"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#ga0b97e172659a59ee4fa56f851643ae85":[1,0,1,3,2], +"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#ga8a5051b1292d1019fe8dd3fc5521ab25":[1,0,1,3,1], +"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#gabeb97579daeb622c6651ed03c4a27479":[1,0,1,3,0], +"group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#gaed082c07b9fc4d1894330d885b9b5518":[1,0,1,3,3], +"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html":[1,0,1,2], +"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga27b363f333cacdccc15f5174e096b5b3":[1,0,1,2,2], +"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga590973be111afc3f9ba15e6939530254":[1,0,1,2,4], +"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga5d066a5b9781f9437e75d98677489eb9":[1,0,1,2,1], +"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga838b40542faa9aa273d18f921b21fda2":[1,0,1,2,3], +"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gaab0aafd7a4a21ec4f338b19269f65490":[1,0,1,2,5], +"group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f":[1,0,1,2,0], +"group___e_v_o_l_v_e___c_o_n_f_i_g.html":[1,0,0,1], +"group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga2cac097081444a7a9b040f4b11550e47":[1,0,0,1,0], +"group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971":[1,0,0,1,2], +"group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee":[1,0,0,1,1], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html":[1,0,1,1], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563":[1,0,1,1,4], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga71a0c240c667e976d9caef391ab767ba":[1,0,1,1,2], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9":[1,0,1,1,3], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaff223481fcffea77394a331afde29fdc":[1,0,1,1,1], "group___g_p_i_o___i_n_i_t.html":[1,0,2,0,0,0], "group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9":[1,0,2,0,0,0,3], "group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023":[1,0,2,0,0,0,0], "group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29":[1,0,2,0,0,0,2], "group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067":[1,0,2,0,0,0,4], "group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25":[1,0,2,0,0,0,1], -"group___l_i_b_s___c_o_n_f_i_g.html":[1,0,0,1], -"group___l_i_b_s___c_o_n_f_i_g.html#ga0a3ca94b616997069dd53e2c6c2687d7":[1,0,0,1,2], -"group___l_i_b_s___c_o_n_f_i_g.html#ga181a46326e46b60afb160190832c7281":[1,0,0,1,3], -"group___l_i_b_s___c_o_n_f_i_g.html#ga4403055986b70bb02b8d37073a122e32":[1,0,0,1,1], -"group___l_i_b_s___c_o_n_f_i_g.html#gaf4ddb2a71ec0d05c2480e197cd17c0be":[1,0,0,1,0], +"group___l_i_b_s___c_o_n_f_i_g.html":[1,0,0,2], +"group___l_i_b_s___c_o_n_f_i_g.html#ga0a3ca94b616997069dd53e2c6c2687d7":[1,0,0,2,3], +"group___l_i_b_s___c_o_n_f_i_g.html#ga181a46326e46b60afb160190832c7281":[1,0,0,2,4], +"group___l_i_b_s___c_o_n_f_i_g.html#ga4403055986b70bb02b8d37073a122e32":[1,0,0,2,2], +"group___l_i_b_s___c_o_n_f_i_g.html#ga66560656d080d6551627a19dfb847c66":[1,0,0,2,0], +"group___l_i_b_s___c_o_n_f_i_g.html#gaf4ddb2a71ec0d05c2480e197cd17c0be":[1,0,0,2,1], "group___m_y___l_i_b_s___g_p_i_o.html":[1,0,2,0], "group___m_y___l_i_b_s___t_i_m.html":[1,0,2,1], "group___m_y_l_i_b_s___a_l_l.html":[1,0], @@ -123,7 +135,7 @@ var NAVTREEINDEX0 = "group___t_i_m___i_n_i_t.html#ga9ae40be31d5271abe3e49f896d916d5c":[1,0,2,1,3,0,13], "group___t_i_m___i_n_i_t.html#gaac627c0e98c9594cc41b1b46eb39e44a":[1,0,2,1,3,0,8], "group___t_i_m___i_n_i_t.html#gaf48ef87650517652ddec039a189507ac":[1,0,2,1,3,0,12], -"group___t_r_a_c_e.html":[1,0,1,4], +"group___t_r_a_c_e.html":[1,0,1,5], "group___t_r_a_c_e___c_o_n_f_i_g.html":[1,0,0,0], "group___t_r_a_c_e___c_o_n_f_i_g.html#ga00ff2175bdc1fb11c8ec970ea3010dd8":[1,0,0,0,2], "group___t_r_a_c_e___c_o_n_f_i_g.html#ga0b87e0d3bf5853bcbb0b66a7c48fdc05":[1,0,0,0,4], @@ -141,46 +153,46 @@ var NAVTREEINDEX0 = "group___t_r_a_c_e___c_o_n_f_i_g.html#gadc960255719c7eff4bdfaa850be9b313":[1,0,0,0,10], "group___t_r_a_c_e___c_o_n_f_i_g.html#gafcc7ea03d4df8f1909e580b519a7f3ca":[1,0,0,0,11], "group___t_r_a_c_e___c_o_n_f_i_g.html#gafeca0be3688dea07ff443f894668003d":[1,0,0,0,8], -"group___t_r_a_c_e___g_p_i_o.html":[1,0,1,4,1], -"group___t_r_a_c_e___g_p_i_o.html#ga02a6a7b273766121db8ad4a1371373eb":[1,0,1,4,1,1], -"group___t_r_a_c_e___g_p_i_o.html#ga69741d88c991112e99fe7a62e025108a":[1,0,1,4,1,0], -"group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html":[1,0,1,4,3], -"group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html#ga03f8b6f3b537ee1c8e91065c60db504f":[1,0,1,4,3,1], -"group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html#gadd8e10e7ec3b0204f7f92062ecd452f7":[1,0,1,4,3,2], -"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html":[1,0,1,4,2], -"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga21353cb4f5af666237739e62ce019cd6":[1,0,1,4,2,1], -"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga734b2ebbf0c77699b739013878cfd146":[1,0,1,4,2,3], -"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga79f222c8ab644de4d47f07528d1edd63":[1,0,1,4,2,2], -"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga8d8c6850e32b42871faefce3352012d1":[1,0,1,4,2,4], -"group___t_r_a_c_e___s_e_r_i_a_l.html":[1,0,1,4,0], -"group___t_r_a_c_e___s_e_r_i_a_l.html#ga730fb7b8d0bbb348dca73c15bd0e0b26":[1,0,1,4,0,1], -"group___t_r_a_c_e___s_e_r_i_a_l.html#gae9b9b8a611e291a2f2aa5abf99f3ebaa":[1,0,1,4,0,0], -"group___t_r_a_c_k_e_r_s.html":[1,0,1,5], -"group___t_r_a_c_k_e_r_s.html#ga063dab1067005e1600ea32531fdf3f8d":[1,0,1,5,18], -"group___t_r_a_c_k_e_r_s.html#ga1b7549afc4a1760b54a9b93b0f6d105e":[1,0,1,5,12], -"group___t_r_a_c_k_e_r_s.html#ga23de0006aa08984cfeddb6aa5e512fa1":[1,0,1,5,9], -"group___t_r_a_c_k_e_r_s.html#ga365a8c60bd13b75154feda649dd21ead":[1,0,1,5,17], -"group___t_r_a_c_k_e_r_s.html#ga39b6ffbc561f8caac276415e1ad32c30":[1,0,1,5,4], -"group___t_r_a_c_k_e_r_s.html#ga47ac59a406ee74d4cd9fe0fbaf63a758":[1,0,1,5,7], -"group___t_r_a_c_k_e_r_s.html#ga49af29ab3927cad105c1d2b018a767e9":[1,0,1,5,10], -"group___t_r_a_c_k_e_r_s.html#ga4b08632669043dfdbd219dda03502bdb":[1,0,1,5,8], -"group___t_r_a_c_k_e_r_s.html#ga50ccb119acf302969b7fdcb58f2130e4":[1,0,1,5,0], -"group___t_r_a_c_k_e_r_s.html#ga5dd8bac8c7ab5832019d55d7a68371b9":[1,0,1,5,15], -"group___t_r_a_c_k_e_r_s.html#ga704f7b9f8c65c9bcec48ce7cb77a2d3b":[1,0,1,5,14], -"group___t_r_a_c_k_e_r_s.html#ga72be24629fedb8bf70e830373d151fbc":[1,0,1,5,1], -"group___t_r_a_c_k_e_r_s.html#ga8017fb05a56a1b667244f1f786fa9c57":[1,0,1,5,11], -"group___t_r_a_c_k_e_r_s.html#ga9dc91e6b798a081f95f2ccef2c288e5e":[1,0,1,5,6], -"group___t_r_a_c_k_e_r_s.html#gaaec7ec19977bb26fa1919dfe920b82d5":[1,0,1,5,19], -"group___t_r_a_c_k_e_r_s.html#gab880911066605602a966641682090169":[1,0,1,5,5], -"group___t_r_a_c_k_e_r_s.html#gad2f4062a9ac8c2ab062a364f640ebc51":[1,0,1,5,13], -"group___t_r_a_c_k_e_r_s.html#gad91d8ca89074270fc040c0449e57cf07":[1,0,1,5,3], -"group___t_r_a_c_k_e_r_s.html#gadd7fd2c6e3a4800f1d5ddab35fd4b43e":[1,0,1,5,2], -"group___t_r_a_c_k_e_r_s.html#gae860b6947c6e317e14d40bd7b4b8eb74":[1,0,1,5,16], -"group___u_t_i_l_s___d_e_f_i_n_e_s.html":[1,0,1,3], -"group___u_t_i_l_s___d_e_f_i_n_e_s.html#ga0f22e895ac7781c3d1b68fee182c4291":[1,0,1,3,2], -"group___u_t_i_l_s___d_e_f_i_n_e_s.html#ga996f7be338ccb40d1a2a5abc1ad61759":[1,0,1,3,3], -"group___u_t_i_l_s___d_e_f_i_n_e_s.html#gabf45f2b60eedf80cf9d1dbe4302a741e":[1,0,1,3,1], -"group___u_t_i_l_s___d_e_f_i_n_e_s.html#gaf5e598848326d48e86167e5099a029be":[1,0,1,3,0], +"group___t_r_a_c_e___g_p_i_o.html":[1,0,1,5,1], +"group___t_r_a_c_e___g_p_i_o.html#ga02a6a7b273766121db8ad4a1371373eb":[1,0,1,5,1,1], +"group___t_r_a_c_e___g_p_i_o.html#ga69741d88c991112e99fe7a62e025108a":[1,0,1,5,1,0], +"group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html":[1,0,1,5,3], +"group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html#ga03f8b6f3b537ee1c8e91065c60db504f":[1,0,1,5,3,1], +"group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html#gadd8e10e7ec3b0204f7f92062ecd452f7":[1,0,1,5,3,2], +"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html":[1,0,1,5,2], +"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga21353cb4f5af666237739e62ce019cd6":[1,0,1,5,2,1], +"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga734b2ebbf0c77699b739013878cfd146":[1,0,1,5,2,3], +"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga79f222c8ab644de4d47f07528d1edd63":[1,0,1,5,2,2], +"group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga8d8c6850e32b42871faefce3352012d1":[1,0,1,5,2,4], +"group___t_r_a_c_e___s_e_r_i_a_l.html":[1,0,1,5,0], +"group___t_r_a_c_e___s_e_r_i_a_l.html#ga730fb7b8d0bbb348dca73c15bd0e0b26":[1,0,1,5,0,1], +"group___t_r_a_c_e___s_e_r_i_a_l.html#gae9b9b8a611e291a2f2aa5abf99f3ebaa":[1,0,1,5,0,0], +"group___t_r_a_c_k_e_r_s.html":[1,0,1,6], +"group___t_r_a_c_k_e_r_s.html#ga063dab1067005e1600ea32531fdf3f8d":[1,0,1,6,18], +"group___t_r_a_c_k_e_r_s.html#ga1b7549afc4a1760b54a9b93b0f6d105e":[1,0,1,6,12], +"group___t_r_a_c_k_e_r_s.html#ga23de0006aa08984cfeddb6aa5e512fa1":[1,0,1,6,9], +"group___t_r_a_c_k_e_r_s.html#ga365a8c60bd13b75154feda649dd21ead":[1,0,1,6,17], +"group___t_r_a_c_k_e_r_s.html#ga39b6ffbc561f8caac276415e1ad32c30":[1,0,1,6,4], +"group___t_r_a_c_k_e_r_s.html#ga47ac59a406ee74d4cd9fe0fbaf63a758":[1,0,1,6,7], +"group___t_r_a_c_k_e_r_s.html#ga49af29ab3927cad105c1d2b018a767e9":[1,0,1,6,10], +"group___t_r_a_c_k_e_r_s.html#ga4b08632669043dfdbd219dda03502bdb":[1,0,1,6,8], +"group___t_r_a_c_k_e_r_s.html#ga50ccb119acf302969b7fdcb58f2130e4":[1,0,1,6,0], +"group___t_r_a_c_k_e_r_s.html#ga5dd8bac8c7ab5832019d55d7a68371b9":[1,0,1,6,15], +"group___t_r_a_c_k_e_r_s.html#ga704f7b9f8c65c9bcec48ce7cb77a2d3b":[1,0,1,6,14], +"group___t_r_a_c_k_e_r_s.html#ga72be24629fedb8bf70e830373d151fbc":[1,0,1,6,1], +"group___t_r_a_c_k_e_r_s.html#ga8017fb05a56a1b667244f1f786fa9c57":[1,0,1,6,11], +"group___t_r_a_c_k_e_r_s.html#ga9dc91e6b798a081f95f2ccef2c288e5e":[1,0,1,6,6], +"group___t_r_a_c_k_e_r_s.html#gaaec7ec19977bb26fa1919dfe920b82d5":[1,0,1,6,19], +"group___t_r_a_c_k_e_r_s.html#gab880911066605602a966641682090169":[1,0,1,6,5], +"group___t_r_a_c_k_e_r_s.html#gad2f4062a9ac8c2ab062a364f640ebc51":[1,0,1,6,13], +"group___t_r_a_c_k_e_r_s.html#gad91d8ca89074270fc040c0449e57cf07":[1,0,1,6,3], +"group___t_r_a_c_k_e_r_s.html#gadd7fd2c6e3a4800f1d5ddab35fd4b43e":[1,0,1,6,2], +"group___t_r_a_c_k_e_r_s.html#gae860b6947c6e317e14d40bd7b4b8eb74":[1,0,1,6,16], +"group___u_t_i_l_s___d_e_f_i_n_e_s.html":[1,0,1,4], +"group___u_t_i_l_s___d_e_f_i_n_e_s.html#ga0f22e895ac7781c3d1b68fee182c4291":[1,0,1,4,2], +"group___u_t_i_l_s___d_e_f_i_n_e_s.html#ga996f7be338ccb40d1a2a5abc1ad61759":[1,0,1,4,3], +"group___u_t_i_l_s___d_e_f_i_n_e_s.html#gabf45f2b60eedf80cf9d1dbe4302a741e":[1,0,1,4,1], +"group___u_t_i_l_s___d_e_f_i_n_e_s.html#gaf5e598848326d48e86167e5099a029be":[1,0,1,4,0], "index.html":[], "index.html#dependencies":[0,3], "index.html#features":[0,0], @@ -193,13 +205,22 @@ var NAVTREEINDEX0 = "index.html#trace_module":[0,0,1], "index.html#usage_basic":[0,2], "index.html#utils_module":[0,0,0], -"mylibs__config_8h.html":[3,0,0,0,6], -"mylibs__config_8h_source.html":[3,0,0,0,6], -"mylibs__defs_8h.html":[3,0,0,0,7], -"mylibs__defs_8h_source.html":[3,0,0,0,7], -"mylibs__include_8h.html":[3,0,0,0,8], -"mylibs__include_8h_source.html":[3,0,0,0,8], +"mainpage_8h_source.html":[3,0,0,2], +"mylibs__config_8h.html":[3,0,0,0,7], +"mylibs__config_8h_source.html":[3,0,0,0,7], +"mylibs__defs_8h.html":[3,0,0,0,8], +"mylibs__defs_8h_source.html":[3,0,0,0,8], +"mylibs__include_8h.html":[3,0,0,0,9], +"mylibs__include_8h_source.html":[3,0,0,0,9], "pages.html":[], +"struct_evolve_optimizer__t.html":[1,0,1,1,0], +"struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae":[1,0,1,1,0,4], +"struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8":[1,0,1,1,0,0], +"struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5":[1,0,1,1,0,3], +"struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d":[1,0,1,1,0,6], +"struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6":[1,0,1,1,0,2], +"struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1":[1,0,1,1,0,1], +"struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d":[1,0,1,1,0,5], "struct_g_p_i_o___l_e_d_type_def.html":[1,0,2,0,2,0], "struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978":[1,0,2,0,2,0,2], "struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec":[1,0,2,0,2,0,4], @@ -212,42 +233,21 @@ var NAVTREEINDEX0 = "struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405":[1,0,2,0,1,0,2], "struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032":[1,0,2,0,1,0,1], "struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a":[1,0,2,0,1,0,0], -"struct_h_f___stack_frame__t.html":[1,0,1,4,3,0], -"struct_h_f___stack_frame__t.html#a16563896004751c90e41c81ae4570732":[1,0,1,4,3,0,6], -"struct_h_f___stack_frame__t.html#a286104d19185714940645a9df814ddea":[1,0,1,4,3,0,1], -"struct_h_f___stack_frame__t.html#a4146ed28926b5f234132b7112119a413":[1,0,1,4,3,0,0], -"struct_h_f___stack_frame__t.html#a453c7af42b6928a693af422e17c981d3":[1,0,1,4,3,0,3], -"struct_h_f___stack_frame__t.html#a5a52e5006dabcf68c0fa4cfb0e03335b":[1,0,1,4,3,0,2], -"struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577":[1,0,1,4,3,0,5], -"struct_h_f___stack_frame__t.html#a819ee3bc518c460ece1b7c4079f8f80b":[1,0,1,4,3,0,4], -"struct_h_f___stack_frame__t.html#ae47cb051ee3c94471bfd4fe7e49c55f9":[1,0,1,4,3,0,7], -"struct_r_t_t___flash_header__t.html":[1,0,1,4,2,0], -"struct_r_t_t___flash_header__t.html#a844ee5470a323a749856cbb7a682dc57":[1,0,1,4,2,0,0], -"struct_r_t_t___flash_header__t.html#ae7276198385c8d6f6508f433d042d52a":[1,0,1,4,2,0,2], -"struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699":[1,0,1,4,2,0,1], -"struct_s_p_i___settings_type_def.html":[2,0,4], +"struct_h_f___stack_frame__t.html":[1,0,1,5,3,0], +"struct_h_f___stack_frame__t.html#a16563896004751c90e41c81ae4570732":[1,0,1,5,3,0,6], +"struct_h_f___stack_frame__t.html#a286104d19185714940645a9df814ddea":[1,0,1,5,3,0,1], +"struct_h_f___stack_frame__t.html#a4146ed28926b5f234132b7112119a413":[1,0,1,5,3,0,0], +"struct_h_f___stack_frame__t.html#a453c7af42b6928a693af422e17c981d3":[1,0,1,5,3,0,3], +"struct_h_f___stack_frame__t.html#a5a52e5006dabcf68c0fa4cfb0e03335b":[1,0,1,5,3,0,2], +"struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577":[1,0,1,5,3,0,5], +"struct_h_f___stack_frame__t.html#a819ee3bc518c460ece1b7c4079f8f80b":[1,0,1,5,3,0,4], +"struct_h_f___stack_frame__t.html#ae47cb051ee3c94471bfd4fe7e49c55f9":[1,0,1,5,3,0,7], +"struct_r_t_t___flash_header__t.html":[1,0,1,5,2,0], +"struct_r_t_t___flash_header__t.html#a844ee5470a323a749856cbb7a682dc57":[1,0,1,5,2,0,0], +"struct_r_t_t___flash_header__t.html#ae7276198385c8d6f6508f433d042d52a":[1,0,1,5,2,0,2], +"struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699":[1,0,1,5,2,0,1], +"struct_s_p_i___settings_type_def.html":[2,0,5], "struct_t_i_m___encoder_type_def.html":[1,0,2,1,1,0], "struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5":[1,0,2,1,1,0,3], -"struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2":[1,0,2,1,1,0,1], -"struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e":[1,0,2,1,1,0,5], -"struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5":[1,0,2,1,1,0,6], -"struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80":[1,0,2,1,1,0,7], -"struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3":[1,0,2,1,1,0,0], -"struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45":[1,0,2,1,1,0,8], -"struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9":[1,0,2,1,1,0,4], -"struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c":[1,0,2,1,1,0,2], -"struct_t_i_m___settings_type_def.html":[1,0,2,1,3,1], -"struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718":[1,0,2,1,3,1,7], -"struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21":[1,0,2,1,3,1,3], -"struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0":[1,0,2,1,3,1,1], -"struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e":[1,0,2,1,3,1,6], -"struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014":[1,0,2,1,3,1,8], -"struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7":[1,0,2,1,3,1,4], -"struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969":[1,0,2,1,3,1,2], -"struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0":[1,0,2,1,3,1,5], -"struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c":[1,0,2,1,3,1,0], -"struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4":[1,0,2,1,3,1,9], -"struct_u_a_r_t___settings_type_def.html":[2,0,7], -"topics.html":[1], -"trace_8h.html":[3,0,0,0,9] +"struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2":[1,0,2,1,1,0,1] }; diff --git a/Doc/html/navtreeindex1.js b/Doc/html/navtreeindex1.js index 6d42345..b781f2a 100644 --- a/Doc/html/navtreeindex1.js +++ b/Doc/html/navtreeindex1.js @@ -1,8 +1,29 @@ var NAVTREEINDEX1 = { -"trace_8h_source.html":[3,0,0,0,9], -"trackers_8h.html":[3,0,0,0,10], -"trackers_8h_source.html":[3,0,0,0,10], +"struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e":[1,0,2,1,1,0,5], +"struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5":[1,0,2,1,1,0,6], +"struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80":[1,0,2,1,1,0,7], +"struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3":[1,0,2,1,1,0,0], +"struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45":[1,0,2,1,1,0,8], +"struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9":[1,0,2,1,1,0,4], +"struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c":[1,0,2,1,1,0,2], +"struct_t_i_m___settings_type_def.html":[1,0,2,1,3,1], +"struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718":[1,0,2,1,3,1,7], +"struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21":[1,0,2,1,3,1,3], +"struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0":[1,0,2,1,3,1,1], +"struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e":[1,0,2,1,3,1,6], +"struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014":[1,0,2,1,3,1,8], +"struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7":[1,0,2,1,3,1,4], +"struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969":[1,0,2,1,3,1,2], +"struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0":[1,0,2,1,3,1,5], +"struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c":[1,0,2,1,3,1,0], +"struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4":[1,0,2,1,3,1,9], +"struct_u_a_r_t___settings_type_def.html":[2,0,8], +"topics.html":[1], +"trace_8h.html":[3,0,0,0,10], +"trace_8h_source.html":[3,0,0,0,10], +"trackers_8h.html":[3,0,0,0,11], +"trackers_8h_source.html":[3,0,0,0,11], "unionuint16___bit_type_def.html":[1,0,1,0,1], "unionuint32___bit_type_def.html":[1,0,1,0,2], "unionuint64___bit_type_def.html":[1,0,1,0,3], diff --git a/Doc/html/search/all_10.js b/Doc/html/search/all_10.js index 5d4eea7..b8c67f8 100644 --- a/Doc/html/search/all_10.js +++ b/Doc/html/search/all_10.js @@ -27,7 +27,7 @@ var searchData= ['tim_5ftickbase_5f10us_24',['TIM_TickBase_10US',['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f',1,'general_tim.h']]], ['tim_5ftickbase_5f1ms_25',['TIM_TickBase_1MS',['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25',1,'general_tim.h']]], ['tim_5ftickbase_5f1us_26',['TIM_TickBase_1US',['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2',1,'general_tim.h']]], - ['tools_27',['Tools',['../group___m_y___l_i_b_s___g_p_i_o.html',1,'GPIO Tools'],['../group___m_y___l_i_b_s___t_i_m.html',1,'TIM Tools']]], + ['tools_27',['Tools',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'General Tools'],['../group___m_y___l_i_b_s___g_p_i_o.html',1,'GPIO Tools'],['../group___m_y___l_i_b_s___t_i_m.html',1,'TIM Tools']]], ['tools_28',['tools',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html',1,'Delay tools'],['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html',1,'Encoder tools'],['../group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html',1,'General tools'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html',1,'General tools'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html',1,'LED tools'],['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'PWM/OC Channels tools'],['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html',1,'Switch tools']]], ['trace_29',['Трассировка <a class="el" href="group___t_r_a_c_e.html">Trace defines</a>',['../index.html#trace_module',1,'']]], ['trace_20configs_30',['Trace configs',['../group___t_r_a_c_e___c_o_n_f_i_g.html',1,'']]], diff --git a/Doc/html/search/all_16.js b/Doc/html/search/all_16.js index 60163ac..ca20af9 100644 --- a/Doc/html/search/all_16.js +++ b/Doc/html/search/all_16.js @@ -1,6 +1,6 @@ var searchData= [ ['обзор_0',['Обзор',['../index.html#overview',1,'']]], - ['общие_20утилиты_20mylibs_5fdefines_1',['Общие утилиты <a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Defines</a>',['../index.html#utils_module',1,'']]], + ['общие_20утилиты_20mylibs_5fdefines_1',['Общие утилиты (<a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Tools</a>)',['../index.html#utils_module',1,'']]], ['основные_20возможности_2',['Основные возможности',['../index.html#features',1,'']]] ]; diff --git a/Doc/html/search/all_1b.js b/Doc/html/search/all_1b.js index 6a8db26..f69cabe 100644 --- a/Doc/html/search/all_1b.js +++ b/Doc/html/search/all_1b.js @@ -1,4 +1,4 @@ var searchData= [ - ['утилиты_20mylibs_5fdefines_0',['Общие утилиты <a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Defines</a>',['../index.html#utils_module',1,'']]] + ['утилиты_20mylibs_5fdefines_0',['Общие утилиты (<a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Tools</a>)',['../index.html#utils_module',1,'']]] ]; diff --git a/Doc/html/search/all_2.js b/Doc/html/search/all_2.js index bc3fb4b..471f910 100644 --- a/Doc/html/search/all_2.js +++ b/Doc/html/search/all_2.js @@ -1,12 +1,14 @@ var searchData= [ - ['channels_20tools_0',['PWM/OC Channels tools',['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'']]], - ['check_5fnull_5fptr_5f1_1',['check_null_ptr_1',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga5d066a5b9781f9437e75d98677489eb9',1,'mylibs_defs.h']]], - ['check_5fnull_5fptr_5f2_2',['check_null_ptr_2',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga27b363f333cacdccc15f5174e096b5b3',1,'mylibs_defs.h']]], - ['check_5fnull_5fptr_5f3_3',['check_null_ptr_3',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga838b40542faa9aa273d18f921b21fda2',1,'mylibs_defs.h']]], - ['check_5fnull_5fptr_5f4_4',['check_null_ptr_4',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga590973be111afc3f9ba15e6939530254',1,'mylibs_defs.h']]], - ['check_5fnull_5fptr_5f5_5',['check_null_ptr_5',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gaab0aafd7a4a21ec4f338b19269f65490',1,'mylibs_defs.h']]], - ['clearstruct_6',['ClearStruct',['../group___u_t_i_l_s___d_e_f_i_n_e_s.html#gaf5e598848326d48e86167e5099a029be',1,'mylibs_defs.h']]], - ['configs_7',['Configs',['../group___m_y_l_i_b_s___c_o_n_f_i_g.html',1,'']]], - ['configs_8',['configs',['../group___l_i_b_s___c_o_n_f_i_g.html',1,'Libraries configs'],['../group___t_r_a_c_e___c_o_n_f_i_g.html',1,'Trace configs']]] + ['cand_5findex_0',['cand_index',['../struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae',1,'EvolveOptimizer_t']]], + ['candidates_1',['candidates',['../struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d',1,'EvolveOptimizer_t']]], + ['channels_20tools_2',['PWM/OC Channels tools',['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'']]], + ['check_5fnull_5fptr_5f1_3',['check_null_ptr_1',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga5d066a5b9781f9437e75d98677489eb9',1,'mylibs_defs.h']]], + ['check_5fnull_5fptr_5f2_4',['check_null_ptr_2',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga27b363f333cacdccc15f5174e096b5b3',1,'mylibs_defs.h']]], + ['check_5fnull_5fptr_5f3_5',['check_null_ptr_3',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga838b40542faa9aa273d18f921b21fda2',1,'mylibs_defs.h']]], + ['check_5fnull_5fptr_5f4_6',['check_null_ptr_4',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga590973be111afc3f9ba15e6939530254',1,'mylibs_defs.h']]], + ['check_5fnull_5fptr_5f5_7',['check_null_ptr_5',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gaab0aafd7a4a21ec4f338b19269f65490',1,'mylibs_defs.h']]], + ['clearstruct_8',['ClearStruct',['../group___u_t_i_l_s___d_e_f_i_n_e_s.html#gaf5e598848326d48e86167e5099a029be',1,'mylibs_defs.h']]], + ['configs_9',['Configs',['../group___m_y_l_i_b_s___c_o_n_f_i_g.html',1,'']]], + ['configs_10',['configs',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html',1,'Evolve configs'],['../group___l_i_b_s___c_o_n_f_i_g.html',1,'Libraries configs'],['../group___t_r_a_c_e___c_o_n_f_i_g.html',1,'Trace configs']]] ]; diff --git a/Doc/html/search/all_3.js b/Doc/html/search/all_3.js index b6a060a..80775d3 100644 --- a/Doc/html/search/all_3.js +++ b/Doc/html/search/all_3.js @@ -1,9 +1,8 @@ var searchData= [ ['data_0',['data',['../struct_r_t_t___flash_header__t.html#ae7276198385c8d6f6508f433d042d52a',1,'RTT_FlashHeader_t']]], - ['defines_1',['General Defines',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'']]], - ['defines_2',['defines',['../group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html',1,'Bit access defines'],['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html',1,'Delays defines'],['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html',1,'Error Handler defines'],['../group___t_r_a_c_e___g_p_i_o.html',1,'GPIO trace defines'],['../group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html',1,'Hardfault trace defines'],['../group___g_p_i_o___i_n_i_t.html',1,'Init defines'],['../group___t_i_m___i_n_i_t.html',1,'Init defines'],['../group___t_r_a_c_e___s_e_r_i_a_l.html',1,'Serial trace defines'],['../group___t_r_a_c_e.html',1,'Trace defines'],['../group___t_r_a_c_k_e_r_s.html',1,'Trackers defines'],['../group___u_t_i_l_s___d_e_f_i_n_e_s.html',1,'Utils defines']]], - ['delay_20tools_3',['Delay tools',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html',1,'']]], - ['delays_20defines_4',['Delays defines',['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html',1,'']]], - ['divide_5fup_5',['Divide_Up',['../group___u_t_i_l_s___d_e_f_i_n_e_s.html#gabf45f2b60eedf80cf9d1dbe4302a741e',1,'mylibs_defs.h']]] + ['defines_1',['defines',['../group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html',1,'Bit access defines'],['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html',1,'Delays defines'],['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html',1,'Error Handler defines'],['../group___t_r_a_c_e___g_p_i_o.html',1,'GPIO trace defines'],['../group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html',1,'Hardfault trace defines'],['../group___g_p_i_o___i_n_i_t.html',1,'Init defines'],['../group___t_i_m___i_n_i_t.html',1,'Init defines'],['../group___t_r_a_c_e___s_e_r_i_a_l.html',1,'Serial trace defines'],['../group___t_r_a_c_e.html',1,'Trace defines'],['../group___t_r_a_c_k_e_r_s.html',1,'Trackers defines'],['../group___u_t_i_l_s___d_e_f_i_n_e_s.html',1,'Utils defines']]], + ['delay_20tools_2',['Delay tools',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html',1,'']]], + ['delays_20defines_3',['Delays defines',['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html',1,'']]], + ['divide_5fup_4',['Divide_Up',['../group___u_t_i_l_s___d_e_f_i_n_e_s.html#gabf45f2b60eedf80cf9d1dbe4302a741e',1,'mylibs_defs.h']]] ]; diff --git a/Doc/html/search/all_4.js b/Doc/html/search/all_4.js index 2d7d531..ac3a9dc 100644 --- a/Doc/html/search/all_4.js +++ b/Doc/html/search/all_4.js @@ -1,7 +1,16 @@ var searchData= [ - ['encoder_20tools_0',['Encoder tools',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html',1,'']]], - ['encoder_5fdiff_1',['Encoder_Diff',['../struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3',1,'TIM_EncoderTypeDef']]], - ['encoder_5fshdw_2',['Encoder_Shdw',['../struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2',1,'TIM_EncoderTypeDef']]], - ['error_20handler_20defines_3',['Error Handler defines',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html',1,'']]] + ['enable_5fevolve_5foptimization_0',['ENABLE_EVOLVE_OPTIMIZATION',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga2cac097081444a7a9b040f4b11550e47',1,'mylibs_config.h']]], + ['encoder_20tools_1',['Encoder tools',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html',1,'']]], + ['encoder_5fdiff_2',['Encoder_Diff',['../struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3',1,'TIM_EncoderTypeDef']]], + ['encoder_5fshdw_3',['Encoder_Shdw',['../struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2',1,'TIM_EncoderTypeDef']]], + ['error_20handler_20defines_4',['Error Handler defines',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html',1,'']]], + ['evolve_20configs_5',['Evolve configs',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html',1,'']]], + ['evolve_20optimizer_6',['Evolve optimizer',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html',1,'']]], + ['evolve_5fmax_5fcandidates_7',['EVOLVE_MAX_CANDIDATES',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971',1,'mylibs_config.h']]], + ['evolve_5fmax_5fparams_8',['EVOLVE_MAX_PARAMS',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee',1,'mylibs_config.h']]], + ['evolve_5foptimizer_2eh_9',['evolve_optimizer.h',['../evolve__optimizer_8h.html',1,'']]], + ['evolveoptimizer_5finit_10',['EvolveOptimizer_Init',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9',1,'evolve_optimizer.h']]], + ['evolveoptimizer_5fstep_11',['EvolveOptimizer_Step',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563',1,'evolve_optimizer.h']]], + ['evolveoptimizer_5ft_12',['EvolveOptimizer_t',['../struct_evolve_optimizer__t.html',1,'']]] ]; diff --git a/Doc/html/search/all_6.js b/Doc/html/search/all_6.js index bc1f396..ab97706 100644 --- a/Doc/html/search/all_6.js +++ b/Doc/html/search/all_6.js @@ -1,6 +1,6 @@ var searchData= [ - ['general_20defines_0',['General Defines',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'']]], + ['general_20tools_0',['General Tools',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'']]], ['general_20tools_1',['General tools',['../group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html',1,'General tools'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html',1,'General tools']]], ['general_5fgpio_2ec_2',['general_gpio.c',['../general__gpio_8c.html',1,'']]], ['general_5fgpio_2eh_3',['general_gpio.h',['../general__gpio_8h.html',1,'']]], diff --git a/Doc/html/search/all_8.js b/Doc/html/search/all_8.js index c3890cd..2b98e91 100644 --- a/Doc/html/search/all_8.js +++ b/Doc/html/search/all_8.js @@ -2,8 +2,10 @@ var searchData= [ ['if_5fassert_5fusertracker_0',['if_assert_usertracker',['../group___t_r_a_c_k_e_r_s.html#gad91d8ca89074270fc040c0449e57cf07',1,'trackers.h']]], ['include_5fbit_5faccess_5flib_1',['INCLUDE_BIT_ACCESS_LIB',['../group___l_i_b_s___c_o_n_f_i_g.html#gaf4ddb2a71ec0d05c2480e197cd17c0be',1,'mylibs_config.h']]], - ['include_5fgeneral_5fperiph_5flibs_2',['INCLUDE_GENERAL_PERIPH_LIBS',['../group___l_i_b_s___c_o_n_f_i_g.html#ga181a46326e46b60afb160190832c7281',1,'mylibs_config.h']]], - ['include_5ftrace_5flib_3',['INCLUDE_TRACE_LIB',['../group___l_i_b_s___c_o_n_f_i_g.html#ga0a3ca94b616997069dd53e2c6c2687d7',1,'mylibs_config.h']]], - ['include_5ftrackers_5flib_4',['INCLUDE_TRACKERS_LIB',['../group___l_i_b_s___c_o_n_f_i_g.html#ga4403055986b70bb02b8d37073a122e32',1,'mylibs_config.h']]], - ['init_20defines_5',['Init defines',['../group___g_p_i_o___i_n_i_t.html',1,'Init defines'],['../group___t_i_m___i_n_i_t.html',1,'Init defines']]] + ['include_5fevolve_5foptimizer_2',['INCLUDE_EVOLVE_OPTIMIZER',['../group___l_i_b_s___c_o_n_f_i_g.html#ga66560656d080d6551627a19dfb847c66',1,'mylibs_config.h']]], + ['include_5fgeneral_5fperiph_5flibs_3',['INCLUDE_GENERAL_PERIPH_LIBS',['../group___l_i_b_s___c_o_n_f_i_g.html#ga181a46326e46b60afb160190832c7281',1,'mylibs_config.h']]], + ['include_5ftrace_5flib_4',['INCLUDE_TRACE_LIB',['../group___l_i_b_s___c_o_n_f_i_g.html#ga0a3ca94b616997069dd53e2c6c2687d7',1,'mylibs_config.h']]], + ['include_5ftrackers_5flib_5',['INCLUDE_TRACKERS_LIB',['../group___l_i_b_s___c_o_n_f_i_g.html#ga4403055986b70bb02b8d37073a122e32',1,'mylibs_config.h']]], + ['init_20defines_6',['Init defines',['../group___g_p_i_o___i_n_i_t.html',1,'Init defines'],['../group___t_i_m___i_n_i_t.html',1,'Init defines']]], + ['iq_5fmutation_7',['iq_mutation',['../struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5',1,'EvolveOptimizer_t']]] ]; diff --git a/Doc/html/search/all_9.js b/Doc/html/search/all_9.js index 3688bc7..c3193f7 100644 --- a/Doc/html/search/all_9.js +++ b/Doc/html/search/all_9.js @@ -16,5 +16,6 @@ var searchData= ['libs_13',['My Libs',['../group___m_y_l_i_b_s___a_l_l.html',1,'']]], ['log_5flevel_14',['LOG_LEVEL',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga0b87e0d3bf5853bcbb0b66a7c48fdc05',1,'mylibs_config.h']]], ['log_5fprintf_15',['log_printf',['../group___t_r_a_c_e___s_e_r_i_a_l.html#ga730fb7b8d0bbb348dca73c15bd0e0b26',1,'trace.h']]], - ['lr_16',['lr',['../struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577',1,'HF_StackFrame_t']]] + ['loss_16',['loss',['../struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d',1,'EvolveOptimizer_t']]], + ['lr_17',['lr',['../struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577',1,'HF_StackFrame_t']]] ]; diff --git a/Doc/html/search/all_a.js b/Doc/html/search/all_a.js index a1f0bfd..f2ebf4a 100644 --- a/Doc/html/search/all_a.js +++ b/Doc/html/search/all_a.js @@ -10,7 +10,7 @@ var searchData= ['my_5fprintf_7',['my_printf',['../group___t_r_a_c_e___s_e_r_i_a_l.html#gae9b9b8a611e291a2f2aa5abf99f3ebaa',1,'trace.h']]], ['mylibs_8',['MyLibs',['../index.html',1,'']]], ['mylibs_5fconfig_2eh_9',['mylibs_config.h',['../mylibs__config_8h.html',1,'']]], - ['mylibs_5fdefines_10',['Общие утилиты <a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Defines</a>',['../index.html#utils_module',1,'']]], + ['mylibs_5fdefines_10',['Общие утилиты (<a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Tools</a>)',['../index.html#utils_module',1,'']]], ['mylibs_5fdefs_2eh_11',['mylibs_defs.h',['../mylibs__defs_8h.html',1,'']]], ['mylibs_5ferror_5fhandler_12',['MyLibs_Error_Handler',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f',1,'mylibs_defs.h']]], ['mylibs_5finclude_2eh_13',['mylibs_include.h',['../mylibs__include_8h.html',1,'']]] diff --git a/Doc/html/search/all_b.js b/Doc/html/search/all_b.js index a8606f0..ec18e7a 100644 --- a/Doc/html/search/all_b.js +++ b/Doc/html/search/all_b.js @@ -1,4 +1,7 @@ var searchData= [ - ['num_5fof_5fusercnts_0',['num_of_usercnts',['../group___t_r_a_c_k_e_r_s.html#ga72be24629fedb8bf70e830373d151fbc',1,'trackers.h']]] + ['n_5fbest_0',['n_best',['../struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6',1,'EvolveOptimizer_t']]], + ['n_5fcand_1',['n_cand',['../struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1',1,'EvolveOptimizer_t']]], + ['n_5fparams_2',['n_params',['../struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8',1,'EvolveOptimizer_t']]], + ['num_5fof_5fusercnts_3',['num_of_usercnts',['../group___t_r_a_c_k_e_r_s.html#ga72be24629fedb8bf70e830373d151fbc',1,'trackers.h']]] ]; diff --git a/Doc/html/search/all_c.js b/Doc/html/search/all_c.js index 3d76a60..fa27ef2 100644 --- a/Doc/html/search/all_c.js +++ b/Doc/html/search/all_c.js @@ -1,4 +1,5 @@ var searchData= [ - ['oc_20channels_20tools_0',['PWM/OC Channels tools',['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'']]] + ['oc_20channels_20tools_0',['PWM/OC Channels tools',['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'']]], + ['optimizer_1',['Evolve optimizer',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html',1,'']]] ]; diff --git a/Doc/html/search/all_d.js b/Doc/html/search/all_d.js index 576fee6..397ab9d 100644 --- a/Doc/html/search/all_d.js +++ b/Doc/html/search/all_d.js @@ -1,7 +1,9 @@ var searchData= [ - ['pc_0',['pc',['../struct_h_f___stack_frame__t.html#a16563896004751c90e41c81ae4570732',1,'HF_StackFrame_t']]], - ['peripheral_1',['Peripheral',['../group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.html',1,'']]], - ['psr_2',['psr',['../struct_h_f___stack_frame__t.html#ae47cb051ee3c94471bfd4fe7e49c55f9',1,'HF_StackFrame_t']]], - ['pwm_20oc_20channels_20tools_3',['PWM/OC Channels tools',['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'']]] + ['param_5fscale_5fq16_0',['PARAM_SCALE_Q16',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaff223481fcffea77394a331afde29fdc',1,'evolve_optimizer.h']]], + ['param_5funscale_5fq16_1',['PARAM_UNSCALE_Q16',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga71a0c240c667e976d9caef391ab767ba',1,'evolve_optimizer.h']]], + ['pc_2',['pc',['../struct_h_f___stack_frame__t.html#a16563896004751c90e41c81ae4570732',1,'HF_StackFrame_t']]], + ['peripheral_3',['Peripheral',['../group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.html',1,'']]], + ['psr_4',['psr',['../struct_h_f___stack_frame__t.html#ae47cb051ee3c94471bfd4fe7e49c55f9',1,'HF_StackFrame_t']]], + ['pwm_20oc_20channels_20tools_5',['PWM/OC Channels tools',['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'']]] ]; diff --git a/Doc/html/search/classes_0.js b/Doc/html/search/classes_0.js index 7f32de6..e1df323 100644 --- a/Doc/html/search/classes_0.js +++ b/Doc/html/search/classes_0.js @@ -1,5 +1,4 @@ var searchData= [ - ['gpio_5fledtypedef_0',['GPIO_LEDTypeDef',['../struct_g_p_i_o___l_e_d_type_def.html',1,'']]], - ['gpio_5fswitchtypedef_1',['GPIO_SwitchTypeDef',['../struct_g_p_i_o___switch_type_def.html',1,'']]] + ['evolveoptimizer_5ft_0',['EvolveOptimizer_t',['../struct_evolve_optimizer__t.html',1,'']]] ]; diff --git a/Doc/html/search/classes_1.js b/Doc/html/search/classes_1.js index c637c5a..7f32de6 100644 --- a/Doc/html/search/classes_1.js +++ b/Doc/html/search/classes_1.js @@ -1,4 +1,5 @@ var searchData= [ - ['hf_5fstackframe_5ft_0',['HF_StackFrame_t',['../struct_h_f___stack_frame__t.html',1,'']]] + ['gpio_5fledtypedef_0',['GPIO_LEDTypeDef',['../struct_g_p_i_o___l_e_d_type_def.html',1,'']]], + ['gpio_5fswitchtypedef_1',['GPIO_SwitchTypeDef',['../struct_g_p_i_o___switch_type_def.html',1,'']]] ]; diff --git a/Doc/html/search/classes_2.js b/Doc/html/search/classes_2.js index a9ade0a..c637c5a 100644 --- a/Doc/html/search/classes_2.js +++ b/Doc/html/search/classes_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['rtt_5fflashheader_5ft_0',['RTT_FlashHeader_t',['../struct_r_t_t___flash_header__t.html',1,'']]] + ['hf_5fstackframe_5ft_0',['HF_StackFrame_t',['../struct_h_f___stack_frame__t.html',1,'']]] ]; diff --git a/Doc/html/search/classes_3.js b/Doc/html/search/classes_3.js index bf0ca51..a9ade0a 100644 --- a/Doc/html/search/classes_3.js +++ b/Doc/html/search/classes_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['spi_5fsettingstypedef_0',['SPI_SettingsTypeDef',['../struct_s_p_i___settings_type_def.html',1,'']]] + ['rtt_5fflashheader_5ft_0',['RTT_FlashHeader_t',['../struct_r_t_t___flash_header__t.html',1,'']]] ]; diff --git a/Doc/html/search/classes_4.js b/Doc/html/search/classes_4.js index 91c6e88..bf0ca51 100644 --- a/Doc/html/search/classes_4.js +++ b/Doc/html/search/classes_4.js @@ -1,5 +1,4 @@ var searchData= [ - ['tim_5fencodertypedef_0',['TIM_EncoderTypeDef',['../struct_t_i_m___encoder_type_def.html',1,'']]], - ['tim_5fsettingstypedef_1',['TIM_SettingsTypeDef',['../struct_t_i_m___settings_type_def.html',1,'']]] + ['spi_5fsettingstypedef_0',['SPI_SettingsTypeDef',['../struct_s_p_i___settings_type_def.html',1,'']]] ]; diff --git a/Doc/html/search/classes_5.js b/Doc/html/search/classes_5.js index e495a9f..91c6e88 100644 --- a/Doc/html/search/classes_5.js +++ b/Doc/html/search/classes_5.js @@ -1,8 +1,5 @@ var searchData= [ - ['uart_5fsettingstypedef_0',['UART_SettingsTypeDef',['../struct_u_a_r_t___settings_type_def.html',1,'']]], - ['uint16_5fbittypedef_1',['uint16_BitTypeDef',['../unionuint16___bit_type_def.html',1,'']]], - ['uint32_5fbittypedef_2',['uint32_BitTypeDef',['../unionuint32___bit_type_def.html',1,'']]], - ['uint64_5fbittypedef_3',['uint64_BitTypeDef',['../unionuint64___bit_type_def.html',1,'']]], - ['uint8_5fbittypedef_4',['uint8_BitTypeDef',['../unionuint8___bit_type_def.html',1,'']]] + ['tim_5fencodertypedef_0',['TIM_EncoderTypeDef',['../struct_t_i_m___encoder_type_def.html',1,'']]], + ['tim_5fsettingstypedef_1',['TIM_SettingsTypeDef',['../struct_t_i_m___settings_type_def.html',1,'']]] ]; diff --git a/Doc/html/search/classes_6.js b/Doc/html/search/classes_6.js new file mode 100644 index 0000000..e495a9f --- /dev/null +++ b/Doc/html/search/classes_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['uart_5fsettingstypedef_0',['UART_SettingsTypeDef',['../struct_u_a_r_t___settings_type_def.html',1,'']]], + ['uint16_5fbittypedef_1',['uint16_BitTypeDef',['../unionuint16___bit_type_def.html',1,'']]], + ['uint32_5fbittypedef_2',['uint32_BitTypeDef',['../unionuint32___bit_type_def.html',1,'']]], + ['uint64_5fbittypedef_3',['uint64_BitTypeDef',['../unionuint64___bit_type_def.html',1,'']]], + ['uint8_5fbittypedef_4',['uint8_BitTypeDef',['../unionuint8___bit_type_def.html',1,'']]] +]; diff --git a/Doc/html/search/files_1.js b/Doc/html/search/files_1.js index 30872e3..9050e12 100644 --- a/Doc/html/search/files_1.js +++ b/Doc/html/search/files_1.js @@ -1,7 +1,4 @@ var searchData= [ - ['general_5fgpio_2ec_0',['general_gpio.c',['../general__gpio_8c.html',1,'']]], - ['general_5fgpio_2eh_1',['general_gpio.h',['../general__gpio_8h.html',1,'']]], - ['general_5ftim_2ec_2',['general_tim.c',['../general__tim_8c.html',1,'']]], - ['general_5ftim_2eh_3',['general_tim.h',['../general__tim_8h.html',1,'']]] + ['evolve_5foptimizer_2eh_0',['evolve_optimizer.h',['../evolve__optimizer_8h.html',1,'']]] ]; diff --git a/Doc/html/search/files_2.js b/Doc/html/search/files_2.js index 3a61f58..30872e3 100644 --- a/Doc/html/search/files_2.js +++ b/Doc/html/search/files_2.js @@ -1,6 +1,7 @@ var searchData= [ - ['mylibs_5fconfig_2eh_0',['mylibs_config.h',['../mylibs__config_8h.html',1,'']]], - ['mylibs_5fdefs_2eh_1',['mylibs_defs.h',['../mylibs__defs_8h.html',1,'']]], - ['mylibs_5finclude_2eh_2',['mylibs_include.h',['../mylibs__include_8h.html',1,'']]] + ['general_5fgpio_2ec_0',['general_gpio.c',['../general__gpio_8c.html',1,'']]], + ['general_5fgpio_2eh_1',['general_gpio.h',['../general__gpio_8h.html',1,'']]], + ['general_5ftim_2ec_2',['general_tim.c',['../general__tim_8c.html',1,'']]], + ['general_5ftim_2eh_3',['general_tim.h',['../general__tim_8h.html',1,'']]] ]; diff --git a/Doc/html/search/files_3.js b/Doc/html/search/files_3.js index f744967..3a61f58 100644 --- a/Doc/html/search/files_3.js +++ b/Doc/html/search/files_3.js @@ -1,5 +1,6 @@ var searchData= [ - ['trace_2eh_0',['trace.h',['../trace_8h.html',1,'']]], - ['trackers_2eh_1',['trackers.h',['../trackers_8h.html',1,'']]] + ['mylibs_5fconfig_2eh_0',['mylibs_config.h',['../mylibs__config_8h.html',1,'']]], + ['mylibs_5fdefs_2eh_1',['mylibs_defs.h',['../mylibs__defs_8h.html',1,'']]], + ['mylibs_5finclude_2eh_2',['mylibs_include.h',['../mylibs__include_8h.html',1,'']]] ]; diff --git a/Doc/html/search/files_4.js b/Doc/html/search/files_4.js new file mode 100644 index 0000000..f744967 --- /dev/null +++ b/Doc/html/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['trace_2eh_0',['trace.h',['../trace_8h.html',1,'']]], + ['trackers_2eh_1',['trackers.h',['../trackers_8h.html',1,'']]] +]; diff --git a/Doc/html/search/functions_0.js b/Doc/html/search/functions_0.js index a564d7b..a560c32 100644 --- a/Doc/html/search/functions_0.js +++ b/Doc/html/search/functions_0.js @@ -1,13 +1,5 @@ var searchData= [ - ['gpio_5fclock_5fenable_0',['GPIO_Clock_Enable',['../group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6',1,'GPIO_Clock_Enable(GPIO_TypeDef *GPIOx): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6',1,'GPIO_Clock_Enable(GPIO_TypeDef *GPIOx): general_gpio.c']]], - ['gpio_5fled_5fblink_5fstart_1',['GPIO_LED_Blink_Start',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9',1,'GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9',1,'GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period): general_gpio.c']]], - ['gpio_5fled_5fdynamic_5fhandle_2',['GPIO_LED_Dynamic_Handle',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2',1,'GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2',1,'GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led): general_gpio.c']]], - ['gpio_5fled_5ffading_5fstart_3',['GPIO_LED_Fading_Start',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a',1,'GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a',1,'GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period): general_gpio.c']]], - ['gpio_5fled_5finit_4',['GPIO_LED_Init',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084',1,'GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084',1,'GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel): general_gpio.c']]], - ['gpio_5fled_5foff_5',['GPIO_LED_Off',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357',1,'GPIO_LED_Off(GPIO_LEDTypeDef *led): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357',1,'GPIO_LED_Off(GPIO_LEDTypeDef *led): general_gpio.c']]], - ['gpio_5fled_5fon_6',['GPIO_LED_On',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c',1,'GPIO_LED_On(GPIO_LEDTypeDef *led): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c',1,'GPIO_LED_On(GPIO_LEDTypeDef *led): general_gpio.c']]], - ['gpio_5fled_5fset_7',['GPIO_LED_Set',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2',1,'GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2',1,'GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state): general_gpio.c']]], - ['gpio_5fread_5fswitch_8',['GPIO_Read_Switch',['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70',1,'GPIO_Read_Switch(GPIO_SwitchTypeDef *swstart): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70',1,'GPIO_Read_Switch(GPIO_SwitchTypeDef *sw): general_gpio.c']]], - ['gpio_5fswitch_5finit_9',['GPIO_Switch_Init',['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7',1,'GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7',1,'GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel): general_gpio.c']]] + ['evolveoptimizer_5finit_0',['EvolveOptimizer_Init',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9',1,'evolve_optimizer.h']]], + ['evolveoptimizer_5fstep_1',['EvolveOptimizer_Step',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563',1,'evolve_optimizer.h']]] ]; diff --git a/Doc/html/search/functions_1.js b/Doc/html/search/functions_1.js index f4c609a..a564d7b 100644 --- a/Doc/html/search/functions_1.js +++ b/Doc/html/search/functions_1.js @@ -1,5 +1,13 @@ var searchData= [ - ['hf_5fcheckrecovered_0',['HF_CheckRecovered',['../group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html#ga03f8b6f3b537ee1c8e91065c60db504f',1,'trace.h']]], - ['hf_5fhandlefault_1',['HF_HandleFault',['../group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html#gadd8e10e7ec3b0204f7f92062ecd452f7',1,'trace.h']]] + ['gpio_5fclock_5fenable_0',['GPIO_Clock_Enable',['../group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6',1,'GPIO_Clock_Enable(GPIO_TypeDef *GPIOx): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6',1,'GPIO_Clock_Enable(GPIO_TypeDef *GPIOx): general_gpio.c']]], + ['gpio_5fled_5fblink_5fstart_1',['GPIO_LED_Blink_Start',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9',1,'GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9',1,'GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period): general_gpio.c']]], + ['gpio_5fled_5fdynamic_5fhandle_2',['GPIO_LED_Dynamic_Handle',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2',1,'GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2',1,'GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led): general_gpio.c']]], + ['gpio_5fled_5ffading_5fstart_3',['GPIO_LED_Fading_Start',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a',1,'GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a',1,'GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period): general_gpio.c']]], + ['gpio_5fled_5finit_4',['GPIO_LED_Init',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084',1,'GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084',1,'GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel): general_gpio.c']]], + ['gpio_5fled_5foff_5',['GPIO_LED_Off',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357',1,'GPIO_LED_Off(GPIO_LEDTypeDef *led): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357',1,'GPIO_LED_Off(GPIO_LEDTypeDef *led): general_gpio.c']]], + ['gpio_5fled_5fon_6',['GPIO_LED_On',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c',1,'GPIO_LED_On(GPIO_LEDTypeDef *led): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c',1,'GPIO_LED_On(GPIO_LEDTypeDef *led): general_gpio.c']]], + ['gpio_5fled_5fset_7',['GPIO_LED_Set',['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2',1,'GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2',1,'GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state): general_gpio.c']]], + ['gpio_5fread_5fswitch_8',['GPIO_Read_Switch',['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70',1,'GPIO_Read_Switch(GPIO_SwitchTypeDef *swstart): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70',1,'GPIO_Read_Switch(GPIO_SwitchTypeDef *sw): general_gpio.c']]], + ['gpio_5fswitch_5finit_9',['GPIO_Switch_Init',['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7',1,'GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State): general_gpio.c'],['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7',1,'GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel): general_gpio.c']]] ]; diff --git a/Doc/html/search/functions_2.js b/Doc/html/search/functions_2.js index 75ac569..f4c609a 100644 --- a/Doc/html/search/functions_2.js +++ b/Doc/html/search/functions_2.js @@ -1,7 +1,5 @@ var searchData= [ - ['rtt_5feraseflash_0',['RTT_EraseFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga8d8c6850e32b42871faefce3352012d1',1,'trace.h']]], - ['rtt_5fflashprepare_1',['RTT_FlashPrepare',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga21353cb4f5af666237739e62ce019cd6',1,'trace.h']]], - ['rtt_5freadfromflash_2',['RTT_ReadFromFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga734b2ebbf0c77699b739013878cfd146',1,'trace.h']]], - ['rtt_5fsavetoflash_3',['RTT_SaveToFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga79f222c8ab644de4d47f07528d1edd63',1,'trace.h']]] + ['hf_5fcheckrecovered_0',['HF_CheckRecovered',['../group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html#ga03f8b6f3b537ee1c8e91065c60db504f',1,'trace.h']]], + ['hf_5fhandlefault_1',['HF_HandleFault',['../group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html#gadd8e10e7ec3b0204f7f92062ecd452f7',1,'trace.h']]] ]; diff --git a/Doc/html/search/functions_3.js b/Doc/html/search/functions_3.js index d14df27..75ac569 100644 --- a/Doc/html/search/functions_3.js +++ b/Doc/html/search/functions_3.js @@ -1,14 +1,7 @@ var searchData= [ - ['tim_5fbase_5finit_0',['TIM_Base_Init',['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec',1,'TIM_Base_Init(TIM_SettingsTypeDef *stim): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec',1,'TIM_Base_Init(TIM_SettingsTypeDef *stim): general_tim.c']]], - ['tim_5fbase_5fmspdeinit_1',['TIM_Base_MspDeInit',['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115',1,'TIM_Base_MspDeInit(TIM_HandleTypeDef *htim): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115',1,'TIM_Base_MspDeInit(TIM_HandleTypeDef *htim): general_tim.c']]], - ['tim_5fbase_5fmspinit_2',['TIM_Base_MspInit',['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931',1,'TIM_Base_MspInit(TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931',1,'TIM_Base_MspInit(TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode): general_tim.c']]], - ['tim_5fdelay_3',['TIM_Delay',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e',1,'TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e',1,'TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay): general_tim.c']]], - ['tim_5fdelay_5fnonblocking_4',['TIM_Delay_NonBlocking',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b',1,'TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b',1,'TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay): general_tim.c']]], - ['tim_5fdelay_5fstart_5',['TIM_Delay_Start',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834',1,'TIM_Delay_Start(TIM_HandleTypeDef *htim): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834',1,'TIM_Delay_Start(TIM_HandleTypeDef *htim): general_tim.c']]], - ['tim_5fencoder_5finit_6',['TIM_Encoder_Init',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc',1,'TIM_Encoder_Init(TIM_EncoderTypeDef *henc1, TIM_HandleTypeDef *htim): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc',1,'TIM_Encoder_Init(TIM_EncoderTypeDef *henc, TIM_HandleTypeDef *htim): general_tim.c']]], - ['tim_5fencoder_5fread_7',['TIM_Encoder_Read',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501',1,'TIM_Encoder_Read(TIM_EncoderTypeDef *henc): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501',1,'TIM_Encoder_Read(TIM_EncoderTypeDef *henc): general_tim.c']]], - ['tim_5fencoder_5freadswitch_8',['TIM_Encoder_ReadSwitch',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761',1,'TIM_Encoder_ReadSwitch(TIM_EncoderTypeDef *henc): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761',1,'TIM_Encoder_ReadSwitch(TIM_EncoderTypeDef *henc): general_tim.c']]], - ['tim_5foc_5fcomparator_5finit_9',['TIM_OC_Comparator_Init',['../group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889',1,'TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889',1,'TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL): general_tim.c']]], - ['tim_5foutput_5fpwm_5finit_10',['TIM_Output_PWM_Init',['../group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6',1,'TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t PWM_PIN): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6',1,'TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN): general_tim.c']]] + ['rtt_5feraseflash_0',['RTT_EraseFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga8d8c6850e32b42871faefce3352012d1',1,'trace.h']]], + ['rtt_5fflashprepare_1',['RTT_FlashPrepare',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga21353cb4f5af666237739e62ce019cd6',1,'trace.h']]], + ['rtt_5freadfromflash_2',['RTT_ReadFromFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga734b2ebbf0c77699b739013878cfd146',1,'trace.h']]], + ['rtt_5fsavetoflash_3',['RTT_SaveToFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga79f222c8ab644de4d47f07528d1edd63',1,'trace.h']]] ]; diff --git a/Doc/html/search/functions_4.js b/Doc/html/search/functions_4.js new file mode 100644 index 0000000..d14df27 --- /dev/null +++ b/Doc/html/search/functions_4.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['tim_5fbase_5finit_0',['TIM_Base_Init',['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec',1,'TIM_Base_Init(TIM_SettingsTypeDef *stim): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec',1,'TIM_Base_Init(TIM_SettingsTypeDef *stim): general_tim.c']]], + ['tim_5fbase_5fmspdeinit_1',['TIM_Base_MspDeInit',['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115',1,'TIM_Base_MspDeInit(TIM_HandleTypeDef *htim): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115',1,'TIM_Base_MspDeInit(TIM_HandleTypeDef *htim): general_tim.c']]], + ['tim_5fbase_5fmspinit_2',['TIM_Base_MspInit',['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931',1,'TIM_Base_MspInit(TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931',1,'TIM_Base_MspInit(TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode): general_tim.c']]], + ['tim_5fdelay_3',['TIM_Delay',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e',1,'TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e',1,'TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay): general_tim.c']]], + ['tim_5fdelay_5fnonblocking_4',['TIM_Delay_NonBlocking',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b',1,'TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b',1,'TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay): general_tim.c']]], + ['tim_5fdelay_5fstart_5',['TIM_Delay_Start',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834',1,'TIM_Delay_Start(TIM_HandleTypeDef *htim): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834',1,'TIM_Delay_Start(TIM_HandleTypeDef *htim): general_tim.c']]], + ['tim_5fencoder_5finit_6',['TIM_Encoder_Init',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc',1,'TIM_Encoder_Init(TIM_EncoderTypeDef *henc1, TIM_HandleTypeDef *htim): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc',1,'TIM_Encoder_Init(TIM_EncoderTypeDef *henc, TIM_HandleTypeDef *htim): general_tim.c']]], + ['tim_5fencoder_5fread_7',['TIM_Encoder_Read',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501',1,'TIM_Encoder_Read(TIM_EncoderTypeDef *henc): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501',1,'TIM_Encoder_Read(TIM_EncoderTypeDef *henc): general_tim.c']]], + ['tim_5fencoder_5freadswitch_8',['TIM_Encoder_ReadSwitch',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761',1,'TIM_Encoder_ReadSwitch(TIM_EncoderTypeDef *henc): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761',1,'TIM_Encoder_ReadSwitch(TIM_EncoderTypeDef *henc): general_tim.c']]], + ['tim_5foc_5fcomparator_5finit_9',['TIM_OC_Comparator_Init',['../group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889',1,'TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889',1,'TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL): general_tim.c']]], + ['tim_5foutput_5fpwm_5finit_10',['TIM_Output_PWM_Init',['../group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6',1,'TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t PWM_PIN): general_tim.c'],['../group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6',1,'TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN): general_tim.c']]] +]; diff --git a/Doc/html/search/groups_2.js b/Doc/html/search/groups_2.js index a6f1e91..e1a626d 100644 --- a/Doc/html/search/groups_2.js +++ b/Doc/html/search/groups_2.js @@ -2,5 +2,5 @@ var searchData= [ ['channels_20tools_0',['PWM/OC Channels tools',['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'']]], ['configs_1',['Configs',['../group___m_y_l_i_b_s___c_o_n_f_i_g.html',1,'']]], - ['configs_2',['configs',['../group___l_i_b_s___c_o_n_f_i_g.html',1,'Libraries configs'],['../group___t_r_a_c_e___c_o_n_f_i_g.html',1,'Trace configs']]] + ['configs_2',['configs',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html',1,'Evolve configs'],['../group___l_i_b_s___c_o_n_f_i_g.html',1,'Libraries configs'],['../group___t_r_a_c_e___c_o_n_f_i_g.html',1,'Trace configs']]] ]; diff --git a/Doc/html/search/groups_3.js b/Doc/html/search/groups_3.js index 99972f3..dadffcf 100644 --- a/Doc/html/search/groups_3.js +++ b/Doc/html/search/groups_3.js @@ -1,7 +1,6 @@ var searchData= [ - ['defines_0',['General Defines',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'']]], - ['defines_1',['defines',['../group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html',1,'Bit access defines'],['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html',1,'Delays defines'],['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html',1,'Error Handler defines'],['../group___t_r_a_c_e___g_p_i_o.html',1,'GPIO trace defines'],['../group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html',1,'Hardfault trace defines'],['../group___g_p_i_o___i_n_i_t.html',1,'Init defines'],['../group___t_i_m___i_n_i_t.html',1,'Init defines'],['../group___t_r_a_c_e___s_e_r_i_a_l.html',1,'Serial trace defines'],['../group___t_r_a_c_e.html',1,'Trace defines'],['../group___t_r_a_c_k_e_r_s.html',1,'Trackers defines'],['../group___u_t_i_l_s___d_e_f_i_n_e_s.html',1,'Utils defines']]], - ['delay_20tools_2',['Delay tools',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html',1,'']]], - ['delays_20defines_3',['Delays defines',['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html',1,'']]] + ['defines_0',['defines',['../group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html',1,'Bit access defines'],['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html',1,'Delays defines'],['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html',1,'Error Handler defines'],['../group___t_r_a_c_e___g_p_i_o.html',1,'GPIO trace defines'],['../group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html',1,'Hardfault trace defines'],['../group___g_p_i_o___i_n_i_t.html',1,'Init defines'],['../group___t_i_m___i_n_i_t.html',1,'Init defines'],['../group___t_r_a_c_e___s_e_r_i_a_l.html',1,'Serial trace defines'],['../group___t_r_a_c_e.html',1,'Trace defines'],['../group___t_r_a_c_k_e_r_s.html',1,'Trackers defines'],['../group___u_t_i_l_s___d_e_f_i_n_e_s.html',1,'Utils defines']]], + ['delay_20tools_1',['Delay tools',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html',1,'']]], + ['delays_20defines_2',['Delays defines',['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html',1,'']]] ]; diff --git a/Doc/html/search/groups_4.js b/Doc/html/search/groups_4.js index d2fc234..ca0406b 100644 --- a/Doc/html/search/groups_4.js +++ b/Doc/html/search/groups_4.js @@ -1,5 +1,7 @@ var searchData= [ ['encoder_20tools_0',['Encoder tools',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html',1,'']]], - ['error_20handler_20defines_1',['Error Handler defines',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html',1,'']]] + ['error_20handler_20defines_1',['Error Handler defines',['../group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html',1,'']]], + ['evolve_20configs_2',['Evolve configs',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html',1,'']]], + ['evolve_20optimizer_3',['Evolve optimizer',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html',1,'']]] ]; diff --git a/Doc/html/search/groups_6.js b/Doc/html/search/groups_6.js index d520974..96772f9 100644 --- a/Doc/html/search/groups_6.js +++ b/Doc/html/search/groups_6.js @@ -1,6 +1,6 @@ var searchData= [ - ['general_20defines_0',['General Defines',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'']]], + ['general_20tools_0',['General Tools',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'']]], ['general_20tools_1',['General tools',['../group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html',1,'General tools'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html',1,'General tools']]], ['gpio_20tools_2',['GPIO Tools',['../group___m_y___l_i_b_s___g_p_i_o.html',1,'']]], ['gpio_20trace_20defines_3',['GPIO trace defines',['../group___t_r_a_c_e___g_p_i_o.html',1,'']]] diff --git a/Doc/html/search/groups_b.js b/Doc/html/search/groups_b.js index 3d76a60..fa27ef2 100644 --- a/Doc/html/search/groups_b.js +++ b/Doc/html/search/groups_b.js @@ -1,4 +1,5 @@ var searchData= [ - ['oc_20channels_20tools_0',['PWM/OC Channels tools',['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'']]] + ['oc_20channels_20tools_0',['PWM/OC Channels tools',['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'']]], + ['optimizer_1',['Evolve optimizer',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html',1,'']]] ]; diff --git a/Doc/html/search/groups_f.js b/Doc/html/search/groups_f.js index 2f73f99..96ba99e 100644 --- a/Doc/html/search/groups_f.js +++ b/Doc/html/search/groups_f.js @@ -1,7 +1,7 @@ var searchData= [ ['tim_20tools_0',['TIM Tools',['../group___m_y___l_i_b_s___t_i_m.html',1,'']]], - ['tools_1',['Tools',['../group___m_y___l_i_b_s___g_p_i_o.html',1,'GPIO Tools'],['../group___m_y___l_i_b_s___t_i_m.html',1,'TIM Tools']]], + ['tools_1',['Tools',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'General Tools'],['../group___m_y___l_i_b_s___g_p_i_o.html',1,'GPIO Tools'],['../group___m_y___l_i_b_s___t_i_m.html',1,'TIM Tools']]], ['tools_2',['tools',['../group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html',1,'Delay tools'],['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html',1,'Encoder tools'],['../group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html',1,'General tools'],['../group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html',1,'General tools'],['../group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html',1,'LED tools'],['../group___m_y_l_i_b_s___t_i_m___o_c.html',1,'PWM/OC Channels tools'],['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html',1,'Switch tools']]], ['trace_20configs_3',['Trace configs',['../group___t_r_a_c_e___c_o_n_f_i_g.html',1,'']]], ['trace_20defines_4',['Trace defines',['../group___t_r_a_c_e.html',1,'']]], diff --git a/Doc/html/search/pages_1.js b/Doc/html/search/pages_1.js index e8b83bf..c604c22 100644 --- a/Doc/html/search/pages_1.js +++ b/Doc/html/search/pages_1.js @@ -3,5 +3,5 @@ var searchData= ['my_5flibs_5fgpio_0',['Модуль GPIO <a class="el" href="group___m_y___l_i_b_s___g_p_i_o.html">GPIO Tools</a>',['../index.html#gpio_module',1,'']]], ['my_5flibs_5ftim_1',['Модуль таймеров <a class="el" href="group___m_y___l_i_b_s___t_i_m.html">TIM Tools</a>',['../index.html#tim_module',1,'']]], ['mylibs_2',['MyLibs',['../index.html',1,'']]], - ['mylibs_5fdefines_3',['Общие утилиты <a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Defines</a>',['../index.html#utils_module',1,'']]] + ['mylibs_5fdefines_3',['Общие утилиты (<a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Tools</a>)',['../index.html#utils_module',1,'']]] ]; diff --git a/Doc/html/search/pages_7.js b/Doc/html/search/pages_7.js index 60163ac..ca20af9 100644 --- a/Doc/html/search/pages_7.js +++ b/Doc/html/search/pages_7.js @@ -1,6 +1,6 @@ var searchData= [ ['обзор_0',['Обзор',['../index.html#overview',1,'']]], - ['общие_20утилиты_20mylibs_5fdefines_1',['Общие утилиты <a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Defines</a>',['../index.html#utils_module',1,'']]], + ['общие_20утилиты_20mylibs_5fdefines_1',['Общие утилиты (<a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Tools</a>)',['../index.html#utils_module',1,'']]], ['основные_20возможности_2',['Основные возможности',['../index.html#features',1,'']]] ]; diff --git a/Doc/html/search/pages_c.js b/Doc/html/search/pages_c.js index 6a8db26..f69cabe 100644 --- a/Doc/html/search/pages_c.js +++ b/Doc/html/search/pages_c.js @@ -1,4 +1,4 @@ var searchData= [ - ['утилиты_20mylibs_5fdefines_0',['Общие утилиты <a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Defines</a>',['../index.html#utils_module',1,'']]] + ['утилиты_20mylibs_5fdefines_0',['Общие утилиты (<a class="el" href="group___m_y_l_i_b_s___d_e_f_i_n_e_s.html">General Tools</a>)',['../index.html#utils_module',1,'']]] ]; diff --git a/Doc/html/search/searchdata.js b/Doc/html/search/searchdata.js index 3d21b35..afacf37 100644 --- a/Doc/html/search/searchdata.js +++ b/Doc/html/search/searchdata.js @@ -1,10 +1,10 @@ var indexSectionsWithContent = { 0: "abcdefghilmnoprstuвзимопрсту", - 1: "ghrstu", - 2: "bgmt", - 3: "ghrt", - 4: "deghlprst", + 1: "eghrstu", + 2: "begmt", + 3: "eghrt", + 4: "cdeghilnprst", 5: "gt", 6: "lt", 7: "abcdefghilmoprstu", diff --git a/Doc/html/search/variables_0.js b/Doc/html/search/variables_0.js index fd94506..c5df047 100644 --- a/Doc/html/search/variables_0.js +++ b/Doc/html/search/variables_0.js @@ -1,4 +1,5 @@ var searchData= [ - ['data_0',['data',['../struct_r_t_t___flash_header__t.html#ae7276198385c8d6f6508f433d042d52a',1,'RTT_FlashHeader_t']]] + ['cand_5findex_0',['cand_index',['../struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae',1,'EvolveOptimizer_t']]], + ['candidates_1',['candidates',['../struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d',1,'EvolveOptimizer_t']]] ]; diff --git a/Doc/html/search/variables_1.js b/Doc/html/search/variables_1.js index 677b54d..fd94506 100644 --- a/Doc/html/search/variables_1.js +++ b/Doc/html/search/variables_1.js @@ -1,5 +1,4 @@ var searchData= [ - ['encoder_5fdiff_0',['Encoder_Diff',['../struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3',1,'TIM_EncoderTypeDef']]], - ['encoder_5fshdw_1',['Encoder_Shdw',['../struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2',1,'TIM_EncoderTypeDef']]] + ['data_0',['data',['../struct_r_t_t___flash_header__t.html#ae7276198385c8d6f6508f433d042d52a',1,'RTT_FlashHeader_t']]] ]; diff --git a/Doc/html/search/variables_2.js b/Doc/html/search/variables_2.js index ebaa3e9..677b54d 100644 --- a/Doc/html/search/variables_2.js +++ b/Doc/html/search/variables_2.js @@ -1,7 +1,5 @@ var searchData= [ - ['gpio_5fpin_5fsw_0',['GPIO_PIN_SW',['../struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80',1,'TIM_EncoderTypeDef']]], - ['gpio_5fpin_5fti1_1',['GPIO_PIN_TI1',['../struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e',1,'TIM_EncoderTypeDef']]], - ['gpio_5fpin_5fti2_2',['GPIO_PIN_TI2',['../struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5',1,'TIM_EncoderTypeDef']]], - ['gpiox_3',['GPIOx',['../struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9',1,'TIM_EncoderTypeDef']]] + ['encoder_5fdiff_0',['Encoder_Diff',['../struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3',1,'TIM_EncoderTypeDef']]], + ['encoder_5fshdw_1',['Encoder_Shdw',['../struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2',1,'TIM_EncoderTypeDef']]] ]; diff --git a/Doc/html/search/variables_3.js b/Doc/html/search/variables_3.js index 020fcba..ebaa3e9 100644 --- a/Doc/html/search/variables_3.js +++ b/Doc/html/search/variables_3.js @@ -1,4 +1,7 @@ var searchData= [ - ['htim_0',['htim',['../struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c',1,'TIM_SettingsTypeDef::htim'],['../struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c',1,'TIM_EncoderTypeDef::htim']]] + ['gpio_5fpin_5fsw_0',['GPIO_PIN_SW',['../struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80',1,'TIM_EncoderTypeDef']]], + ['gpio_5fpin_5fti1_1',['GPIO_PIN_TI1',['../struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e',1,'TIM_EncoderTypeDef']]], + ['gpio_5fpin_5fti2_2',['GPIO_PIN_TI2',['../struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5',1,'TIM_EncoderTypeDef']]], + ['gpiox_3',['GPIOx',['../struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9',1,'TIM_EncoderTypeDef']]] ]; diff --git a/Doc/html/search/variables_4.js b/Doc/html/search/variables_4.js index be38d2d..020fcba 100644 --- a/Doc/html/search/variables_4.js +++ b/Doc/html/search/variables_4.js @@ -1,8 +1,4 @@ var searchData= [ - ['led_5factivelvl_0',['LED_ActiveLvl',['../struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816',1,'GPIO_LEDTypeDef']]], - ['led_5fperiod_1',['LED_Period',['../struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec',1,'GPIO_LEDTypeDef']]], - ['led_5fpin_2',['LED_Pin',['../struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978',1,'GPIO_LEDTypeDef']]], - ['led_5fport_3',['LED_Port',['../struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf',1,'GPIO_LEDTypeDef']]], - ['lr_4',['lr',['../struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577',1,'HF_StackFrame_t']]] + ['htim_0',['htim',['../struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c',1,'TIM_SettingsTypeDef::htim'],['../struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c',1,'TIM_EncoderTypeDef::htim']]] ]; diff --git a/Doc/html/search/variables_5.js b/Doc/html/search/variables_5.js index 7d04971..b322adf 100644 --- a/Doc/html/search/variables_5.js +++ b/Doc/html/search/variables_5.js @@ -1,5 +1,4 @@ var searchData= [ - ['pc_0',['pc',['../struct_h_f___stack_frame__t.html#a16563896004751c90e41c81ae4570732',1,'HF_StackFrame_t']]], - ['psr_1',['psr',['../struct_h_f___stack_frame__t.html#ae47cb051ee3c94471bfd4fe7e49c55f9',1,'HF_StackFrame_t']]] + ['iq_5fmutation_0',['iq_mutation',['../struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5',1,'EvolveOptimizer_t']]] ]; diff --git a/Doc/html/search/variables_6.js b/Doc/html/search/variables_6.js index 29cfada..def9829 100644 --- a/Doc/html/search/variables_6.js +++ b/Doc/html/search/variables_6.js @@ -1,8 +1,9 @@ var searchData= [ - ['r0_0',['r0',['../struct_h_f___stack_frame__t.html#a4146ed28926b5f234132b7112119a413',1,'HF_StackFrame_t']]], - ['r1_1',['r1',['../struct_h_f___stack_frame__t.html#a286104d19185714940645a9df814ddea',1,'HF_StackFrame_t']]], - ['r12_2',['r12',['../struct_h_f___stack_frame__t.html#a819ee3bc518c460ece1b7c4079f8f80b',1,'HF_StackFrame_t']]], - ['r2_3',['r2',['../struct_h_f___stack_frame__t.html#a5a52e5006dabcf68c0fa4cfb0e03335b',1,'HF_StackFrame_t']]], - ['r3_4',['r3',['../struct_h_f___stack_frame__t.html#a453c7af42b6928a693af422e17c981d3',1,'HF_StackFrame_t']]] + ['led_5factivelvl_0',['LED_ActiveLvl',['../struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816',1,'GPIO_LEDTypeDef']]], + ['led_5fperiod_1',['LED_Period',['../struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec',1,'GPIO_LEDTypeDef']]], + ['led_5fpin_2',['LED_Pin',['../struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978',1,'GPIO_LEDTypeDef']]], + ['led_5fport_3',['LED_Port',['../struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf',1,'GPIO_LEDTypeDef']]], + ['loss_4',['loss',['../struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d',1,'EvolveOptimizer_t']]], + ['lr_5',['lr',['../struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577',1,'HF_StackFrame_t']]] ]; diff --git a/Doc/html/search/variables_7.js b/Doc/html/search/variables_7.js index 4853f37..0e355de 100644 --- a/Doc/html/search/variables_7.js +++ b/Doc/html/search/variables_7.js @@ -1,21 +1,6 @@ var searchData= [ - ['sbreakdeadtimeconfig_0',['sBreakDeadTimeConfig',['../struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7',1,'TIM_SettingsTypeDef']]], - ['sclocksourceconfig_1',['sClockSourceConfig',['../struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0',1,'TIM_SettingsTypeDef']]], - ['sconfig_2',['sConfig',['../struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5',1,'TIM_EncoderTypeDef']]], - ['size_3',['size',['../struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699',1,'RTT_FlashHeader_t']]], - ['smasterconfig_4',['sMasterConfig',['../struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21',1,'TIM_SettingsTypeDef']]], - ['sslaveconfig_5',['sSlaveConfig',['../struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969',1,'TIM_SettingsTypeDef']]], - ['state_6',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]], - ['stickbaseprescaler_7',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]], - ['stickbaseus_8',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]], - ['stimahbfreqmhz_9',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]], - ['stimfreqhz_10',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]], - ['stimmode_11',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]], - ['sw_12',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]], - ['sw_5factivelvl_13',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]], - ['sw_5ffilterdelay_14',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]], - ['sw_5fpin_15',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]], - ['sw_5fport_16',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]], - ['sw_5fprevstate_17',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]] + ['n_5fbest_0',['n_best',['../struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6',1,'EvolveOptimizer_t']]], + ['n_5fcand_1',['n_cand',['../struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1',1,'EvolveOptimizer_t']]], + ['n_5fparams_2',['n_params',['../struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8',1,'EvolveOptimizer_t']]] ]; diff --git a/Doc/html/search/variables_8.js b/Doc/html/search/variables_8.js index 24558b0..7d04971 100644 --- a/Doc/html/search/variables_8.js +++ b/Doc/html/search/variables_8.js @@ -1,4 +1,5 @@ var searchData= [ - ['tag_0',['tag',['../struct_r_t_t___flash_header__t.html#a844ee5470a323a749856cbb7a682dc57',1,'RTT_FlashHeader_t']]] + ['pc_0',['pc',['../struct_h_f___stack_frame__t.html#a16563896004751c90e41c81ae4570732',1,'HF_StackFrame_t']]], + ['psr_1',['psr',['../struct_h_f___stack_frame__t.html#ae47cb051ee3c94471bfd4fe7e49c55f9',1,'HF_StackFrame_t']]] ]; diff --git a/Doc/html/search/variables_9.js b/Doc/html/search/variables_9.js new file mode 100644 index 0000000..29cfada --- /dev/null +++ b/Doc/html/search/variables_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['r0_0',['r0',['../struct_h_f___stack_frame__t.html#a4146ed28926b5f234132b7112119a413',1,'HF_StackFrame_t']]], + ['r1_1',['r1',['../struct_h_f___stack_frame__t.html#a286104d19185714940645a9df814ddea',1,'HF_StackFrame_t']]], + ['r12_2',['r12',['../struct_h_f___stack_frame__t.html#a819ee3bc518c460ece1b7c4079f8f80b',1,'HF_StackFrame_t']]], + ['r2_3',['r2',['../struct_h_f___stack_frame__t.html#a5a52e5006dabcf68c0fa4cfb0e03335b',1,'HF_StackFrame_t']]], + ['r3_4',['r3',['../struct_h_f___stack_frame__t.html#a453c7af42b6928a693af422e17c981d3',1,'HF_StackFrame_t']]] +]; diff --git a/Doc/html/search/variables_a.js b/Doc/html/search/variables_a.js new file mode 100644 index 0000000..4853f37 --- /dev/null +++ b/Doc/html/search/variables_a.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['sbreakdeadtimeconfig_0',['sBreakDeadTimeConfig',['../struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7',1,'TIM_SettingsTypeDef']]], + ['sclocksourceconfig_1',['sClockSourceConfig',['../struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0',1,'TIM_SettingsTypeDef']]], + ['sconfig_2',['sConfig',['../struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5',1,'TIM_EncoderTypeDef']]], + ['size_3',['size',['../struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699',1,'RTT_FlashHeader_t']]], + ['smasterconfig_4',['sMasterConfig',['../struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21',1,'TIM_SettingsTypeDef']]], + ['sslaveconfig_5',['sSlaveConfig',['../struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969',1,'TIM_SettingsTypeDef']]], + ['state_6',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]], + ['stickbaseprescaler_7',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]], + ['stickbaseus_8',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]], + ['stimahbfreqmhz_9',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]], + ['stimfreqhz_10',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]], + ['stimmode_11',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]], + ['sw_12',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]], + ['sw_5factivelvl_13',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]], + ['sw_5ffilterdelay_14',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]], + ['sw_5fpin_15',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]], + ['sw_5fport_16',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]], + ['sw_5fprevstate_17',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]] +]; diff --git a/Doc/html/search/variables_b.js b/Doc/html/search/variables_b.js new file mode 100644 index 0000000..24558b0 --- /dev/null +++ b/Doc/html/search/variables_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tag_0',['tag',['../struct_r_t_t___flash_header__t.html#a844ee5470a323a749856cbb7a682dc57',1,'RTT_FlashHeader_t']]] +]; diff --git a/Doc/html/struct_evolve_optimizer__t-members.html b/Doc/html/struct_evolve_optimizer__t-members.html new file mode 100644 index 0000000..681531b --- /dev/null +++ b/Doc/html/struct_evolve_optimizer__t-members.html @@ -0,0 +1,123 @@ + + + + + + + +MyLibs: Member List + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
EvolveOptimizer_t Member List
+
+ +
+
+ + + + diff --git a/Doc/html/struct_evolve_optimizer__t.html b/Doc/html/struct_evolve_optimizer__t.html new file mode 100644 index 0000000..9263f29 --- /dev/null +++ b/Doc/html/struct_evolve_optimizer__t.html @@ -0,0 +1,278 @@ + + + + + + + +MyLibs: EvolveOptimizer_t Struct Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
EvolveOptimizer_t Struct Reference
+
+
+ +

Структура эволюционного оптимизатора + More...

+ +

#include <evolve_optimizer.h>

+ + + + + + + + + + + + + + + + +

+Public Attributes

uint16_t n_params
 Количество параметров
uint16_t n_cand
 Количество кандидатов
uint16_t n_best
 Количество лучших, усредняемых
uint16_t iq_mutation
 Амплитуда мутации в Q16.16.
uint16_t cand_index
 Индекс кандидата для обработки
int32_t loss [100]
 Loss для каждого кандидата
int32_t candidates [100][20]
 Параметры кандидатов
+

Detailed Description

+

Структура эволюционного оптимизатора

+ +

Definition at line 81 of file evolve_optimizer.h.

+

Member Data Documentation

+ +

◆ n_params

+ +
+
+ + + + +
uint16_t EvolveOptimizer_t::n_params
+
+ +

Количество параметров

+ +

Definition at line 82 of file evolve_optimizer.h.

+ +
+
+ +

◆ n_cand

+ +
+
+ + + + +
uint16_t EvolveOptimizer_t::n_cand
+
+ +

Количество кандидатов

+ +

Definition at line 83 of file evolve_optimizer.h.

+ +
+
+ +

◆ n_best

+ +
+
+ + + + +
uint16_t EvolveOptimizer_t::n_best
+
+ +

Количество лучших, усредняемых

+ +

Definition at line 84 of file evolve_optimizer.h.

+ +
+
+ +

◆ iq_mutation

+ +
+
+ + + + +
uint16_t EvolveOptimizer_t::iq_mutation
+
+ +

Амплитуда мутации в Q16.16.

+ +

Definition at line 85 of file evolve_optimizer.h.

+ +
+
+ +

◆ cand_index

+ +
+
+ + + + +
uint16_t EvolveOptimizer_t::cand_index
+
+ +

Индекс кандидата для обработки

+ +

Definition at line 86 of file evolve_optimizer.h.

+ +
+
+ +

◆ loss

+ +
+
+ + + + +
int32_t EvolveOptimizer_t::loss[100]
+
+ +

Loss для каждого кандидата

+ +

Definition at line 87 of file evolve_optimizer.h.

+ +
+
+ +

◆ candidates

+ +
+
+ + + + +
int32_t EvolveOptimizer_t::candidates[100][20]
+
+ +

Параметры кандидатов

+ +

Definition at line 88 of file evolve_optimizer.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ +
+ + + + diff --git a/Doc/html/struct_evolve_optimizer__t.js b/Doc/html/struct_evolve_optimizer__t.js new file mode 100644 index 0000000..9f66374 --- /dev/null +++ b/Doc/html/struct_evolve_optimizer__t.js @@ -0,0 +1,10 @@ +var struct_evolve_optimizer__t = +[ + [ "n_params", "struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8", null ], + [ "n_cand", "struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1", null ], + [ "n_best", "struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6", null ], + [ "iq_mutation", "struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5", null ], + [ "cand_index", "struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae", null ], + [ "loss", "struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d", null ], + [ "candidates", "struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d", null ] +]; \ No newline at end of file diff --git a/Doc/html/struct_h_f___stack_frame__t.html b/Doc/html/struct_h_f___stack_frame__t.html index c49284d..520e7a8 100644 --- a/Doc/html/struct_h_f___stack_frame__t.html +++ b/Doc/html/struct_h_f___stack_frame__t.html @@ -97,7 +97,7 @@ $(function(){initNavTree('struct_h_f___stack_frame__t.html','','struct_h_f___sta
-
HF_StackFrame_t Struct Reference
+
HF_StackFrame_t Struct Reference
diff --git a/Doc/html/struct_r_t_t___flash_header__t.html b/Doc/html/struct_r_t_t___flash_header__t.html index dc68957..1abfede 100644 --- a/Doc/html/struct_r_t_t___flash_header__t.html +++ b/Doc/html/struct_r_t_t___flash_header__t.html @@ -97,7 +97,7 @@ $(function(){initNavTree('struct_r_t_t___flash_header__t.html','','struct_r_t_t_
-
RTT_FlashHeader_t Struct Reference
+
RTT_FlashHeader_t Struct Reference
diff --git a/Doc/html/topics.html b/Doc/html/topics.html index b8674ec..1361458 100644 --- a/Doc/html/topics.html +++ b/Doc/html/topics.html @@ -105,18 +105,20 @@ $(function(){initNavTree('topics.html','',''); });  My LibsВсе используемые MyLibs библиотеки  ConfigsКонфигурации для библиотек MyLibs  Trace configsКонфигурация трекеров и трассировки - Libraries configsПодключение различных модулей библиотеки - General DefinesОбщие макросы и typedef'ы, используемые по всему проекту - Bit access definesМакросы и typedef'ы для работы с битами в unsigned типах - Error Handler definesДефайны для обработки ошибок - Delays definesМакросы и определения для работы с задержками в миллисекундах - Utils definesОбщие вспомогательные макросы - Trace definesДефайны для работы с трассировкой - Serial trace definesДефайны для работы с serial трассировкой (SWO, RTT) - GPIO trace definesДефайны для работы с GPIO трассировкой - Flash RTT BufferМакросы и функции для сохранения/чтения RTT буфера в Flash - Hardfault trace definesМодуль трассировки HardFault с возможностью сохранения RTT буфера во Flash - Trackers definesДефайны для работы с трекерами + Evolve configsКонфигурация однослойного персептрона и алгоритма обучения + Libraries configsПодключение различных модулей библиотеки + General ToolsОбщие макросы и typedef'ы, используемые по всему проекту + Bit access definesМакросы и typedef'ы для работы с битами в unsigned типах + Evolve optimizerБиблиотека для эволюционного подбора параметров + Error Handler definesДефайны для обработки ошибок + Delays definesМакросы и определения для работы с задержками в миллисекундах + Utils definesОбщие вспомогательные макросы + Trace definesДефайны для работы с трассировкой + Serial trace definesДефайны для работы с serial трассировкой (SWO, RTT) + GPIO trace definesДефайны для работы с GPIO трассировкой + Flash RTT BufferМакросы и функции для сохранения/чтения RTT буфера в Flash + Hardfault trace definesМодуль трассировки HardFault с возможностью сохранения RTT буфера во Flash + Trackers definesДефайны для работы с трекерами  PeripheralМодули для управления периферией  GPIO ToolsФункции и макросы для удобной работы с GPIO  General toolsОбщие функции/макросы для работы с GPIO diff --git a/Doc/html/trackers_8h_source.html b/Doc/html/trackers_8h_source.html index beb26f3..847f6be 100644 --- a/Doc/html/trackers_8h_source.html +++ b/Doc/html/trackers_8h_source.html @@ -238,26 +238,32 @@ $(function(){initNavTree('trackers_8h_source.html','',''); });
134
135 #define TrackerTypeDef(num_user_vars) void *
136
-
137 #define num_of_usercnts(_user_)
-
138 #define assert_tracecnt(_cntstruct_, _uservarnumb_)
-
139
-
140 #define TrackerCnt_Ok(_cntstruct_)
-
141 #define TrackerCnt_Err(_cntstruct_)
-
142 #define TrackerCnt_Warn(_cntstruct_)
-
143 #define TrackerCnt_User(_cntstruct_, _uservarnumb_)
-
144 #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)
-
145
-
146 /** @brief Очистка всей структуры */
-
147 #define TrackerClear_All(_cntstruct_)
-
148 #define TrackerClear_Ok(_cntstruct_)
-
149 #define TrackerClear_Err(_cntstruct_)
-
150 #define TrackerClear_Warn(_cntstruct_)
-
151 #define TrackerClear_User(_cntstruct_)
-
152 #define TrackerClear_UserAll(_cntstruct_)
-
153
-
154#endif //TRACKERS_ENABLE
-
155
-
156#endif //__TRACKERS_H_
+
137 #define num_of_usercnts(_user_) 0
+
138 #define assert_tracecnt(_cntstruct_, _uservarnumb_) 0
+
139 #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(0)
+
140 #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) 0
+
141
+
142 #define TrackerGet_Ok(_cntstruct_) dummy
+
143 #define TrackerGet_Err(_cntstruct_) dummy
+
144 #define TrackerGet_Warn(_cntstruct_) dummy
+
145 #define TrackerGet_User(_cntstruct_, _uservarnumb_) dummy
+
146
+
147 #define TrackerCnt_Ok(_cntstruct_)
+
148 #define TrackerCnt_Err(_cntstruct_)
+
149 #define TrackerCnt_Warn(_cntstruct_)
+
150 #define TrackerCnt_User(_cntstruct_, _uservarnumb_)
+
151 #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)
+
152
+
153 #define TrackerClear_All(_cntstruct_)
+
154 #define TrackerClear_Ok(_cntstruct_)
+
155 #define TrackerClear_Err(_cntstruct_)
+
156 #define TrackerClear_Warn(_cntstruct_)
+
157 #define TrackerClear_User(_cntstruct_)
+
158 #define TrackerClear_UserAll(_cntstruct_)
+
159
+
160#endif //TRACKERS_ENABLE
+
161
+
162#endif //__TRACKERS_H_
Заголочный файл для дефайнов библиотеки MyLibsGeneral.
diff --git a/Doc/html/unionuint16___bit_type_def.html b/Doc/html/unionuint16___bit_type_def.html index e34fe8a..a6cc4cb 100644 --- a/Doc/html/unionuint16___bit_type_def.html +++ b/Doc/html/unionuint16___bit_type_def.html @@ -97,7 +97,7 @@ $(function(){initNavTree('unionuint16___bit_type_def.html','','unionuint16___bit
-
uint16_BitTypeDef Union Reference
+
uint16_BitTypeDef Union Reference
diff --git a/Doc/html/unionuint32___bit_type_def.html b/Doc/html/unionuint32___bit_type_def.html index 8d72933..05761c6 100644 --- a/Doc/html/unionuint32___bit_type_def.html +++ b/Doc/html/unionuint32___bit_type_def.html @@ -97,7 +97,7 @@ $(function(){initNavTree('unionuint32___bit_type_def.html','','unionuint32___bit
-
uint32_BitTypeDef Union Reference
+
uint32_BitTypeDef Union Reference
diff --git a/Doc/html/unionuint64___bit_type_def.html b/Doc/html/unionuint64___bit_type_def.html index 59935e4..d9aa7f7 100644 --- a/Doc/html/unionuint64___bit_type_def.html +++ b/Doc/html/unionuint64___bit_type_def.html @@ -97,7 +97,7 @@ $(function(){initNavTree('unionuint64___bit_type_def.html','','unionuint64___bit
-
uint64_BitTypeDef Union Reference
+
uint64_BitTypeDef Union Reference
diff --git a/Doc/html/unionuint8___bit_type_def.html b/Doc/html/unionuint8___bit_type_def.html index 0e46494..53a402f 100644 --- a/Doc/html/unionuint8___bit_type_def.html +++ b/Doc/html/unionuint8___bit_type_def.html @@ -97,7 +97,7 @@ $(function(){initNavTree('unionuint8___bit_type_def.html','','unionuint8___bit_t
-
uint8_BitTypeDef Union Reference
+
uint8_BitTypeDef Union Reference
diff --git a/Doc/latex/annotated.tex b/Doc/latex/annotated.tex index 0f093a6..6cc7cee 100644 --- a/Doc/latex/annotated.tex +++ b/Doc/latex/annotated.tex @@ -1,5 +1,6 @@ \doxysection{Class List} Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \\*Структура эволюционного оптимизатора }{\pageref{struct_evolve_optimizer__t}}{} \item\contentsline{section}{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \\*Структура светодиода }{\pageref{struct_g_p_i_o___l_e_d_type_def}}{} \item\contentsline{section}{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \\*Структура кнопки }{\pageref{struct_g_p_i_o___switch_type_def}}{} \item\contentsline{section}{\mbox{\hyperlink{struct_h_f___stack_frame__t}{HF\+\_\+\+Stack\+Frame\+\_\+t}} \\*Контекст стек-\/фрейма процессора при Hard\+Fault }{\pageref{struct_h_f___stack_frame__t}}{} diff --git a/Doc/latex/bit__access_8h.tex b/Doc/latex/bit__access_8h.tex index 4ce7302..31e7227 100644 --- a/Doc/latex/bit__access_8h.tex +++ b/Doc/latex/bit__access_8h.tex @@ -6,16 +6,14 @@ {\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline -Include dependency graph for bit\+\_\+access.\+h\+: -\nopagebreak +Include dependency graph for bit\+\_\+access.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=229pt]{bit__access_8h__incl} \end{center} \end{figure} -This graph shows which files directly or indirectly include this file\+: -\nopagebreak +This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/bit__access_8h__dep__incl.pdf b/Doc/latex/bit__access_8h__dep__incl.pdf index 482e90d..3d0eaaf 100644 Binary files a/Doc/latex/bit__access_8h__dep__incl.pdf and b/Doc/latex/bit__access_8h__dep__incl.pdf differ diff --git a/Doc/latex/bit__access_8h__incl.pdf b/Doc/latex/bit__access_8h__incl.pdf index 2de4b26..f48791a 100644 Binary files a/Doc/latex/bit__access_8h__incl.pdf and b/Doc/latex/bit__access_8h__incl.pdf differ diff --git a/Doc/latex/evolve__optimizer_8h.tex b/Doc/latex/evolve__optimizer_8h.tex new file mode 100644 index 0000000..f04a5c3 --- /dev/null +++ b/Doc/latex/evolve__optimizer_8h.tex @@ -0,0 +1,52 @@ +\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/evolve\+\_\+optimizer.h File Reference} +\hypertarget{evolve__optimizer_8h}{}\label{evolve__optimizer_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/evolve\_optimizer.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/evolve\_optimizer.h}} + + +Заголовочный файл для адаптивного подбора параметров + + +{\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline +{\ttfamily \#include $<$stdint.\+h$>$}\newline +{\ttfamily \#include $<$stdlib.\+h$>$}\newline +Include dependency graph for evolve\+\_\+optimizer.\+h\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=295pt]{evolve__optimizer_8h__incl} +\end{center} +\end{figure} +This graph shows which files directly or indirectly include this file\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=229pt]{evolve__optimizer_8h__dep__incl} +\end{center} +\end{figure} +\doxysubsubsection*{Classes} +\begin{DoxyCompactItemize} +\item +struct \mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} +\begin{DoxyCompactList}\small\item\em Структура эволюционного оптимизатора \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc}{PARAM\+\_\+\+SCALE\+\_\+\+Q16}}(x, min\+\_\+val, max\+\_\+val) +\begin{DoxyCompactList}\small\item\em Линейное масштабирование x из диапазона \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]} в Q16.\+16 \mbox{[}0, 65536) \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba}{PARAM\+\_\+\+UNSCALE\+\_\+\+Q16}}(q16\+\_\+val, min\+\_\+val, max\+\_\+val) +\begin{DoxyCompactList}\small\item\em Обратное линейное масштабирование Q16.\+16 значения в диапазон \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]}. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsection*{Functions} +\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE void \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gac21587fe68fe3635525358ac3f4059d9}{Evolve\+Optimizer\+\_\+\+Init}} (\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}opt, uint16\+\_\+t n\+\_\+params, uint16\+\_\+t n\+\_\+cand, uint16\+\_\+t n\+\_\+best, uint16\+\_\+t iq\+\_\+mutation, int32\+\_\+t \texorpdfstring{$\ast$}{*}start\+\_\+params) +\begin{DoxyCompactList}\small\item\em Инициализация эволюционного оптимизатора. \end{DoxyCompactList}\item +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE void \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga1ba2fa963c9ae12625be1b7c20718563}{Evolve\+Optimizer\+\_\+\+Step}} (\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}opt, int32\+\_\+t \texorpdfstring{$\ast$}{*}params, int32\+\_\+t loss) +\begin{DoxyCompactList}\small\item\em Один шаг эволюционного оптимизатора. \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +Заголовочный файл для адаптивного подбора параметров + + + +Definition in file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + diff --git a/Doc/latex/evolve__optimizer_8h__dep__incl.md5 b/Doc/latex/evolve__optimizer_8h__dep__incl.md5 new file mode 100644 index 0000000..17ac4cc --- /dev/null +++ b/Doc/latex/evolve__optimizer_8h__dep__incl.md5 @@ -0,0 +1 @@ +a385857375106a9066dc97059b8e5f66 \ No newline at end of file diff --git a/Doc/latex/evolve__optimizer_8h__dep__incl.pdf b/Doc/latex/evolve__optimizer_8h__dep__incl.pdf new file mode 100644 index 0000000..59395c0 Binary files /dev/null and b/Doc/latex/evolve__optimizer_8h__dep__incl.pdf differ diff --git a/Doc/latex/evolve__optimizer_8h__incl.md5 b/Doc/latex/evolve__optimizer_8h__incl.md5 new file mode 100644 index 0000000..b0017bc --- /dev/null +++ b/Doc/latex/evolve__optimizer_8h__incl.md5 @@ -0,0 +1 @@ +e567d0680734fcff06b08511863dc20f \ No newline at end of file diff --git a/Doc/latex/evolve__optimizer_8h__incl.pdf b/Doc/latex/evolve__optimizer_8h__incl.pdf new file mode 100644 index 0000000..e9b6ca4 Binary files /dev/null and b/Doc/latex/evolve__optimizer_8h__incl.pdf differ diff --git a/Doc/latex/evolve__optimizer_8h_source.tex b/Doc/latex/evolve__optimizer_8h_source.tex new file mode 100644 index 0000000..50733a7 --- /dev/null +++ b/Doc/latex/evolve__optimizer_8h_source.tex @@ -0,0 +1,224 @@ +\doxysection{evolve\+\_\+optimizer.\+h} +\hypertarget{evolve__optimizer_8h_source}{}\label{evolve__optimizer_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/evolve\_optimizer.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/evolve\_optimizer.h}} +\mbox{\hyperlink{evolve__optimizer_8h}{Go to the documentation of this file.}} +\begin{DoxyCode}{0} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00001}00001\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00002}00002\ \textcolor{comment}{******************************************************************************}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ evolve\_optimizer.h}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголовочный\ файл\ для\ адаптивного\ подбора\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00005}00005\ \textcolor{comment}{******************************************************************************}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00006}00006\ \textcolor{comment}{*\ @addtogroup\ EVOLVE\_OPTIMIZER\ \ \ \ Evolve\ optimizer}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00007}00007\ \textcolor{comment}{*\ @ingroup\ \ \ \ MYLIBS\_DEFINES}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00008}00008\ \textcolor{comment}{*\ @brief\ \ \ \ \ \ Библиотека\ для\ эволюционного\ подбора\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00009}00009\ \textcolor{comment}{*\ @details}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00010}00010\ \textcolor{comment}{Поддерживает:}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00011}00011\ \textcolor{comment}{-\/\ Любое\ количество\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00012}00012\ \textcolor{comment}{-\/\ Генерацию\ новых\ параметров\ на\ основе\ лучших\ кандидатов}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00013}00013\ \textcolor{comment}{-\/\ Мутацию\ для\ поиска\ оптимальных\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00014}00014\ \textcolor{comment}{-\/\ Несколько\ независимых\ оптимизаторов\ в\ одной\ программе}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00015}00015\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00016}00016\ \textcolor{comment}{Если\ библиотека\ отключена\ @ref\ ENABLE\_EVOLVE\_OPTIMIZATION,\ то\ вставляются\ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00017}00017\ \textcolor{comment}{заглушки,\ никак\ не\ влияющие\ на\ параметры\ и\ остальную\ программу}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00018}00018\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00019}00019\ \textcolor{comment}{@par\ Пример\ использования:}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00020}00020\ \textcolor{comment}{@code}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00021}00021\ \textcolor{comment}{\#include\ "{}evolve\_optimizer.h"{}}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00022}00022\ \textcolor{comment}{\#define\ N\_PARAMS\ \ \ \ \ \ \ \ 4}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00023}00023\ \textcolor{comment}{\#define\ N\_CANDIDATES\ \ \ \ 100}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00024}00024\ \textcolor{comment}{\#define\ N\_BEST\ \ \ \ \ \ \ \ \ \ 10}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00025}00025\ \textcolor{comment}{\#define\ IQ\_MUTATION\ \ \ \ \ 655}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00026}00026\ \textcolor{comment}{int32\_t\ params[N\_PARAMS];}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00027}00027\ \textcolor{comment}{EvolveOptimizer\_t\ optimizer;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00028}00028\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00029}00029\ \textcolor{comment}{//\ Формирование\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00030}00030\ \textcolor{comment}{uint16\_t\ \ param\_u16\ =\ 800;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00031}00031\ \textcolor{comment}{float\ \ \ \ \ param\_f\ \ \ =\ 0.01f;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00032}00032\ \textcolor{comment}{uint8\_t\ \ \ param\_u8\ \ =\ 40;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00033}00033\ \textcolor{comment}{int16\_t\ \ \ param\_i16\ =\ 1600;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00034}00034\ \textcolor{comment}{params[0]\ =\ PARAM\_SCALE\_Q16(param\_u16,\ \ 0,\ \ \ \ \ \ 1000);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00035}00035\ \textcolor{comment}{params[1]\ =\ PARAM\_SCALE\_Q16(param\_f,\ \ \ \ 0.001f,\ 0.1f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00036}00036\ \textcolor{comment}{params[2]\ =\ PARAM\_SCALE\_Q16(param\_u8,\ \ \ 10,\ \ \ \ \ 100);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00037}00037\ \textcolor{comment}{params[3]\ =\ PARAM\_SCALE\_Q16(param\_i16,\ \ 500,\ \ \ \ 5000);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00038}00038\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00039}00039\ \textcolor{comment}{//\ Инициалиазция}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00040}00040\ \textcolor{comment}{EvolveOptimizer\_Init(\&optimizer,\ N\_PARAMS,\ N\_CANDIDATES,\ N\_BEST,\ IQ\_MUTATION,\ params);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00041}00041\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00042}00042\ \textcolor{comment}{//\ Шаг\ эволюции}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00043}00043\ \textcolor{comment}{int32\_t\ loss\ =\ calc\_iq\_loss();\ //\ расчет\ эффективности\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00044}00044\ \textcolor{comment}{EvolveOptimizer\_Step(\&optimizer,\ params,\ loss);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00045}00045\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00046}00046\ \textcolor{comment}{//\ Взятие\ следующих\ для\ эволюции\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00047}00047\ \textcolor{comment}{param\_u16\ =\ PARAM\_UNSCALE\_Q16(params[0],\ \ 0,\ \ \ \ \ \ 1000);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00048}00048\ \textcolor{comment}{param\_f\ \ \ =\ PARAM\_UNSCALE\_Q16(params[1],\ \ 0.001f,\ 0.1f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00049}00049\ \textcolor{comment}{param\_u8\ \ =\ PARAM\_UNSCALE\_Q16(params[2],\ \ 10,\ \ \ \ \ 100);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00050}00050\ \textcolor{comment}{param\_i16\ =\ PARAM\_UNSCALE\_Q16(params[3],\ \ 500,\ \ \ \ 5000);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00051}00051\ \textcolor{comment}{@endcode}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00052}00052\ \textcolor{comment}{*\ @\{\ \ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00053}00053\ \textcolor{comment}{*****************************************************************************/}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00054}00054\ \textcolor{preprocessor}{\#ifndef\ \_\_EVOLVE\_OPTIMIZER\_H\_}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00055}00055\ \textcolor{preprocessor}{\#define\ \_\_EVOLVE\_OPTIMIZER\_H\_}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00056}00056\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00057}00057\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00058}00058\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00059}00059\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00060}00060\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00061}00061\ \textcolor{preprocessor}{\#ifdef\ ENABLE\_EVOLVE\_OPTIMIZATION}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00062}00062\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00063}00063\ \textcolor{preprocessor}{\#define\ Q16\_MUL(a,b)\ ((int32\_t)(((int64\_t)(a)\ *\ (int64\_t)(b))\ >>\ 16))}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00064}00064\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00065}00065\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00066}00066\ \textcolor{comment}{\ \ *\ @brief\ Линейное\ масштабирование\ x\ из\ диапазона\ [min\_val,\ max\_val]\ в\ Q16.16\ [0,\ 65536)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00067}00067\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00068}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc}{00068}}\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE\_Q16(x,\ min\_val,\ max\_val)\ \(\backslash\)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00069}00069\ \textcolor{preprocessor}{((int32\_t)((((float)(x)\ -\/\ (float)(min\_val))\ /\ ((float)(max\_val)\ -\/\ (float)(min\_val)))\ *\ 65536.0f))}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00070}00070\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00071}00071\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00072}00072\ \textcolor{comment}{\ \ *\ @brief\ Обратное\ линейное\ масштабирование\ Q16.16\ значения\ в\ диапазон\ [min\_val,\ max\_val]}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00073}00073\ \textcolor{comment}{\ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00074}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba}{00074}}\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE\_Q16(q16\_val,\ min\_val,\ max\_val)\ \(\backslash\)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00075}00075\ \textcolor{preprocessor}{(((float)(q16\_val)\ /\ 65536.0f)\ *\ ((float)(max\_val)\ -\/\ (float)(min\_val))\ +\ (float)(min\_val))}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00076}00076\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00077}00077\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00078}00078\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00079}00079\ \textcolor{comment}{\ \ *\ @brief\ Структура\ эволюционного\ оптимизатора}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00080}00080\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00081}\mbox{\hyperlink{struct_evolve_optimizer__t}{00081}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00082}\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{00082}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00083}\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{00083}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ кандидатов}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00084}\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{00084}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ лучших,\ усредняемых}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00085}\mbox{\hyperlink{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}{00085}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}{iq\_mutation}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Амплитуда\ мутации\ в\ Q16.16}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00086}\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{00086}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Индекс\ кандидата\ для\ обработки}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00087}\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{00087}}\ \ \ int32\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[\mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}}];\ \ \ \ \textcolor{comment}{///<\ Loss\ для\ каждого\ кандидата}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00088}\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{00088}}\ \ \ int32\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[\mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}}][\mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}{EVOLVE\_MAX\_PARAMS}}];\ \ \ \ \textcolor{comment}{///<\ Параметры\ кандидатов}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00089}00089\ \}\ \mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00090}00090\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00091}00091\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00092}00092\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00093}00093\ \textcolor{comment}{\ \ *\ @brief\ Инициализация\ эволюционного\ оптимизатора.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00094}00094\ \textcolor{comment}{\ \ *\ @param\ opt\ \ \ \ \ \ \ \ \ \ Указатель\ на\ структуру\ оптимизатора}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00095}00095\ \textcolor{comment}{\ \ *\ @param\ n\_params\ \ \ \ \ Количество\ параметров\ в\ одном\ кандидате}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00096}00096\ \textcolor{comment}{\ \ *\ @param\ n\_cand\ \ \ \ \ \ \ Количество\ кандидатов}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00097}00097\ \textcolor{comment}{\ \ *\ @param\ n\_best\ \ \ \ \ \ \ Количество\ лучших,\ усредняемых}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00098}00098\ \textcolor{comment}{\ \ *\ @param\ iq\_mutation\ \ Амплитуда\ мутации\ в\ Q16.16}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00099}00099\ \textcolor{comment}{\ \ *\ @param\ start\_params\ Начальные\ параметры\ (Q16.16)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00100}00100\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00101}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gac21587fe68fe3635525358ac3f4059d9}{00101}}\ \_\_STATIC\_INLINE\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gac21587fe68fe3635525358ac3f4059d9}{EvolveOptimizer\_Init}}(\mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}*\ opt,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00102}00102\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_params,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00103}00103\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_cand,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00104}00104\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_best,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00105}00105\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ iq\_mutation,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00106}00106\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ int32\_t*\ start\_params)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00107}00107\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00108}00108\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3}{check\_null\_ptr\_2}}(opt,\ start\_params))} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00109}00109\ \ \ \ \ \textcolor{keywordflow}{return};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00110}00110\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00111}00111\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}}\ \ \ \ \ =\ n\_params;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00112}00112\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}}\ \ \ \ \ \ \ =\ n\_cand;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00113}00113\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}}\ \ \ \ \ \ \ =\ n\_best;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00114}00114\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}{iq\_mutation}}\ \ =\ iq\_mutation;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00115}00115\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00116}00116\ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_cand;\ i++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00117}00117\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ j\ =\ 0;\ j\ <\ n\_params;\ j++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00118}00118\ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[i][j]\ =\ start\_params[j];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00119}00119\ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00120}00120\ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[i]\ =\ 0;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00121}00121\ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00122}00122\ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00123}00123\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00124}00124\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00125}00125\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00126}00126\ \textcolor{comment}{\ \ *\ @brief\ Один\ шаг\ эволюционного\ оптимизатора.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00127}00127\ \textcolor{comment}{\ \ *\ @param\ opt\ \ \ \ Указатель\ на\ структуру\ оптимизатора}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00128}00128\ \textcolor{comment}{\ \ *\ @param\ params\ Массив\ параметров,\ которые\ будут\ обновлены\ (на\ выходе\ —\ новые\ параметры)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00129}00129\ \textcolor{comment}{\ \ *\ @param\ loss\ \ \ Loss\ текущего\ кандидата\ (Q16.16)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00130}00130\ \textcolor{comment}{\ \ *\ @details}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00131}00131\ \textcolor{comment}{\ \ *\ Сохраняет\ loss\ текущего\ кандидата\ и\ формирует\ параметры\ следующего\ кандидата.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00132}00132\ \textcolor{comment}{\ \ *\ Если\ накоплено\ n\_cand\ кандидатов,\ генерируется\ новое\ поколение.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00133}00133\ \textcolor{comment}{\ \ *\ Новое\ поколение\ формируется\ случайным\ выбором\ из\ n\_best\ лучших\ с\ добавлением\ мутации.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00134}00134\ \textcolor{comment}{\ \ *}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00135}00135\ \textcolor{comment}{\ \ *\ На\ выходе\ params\ содержит\ параметры\ следующего\ кандидата\ для\ измерений.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00136}00136\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00137}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga1ba2fa963c9ae12625be1b7c20718563}{00137}}\ \_\_STATIC\_INLINE\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga1ba2fa963c9ae12625be1b7c20718563}{EvolveOptimizer\_Step}}(\mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}*\ opt,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00138}00138\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ int32\_t*\ params,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00139}00139\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ int32\_t\ \ \ loss)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00140}00140\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00141}00141\ \ \ \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3}{check\_null\_ptr\_2}}(opt,\ params))} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00142}00142\ \ \ \ \ \textcolor{keywordflow}{return};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00143}00143\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00144}00144\ \ \ uint16\_t\ n\_params\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}};\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00145}00145\ \ \ uint16\_t\ n\_cand\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}};\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00146}00146\ \ \ uint16\_t\ n\_best\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}};\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00147}00147\ \ \ uint16\_t\ mut\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}{iq\_mutation}};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00148}00148\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00149}00149\ \ \ \textcolor{comment}{//\ 1.\ Сохраняем\ loss\ текущего\ кандидата}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00150}00150\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}]\ =\ loss;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00151}00151\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00152}00152\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}++;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00153}00153\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00154}00154\ \ \ \textcolor{keywordflow}{if}\ (opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}\ >=\ n\_cand)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00155}00155\ \ \ \ \ \textcolor{comment}{//\ 2.\ Сортируем\ текущее\ поколение\ по\ loss}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00156}00156\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_cand\ -\/\ 1;\ i++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00157}00157\ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ j\ =\ i\ +\ 1;\ j\ <\ n\_cand;\ j++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00158}00158\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[j]\ <\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[i])\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00159}00159\ \ \ \ \ \ \ \ \ \ \ int32\_t\ tmp\_loss\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[i];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00160}00160\ \ \ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[i]\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[j];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00161}00161\ \ \ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[j]\ =\ tmp\_loss;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00162}00162\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00163}00163\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ k\ =\ 0;\ k\ <\ n\_params;\ k++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00164}00164\ \ \ \ \ \ \ \ \ \ \ \ \ int32\_t\ tmp\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[i][k];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00165}00165\ \ \ \ \ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[i][k]\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[j][k];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00166}00166\ \ \ \ \ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[j][k]\ =\ tmp;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00167}00167\ \ \ \ \ \ \ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00168}00168\ \ \ \ \ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00169}00169\ \ \ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00170}00170\ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00171}00171\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00172}00172\ \ \ \ \ \textcolor{comment}{//\ 3.\ Генерируем\ новое\ поколение:\ каждый\ кандидат\ берется\ случайно\ из\ лучших\ с\ мутацией}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00173}00173\ \ \ \ \ uint16\_t\ n\_elite\ =\ 2;\ \textcolor{comment}{//\ количество\ элитных\ кандидатов,\ которые\ сохраняем\ без\ изменений}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00174}00174\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ c\ =\ 0;\ c\ <\ n\_cand;\ c++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00175}00175\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ <\ n\_elite)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00176}00176\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Копируем\ лучших\ кандидатов\ напрямую\ без\ мутации}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00177}00177\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_params;\ i++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00178}00178\ \ \ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[c][i]\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[c][i];\ \textcolor{comment}{//\ просто\ сохраняем\ параметры}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00179}00179\ \ \ \ \ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00180}00180\ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[c]\ =\ 0;\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00181}00181\ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00182}00182\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Остальные\ кандидаты\ формируются\ с\ кроссовером\ и\ мутацией}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00183}00183\ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_params;\ i++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00184}00184\ \ \ \ \ \ \ \ \ int32\_t\ noise\ =\ (rand()\ \%\ (2\ *\ mut))\ -\/\ mut;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00185}00185\ \ \ \ \ \ \ \ \ \ \ uint16\_t\ parent\ =\ rand()\ \%\ n\_best;\ \textcolor{comment}{//\ каждый\ параметр\ из\ случайного\ лучшего}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00186}00186\ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[c][i]\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[parent][i]\ +\ noise;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00187}00187\ \ \ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00188}00188\ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[c]\ =\ 0;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00189}00189\ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00190}00190\ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00191}00191\ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}\ =\ 0;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00192}00192\ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00193}00193\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00194}00194\ \ \ \textcolor{comment}{//\ 4.\ Возвращаем\ параметры\ следующего\ кандидата}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00195}00195\ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}};\ i++)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00196}00196\ \ \ \ \ params[i]\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}][i];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00197}00197\ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00198}00198\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{//\ ENABLE\_EVOLVE\_OPTIMIZATION}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00199}00199\ \textcolor{comment}{//заглушки}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00200}00200\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00201}00201\ \ \ uint16\_t\ n\_params;\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00202}00202\ \ \ uint16\_t\ n\_cand;\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00203}00203\ \ \ uint16\_t\ n\_best;\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00204}00204\ \ \ uint16\_t\ iq\_mutation;\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00205}00205\ \ \ int32\_t\ loss[0];\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00206}00206\ \ \ int32\_t\ candidates[0][0];\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00207}00207\ \}\ \mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00208}00208\ \textcolor{preprocessor}{\#define\ EvolveOptimizer\_Init(opt,\ n\_params,\ n\_cand,\ n\_best,\ iq\_mutation,\ start\_params)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00209}00209\ \textcolor{preprocessor}{\#define\ EvolveOptimizer\_Step(opt,\ params,\ LossFunc)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00210}00210\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE\_Q16(x,\ min\_val,\ max\_val)\ \ \ \ \ \ \ \ \ \ \ \ (x)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00211}00211\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE\_Q16(q16\_val,\ min\_val,\ max\_val)\ \ \ \ (q16\_val)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (q16\_val)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00212}00212\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ ENABLE\_EVOLVE\_OPTIMIZATION}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00213}00213\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00214}00214\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_EVOLVE\_OPTIMIZER\_H\_}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00215}00215\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00216}00216\ \textcolor{comment}{/**\ EVOLVE\_OPTIMIZER}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00217}00217\ \textcolor{comment}{\ \ *\ @\}}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00218}00218\ \textcolor{comment}{\ \ */}} + +\end{DoxyCode} diff --git a/Doc/latex/files.tex b/Doc/latex/files.tex index c59750b..009943f 100644 --- a/Doc/latex/files.tex +++ b/Doc/latex/files.tex @@ -1,9 +1,11 @@ \doxysection{File List} Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\mbox{\hyperlink{mainpage_8h_source}{mainpage.\+h}} }{\pageref{mainpage_8h_source}}{} \item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__flash_8h_source}{\+\_\+\+\_\+general\+\_\+flash.\+h}} }{\pageref{____general__flash_8h_source}}{} \item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}} }{\pageref{____general__spi_8h_source}}{} \item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__uart_8h_source}{\+\_\+\+\_\+general\+\_\+uart.\+h}} }{\pageref{____general__uart_8h_source}}{} \item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}} \\*Заголочный файл для дефайнов битового доступа }{\pageref{bit__access_8h}}{} +\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{evolve__optimizer_8h}{evolve\+\_\+optimizer.\+h}} \\*Заголовочный файл для адаптивного подбора параметров }{\pageref{evolve__optimizer_8h}}{} \item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{general__gpio_8h}{general\+\_\+gpio.\+h}} \\*Заголовочный файл для модуля инициализации портов и работы с ними }{\pageref{general__gpio_8h}}{} \item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{general__tim_8h}{general\+\_\+tim.\+h}} \\*Заголовочный файл для модуля инициализации таймеров и работы с ними }{\pageref{general__tim_8h}}{} \item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__config_8h}{mylibs\+\_\+config.\+h}} \\*Конфигурации для библиотек My\+Libs }{\pageref{mylibs__config_8h}}{} diff --git a/Doc/latex/general__gpio_8c.tex b/Doc/latex/general__gpio_8c.tex index 2a58371..af9a192 100644 --- a/Doc/latex/general__gpio_8c.tex +++ b/Doc/latex/general__gpio_8c.tex @@ -6,8 +6,7 @@ {\ttfamily \#include "{}general\+\_\+gpio.\+h"{}}\newline -Include dependency graph for general\+\_\+gpio.\+c\+: -\nopagebreak +Include dependency graph for general\+\_\+gpio.\+c\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/general__gpio_8c__incl.pdf b/Doc/latex/general__gpio_8c__incl.pdf index 56fa83e..fd06f3c 100644 Binary files a/Doc/latex/general__gpio_8c__incl.pdf and b/Doc/latex/general__gpio_8c__incl.pdf differ diff --git a/Doc/latex/general__gpio_8h.tex b/Doc/latex/general__gpio_8h.tex index b6d9be2..59de573 100644 --- a/Doc/latex/general__gpio_8h.tex +++ b/Doc/latex/general__gpio_8h.tex @@ -6,16 +6,14 @@ {\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline -Include dependency graph for general\+\_\+gpio.\+h\+: -\nopagebreak +Include dependency graph for general\+\_\+gpio.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=229pt]{general__gpio_8h__incl} \end{center} \end{figure} -This graph shows which files directly or indirectly include this file\+: -\nopagebreak +This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/general__gpio_8h__dep__incl.pdf b/Doc/latex/general__gpio_8h__dep__incl.pdf index e488cfd..23e831f 100644 Binary files a/Doc/latex/general__gpio_8h__dep__incl.pdf and b/Doc/latex/general__gpio_8h__dep__incl.pdf differ diff --git a/Doc/latex/general__gpio_8h__incl.pdf b/Doc/latex/general__gpio_8h__incl.pdf index 1699710..ae0be16 100644 Binary files a/Doc/latex/general__gpio_8h__incl.pdf and b/Doc/latex/general__gpio_8h__incl.pdf differ diff --git a/Doc/latex/general__tim_8c.tex b/Doc/latex/general__tim_8c.tex index c305423..3cdafc0 100644 --- a/Doc/latex/general__tim_8c.tex +++ b/Doc/latex/general__tim_8c.tex @@ -6,8 +6,7 @@ {\ttfamily \#include "{}general\+\_\+tim.\+h"{}}\newline -Include dependency graph for general\+\_\+tim.\+c\+: -\nopagebreak +Include dependency graph for general\+\_\+tim.\+c\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/general__tim_8c__incl.pdf b/Doc/latex/general__tim_8c__incl.pdf index 536a020..bacd041 100644 Binary files a/Doc/latex/general__tim_8c__incl.pdf and b/Doc/latex/general__tim_8c__incl.pdf differ diff --git a/Doc/latex/general__tim_8h.tex b/Doc/latex/general__tim_8h.tex index c021dc9..a7508f1 100644 --- a/Doc/latex/general__tim_8h.tex +++ b/Doc/latex/general__tim_8h.tex @@ -7,16 +7,14 @@ {\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline {\ttfamily \#include "{}general\+\_\+gpio.\+h"{}}\newline -Include dependency graph for general\+\_\+tim.\+h\+: -\nopagebreak +Include dependency graph for general\+\_\+tim.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=229pt]{general__tim_8h__incl} \end{center} \end{figure} -This graph shows which files directly or indirectly include this file\+: -\nopagebreak +This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/general__tim_8h__dep__incl.pdf b/Doc/latex/general__tim_8h__dep__incl.pdf index 7dda336..7984a6b 100644 Binary files a/Doc/latex/general__tim_8h__dep__incl.pdf and b/Doc/latex/general__tim_8h__dep__incl.pdf differ diff --git a/Doc/latex/general__tim_8h__incl.pdf b/Doc/latex/general__tim_8h__incl.pdf index 1bade59..99a1fb4 100644 Binary files a/Doc/latex/general__tim_8h__incl.pdf and b/Doc/latex/general__tim_8h__incl.pdf differ diff --git a/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.md5 b/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.md5 index aab75c0..d0764fb 100644 --- a/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.md5 +++ b/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.md5 @@ -1 +1 @@ -58861c427738147326054c740ac5c202 \ No newline at end of file +56d577ae2ce4b45bacd111b61cb7554f \ No newline at end of file diff --git a/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.pdf b/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.pdf index 82cca8d..3ae7469 100644 Binary files a/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.pdf and b/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.pdf differ diff --git a/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.tex b/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.tex index a8bcb4b..4038bb6 100644 --- a/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.tex +++ b/Doc/latex/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.tex @@ -5,12 +5,11 @@ Макросы и typedef\textquotesingle{}ы для работы с битами в unsigned типах. -Collaboration diagram for Bit access defines\+: -\nopagebreak +Collaboration diagram for Bit access defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=300pt]{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s} +\includegraphics[width=288pt]{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s} \end{center} \end{figure} \doxysubsubsubsubsection*{Classes} diff --git a/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.md5 b/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.md5 index c96e50e..286061b 100644 --- a/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.md5 +++ b/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.md5 @@ -1 +1 @@ -591a0b98d98294b7a16c22b9669d8b64 \ No newline at end of file +c52cb47284eaa7377e976a0f04f0002e \ No newline at end of file diff --git a/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.pdf b/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.pdf index 236624e..09da61d 100644 Binary files a/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.pdf and b/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.pdf differ diff --git a/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.tex b/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.tex index 6df380c..fce705b 100644 --- a/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.tex +++ b/Doc/latex/group___d_e_l_a_y_s___d_e_f_i_n_e_s.tex @@ -5,12 +5,11 @@ Макросы и определения для работы с задержками в миллисекундах. -Collaboration diagram for Delays defines\+: -\nopagebreak +Collaboration diagram for Delays defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=284pt]{group___d_e_l_a_y_s___d_e_f_i_n_e_s} +\includegraphics[width=273pt]{group___d_e_l_a_y_s___d_e_f_i_n_e_s} \end{center} \end{figure} \doxysubsubsubsubsection*{Macros} @@ -65,7 +64,7 @@ Collaboration diagram for Delays defines\+: \end{DoxyNote} -Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00086}{86}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00082}{82}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. \Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}\index{Delays defines@{Delays defines}!msDelayStart@{msDelayStart}} \index{msDelayStart@{msDelayStart}!Delays defines@{Delays defines}} @@ -91,7 +90,7 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00086}{86}} of file Используется для реализации неблокирующих задержек. -Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00098}{98}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00094}{94}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. \Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}\index{Delays defines@{Delays defines}!msDelayWhileActive@{msDelayWhileActive}} \index{msDelayWhileActive@{msDelayWhileActive}!Delays defines@{Delays defines}} @@ -131,7 +130,7 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00098}{98}} of file \end{DoxyCode} -Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00115}{115}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00111}{111}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. \Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}\index{Delays defines@{Delays defines}!msDelayWaitDone@{msDelayWaitDone}} \index{msDelayWaitDone@{msDelayWaitDone}!Delays defines@{Delays defines}} @@ -171,5 +170,5 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00115}{115}} of file \end{DoxyCode} -Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00132}{132}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00128}{128}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. diff --git a/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.md5 b/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.md5 index 7cefaa5..2db04ea 100644 --- a/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.md5 +++ b/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.md5 @@ -1 +1 @@ -e4a53f66d0e2072179f4dedfeba20d50 \ No newline at end of file +d5db8daac36cb4cc1a3fac830c6bfd88 \ No newline at end of file diff --git a/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.pdf b/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.pdf index d8ab8c7..bb52b39 100644 Binary files a/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.pdf and b/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.pdf differ diff --git a/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.tex b/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.tex index 00374b3..c4cbba2 100644 --- a/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.tex +++ b/Doc/latex/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.tex @@ -5,12 +5,11 @@ Дефайны для обработки ошибок -Collaboration diagram for Error Handler defines\+: -\nopagebreak +Collaboration diagram for Error Handler defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=311pt]{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s} +\includegraphics[width=300pt]{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s} \end{center} \end{figure} \doxysubsubsubsubsection*{Macros} diff --git a/Doc/latex/group___e_v_o_l_v_e___c_o_n_f_i_g.md5 b/Doc/latex/group___e_v_o_l_v_e___c_o_n_f_i_g.md5 new file mode 100644 index 0000000..53dee98 --- /dev/null +++ b/Doc/latex/group___e_v_o_l_v_e___c_o_n_f_i_g.md5 @@ -0,0 +1 @@ +0e28d80dcd04448aed641d64d20b3125 \ No newline at end of file diff --git a/Doc/latex/group___e_v_o_l_v_e___c_o_n_f_i_g.pdf b/Doc/latex/group___e_v_o_l_v_e___c_o_n_f_i_g.pdf new file mode 100644 index 0000000..c9c25ef Binary files /dev/null and b/Doc/latex/group___e_v_o_l_v_e___c_o_n_f_i_g.pdf differ diff --git a/Doc/latex/group___e_v_o_l_v_e___c_o_n_f_i_g.tex b/Doc/latex/group___e_v_o_l_v_e___c_o_n_f_i_g.tex new file mode 100644 index 0000000..e26da1c --- /dev/null +++ b/Doc/latex/group___e_v_o_l_v_e___c_o_n_f_i_g.tex @@ -0,0 +1,75 @@ +\doxysubsubsection{Evolve configs } +\hypertarget{group___e_v_o_l_v_e___c_o_n_f_i_g}{}\label{group___e_v_o_l_v_e___c_o_n_f_i_g}\index{Evolve configs@{Evolve configs}} + + +Конфигурация однослойного персептрона и алгоритма обучения + + +Collaboration diagram for Evolve configs\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=246pt]{group___e_v_o_l_v_e___c_o_n_f_i_g} +\end{center} +\end{figure} +\doxysubsubsubsubsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga2cac097081444a7a9b040f4b11550e47}{ENABLE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZATION}} +\begin{DoxyCompactList}\small\item\em Включить оптимизацию параметров \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}{EVOLVE\+\_\+\+MAX\+\_\+\+PARAMS}}~20 +\begin{DoxyCompactList}\small\item\em Максимальное количество параметров \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\+\_\+\+MAX\+\_\+\+CANDIDATES}}~100 +\begin{DoxyCompactList}\small\item\em Максимальное количество кандидатов для обучения \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\doxysubsubsubsection{Detailed Description} +Конфигурация однослойного персептрона и алгоритма обучения + + + +\label{doc-define-members} +\Hypertarget{group___e_v_o_l_v_e___c_o_n_f_i_g_doc-define-members} +\doxysubsubsubsection{Macro Definition Documentation} +\Hypertarget{group___e_v_o_l_v_e___c_o_n_f_i_g_ga2cac097081444a7a9b040f4b11550e47}\index{Evolve configs@{Evolve configs}!ENABLE\_EVOLVE\_OPTIMIZATION@{ENABLE\_EVOLVE\_OPTIMIZATION}} +\index{ENABLE\_EVOLVE\_OPTIMIZATION@{ENABLE\_EVOLVE\_OPTIMIZATION}!Evolve configs@{Evolve configs}} +\doxysubsubsubsubsection{\texorpdfstring{ENABLE\_EVOLVE\_OPTIMIZATION}{ENABLE\_EVOLVE\_OPTIMIZATION}} +{\footnotesize\ttfamily \label{group___e_v_o_l_v_e___c_o_n_f_i_g_ga2cac097081444a7a9b040f4b11550e47} +\#define ENABLE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZATION} + + + +Включить оптимизацию параметров + + + +Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00064}{64}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. + +\Hypertarget{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}\index{Evolve configs@{Evolve configs}!EVOLVE\_MAX\_PARAMS@{EVOLVE\_MAX\_PARAMS}} +\index{EVOLVE\_MAX\_PARAMS@{EVOLVE\_MAX\_PARAMS}!Evolve configs@{Evolve configs}} +\doxysubsubsubsubsection{\texorpdfstring{EVOLVE\_MAX\_PARAMS}{EVOLVE\_MAX\_PARAMS}} +{\footnotesize\ttfamily \label{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee} +\#define EVOLVE\+\_\+\+MAX\+\_\+\+PARAMS~20} + + + +Максимальное количество параметров + + + +Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00065}{65}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. + +\Hypertarget{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}\index{Evolve configs@{Evolve configs}!EVOLVE\_MAX\_CANDIDATES@{EVOLVE\_MAX\_CANDIDATES}} +\index{EVOLVE\_MAX\_CANDIDATES@{EVOLVE\_MAX\_CANDIDATES}!Evolve configs@{Evolve configs}} +\doxysubsubsubsubsection{\texorpdfstring{EVOLVE\_MAX\_CANDIDATES}{EVOLVE\_MAX\_CANDIDATES}} +{\footnotesize\ttfamily \label{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971} +\#define EVOLVE\+\_\+\+MAX\+\_\+\+CANDIDATES~100} + + + +Максимальное количество кандидатов для обучения + + + +Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00066}{66}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. + diff --git a/Doc/latex/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.md5 b/Doc/latex/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.md5 new file mode 100644 index 0000000..b136329 --- /dev/null +++ b/Doc/latex/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.md5 @@ -0,0 +1 @@ +222e7e00155a235ae6b55b58801480e4 \ No newline at end of file diff --git a/Doc/latex/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.pdf b/Doc/latex/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.pdf new file mode 100644 index 0000000..cab1e76 Binary files /dev/null and b/Doc/latex/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.pdf differ diff --git a/Doc/latex/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.tex b/Doc/latex/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.tex new file mode 100644 index 0000000..ec03a32 --- /dev/null +++ b/Doc/latex/group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.tex @@ -0,0 +1,187 @@ +\doxysubsubsection{Evolve optimizer } +\hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r}{}\label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r}\index{Evolve optimizer@{Evolve optimizer}} + + +Библиотека для эволюционного подбора параметров + + +Collaboration diagram for Evolve optimizer\+:\nopagebreak +\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[width=280pt]{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r} +\end{center} +\end{figure} +\doxysubsubsubsubsection*{Classes} +\begin{DoxyCompactItemize} +\item +struct \mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} +\begin{DoxyCompactList}\small\item\em Структура эволюционного оптимизатора \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsubsubsection*{Macros} +\begin{DoxyCompactItemize} +\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc}{PARAM\+\_\+\+SCALE\+\_\+\+Q16}}(x, min\+\_\+val, max\+\_\+val) +\begin{DoxyCompactList}\small\item\em Линейное масштабирование x из диапазона \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]} в Q16.\+16 \mbox{[}0, 65536) \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba}{PARAM\+\_\+\+UNSCALE\+\_\+\+Q16}}(q16\+\_\+val, min\+\_\+val, max\+\_\+val) +\begin{DoxyCompactList}\small\item\em Обратное линейное масштабирование Q16.\+16 значения в диапазон \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]}. \end{DoxyCompactList}\end{DoxyCompactItemize} +\doxysubsubsubsubsection*{Functions} +\begin{DoxyCompactItemize} +\item +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE void \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gac21587fe68fe3635525358ac3f4059d9}{Evolve\+Optimizer\+\_\+\+Init}} (\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}opt, uint16\+\_\+t n\+\_\+params, uint16\+\_\+t n\+\_\+cand, uint16\+\_\+t n\+\_\+best, uint16\+\_\+t iq\+\_\+mutation, int32\+\_\+t \texorpdfstring{$\ast$}{*}start\+\_\+params) +\begin{DoxyCompactList}\small\item\em Инициализация эволюционного оптимизатора. \end{DoxyCompactList}\item +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE void \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga1ba2fa963c9ae12625be1b7c20718563}{Evolve\+Optimizer\+\_\+\+Step}} (\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}opt, int32\+\_\+t \texorpdfstring{$\ast$}{*}params, int32\+\_\+t loss) +\begin{DoxyCompactList}\small\item\em Один шаг эволюционного оптимизатора. \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\doxysubsubsubsection{Detailed Description} +Библиотека для эволюционного подбора параметров + +Поддерживает\+: +\begin{DoxyItemize} +\item Любое количество параметров +\item Генерацию новых параметров на основе лучших кандидатов +\item Мутацию для поиска оптимальных параметров +\item Несколько независимых оптимизаторов в одной программе +\end{DoxyItemize} + +Если библиотека отключена \doxylink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga2cac097081444a7a9b040f4b11550e47}{ENABLE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZATION}, то вставляются заглушки, никак не влияющие на параметры и остальную программу + +\begin{DoxyParagraph}{Пример использования\+:} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{evolve__optimizer_8h}{evolve\_optimizer.h}}"{}}} +\DoxyCodeLine{\textcolor{preprocessor}{\#define\ N\_PARAMS\ \ \ \ \ \ \ \ 4}} +\DoxyCodeLine{\textcolor{preprocessor}{\#define\ N\_CANDIDATES\ \ \ \ 100}} +\DoxyCodeLine{\textcolor{preprocessor}{\#define\ N\_BEST\ \ \ \ \ \ \ \ \ \ 10}} +\DoxyCodeLine{\textcolor{preprocessor}{\#define\ IQ\_MUTATION\ \ \ \ \ 655}} +\DoxyCodeLine{int32\_t\ params[N\_PARAMS];} +\DoxyCodeLine{\mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}\ optimizer;} +\DoxyCodeLine{} +\DoxyCodeLine{\textcolor{comment}{//\ Формирование\ параметров}} +\DoxyCodeLine{uint16\_t\ \ param\_u16\ =\ 800;} +\DoxyCodeLine{\textcolor{keywordtype}{float}\ \ \ \ \ param\_f\ \ \ =\ 0.01f;} +\DoxyCodeLine{uint8\_t\ \ \ param\_u8\ \ =\ 40;} +\DoxyCodeLine{int16\_t\ \ \ param\_i16\ =\ 1600;} +\DoxyCodeLine{params[0]\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc}{PARAM\_SCALE\_Q16}}(param\_u16,\ \ 0,\ \ \ \ \ \ 1000);} +\DoxyCodeLine{params[1]\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc}{PARAM\_SCALE\_Q16}}(param\_f,\ \ \ \ 0.001f,\ 0.1f);} +\DoxyCodeLine{params[2]\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc}{PARAM\_SCALE\_Q16}}(param\_u8,\ \ \ 10,\ \ \ \ \ 100);} +\DoxyCodeLine{params[3]\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc}{PARAM\_SCALE\_Q16}}(param\_i16,\ \ 500,\ \ \ \ 5000);} +\DoxyCodeLine{} +\DoxyCodeLine{\textcolor{comment}{//\ Инициалиазция}} +\DoxyCodeLine{\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gac21587fe68fe3635525358ac3f4059d9}{EvolveOptimizer\_Init}}(\&optimizer,\ N\_PARAMS,\ N\_CANDIDATES,\ N\_BEST,\ IQ\_MUTATION,\ params);} +\DoxyCodeLine{} +\DoxyCodeLine{\textcolor{comment}{//\ Шаг\ эволюции}} +\DoxyCodeLine{int32\_t\ loss\ =\ calc\_iq\_loss();\ \textcolor{comment}{//\ расчет\ эффективности\ параметров}} +\DoxyCodeLine{\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga1ba2fa963c9ae12625be1b7c20718563}{EvolveOptimizer\_Step}}(\&optimizer,\ params,\ loss);} +\DoxyCodeLine{} +\DoxyCodeLine{\textcolor{comment}{//\ Взятие\ следующих\ для\ эволюции\ параметров}} +\DoxyCodeLine{param\_u16\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba}{PARAM\_UNSCALE\_Q16}}(params[0],\ \ 0,\ \ \ \ \ \ 1000);} +\DoxyCodeLine{param\_f\ \ \ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba}{PARAM\_UNSCALE\_Q16}}(params[1],\ \ 0.001f,\ 0.1f);} +\DoxyCodeLine{param\_u8\ \ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba}{PARAM\_UNSCALE\_Q16}}(params[2],\ \ 10,\ \ \ \ \ 100);} +\DoxyCodeLine{param\_i16\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba}{PARAM\_UNSCALE\_Q16}}(params[3],\ \ 500,\ \ \ \ 5000);} + +\end{DoxyCode} + +\end{DoxyParagraph} + + +\label{doc-define-members} +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_doc-define-members} +\doxysubsubsubsection{Macro Definition Documentation} +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc}\index{Evolve optimizer@{Evolve optimizer}!PARAM\_SCALE\_Q16@{PARAM\_SCALE\_Q16}} +\index{PARAM\_SCALE\_Q16@{PARAM\_SCALE\_Q16}!Evolve optimizer@{Evolve optimizer}} +\doxysubsubsubsubsection{\texorpdfstring{PARAM\_SCALE\_Q16}{PARAM\_SCALE\_Q16}} +{\footnotesize\ttfamily \label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc} +\#define PARAM\+\_\+\+SCALE\+\_\+\+Q16(\begin{DoxyParamCaption}\item[{}]{x}{, }\item[{}]{min\+\_\+val}{, }\item[{}]{max\+\_\+val}{}\end{DoxyParamCaption})} + +{\bfseries Value\+:} +\begin{DoxyCode}{0} +\DoxyCodeLine{((int32\_t)((((float)(x)\ -\/\ (float)(min\_val))\ /\ ((float)(max\_val)\ -\/\ (float)(min\_val)))\ *\ 65536.0f))} + +\end{DoxyCode} + + +Линейное масштабирование x из диапазона \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]} в Q16.\+16 \mbox{[}0, 65536) + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00068}{68}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba}\index{Evolve optimizer@{Evolve optimizer}!PARAM\_UNSCALE\_Q16@{PARAM\_UNSCALE\_Q16}} +\index{PARAM\_UNSCALE\_Q16@{PARAM\_UNSCALE\_Q16}!Evolve optimizer@{Evolve optimizer}} +\doxysubsubsubsubsection{\texorpdfstring{PARAM\_UNSCALE\_Q16}{PARAM\_UNSCALE\_Q16}} +{\footnotesize\ttfamily \label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba} +\#define PARAM\+\_\+\+UNSCALE\+\_\+\+Q16(\begin{DoxyParamCaption}\item[{}]{q16\+\_\+val}{, }\item[{}]{min\+\_\+val}{, }\item[{}]{max\+\_\+val}{}\end{DoxyParamCaption})} + +{\bfseries Value\+:} +\begin{DoxyCode}{0} +\DoxyCodeLine{(((float)(q16\_val)\ /\ 65536.0f)\ *\ ((float)(max\_val)\ -\/\ (float)(min\_val))\ +\ (float)(min\_val))} + +\end{DoxyCode} + + +Обратное линейное масштабирование Q16.\+16 значения в диапазон \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]}. + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00074}{74}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + + + +\label{doc-func-members} +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_doc-func-members} +\doxysubsubsubsection{Function Documentation} +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gac21587fe68fe3635525358ac3f4059d9}\index{Evolve optimizer@{Evolve optimizer}!EvolveOptimizer\_Init@{EvolveOptimizer\_Init}} +\index{EvolveOptimizer\_Init@{EvolveOptimizer\_Init}!Evolve optimizer@{Evolve optimizer}} +\doxysubsubsubsubsection{\texorpdfstring{EvolveOptimizer\_Init()}{EvolveOptimizer\_Init()}} +{\footnotesize\ttfamily \label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gac21587fe68fe3635525358ac3f4059d9} +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE void Evolve\+Optimizer\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}}]{opt}{, }\item[{uint16\+\_\+t}]{n\+\_\+params}{, }\item[{uint16\+\_\+t}]{n\+\_\+cand}{, }\item[{uint16\+\_\+t}]{n\+\_\+best}{, }\item[{uint16\+\_\+t}]{iq\+\_\+mutation}{, }\item[{int32\+\_\+t \texorpdfstring{$\ast$}{*}}]{start\+\_\+params}{}\end{DoxyParamCaption})} + + + +Инициализация эволюционного оптимизатора. + + +\begin{DoxyParams}{Parameters} +{\em opt} & Указатель на структуру оптимизатора \\ +\hline +{\em n\+\_\+params} & Количество параметров в одном кандидате \\ +\hline +{\em n\+\_\+cand} & Количество кандидатов \\ +\hline +{\em n\+\_\+best} & Количество лучших, усредняемых \\ +\hline +{\em iq\+\_\+mutation} & Амплитуда мутации в Q16.\+16 \\ +\hline +{\em start\+\_\+params} & Начальные параметры (Q16.\+16) \\ +\hline +\end{DoxyParams} + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00101}{101}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga1ba2fa963c9ae12625be1b7c20718563}\index{Evolve optimizer@{Evolve optimizer}!EvolveOptimizer\_Step@{EvolveOptimizer\_Step}} +\index{EvolveOptimizer\_Step@{EvolveOptimizer\_Step}!Evolve optimizer@{Evolve optimizer}} +\doxysubsubsubsubsection{\texorpdfstring{EvolveOptimizer\_Step()}{EvolveOptimizer\_Step()}} +{\footnotesize\ttfamily \label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga1ba2fa963c9ae12625be1b7c20718563} +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE void Evolve\+Optimizer\+\_\+\+Step (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}}]{opt}{, }\item[{int32\+\_\+t \texorpdfstring{$\ast$}{*}}]{params}{, }\item[{int32\+\_\+t}]{loss}{}\end{DoxyParamCaption})} + + + +Один шаг эволюционного оптимизатора. + + +\begin{DoxyParams}{Parameters} +{\em opt} & Указатель на структуру оптимизатора \\ +\hline +{\em params} & Массив параметров, которые будут обновлены (на выходе — новые параметры) \\ +\hline +{\em loss} & Loss текущего кандидата (Q16.\+16)\\ +\hline +\end{DoxyParams} +Сохраняет loss текущего кандидата и формирует параметры следующего кандидата. Если накоплено n\+\_\+cand кандидатов, генерируется новое поколение. Новое поколение формируется случайным выбором из n\+\_\+best лучших с добавлением мутации. + +На выходе params содержит параметры следующего кандидата для измерений. + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00137}{137}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + diff --git a/Doc/latex/group___g_p_i_o___i_n_i_t.pdf b/Doc/latex/group___g_p_i_o___i_n_i_t.pdf index fde686a..aa34ccd 100644 Binary files a/Doc/latex/group___g_p_i_o___i_n_i_t.pdf and b/Doc/latex/group___g_p_i_o___i_n_i_t.pdf differ diff --git a/Doc/latex/group___g_p_i_o___i_n_i_t.tex b/Doc/latex/group___g_p_i_o___i_n_i_t.tex index 429b53e..e399d87 100644 --- a/Doc/latex/group___g_p_i_o___i_n_i_t.tex +++ b/Doc/latex/group___g_p_i_o___i_n_i_t.tex @@ -5,8 +5,7 @@ Настройка состояний кнопок и количества тиков в периоде ШИМ -Collaboration diagram for Init defines\+: -\nopagebreak +Collaboration diagram for Init defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___l_i_b_s___c_o_n_f_i_g.pdf b/Doc/latex/group___l_i_b_s___c_o_n_f_i_g.pdf index d82a746..dcb1e14 100644 Binary files a/Doc/latex/group___l_i_b_s___c_o_n_f_i_g.pdf and b/Doc/latex/group___l_i_b_s___c_o_n_f_i_g.pdf differ diff --git a/Doc/latex/group___l_i_b_s___c_o_n_f_i_g.tex b/Doc/latex/group___l_i_b_s___c_o_n_f_i_g.tex index 340b046..c974e48 100644 --- a/Doc/latex/group___l_i_b_s___c_o_n_f_i_g.tex +++ b/Doc/latex/group___l_i_b_s___c_o_n_f_i_g.tex @@ -5,8 +5,7 @@ Подключение различных модулей библиотеки -Collaboration diagram for Libraries configs\+: -\nopagebreak +Collaboration diagram for Libraries configs\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -16,6 +15,8 @@ Collaboration diagram for Libraries configs\+: \doxysubsubsubsubsection*{Macros} \begin{DoxyCompactItemize} \item +\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga66560656d080d6551627a19dfb847c66}{INCLUDE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZER}} +\begin{DoxyCompactList}\small\item\em Подключить библиотеку для оптимизации параметров \end{DoxyCompactList}\item \#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}{INCLUDE\+\_\+\+BIT\+\_\+\+ACCESS\+\_\+\+LIB}} \begin{DoxyCompactList}\small\item\em Подключить библиотеку с typedef с битовыми полями \end{DoxyCompactList}\item \#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}{INCLUDE\+\_\+\+TRACKERS\+\_\+\+LIB}} @@ -34,6 +35,20 @@ Collaboration diagram for Libraries configs\+: \label{doc-define-members} \Hypertarget{group___l_i_b_s___c_o_n_f_i_g_doc-define-members} \doxysubsubsubsection{Macro Definition Documentation} +\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga66560656d080d6551627a19dfb847c66}\index{Libraries configs@{Libraries configs}!INCLUDE\_EVOLVE\_OPTIMIZER@{INCLUDE\_EVOLVE\_OPTIMIZER}} +\index{INCLUDE\_EVOLVE\_OPTIMIZER@{INCLUDE\_EVOLVE\_OPTIMIZER}!Libraries configs@{Libraries configs}} +\doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_EVOLVE\_OPTIMIZER}{INCLUDE\_EVOLVE\_OPTIMIZER}} +{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga66560656d080d6551627a19dfb847c66} +\#define INCLUDE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZER} + + + +Подключить библиотеку для оптимизации параметров + + + +Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00080}{80}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. + \Hypertarget{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}\index{Libraries configs@{Libraries configs}!INCLUDE\_BIT\_ACCESS\_LIB@{INCLUDE\_BIT\_ACCESS\_LIB}} \index{INCLUDE\_BIT\_ACCESS\_LIB@{INCLUDE\_BIT\_ACCESS\_LIB}!Libraries configs@{Libraries configs}} \doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_BIT\_ACCESS\_LIB}{INCLUDE\_BIT\_ACCESS\_LIB}} @@ -46,7 +61,7 @@ Collaboration diagram for Libraries configs\+: -Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00065}{65}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00081}{81}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. \Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}\index{Libraries configs@{Libraries configs}!INCLUDE\_TRACKERS\_LIB@{INCLUDE\_TRACKERS\_LIB}} \index{INCLUDE\_TRACKERS\_LIB@{INCLUDE\_TRACKERS\_LIB}!Libraries configs@{Libraries configs}} @@ -60,7 +75,7 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00065}{65}} of fil -Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00066}{66}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00082}{82}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. \Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}\index{Libraries configs@{Libraries configs}!INCLUDE\_TRACE\_LIB@{INCLUDE\_TRACE\_LIB}} \index{INCLUDE\_TRACE\_LIB@{INCLUDE\_TRACE\_LIB}!Libraries configs@{Libraries configs}} @@ -74,7 +89,7 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00066}{66}} of fil -Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00067}{67}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00083}{83}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. \Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}\index{Libraries configs@{Libraries configs}!INCLUDE\_GENERAL\_PERIPH\_LIBS@{INCLUDE\_GENERAL\_PERIPH\_LIBS}} \index{INCLUDE\_GENERAL\_PERIPH\_LIBS@{INCLUDE\_GENERAL\_PERIPH\_LIBS}!Libraries configs@{Libraries configs}} @@ -88,5 +103,5 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00067}{67}} of fil -Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00068}{68}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00084}{84}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. diff --git a/Doc/latex/group___m_y___l_i_b_s___g_p_i_o.pdf b/Doc/latex/group___m_y___l_i_b_s___g_p_i_o.pdf index 984793f..eb8d663 100644 Binary files a/Doc/latex/group___m_y___l_i_b_s___g_p_i_o.pdf and b/Doc/latex/group___m_y___l_i_b_s___g_p_i_o.pdf differ diff --git a/Doc/latex/group___m_y___l_i_b_s___g_p_i_o.tex b/Doc/latex/group___m_y___l_i_b_s___g_p_i_o.tex index a28997a..775dad4 100644 --- a/Doc/latex/group___m_y___l_i_b_s___g_p_i_o.tex +++ b/Doc/latex/group___m_y___l_i_b_s___g_p_i_o.tex @@ -5,8 +5,7 @@ Функции и макросы для удобной работы с GPIO. -Collaboration diagram for GPIO Tools\+: -\nopagebreak +Collaboration diagram for GPIO Tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___m_y___l_i_b_s___t_i_m.pdf b/Doc/latex/group___m_y___l_i_b_s___t_i_m.pdf index 7131408..fec6f21 100644 Binary files a/Doc/latex/group___m_y___l_i_b_s___t_i_m.pdf and b/Doc/latex/group___m_y___l_i_b_s___t_i_m.pdf differ diff --git a/Doc/latex/group___m_y___l_i_b_s___t_i_m.tex b/Doc/latex/group___m_y___l_i_b_s___t_i_m.tex index 5faa0e8..f539f3f 100644 --- a/Doc/latex/group___m_y___l_i_b_s___t_i_m.tex +++ b/Doc/latex/group___m_y___l_i_b_s___t_i_m.tex @@ -5,8 +5,7 @@ Функции и макросы для удобной работы с TIM. -Collaboration diagram for TIM Tools\+: -\nopagebreak +Collaboration diagram for TIM Tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___m_y_l_i_b_s___a_l_l.md5 b/Doc/latex/group___m_y_l_i_b_s___a_l_l.md5 index 81f0885..4e0e91b 100644 --- a/Doc/latex/group___m_y_l_i_b_s___a_l_l.md5 +++ b/Doc/latex/group___m_y_l_i_b_s___a_l_l.md5 @@ -1 +1 @@ -1691ab8f633ae5af69d18398681fcba8 \ No newline at end of file +52c11e57bdabafd5d7af3828f403f995 \ No newline at end of file diff --git a/Doc/latex/group___m_y_l_i_b_s___a_l_l.pdf b/Doc/latex/group___m_y_l_i_b_s___a_l_l.pdf index 506f170..bea594d 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___a_l_l.pdf and b/Doc/latex/group___m_y_l_i_b_s___a_l_l.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___a_l_l.tex b/Doc/latex/group___m_y_l_i_b_s___a_l_l.tex index 1a9a02d..cd0caf7 100644 --- a/Doc/latex/group___m_y_l_i_b_s___a_l_l.tex +++ b/Doc/latex/group___m_y_l_i_b_s___a_l_l.tex @@ -5,12 +5,11 @@ Все используемые My\+Libs библиотеки -Collaboration diagram for My Libs\+: -\nopagebreak +Collaboration diagram for My Libs\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=253pt]{group___m_y_l_i_b_s___a_l_l} +\includegraphics[width=242pt]{group___m_y_l_i_b_s___a_l_l} \end{center} \end{figure} \doxysubsubsection*{Topics} @@ -18,7 +17,7 @@ Collaboration diagram for My Libs\+: \item \mbox{\hyperlink{group___m_y_l_i_b_s___c_o_n_f_i_g}{Configs}} \begin{DoxyCompactList}\small\item\em Конфигурации для библиотек My\+Libs. \end{DoxyCompactList}\item -\mbox{\hyperlink{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{General Defines}} +\mbox{\hyperlink{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{General Tools}} \begin{DoxyCompactList}\small\item\em Общие макросы и typedef\textquotesingle{}ы, используемые по всему проекту \end{DoxyCompactList}\item \mbox{\hyperlink{group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l}{Peripheral}} \begin{DoxyCompactList}\small\item\em Модули для управления периферией \end{DoxyCompactList}\end{DoxyCompactItemize} diff --git a/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.md5 b/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.md5 index a4575c4..3f02def 100644 --- a/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.md5 +++ b/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.md5 @@ -1 +1 @@ -e912e48de31ed02538c355498d1a7e66 \ No newline at end of file +e39777f4e691429c305a230cb7233db5 \ No newline at end of file diff --git a/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.pdf b/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.pdf index 5a9bb28..08142b0 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.pdf and b/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.tex b/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.tex index 2f4adfd..94de885 100644 --- a/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.tex +++ b/Doc/latex/group___m_y_l_i_b_s___c_o_n_f_i_g.tex @@ -5,8 +5,7 @@ Конфигурации для библиотек My\+Libs. -Collaboration diagram for Configs\+: -\nopagebreak +Collaboration diagram for Configs\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -18,6 +17,8 @@ Collaboration diagram for Configs\+: \item \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g}{Trace configs}} \begin{DoxyCompactList}\small\item\em Конфигурация трекеров и трассировки \end{DoxyCompactList}\item +\mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g}{Evolve configs}} +\begin{DoxyCompactList}\small\item\em Конфигурация однослойного персептрона и алгоритма обучения \end{DoxyCompactList}\item \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g}{Libraries configs}} \begin{DoxyCompactList}\small\item\em Подключение различных модулей библиотеки \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -26,4 +27,5 @@ Collaboration diagram for Configs\+: Конфигурации для библиотек My\+Libs. \input{group___t_r_a_c_e___c_o_n_f_i_g} +\input{group___e_v_o_l_v_e___c_o_n_f_i_g} \input{group___l_i_b_s___c_o_n_f_i_g} diff --git a/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.md5 b/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.md5 index 45245e0..21a4273 100644 --- a/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.md5 +++ b/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.md5 @@ -1 +1 @@ -cd205bbe89e6c9feea836cb8938585ac \ No newline at end of file +e21133381fcfb6b51ca1c555273b8ce6 \ No newline at end of file diff --git a/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.pdf b/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.pdf index edcc34c..41f160c 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.pdf and b/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.tex b/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.tex index 2e0c84c..2216629 100644 --- a/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.tex +++ b/Doc/latex/group___m_y_l_i_b_s___d_e_f_i_n_e_s.tex @@ -1,12 +1,11 @@ -\doxysubsection{General Defines } -\hypertarget{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{}\label{group___m_y_l_i_b_s___d_e_f_i_n_e_s}\index{General Defines@{General Defines}} +\doxysubsection{General Tools } +\hypertarget{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{}\label{group___m_y_l_i_b_s___d_e_f_i_n_e_s}\index{General Tools@{General Tools}} Общие макросы и typedef\textquotesingle{}ы, используемые по всему проекту -Collaboration diagram for General Defines\+: -\nopagebreak +Collaboration diagram for General Tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -18,6 +17,8 @@ Collaboration diagram for General Defines\+: \item \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}{Bit access defines}} \begin{DoxyCompactList}\small\item\em Макросы и typedef\textquotesingle{}ы для работы с битами в unsigned типах. \end{DoxyCompactList}\item +\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r}{Evolve optimizer}} +\begin{DoxyCompactList}\small\item\em Библиотека для эволюционного подбора параметров \end{DoxyCompactList}\item \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}{Error Handler defines}} \begin{DoxyCompactList}\small\item\em Дефайны для обработки ошибок \end{DoxyCompactList}\item \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s}{Delays defines}} @@ -34,6 +35,7 @@ Collaboration diagram for General Defines\+: Общие макросы и typedef\textquotesingle{}ы, используемые по всему проекту \input{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s} +\input{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r} \input{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s} \input{group___d_e_l_a_y_s___d_e_f_i_n_e_s} \input{group___u_t_i_l_s___d_e_f_i_n_e_s} diff --git a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.pdf b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.pdf index 2096306..edd1557 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.pdf and b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.tex b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.tex index c759ed5..ca64b35 100644 --- a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.tex +++ b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.tex @@ -5,8 +5,7 @@ Общие функции/макросы для работы с GPIO. -Collaboration diagram for General tools\+: -\nopagebreak +Collaboration diagram for General tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.pdf b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.pdf index 3959b95..e8a8b37 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.pdf and b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.tex b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.tex index 5e6de3c..4dbc044 100644 --- a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.tex +++ b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.tex @@ -5,8 +5,7 @@ Функции для работы с GPIO, для управления светодиодом -Collaboration diagram for LED tools\+: -\nopagebreak +Collaboration diagram for LED tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.pdf b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.pdf index 42cf3bd..7a8e89f 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.pdf and b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.tex b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.tex index a8f3d61..d57e257 100644 --- a/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.tex +++ b/Doc/latex/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.tex @@ -5,8 +5,7 @@ Функции для работы с GPIO, как с кнопкой -Collaboration diagram for Switch tools\+: -\nopagebreak +Collaboration diagram for Switch tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.pdf b/Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.pdf index 4ff6c7c..8eff0ac 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.pdf and b/Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.tex b/Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.tex index ebb74eb..2dd9286 100644 --- a/Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.tex +++ b/Doc/latex/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.tex @@ -5,8 +5,7 @@ Модули для управления периферией -Collaboration diagram for Peripheral\+: -\nopagebreak +Collaboration diagram for Peripheral\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.pdf b/Doc/latex/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.pdf index 9c94a59..c11b018 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.pdf and b/Doc/latex/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.tex b/Doc/latex/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.tex index c31b016..240a0fb 100644 --- a/Doc/latex/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.tex +++ b/Doc/latex/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.tex @@ -5,8 +5,7 @@ Функции для формирования задержек с помощью таймеров -Collaboration diagram for Delay tools\+: -\nopagebreak +Collaboration diagram for Delay tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.pdf b/Doc/latex/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.pdf index 5f17cab..0e443b7 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.pdf and b/Doc/latex/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.tex b/Doc/latex/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.tex index 1a407cd..76a4df1 100644 --- a/Doc/latex/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.tex +++ b/Doc/latex/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.tex @@ -5,8 +5,7 @@ Функции для считывания энкодера -Collaboration diagram for Encoder tools\+: -\nopagebreak +Collaboration diagram for Encoder tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.pdf b/Doc/latex/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.pdf index 88f23ab..60c7342 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.pdf and b/Doc/latex/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.tex b/Doc/latex/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.tex index 0f4eb30..2726bd5 100644 --- a/Doc/latex/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.tex +++ b/Doc/latex/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.tex @@ -5,8 +5,7 @@ Функции для базовой инициализации таймеров -Collaboration diagram for General tools\+: -\nopagebreak +Collaboration diagram for General tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___m_y_l_i_b_s___t_i_m___o_c.pdf b/Doc/latex/group___m_y_l_i_b_s___t_i_m___o_c.pdf index 9046fe7..bdf8064 100644 Binary files a/Doc/latex/group___m_y_l_i_b_s___t_i_m___o_c.pdf and b/Doc/latex/group___m_y_l_i_b_s___t_i_m___o_c.pdf differ diff --git a/Doc/latex/group___m_y_l_i_b_s___t_i_m___o_c.tex b/Doc/latex/group___m_y_l_i_b_s___t_i_m___o_c.tex index a5db14e..0498d91 100644 --- a/Doc/latex/group___m_y_l_i_b_s___t_i_m___o_c.tex +++ b/Doc/latex/group___m_y_l_i_b_s___t_i_m___o_c.tex @@ -5,8 +5,7 @@ Функции для инициализации базовых функций каналов таймера -Collaboration diagram for PWM/\+OC Channels tools\+: -\nopagebreak +Collaboration diagram for PWM/\+OC Channels tools\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___t_i_m___i_n_i_t.pdf b/Doc/latex/group___t_i_m___i_n_i_t.pdf index 622ea1f..82e70da 100644 Binary files a/Doc/latex/group___t_i_m___i_n_i_t.pdf and b/Doc/latex/group___t_i_m___i_n_i_t.pdf differ diff --git a/Doc/latex/group___t_i_m___i_n_i_t.tex b/Doc/latex/group___t_i_m___i_n_i_t.tex index 3d628cf..f8a6cfe 100644 --- a/Doc/latex/group___t_i_m___i_n_i_t.tex +++ b/Doc/latex/group___t_i_m___i_n_i_t.tex @@ -5,8 +5,7 @@ Настройка таймеров -Collaboration diagram for Init defines\+: -\nopagebreak +Collaboration diagram for Init defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___t_r_a_c_e.md5 b/Doc/latex/group___t_r_a_c_e.md5 index 8707b6e..940cd9f 100644 --- a/Doc/latex/group___t_r_a_c_e.md5 +++ b/Doc/latex/group___t_r_a_c_e.md5 @@ -1 +1 @@ -af53452e0ed934b43a42a30e5eaddc2c \ No newline at end of file +231806d9df0ebec28cd371e85eb1e78c \ No newline at end of file diff --git a/Doc/latex/group___t_r_a_c_e.pdf b/Doc/latex/group___t_r_a_c_e.pdf index 846dbe5..0ef2bc9 100644 Binary files a/Doc/latex/group___t_r_a_c_e.pdf and b/Doc/latex/group___t_r_a_c_e.pdf differ diff --git a/Doc/latex/group___t_r_a_c_e.tex b/Doc/latex/group___t_r_a_c_e.tex index f560dde..3dbdd57 100644 --- a/Doc/latex/group___t_r_a_c_e.tex +++ b/Doc/latex/group___t_r_a_c_e.tex @@ -5,8 +5,7 @@ Дефайны для работы с трассировкой -Collaboration diagram for Trace defines\+: -\nopagebreak +Collaboration diagram for Trace defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.pdf b/Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.pdf index 611bc45..14702b1 100644 Binary files a/Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.pdf and b/Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.pdf differ diff --git a/Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.tex b/Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.tex index 56fbc09..cf8e2ac 100644 --- a/Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.tex +++ b/Doc/latex/group___t_r_a_c_e___c_o_n_f_i_g.tex @@ -5,8 +5,7 @@ Конфигурация трекеров и трассировки -Collaboration diagram for Trace configs\+: -\nopagebreak +Collaboration diagram for Trace configs\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___t_r_a_c_e___g_p_i_o.pdf b/Doc/latex/group___t_r_a_c_e___g_p_i_o.pdf index 0252e95..c618342 100644 Binary files a/Doc/latex/group___t_r_a_c_e___g_p_i_o.pdf and b/Doc/latex/group___t_r_a_c_e___g_p_i_o.pdf differ diff --git a/Doc/latex/group___t_r_a_c_e___g_p_i_o.tex b/Doc/latex/group___t_r_a_c_e___g_p_i_o.tex index 692bd93..710c717 100644 --- a/Doc/latex/group___t_r_a_c_e___g_p_i_o.tex +++ b/Doc/latex/group___t_r_a_c_e___g_p_i_o.tex @@ -5,8 +5,7 @@ Дефайны для работы с GPIO трассировкой -Collaboration diagram for GPIO trace defines\+: -\nopagebreak +Collaboration diagram for GPIO trace defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.pdf b/Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.pdf index 6cda337..0520507 100644 Binary files a/Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.pdf and b/Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.pdf differ diff --git a/Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.tex b/Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.tex index 1e30d7e..da953dc 100644 --- a/Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.tex +++ b/Doc/latex/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.tex @@ -5,8 +5,7 @@ Модуль трассировки Hard\+Fault с возможностью сохранения RTT буфера во Flash. -Collaboration diagram for Hardfault trace defines\+: -\nopagebreak +Collaboration diagram for Hardfault trace defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.pdf b/Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.pdf index 320d6c2..13b5452 100644 Binary files a/Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.pdf and b/Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.pdf differ diff --git a/Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.tex b/Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.tex index a9a1ee9..79ed0f9 100644 --- a/Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.tex +++ b/Doc/latex/group___t_r_a_c_e___r_t_t___f_l_a_s_h.tex @@ -5,8 +5,7 @@ Макросы и функции для сохранения/чтения RTT буфера в Flash. -Collaboration diagram for Flash RTT Buffer\+: -\nopagebreak +Collaboration diagram for Flash RTT Buffer\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.pdf b/Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.pdf index 2967bb4..aac06fa 100644 Binary files a/Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.pdf and b/Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.pdf differ diff --git a/Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.tex b/Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.tex index 1e17738..1b175c8 100644 --- a/Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.tex +++ b/Doc/latex/group___t_r_a_c_e___s_e_r_i_a_l.tex @@ -5,8 +5,7 @@ Дефайны для работы с serial трассировкой (SWO, RTT) -Collaboration diagram for Serial trace defines\+: -\nopagebreak +Collaboration diagram for Serial trace defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/group___t_r_a_c_k_e_r_s.md5 b/Doc/latex/group___t_r_a_c_k_e_r_s.md5 index 3069cfa..d924fcc 100644 --- a/Doc/latex/group___t_r_a_c_k_e_r_s.md5 +++ b/Doc/latex/group___t_r_a_c_k_e_r_s.md5 @@ -1 +1 @@ -648d2934940db23a5223abb744a436e6 \ No newline at end of file +a7565b03babdeb6094e59ffacae9c523 \ No newline at end of file diff --git a/Doc/latex/group___t_r_a_c_k_e_r_s.pdf b/Doc/latex/group___t_r_a_c_k_e_r_s.pdf index 5b56d32..f09e3f2 100644 Binary files a/Doc/latex/group___t_r_a_c_k_e_r_s.pdf and b/Doc/latex/group___t_r_a_c_k_e_r_s.pdf differ diff --git a/Doc/latex/group___t_r_a_c_k_e_r_s.tex b/Doc/latex/group___t_r_a_c_k_e_r_s.tex index 70c0187..bab2a28 100644 --- a/Doc/latex/group___t_r_a_c_k_e_r_s.tex +++ b/Doc/latex/group___t_r_a_c_k_e_r_s.tex @@ -5,12 +5,11 @@ Дефайны для работы с трекерами -Collaboration diagram for Trackers defines\+: -\nopagebreak +Collaboration diagram for Trackers defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=291pt]{group___t_r_a_c_k_e_r_s} +\includegraphics[width=280pt]{group___t_r_a_c_k_e_r_s} \end{center} \end{figure} \doxysubsubsubsubsection*{Macros} diff --git a/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.md5 b/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.md5 index 9687ecf..ead6af3 100644 --- a/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.md5 +++ b/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.md5 @@ -1 +1 @@ -a22e11e67b1cc3135ba7e3b5e903043c \ No newline at end of file +e4f09128a7c7fea7dcaa8c425861feae \ No newline at end of file diff --git a/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.pdf b/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.pdf index 8cdf122..edcc822 100644 Binary files a/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.pdf and b/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.pdf differ diff --git a/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.tex b/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.tex index 83a034b..8d43b86 100644 --- a/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.tex +++ b/Doc/latex/group___u_t_i_l_s___d_e_f_i_n_e_s.tex @@ -5,12 +5,11 @@ Общие вспомогательные макросы -Collaboration diagram for Utils defines\+: -\nopagebreak +Collaboration diagram for Utils defines\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=273pt]{group___u_t_i_l_s___d_e_f_i_n_e_s} +\includegraphics[width=262pt]{group___u_t_i_l_s___d_e_f_i_n_e_s} \end{center} \end{figure} \doxysubsubsubsubsection*{Macros} @@ -56,7 +55,7 @@ Collaboration diagram for Utils defines\+: \end{DoxyParams} Макрос использует memset для обнуления всей памяти структуры. Используется для быстрой и безопасной инициализации переменных структур до нуля. -Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00154}{154}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00151}{151}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. \Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}\index{Utils defines@{Utils defines}!Divide\_Up@{Divide\_Up}} \index{Divide\_Up@{Divide\_Up}!Utils defines@{Utils defines}} @@ -85,7 +84,7 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00154}{154}} of file \end{DoxyReturn} Если результат деления без остатка\+: он возвращается как есть Если с остатком -\/ округляется вверх -Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00165}{165}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00162}{162}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. \Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}\index{Utils defines@{Utils defines}!ByteSwap16@{ByteSwap16}} \index{ByteSwap16@{ByteSwap16}!Utils defines@{Utils defines}} @@ -112,7 +111,7 @@ Swap between Little Endian and Big Endian. \end{DoxyReturn} Переключения между двумя типами хранения слова\+: HI-\/\+LO байты и LO-\/\+HI байты. -Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00173}{173}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00170}{170}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. \Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}\index{Utils defines@{Utils defines}!ABS@{ABS}} \index{ABS@{ABS}!Utils defines@{Utils defines}} @@ -139,5 +138,5 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00173}{173}} of file \end{DoxyReturn} Берет число по модулю. Хз как работает библиотечный abs в stdlib.\+h, мб это быстрее, но вряд ли конечно. -Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00181}{181}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. +Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00178}{178}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. diff --git a/Doc/latex/index.tex b/Doc/latex/index.tex index f277ab6..cf39486 100644 --- a/Doc/latex/index.tex +++ b/Doc/latex/index.tex @@ -2,35 +2,33 @@ \hypertarget{index}{}\label{index}\index{MyLibs@{MyLibs}} \hypertarget{index_overview}{}\doxysection{\texorpdfstring{Обзор}{Обзор}}\label{index_overview} My\+Libs -\/ это набор библиотек для удобной работы с периферией микроконтроллеров STM32.\hypertarget{index_features}{}\doxysubsection{\texorpdfstring{Основные возможности}{Основные возможности}}\label{index_features} -\hypertarget{index_utils_module}{}\doxysubsubsection{\texorpdfstring{Общие утилиты \protect\doxylink{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{General Defines}}{Общие утилиты {General Defines}}}\label{index_utils_module} +\hypertarget{index_utils_module}{}\doxysubsubsection{\texorpdfstring{Общие утилиты (\protect\doxylink{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{General Tools})}{Общие утилиты ({General Tools})}}\label{index_utils_module} \begin{DoxyItemize} -\item Битовый доступ к регистрам через union -\item Трекеры для статистики и отладки -\item Макросы для задержек и утилит -\item Поддержка Free\+RTOS +\item Макросы для задержек и утилит (\doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s}{Delays defines} и \doxylink{group___u_t_i_l_s___d_e_f_i_n_e_s}{Utils defines}) +\item Трекеры для статистики и отладки (\doxylink{group___t_r_a_c_k_e_r_s}{Trackers defines} и \doxylink{group___t_r_a_c_e}{Trace defines}) +\item Эволюционный алгоритм для оптимизации параметров (\doxylink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r}{Evolve optimizer}) +\item Битовый доступ к регистрам через union (\doxylink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}{Bit access defines}) \end{DoxyItemize}\hypertarget{index_trace_module}{}\doxysubsubsection{\texorpdfstring{Трассировка \protect\doxylink{group___t_r_a_c_e}{Trace defines}}{Трассировка {Trace defines}}}\label{index_trace_module} \begin{DoxyItemize} -\item Serial трассировка через SWO и RTT -\item GPIO трассировка для отладки -\item Сохранение логов в Flash память -\item Обработка Hard\+Fault с сохранением контекста +\item Serial трассировка через SWO и RTT (\doxylink{group___t_r_a_c_e___s_e_r_i_a_l}{Serial trace defines}) +\item GPIO трассировка для отладки (\doxylink{group___t_r_a_c_e___g_p_i_o}{GPIO trace defines}) +\item Сохранение логов в Flash память (\doxylink{group___t_r_a_c_e___r_t_t___f_l_a_s_h}{Flash RTT Buffer}) +\item Обработка Hard\+Fault с сохранением контекста (\doxylink{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}{Hardfault trace defines}) \end{DoxyItemize}\hypertarget{index_gpio_module}{}\doxysubsubsection{\texorpdfstring{Модуль GPIO \protect\doxylink{group___m_y___l_i_b_s___g_p_i_o}{GPIO Tools}}{Модуль GPIO {GPIO Tools}}}\label{index_gpio_module} \begin{DoxyItemize} -\item Управление светодиодами (включение/выключение, моргание, плавное затухание) -\item Работа с кнопками (чтение состояния, фильтрация дребезга) -\item Инициализация портов и тактирования -\item Поддержка альтернативных функций +\item Инициализация портов и тактирования (\doxylink{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l}{General tools}) +\item Управление светодиодами (включение/выключение, моргание, плавное затухание) (\doxylink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s}{LED tools}) +\item Работа с кнопками (чтение состояния, фильтрация дребезга) (\doxylink{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h}{Switch tools}) \end{DoxyItemize}\hypertarget{index_tim_module}{}\doxysubsubsection{\texorpdfstring{Модуль таймеров \protect\doxylink{group___m_y___l_i_b_s___t_i_m}{TIM Tools}}{Модуль таймеров {TIM Tools}}}\label{index_tim_module} \begin{DoxyItemize} -\item Базовая инициализация таймеров -\item Режимы прерываний -\item Формирование задержек (блокирующие и неблокирующие) -\item Работа с энкодерами (чтение положения, обработка кнопок) -\item Настройка ШИМ и Output Compare +\item Базовая инициализация таймеров (\doxylink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l}{General tools}) +\item Формирование задержек (блокирующие и неблокирующие) (\doxylink{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y}{Delay tools}) +\item Работа с энкодерами (чтение положения, обработка кнопок) (\doxylink{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r}{Encoder tools}) +\item Настройка ШИМ и Output Compare (\doxylink{group___m_y_l_i_b_s___t_i_m___o_c}{PWM/\+OC Channels tools}) \end{DoxyItemize}\hypertarget{index_structure}{}\doxysubsection{\texorpdfstring{Структура проекта}{Структура проекта}}\label{index_structure} \begin{DoxyCode}{0} diff --git a/Doc/latex/mainpage_8h_source.tex b/Doc/latex/mainpage_8h_source.tex new file mode 100644 index 0000000..3b60fb4 --- /dev/null +++ b/Doc/latex/mainpage_8h_source.tex @@ -0,0 +1,110 @@ +\doxysection{mainpage.\+h} +\hypertarget{mainpage_8h_source}{}\label{mainpage_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/mainpage.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/mainpage.h}} + +\begin{DoxyCode}{0} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00001}00001\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00002}00002\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00003}00003\ \textcolor{comment}{@mainpage}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00004}00004\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00005}00005\ \textcolor{comment}{@section\ overview\ Обзор}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00006}00006\ \textcolor{comment}{MyLibs\ -\/\ это\ набор\ библиотек\ для\ удобной\ работы\ с\ периферией\ микроконтроллеров\ STM32.}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00007}00007\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00008}00008\ \textcolor{comment}{@subsection\ features\ Основные\ возможности}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00009}00009\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00010}00010\ \textcolor{comment}{@subsubsection\ utils\_module\ Общие\ утилиты\ (@ref\ MYLIBS\_DEFINES)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00011}00011\ \textcolor{comment}{-\/\ Макросы\ для\ задержек\ и\ утилит\ (@ref\ DELAYS\_DEFINES\ и\ @ref\ UTILS\_DEFINES)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00012}00012\ \textcolor{comment}{-\/\ Трекеры\ для\ статистики\ и\ отладки\ \ (@ref\ TRACKERS\ и\ @ref\ TRACE)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00013}00013\ \textcolor{comment}{-\/\ Эволюционный\ алгоритм\ для\ оптимизации\ параметров\ \ (@ref\ EVOLVE\_OPTIMIZER)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00014}00014\ \textcolor{comment}{-\/\ Битовый\ доступ\ к\ регистрам\ через\ union\ \ (@ref\ BIT\_ACCESS\_DEFINES)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00015}00015\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00016}00016\ \textcolor{comment}{@subsubsection\ trace\_module\ Трассировка\ @ref\ TRACE}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00017}00017\ \textcolor{comment}{-\/\ Serial\ трассировка\ через\ SWO\ и\ RTT\ (@ref\ TRACE\_SERIAL)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00018}00018\ \textcolor{comment}{-\/\ GPIO\ трассировка\ для\ отладки\ (@ref\ TRACE\_GPIO)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00019}00019\ \textcolor{comment}{-\/\ Сохранение\ логов\ в\ Flash\ память\ (@ref\ TRACE\_RTT\_FLASH)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00020}00020\ \textcolor{comment}{-\/\ Обработка\ HardFault\ с\ сохранением\ контекста\ (@ref\ TRACE\_HARDFAULT)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00021}00021\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00022}00022\ \textcolor{comment}{@subsubsection\ gpio\_module\ Модуль\ GPIO\ @ref\ MY\_LIBS\_GPIO}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00023}00023\ \textcolor{comment}{-\/\ Инициализация\ портов\ и\ тактирования\ (@ref\ MYLIBS\_GPIO\_GENERAL)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00024}00024\ \textcolor{comment}{-\/\ Управление\ светодиодами\ (включение/выключение,\ моргание,\ плавное\ затухание)\ (@ref\ MYLIBS\_GPIO\_LEDS)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00025}00025\ \textcolor{comment}{-\/\ Работа\ с\ кнопками\ (чтение\ состояния,\ фильтрация\ дребезга)\ (@ref\ MYLIBS\_GPIO\_SWITCH)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00026}00026\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00027}00027\ \textcolor{comment}{@subsubsection\ tim\_module\ Модуль\ таймеров\ @ref\ MY\_LIBS\_TIM}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00028}00028\ \textcolor{comment}{-\/\ Базовая\ инициализация\ таймеров\ (@ref\ MYLIBS\_TIM\_GENERAL)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00029}00029\ \textcolor{comment}{-\/\ Формирование\ задержек\ (блокирующие\ и\ неблокирующие)\ (@ref\ MYLIBS\_TIM\_DELAY)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00030}00030\ \textcolor{comment}{-\/\ Работа\ с\ энкодерами\ (чтение\ положения,\ обработка\ кнопок)\ (@ref\ MYLIBS\_TIM\_ENCODER)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00031}00031\ \textcolor{comment}{-\/\ Настройка\ ШИМ\ и\ Output\ Compare\ (@ref\ MYLIBS\_TIM\_OC)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00032}00032\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00033}00033\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00034}00034\ \textcolor{comment}{@subsection\ structure\ Структура\ проекта}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00035}00035\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00036}00036\ \textcolor{comment}{@code}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00037}00037\ \textcolor{comment}{├──\ inc/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Заголовочные\ файлы}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00038}00038\ \textcolor{comment}{│\ \ \ ├──\ mylibs\_include.h\ \ \ \ \ \#\ Главный\ include\ файл}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00039}00039\ \textcolor{comment}{│\ \ \ ├──\ mylibs\_config.h\ \ \ \ \ \ \#\ Конфигурация\ библиотек}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00040}00040\ \textcolor{comment}{│\ \ \ ├──\ mylibs\_defs.h\ \ \ \ \ \ \ \ \#\ Общие\ определения\ и\ макросы}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00041}00041\ \textcolor{comment}{│\ \ \ ├──\ bit\_access.h\ \ \ \ \ \ \ \ \ \#\ Битовый\ доступ\ к\ регистрам}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00042}00042\ \textcolor{comment}{│\ \ \ ├──\ trackers.h\ \ \ \ \ \ \ \ \ \ \ \#\ Трекеры\ для\ отладки}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00043}00043\ \textcolor{comment}{│\ \ \ ├──\ trace.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Трассировка\ и\ логирование}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00044}00044\ \textcolor{comment}{│\ \ \ ├──\ general\_gpio.h\ \ \ \ \ \ \ \#\ Работа\ с\ GPIO}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00045}00045\ \textcolor{comment}{│\ \ \ └──\ general\_tim.h\ \ \ \ \ \ \ \ \#\ Работа\ с\ таймерами}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00046}00046\ \textcolor{comment}{└──\ src/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Исходные\ файлы}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00047}00047\ \textcolor{comment}{\ \ \ \ ├──\ general\_gpio.c\ \ \ \ \ \ \ \#\ Реализация\ GPIO}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00048}00048\ \textcolor{comment}{\ \ \ \ └──\ general\_tim.c\ \ \ \ \ \ \ \ \#\ Реализация\ TIM}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00049}00049\ \textcolor{comment}{@endcode}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00050}00050\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00051}00051\ \textcolor{comment}{@subsection\ usage\_basic\ Использование}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00052}00052\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00053}00053\ \textcolor{comment}{Инструкция\ по\ подключению:}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00054}00054\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00055}00055\ \textcolor{comment}{1.\ Настройте\ конфигурацию\ @ref\ MYLIBS\_CONFIG\ в\ @ref\ mylibs\_config.h\ }} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00056}00056\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00057}00057\ \textcolor{comment}{2.\ Подключите\ главный\ заголовочный\ файл:}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00058}00058\ \textcolor{comment}{@code}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00059}00059\ \textcolor{comment}{\#include\ "{}mylibs\_include.h"{}}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00060}00060\ \textcolor{comment}{@endcode}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00061}00061\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00062}00062\ \textcolor{comment}{3.\ Используйте\ нужные\ модули\ в\ своем\ коде}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00063}00063\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00064}00064\ \textcolor{comment}{@subsubsection\ gpio\_example\ Пример\ работы\ с\ GPIO}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00065}00065\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00066}00066\ \textcolor{comment}{@code}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00067}00067\ \textcolor{comment}{//\ Инициализация\ светодиода}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00068}00068\ \textcolor{comment}{MX\_GPIO\_Init();}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00069}00069\ \textcolor{comment}{GPIO\_LEDTypeDef\ led;}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00070}00070\ \textcolor{comment}{GPIO\_LED\_Init(\&led,\ GPIOA,\ GPIO\_PIN\_5,\ 1);}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00071}00071\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00072}00072\ \textcolor{comment}{//\ Включение\ светодиода}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00073}00073\ \textcolor{comment}{GPIO\_LED\_On(\&led);}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00074}00074\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00075}00075\ \textcolor{comment}{//\ Запуск\ моргания}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00076}00076\ \textcolor{comment}{GPIO\_LED\_Blink\_Start(\&led,\ 500);\ //\ Период\ 500\ мс}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00077}00077\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00078}00078\ \textcolor{comment}{//\ В\ основном\ цикле}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00079}00079\ \textcolor{comment}{while\ (1)\ \{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00080}00080\ \textcolor{comment}{GPIO\_LED\_Dynamic\_Handle(\&led);}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00081}00081\ \textcolor{comment}{\}}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00082}00082\ \textcolor{comment}{@endcode}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00083}00083\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00084}00084\ \textcolor{comment}{@subsubsection\ tim\_example\ Пример\ работы\ с\ таймером}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00085}00085\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00086}00086\ \textcolor{comment}{@code}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00087}00087\ \textcolor{comment}{//\ Настройка\ таймера}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00088}00088\ \textcolor{comment}{TIM\_SettingsTypeDef\ tim\_settings\ =\ \{0\};}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00089}00089\ \textcolor{comment}{tim\_settings.htim.Instance\ =\ TIM2;}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00090}00090\ \textcolor{comment}{tim\_settings.sTimAHBFreqMHz\ =\ SystemCoreClock;}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00091}00091\ \textcolor{comment}{tim\_settings.sTickBaseUS\ =\ TIM\_TickBase\_1MS;}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00092}00092\ \textcolor{comment}{tim\_settings.sTimFreqHz\ =\ 1000;\ //\ 1\ кГц}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00093}00093\ \textcolor{comment}{tim\_settings.sTimMode\ =\ TIM\_IT\_CONF;}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00094}00094\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00095}00095\ \textcolor{comment}{TIM\_Base\_Init(\&tim\_settings);}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00096}00096\ \textcolor{comment}{HAL\_TIM\_Base\_Start(\&tim\_settings.htim);}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00097}00097\ \textcolor{comment}{@endcode}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00098}00098\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00099}00099\ \textcolor{comment}{@subsection\ dependencies\ Зависимости}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00100}00100\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00101}00101\ \textcolor{comment}{-\/\ HAL\ библиотека\ STM32}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00102}00102\ \textcolor{comment}{-\/\ SEGGER\ RTT\ (опционально,\ для\ RTT\ трассировки)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00103}00103\ \textcolor{comment}{-\/\ FreeRTOS\ (опционально,\ для\ FreeRTOS\ задержек)}} +\DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00104}00104\ \textcolor{comment}{\ */}} + +\end{DoxyCode} diff --git a/Doc/latex/mylibs__config_8h.tex b/Doc/latex/mylibs__config_8h.tex index f001a96..0764916 100644 --- a/Doc/latex/mylibs__config_8h.tex +++ b/Doc/latex/mylibs__config_8h.tex @@ -6,16 +6,14 @@ {\ttfamily \#include "{}stm32f4xx\+\_\+hal.\+h"{}}\newline -Include dependency graph for mylibs\+\_\+config.\+h\+: -\nopagebreak +Include dependency graph for mylibs\+\_\+config.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=229pt]{mylibs__config_8h__incl} \end{center} \end{figure} -This graph shows which files directly or indirectly include this file\+: -\nopagebreak +This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -57,6 +55,14 @@ This graph shows which files directly or indirectly include this file\+: \begin{DoxyCompactList}\small\item\em Конец RAM памяти (чтобы во время анализа стека не выйти за пределы) \end{DoxyCompactList}\item \#define \mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{GPIO\+\_\+\+TRACE\+\_\+\+ENABLE}} \begin{DoxyCompactList}\small\item\em Включить GPIO трассировку \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga2cac097081444a7a9b040f4b11550e47}{ENABLE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZATION}} +\begin{DoxyCompactList}\small\item\em Включить оптимизацию параметров \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}{EVOLVE\+\_\+\+MAX\+\_\+\+PARAMS}}~20 +\begin{DoxyCompactList}\small\item\em Максимальное количество параметров \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\+\_\+\+MAX\+\_\+\+CANDIDATES}}~100 +\begin{DoxyCompactList}\small\item\em Максимальное количество кандидатов для обучения \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga66560656d080d6551627a19dfb847c66}{INCLUDE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZER}} +\begin{DoxyCompactList}\small\item\em Подключить библиотеку для оптимизации параметров \end{DoxyCompactList}\item \#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}{INCLUDE\+\_\+\+BIT\+\_\+\+ACCESS\+\_\+\+LIB}} \begin{DoxyCompactList}\small\item\em Подключить библиотеку с typedef с битовыми полями \end{DoxyCompactList}\item \#define \mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}{INCLUDE\+\_\+\+TRACKERS\+\_\+\+LIB}} diff --git a/Doc/latex/mylibs__config_8h__dep__incl.md5 b/Doc/latex/mylibs__config_8h__dep__incl.md5 index f2647ba..92c2562 100644 --- a/Doc/latex/mylibs__config_8h__dep__incl.md5 +++ b/Doc/latex/mylibs__config_8h__dep__incl.md5 @@ -1 +1 @@ -eca6e9ed3f5c38fa565ac78e3e494b4a \ No newline at end of file +4caffed778a6832d18365a032a821f0e \ No newline at end of file diff --git a/Doc/latex/mylibs__config_8h__dep__incl.pdf b/Doc/latex/mylibs__config_8h__dep__incl.pdf index a60eaa9..a1d76bb 100644 Binary files a/Doc/latex/mylibs__config_8h__dep__incl.pdf and b/Doc/latex/mylibs__config_8h__dep__incl.pdf differ diff --git a/Doc/latex/mylibs__config_8h__incl.pdf b/Doc/latex/mylibs__config_8h__incl.pdf index d32923a..99357c2 100644 Binary files a/Doc/latex/mylibs__config_8h__incl.pdf and b/Doc/latex/mylibs__config_8h__incl.pdf differ diff --git a/Doc/latex/mylibs__config_8h_source.tex b/Doc/latex/mylibs__config_8h_source.tex index 726bb32..e4c369b 100644 --- a/Doc/latex/mylibs__config_8h_source.tex +++ b/Doc/latex/mylibs__config_8h_source.tex @@ -57,28 +57,44 @@ \DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00053}00053\ \textcolor{comment}{\ \ *\ @\}}} \DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00054}00054\ \textcolor{comment}{\ \ */}} \DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00055}00055\ } -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00056}00056\ } -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00057}00057\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00058}00058\ \textcolor{comment}{/**\ }} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00059}00059\ \textcolor{comment}{\ \ *\ @addtogroup\ LIBS\_CONFIG\ \ \ Libraries\ configs}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00060}00060\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_CONFIG}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00061}00061\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Подключение\ различных\ модулей\ библиотеки}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00062}00062\ \textcolor{comment}{\ \ *\ @\{}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00063}00063\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00064}00064\ } -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00065}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}{00065}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_BIT\_ACCESS\_LIB\ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ typedef\ с\ битовыми\ полями}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00066}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}{00066}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_TRACKERS\_LIB\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ трекерами}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00067}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}{00067}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_TRACE\_LIB\ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ трейсами}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00068}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}{00068}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_GENERAL\_PERIPH\_LIBS\ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ периферией}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00069}00069\ \textcolor{comment}{//\#define\ FREERTOS\_DELAY\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ///<\ Использовать\ FreeRTOS\ задержку,\ вместо\ HAL}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00070}00070\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00071}00071\ \textcolor{comment}{/**\ LIBS\_CONFIG}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00072}00072\ \textcolor{comment}{\ \ *\ @\}}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00073}00073\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00074}00074\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00075}00075\ \textcolor{comment}{/**\ MYLIBS\_CONFIG}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00076}00076\ \textcolor{comment}{\ \ *\ @\}}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00077}00077\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00078}00078\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_MYLIBS\_CONFIG\_H\_}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00056}00056\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00057}00057\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00058}00058\ \textcolor{comment}{\ \ *\ @addtogroup\ EVOLVE\_CONFIG\ \ \ Evolve\ configs}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00059}00059\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_CONFIG}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00060}00060\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Конфигурация\ однослойного\ персептрона\ и\ алгоритма\ обучения}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00061}00061\ \textcolor{comment}{\ \ *\ @\{}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00062}00062\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00063}00063\ } +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00064}\mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga2cac097081444a7a9b040f4b11550e47}{00064}}\ \textcolor{preprocessor}{\#define\ ENABLE\_EVOLVE\_OPTIMIZATION\ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Включить\ оптимизацию\ параметров}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00065}\mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}{00065}}\ \textcolor{preprocessor}{\#define\ EVOLVE\_MAX\_PARAMS\ \ \ \ \ \ \ 20\ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Максимальное\ количество\ параметров}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00066}\mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{00066}}\ \textcolor{preprocessor}{\#define\ EVOLVE\_MAX\_CANDIDATES\ \ \ 100\ \ \ \ \ \ \ }\textcolor{comment}{///<\ Максимальное\ количество\ кандидатов\ для\ обучения}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00067}00067\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00068}00068\ \textcolor{comment}{/**\ EVOLVE\_CONFIG}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00069}00069\ \textcolor{comment}{\ \ *\ @\}}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00070}00070\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00071}00071\ } +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00072}00072\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00073}00073\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00074}00074\ \textcolor{comment}{\ \ *\ @addtogroup\ LIBS\_CONFIG\ \ \ Libraries\ configs}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00075}00075\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_CONFIG}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00076}00076\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Подключение\ различных\ модулей\ библиотеки}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00077}00077\ \textcolor{comment}{\ \ *\ @\{}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00078}00078\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00079}00079\ } +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00080}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga66560656d080d6551627a19dfb847c66}{00080}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_EVOLVE\_OPTIMIZER\ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ для\ оптимизации\ параметров}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00081}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}{00081}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_BIT\_ACCESS\_LIB\ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ typedef\ с\ битовыми\ полями}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00082}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}{00082}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_TRACKERS\_LIB\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ трекерами}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00083}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}{00083}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_TRACE\_LIB\ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ трейсами}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00084}\mbox{\hyperlink{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}{00084}}\ \textcolor{preprocessor}{\#define\ INCLUDE\_GENERAL\_PERIPH\_LIBS\ \ \ }\textcolor{comment}{///<\ Подключить\ библиотеку\ с\ периферией}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00085}00085\ \textcolor{comment}{//\#define\ FREERTOS\_DELAY\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ///<\ Использовать\ FreeRTOS\ задержку,\ вместо\ HAL}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00086}00086\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00087}00087\ \textcolor{comment}{/**\ LIBS\_CONFIG}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00088}00088\ \textcolor{comment}{\ \ *\ @\}}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00089}00089\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00090}00090\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00091}00091\ \textcolor{comment}{/**\ MYLIBS\_CONFIG}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00092}00092\ \textcolor{comment}{\ \ *\ @\}}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00093}00093\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00094}00094\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_MYLIBS\_CONFIG\_H\_}} \end{DoxyCode} diff --git a/Doc/latex/mylibs__defs_8h.tex b/Doc/latex/mylibs__defs_8h.tex index 8cfd855..a0cc00b 100644 --- a/Doc/latex/mylibs__defs_8h.tex +++ b/Doc/latex/mylibs__defs_8h.tex @@ -6,16 +6,14 @@ {\ttfamily \#include "{}mylibs\+\_\+config.\+h"{}}\newline -Include dependency graph for mylibs\+\_\+defs.\+h\+: -\nopagebreak +Include dependency graph for mylibs\+\_\+defs.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=229pt]{mylibs__defs_8h__incl} \end{center} \end{figure} -This graph shows which files directly or indirectly include this file\+: -\nopagebreak +This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/mylibs__defs_8h__dep__incl.md5 b/Doc/latex/mylibs__defs_8h__dep__incl.md5 index 32b7e22..4546d80 100644 --- a/Doc/latex/mylibs__defs_8h__dep__incl.md5 +++ b/Doc/latex/mylibs__defs_8h__dep__incl.md5 @@ -1 +1 @@ -c117dd8987effdd4ce705b77528f5bb8 \ No newline at end of file +609390e8ed268a2e3acd045e0d24f78d \ No newline at end of file diff --git a/Doc/latex/mylibs__defs_8h__dep__incl.pdf b/Doc/latex/mylibs__defs_8h__dep__incl.pdf index e126dc0..cd6d71f 100644 Binary files a/Doc/latex/mylibs__defs_8h__dep__incl.pdf and b/Doc/latex/mylibs__defs_8h__dep__incl.pdf differ diff --git a/Doc/latex/mylibs__defs_8h__incl.pdf b/Doc/latex/mylibs__defs_8h__incl.pdf index 3033b99..884406e 100644 Binary files a/Doc/latex/mylibs__defs_8h__incl.pdf and b/Doc/latex/mylibs__defs_8h__incl.pdf differ diff --git a/Doc/latex/mylibs__defs_8h_source.tex b/Doc/latex/mylibs__defs_8h_source.tex index bbd4b3a..01eb3ff 100644 --- a/Doc/latex/mylibs__defs_8h_source.tex +++ b/Doc/latex/mylibs__defs_8h_source.tex @@ -7,7 +7,7 @@ \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00003}00003\ \textcolor{comment}{*\ @file\ mylibs\_defs.h}} \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00004}00004\ \textcolor{comment}{*\ @brief\ Заголочный\ файл\ для\ дефайнов\ библиотеки\ MyLibsGeneral.}} \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00005}00005\ \textcolor{comment}{**************************************************************************}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00006}00006\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_DEFINES\ \ General\ Defines}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00006}00006\ \textcolor{comment}{*\ @defgroup\ MYLIBS\_DEFINES\ \ General\ Tools}} \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00007}00007\ \textcolor{comment}{*\ @ingroup\ \ MYLIBS\_ALL}} \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00008}00008\ \textcolor{comment}{*\ @brief\ \ \ \ Общие\ макросы\ и\ typedef'ы,\ используемые\ по\ всему\ проекту}} \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00009}00009\ \textcolor{comment}{*}} @@ -59,135 +59,132 @@ \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00055}00055\ \ \ } \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00056}00056\ } \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00057}00057\ \textcolor{comment}{/***************************************************************************}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00058}00058\ \textcolor{comment}{********************************ACCESS\_DEFINES*****************************/}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00059}00059\ } -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00060}00060\ } -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00061}00061\ \textcolor{comment}{/***************************************************************************}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00062}00062\ \textcolor{comment}{******************************DELAYS\_DEFINES*******************************/}\textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00063}00063\ \textcolor{comment}{/**\ }} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00064}00064\ \textcolor{comment}{\ \ *\ @addtogroup\ DELAYS\_DEFINES\ \ \ \ Delays\ defines}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00065}00065\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_DEFINES}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00066}00066\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ \ Макросы\ и\ определения\ для\ работы\ с\ задержками\ в\ миллисекундах.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00067}00067\ \textcolor{comment}{\ \ *\ @details}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00068}00068\ \textcolor{comment}{\ \ *\ Этот\ блок\ содержит\ макросы\ для\ реализации\ задержек\ с\ использованием\ HAL\ или\ FreeRTOS:}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00069}00069\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelay\ \ \ \ \ \ \ \ \ \ \ \ \ —\ простая\ задержка\ заданной\ длительности;}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00070}00070\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayStart\ \ \ \ \ \ \ \ —\ сохранение\ текущего\ времени\ начала\ задержки;}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00071}00071\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayWhileActive\ \ —\ проверка,\ активна\ ли\ задержка;}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00072}00072\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayWaitDone\ \ \ \ \ —\ проверка,\ завершена\ ли\ задержка.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00073}00073\ \textcolor{comment}{\ \ *\ Эти\ макросы\ удобны\ для\ реализации\ неблокирующих\ задержек.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00074}00074\ \textcolor{comment}{\ \ *\ @\{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00075}00075\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00076}00076\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00077}00077\ \textcolor{comment}{/**\ }} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00078}00078\ \textcolor{comment}{\ \ *\ @def\ msDelay(\_ms\_)}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00079}00079\ \textcolor{comment}{\ \ *\ @brief\ Задержка\ на\ указанное\ количество\ миллисекунд.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00080}00080\ \textcolor{comment}{\ \ *\ @param\ \_ms\_\ Время\ задержки\ в\ миллисекундах.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00081}00081\ \textcolor{comment}{\ \ *\ @note\ Использует\ HAL\_Delay\ или\ osDelay\ в\ зависимости\ от\ @ref\ FREERTOS\_DELAY.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00082}00082\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00083}00083\ \textcolor{preprocessor}{\#ifdef\ FREERTOS\_DELAY}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00084}00084\ \textcolor{preprocessor}{\ \ \#define\ msDelay(\_ms\_)\ \ \ \ \ \ \ osDelay(\_ms\_)}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00085}00085\ \textcolor{preprocessor}{\#else}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00086}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{00086}}\ \textcolor{preprocessor}{\ \ \#define\ msDelay(\_ms\_)\ \ \ \ \ \ \ HAL\_Delay(\_ms\_)}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00087}00087\ \textcolor{preprocessor}{\#endif}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00088}00088\ } -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00089}00089\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00090}00090\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00091}00091\ \textcolor{comment}{\ \ *\ @brief\ Начать\ отсчет\ задержки.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00092}00092\ \textcolor{comment}{\ \ *\ @param\ \_pvar\_\ Указатель\ на\ переменную\ типа\ uint32\_t\ для\ хранения\ времени\ старта.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00093}00093\ \textcolor{comment}{\ \ *\ @details\ После\ вызова\ этого\ макроса\ переменная\ \_pvar\_\ содержит\ текущее\ количество\ миллисекунд}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00094}00094\ \textcolor{comment}{\ \ *\ с\ момента\ запуска\ системы\ (HAL\_GetTick).\ }} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00095}00095\ \textcolor{comment}{\ \ *\ }} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00096}00096\ \textcolor{comment}{\ \ *\ Используется\ для\ реализации\ неблокирующих\ задержек.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00097}00097\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00098}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{00098}}\ \textcolor{preprocessor}{\#define\ msDelayStart(\_pvar\_)\ \ \ \ \ \ \ \ \ \ \ \ *(\_pvar\_)\ =\ HAL\_GetTick()}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00099}00099\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00100}00100\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00101}00101\ \textcolor{comment}{\ *\ @brief\ Проверяет,\ активна\ ли\ задержка.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00102}00102\ \textcolor{comment}{\ *\ @param\ \_ms\_\ Длительность\ задержки\ в\ миллисекундах.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00103}00103\ \textcolor{comment}{\ *\ @param\ \_pvar\_\ Указатель\ на\ переменную,\ в\ которой\ сохранено\ время\ начала\ (@ref\ msDelayStart).}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00104}00104\ \textcolor{comment}{\ *\ @retval\ 1\ Задержка\ еще\ активна.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00105}00105\ \textcolor{comment}{\ *\ @retval\ 0\ Задержка\ завершена.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00106}00106\ \textcolor{comment}{\ *\ @details}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00107}00107\ \textcolor{comment}{\ *\ Возвращает\ true,\ пока\ время\ задержки\ не\ истекло.\ Используется\ в\ проверках,}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00108}00108\ \textcolor{comment}{\ *\ когда\ нужно\ **действовать,\ пока\ задержка\ выполняется**.\ Пример:}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00109}00109\ \textcolor{comment}{\ *\ @code}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00110}00110\ \textcolor{comment}{\ *\ while(msDelayWhileActive(1000,\ \&tick))\ \{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00111}00111\ \textcolor{comment}{\ *\ \ \ \ \ //\ выполняем\ другие\ задачи,\ задержка\ не\ блокирует\ поток}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00112}00112\ \textcolor{comment}{\ *\ \}}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00113}00113\ \textcolor{comment}{\ *\ @endcode}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00114}00114\ \textcolor{comment}{\ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00115}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{00115}}\ \textcolor{preprocessor}{\#define\ msDelayWhileActive(\_ms\_,\ \_pvar\_)\ \ \ \ (HAL\_GetTick()\ -\/\ *(\_pvar\_)\ <\ \_ms\_)}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00116}00116\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00117}00117\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00118}00118\ \textcolor{comment}{\ *\ @brief\ Проверяет,\ завершилась\ ли\ задержка.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00119}00119\ \textcolor{comment}{\ *\ @param\ \_ms\_\ Длительность\ задержки\ в\ миллисекундах.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00120}00120\ \textcolor{comment}{\ *\ @param\ \_pvar\_\ Указатель\ на\ переменную,\ в\ которой\ сохранено\ время\ начала\ (msDelayStart).}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00121}00121\ \textcolor{comment}{\ *\ @retval\ 1\ Задержка\ завершена.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00122}00122\ \textcolor{comment}{\ *\ @retval\ 0\ Задержка\ еще\ активна.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00123}00123\ \textcolor{comment}{\ *\ @details}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00124}00124\ \textcolor{comment}{\ *\ Возвращает\ true,\ когда\ задержка\ уже\ завершена.\ Используется\ в\ проверках,}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00125}00125\ \textcolor{comment}{\ *\ когда\ нужно\ **выполнить\ действие\ только\ после\ окончания\ задержки**.\ Пример:}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00126}00126\ \textcolor{comment}{\ *\ @code}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00127}00127\ \textcolor{comment}{\ *\ if(msDelayWaitDone(1000,\ \&tick))\ \{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00128}00128\ \textcolor{comment}{\ *\ \ \ \ \ //\ выполняем\ действие\ после\ завершения\ задержки}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00129}00129\ \textcolor{comment}{\ *\ \}}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00130}00130\ \textcolor{comment}{\ *\ @endcode}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00131}00131\ \textcolor{comment}{\ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00132}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{00132}}\ \textcolor{preprocessor}{\#define\ msDelayWaitDone(\_ms\_,\ \_pvar\_)\ \ \ \ (HAL\_GetTick()\ -\/\ *(\_pvar\_)\ >=\ \_ms\_)}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00133}00133\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00134}00134\ \textcolor{comment}{/**\ DELAYS\_DEFINES}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00135}00135\ \textcolor{comment}{\ \ *\ @\}}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00136}00136\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00137}00137\ } -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00138}00138\ } -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00139}00139\ \textcolor{comment}{/***************************************************************************}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00140}00140\ \textcolor{comment}{*******************************MATH\_DEFINES********************************/}\textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00141}00141\ \textcolor{comment}{/**\ }} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00142}00142\ \textcolor{comment}{\ \ *\ @addtogroup\ UTILS\_DEFINES\ \ \ \ \ \ Utils\ defines}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00143}00143\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_DEFINES}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00144}00144\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Общие\ вспомогательные\ макросы}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00145}00145\ \textcolor{comment}{\ \ *\ @\{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00146}00146\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00147}00147\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00148}00148\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00149}00149\ \textcolor{comment}{\ *\ @brief\ Обнуление\ структуры.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00150}00150\ \textcolor{comment}{\ *\ @param\ \_struct\_\ Структура,\ которую\ нужно\ обнулить.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00151}00151\ \textcolor{comment}{\ *\ @details\ Макрос\ использует\ memset\ для\ обнуления\ всей\ памяти\ структуры.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00152}00152\ \textcolor{comment}{\ *\ Используется\ для\ быстрой\ и\ безопасной\ инициализации\ переменных\ структур\ до\ нуля.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00153}00153\ \textcolor{comment}{\ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00154}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{00154}}\ \textcolor{preprocessor}{\#define\ ClearStruct(\_struct\_)\ \ \ \ \ memset(\&(\_struct\_),\ 0,\ sizeof(\_struct\_))}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00155}00155\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00156}00156\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00157}00157\ \textcolor{comment}{\ \ *\ @brief\ \ Деление\ с\ округлением\ вверх}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00158}00158\ \textcolor{comment}{\ \ *\ @param\ \_val\_\ Делимое.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00159}00159\ \textcolor{comment}{\ \ *\ @param\ \_div\_\ Делитель.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00160}00160\ \textcolor{comment}{\ \ *\ @return\ Результат\ деления,\ округленный\ вверх.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00161}00161\ \textcolor{comment}{\ \ *\ @details\ \ Если\ результат\ деления\ без\ остатка:\ он\ возвращается\ как\ есть}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00162}00162\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ Если\ с\ остатком\ -\/\ округляется\ вверх}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00163}00163\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00164}00164\ \textcolor{comment}{//\#define\ Divide\_Up(\_val\_,\ \_div\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((\_val\_)\%(\_div\_))?\ (\_val\_)/(\_div\_)+1\ :\ (\_val\_)/\_div\_)\ \ /*\ через\ тернарный\ оператор\ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00165}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{00165}}\ \textcolor{preprocessor}{\#define\ Divide\_Up(\_val\_,\ \_div\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\_val\_\ -\/\ 1)\ /\ \_div\_)\ +\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{/*\ через\ мат\ выражение\ */}\textcolor{preprocessor}{\ }} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00166}00166\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00167}00167\ \textcolor{comment}{/**\ }} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00168}00168\ \textcolor{comment}{\ \ *\ @brief\ \ Swap\ between\ Little\ Endian\ and\ Big\ Endian}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00169}00169\ \textcolor{comment}{\ \ *\ @param\ v\ Исходное\ 16-\/битное\ значение.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00170}00170\ \textcolor{comment}{\ \ *\ @return\ Результат\ с\ поменяными\ местами\ старшим\ и\ младшим\ байтом.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00171}00171\ \textcolor{comment}{\ \ *\ @details\ \ Переключения\ между\ двумя\ типами\ хранения\ слова:\ HI-\/LO\ байты\ и\ LO-\/HI\ байты.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00172}00172\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00173}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{00173}}\ \textcolor{preprocessor}{\#define\ ByteSwap16(v)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((v\&0xFF00)\ >>\ (8))\ |\ ((v\&0x00FF)\ <<\ (8)))}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00174}00174\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00175}00175\ \textcolor{comment}{/**\ }} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00176}00176\ \textcolor{comment}{\ \ *\ @brief\ \ Абсолютное\ значение\ числа}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00177}00177\ \textcolor{comment}{\ \ *\ @param\ x\ Число.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00178}00178\ \textcolor{comment}{\ \ *\ @return\ Абсолютное\ значение\ числа\ x.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00179}00179\ \textcolor{comment}{\ \ *\ @details\ \ Берет\ число\ по\ модулю.\ Хз\ как\ работает\ библиотечный\ abs\ в\ stdlib.h,\ мб\ это\ быстрее,\ но\ вряд\ ли\ конечно.}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00180}00180\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00181}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{00181}}\ \textcolor{preprocessor}{\#define\ ABS(x)\ (\ ((x)\ >\ 0)?\ (x)\ :\ -\/(x))}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00182}00182\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00183}00183\ \textcolor{comment}{/**\ UTILS\_DEFINES}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00184}00184\ \textcolor{comment}{\ \ *\ @\}}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00185}00185\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00186}00186\ \ \ } -\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00187}00187\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_MYLIBS\_DEFINES\_H\_}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00058}00058\ \textcolor{comment}{******************************DELAYS\_DEFINES*******************************/}\textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00059}00059\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00060}00060\ \textcolor{comment}{\ \ *\ @addtogroup\ DELAYS\_DEFINES\ \ \ \ Delays\ defines}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00061}00061\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_DEFINES}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00062}00062\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ \ Макросы\ и\ определения\ для\ работы\ с\ задержками\ в\ миллисекундах.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00063}00063\ \textcolor{comment}{\ \ *\ @details}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00064}00064\ \textcolor{comment}{\ \ *\ Этот\ блок\ содержит\ макросы\ для\ реализации\ задержек\ с\ использованием\ HAL\ или\ FreeRTOS:}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00065}00065\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelay\ \ \ \ \ \ \ \ \ \ \ \ \ —\ простая\ задержка\ заданной\ длительности;}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00066}00066\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayStart\ \ \ \ \ \ \ \ —\ сохранение\ текущего\ времени\ начала\ задержки;}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00067}00067\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayWhileActive\ \ —\ проверка,\ активна\ ли\ задержка;}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00068}00068\ \textcolor{comment}{\ \ *\ -\/\ @ref\ msDelayWaitDone\ \ \ \ \ —\ проверка,\ завершена\ ли\ задержка.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00069}00069\ \textcolor{comment}{\ \ *\ Эти\ макросы\ удобны\ для\ реализации\ неблокирующих\ задержек.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00070}00070\ \textcolor{comment}{\ \ *\ @\{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00071}00071\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00072}00072\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00073}00073\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00074}00074\ \textcolor{comment}{\ \ *\ @def\ msDelay(\_ms\_)}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00075}00075\ \textcolor{comment}{\ \ *\ @brief\ Задержка\ на\ указанное\ количество\ миллисекунд.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00076}00076\ \textcolor{comment}{\ \ *\ @param\ \_ms\_\ Время\ задержки\ в\ миллисекундах.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00077}00077\ \textcolor{comment}{\ \ *\ @note\ Использует\ HAL\_Delay\ или\ osDelay\ в\ зависимости\ от\ @ref\ FREERTOS\_DELAY.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00078}00078\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00079}00079\ \textcolor{preprocessor}{\#ifdef\ FREERTOS\_DELAY}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00080}00080\ \textcolor{preprocessor}{\ \ \#define\ msDelay(\_ms\_)\ \ \ \ \ \ \ osDelay(\_ms\_)}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00081}00081\ \textcolor{preprocessor}{\#else}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00082}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{00082}}\ \textcolor{preprocessor}{\ \ \#define\ msDelay(\_ms\_)\ \ \ \ \ \ \ HAL\_Delay(\_ms\_)}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00083}00083\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00084}00084\ } +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00085}00085\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00086}00086\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00087}00087\ \textcolor{comment}{\ \ *\ @brief\ Начать\ отсчет\ задержки.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00088}00088\ \textcolor{comment}{\ \ *\ @param\ \_pvar\_\ Указатель\ на\ переменную\ типа\ uint32\_t\ для\ хранения\ времени\ старта.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00089}00089\ \textcolor{comment}{\ \ *\ @details\ После\ вызова\ этого\ макроса\ переменная\ \_pvar\_\ содержит\ текущее\ количество\ миллисекунд}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00090}00090\ \textcolor{comment}{\ \ *\ с\ момента\ запуска\ системы\ (HAL\_GetTick).\ }} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00091}00091\ \textcolor{comment}{\ \ *\ }} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00092}00092\ \textcolor{comment}{\ \ *\ Используется\ для\ реализации\ неблокирующих\ задержек.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00093}00093\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00094}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{00094}}\ \textcolor{preprocessor}{\#define\ msDelayStart(\_pvar\_)\ \ \ \ \ \ \ \ \ \ \ \ *(\_pvar\_)\ =\ HAL\_GetTick()}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00095}00095\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00096}00096\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00097}00097\ \textcolor{comment}{\ *\ @brief\ Проверяет,\ активна\ ли\ задержка.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00098}00098\ \textcolor{comment}{\ *\ @param\ \_ms\_\ Длительность\ задержки\ в\ миллисекундах.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00099}00099\ \textcolor{comment}{\ *\ @param\ \_pvar\_\ Указатель\ на\ переменную,\ в\ которой\ сохранено\ время\ начала\ (@ref\ msDelayStart).}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00100}00100\ \textcolor{comment}{\ *\ @retval\ 1\ Задержка\ еще\ активна.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00101}00101\ \textcolor{comment}{\ *\ @retval\ 0\ Задержка\ завершена.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00102}00102\ \textcolor{comment}{\ *\ @details}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00103}00103\ \textcolor{comment}{\ *\ Возвращает\ true,\ пока\ время\ задержки\ не\ истекло.\ Используется\ в\ проверках,}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00104}00104\ \textcolor{comment}{\ *\ когда\ нужно\ **действовать,\ пока\ задержка\ выполняется**.\ Пример:}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00105}00105\ \textcolor{comment}{\ *\ @code}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00106}00106\ \textcolor{comment}{\ *\ while(msDelayWhileActive(1000,\ \&tick))\ \{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00107}00107\ \textcolor{comment}{\ *\ \ \ \ \ //\ выполняем\ другие\ задачи,\ задержка\ не\ блокирует\ поток}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00108}00108\ \textcolor{comment}{\ *\ \}}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00109}00109\ \textcolor{comment}{\ *\ @endcode}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00110}00110\ \textcolor{comment}{\ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00111}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{00111}}\ \textcolor{preprocessor}{\#define\ msDelayWhileActive(\_ms\_,\ \_pvar\_)\ \ \ \ (HAL\_GetTick()\ -\/\ *(\_pvar\_)\ <\ \_ms\_)}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00112}00112\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00113}00113\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00114}00114\ \textcolor{comment}{\ *\ @brief\ Проверяет,\ завершилась\ ли\ задержка.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00115}00115\ \textcolor{comment}{\ *\ @param\ \_ms\_\ Длительность\ задержки\ в\ миллисекундах.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00116}00116\ \textcolor{comment}{\ *\ @param\ \_pvar\_\ Указатель\ на\ переменную,\ в\ которой\ сохранено\ время\ начала\ (msDelayStart).}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00117}00117\ \textcolor{comment}{\ *\ @retval\ 1\ Задержка\ завершена.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00118}00118\ \textcolor{comment}{\ *\ @retval\ 0\ Задержка\ еще\ активна.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00119}00119\ \textcolor{comment}{\ *\ @details}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00120}00120\ \textcolor{comment}{\ *\ Возвращает\ true,\ когда\ задержка\ уже\ завершена.\ Используется\ в\ проверках,}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00121}00121\ \textcolor{comment}{\ *\ когда\ нужно\ **выполнить\ действие\ только\ после\ окончания\ задержки**.\ Пример:}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00122}00122\ \textcolor{comment}{\ *\ @code}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00123}00123\ \textcolor{comment}{\ *\ if(msDelayWaitDone(1000,\ \&tick))\ \{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00124}00124\ \textcolor{comment}{\ *\ \ \ \ \ //\ выполняем\ действие\ после\ завершения\ задержки}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00125}00125\ \textcolor{comment}{\ *\ \}}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00126}00126\ \textcolor{comment}{\ *\ @endcode}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00127}00127\ \textcolor{comment}{\ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00128}\mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{00128}}\ \textcolor{preprocessor}{\#define\ msDelayWaitDone(\_ms\_,\ \_pvar\_)\ \ \ \ (HAL\_GetTick()\ -\/\ *(\_pvar\_)\ >=\ \_ms\_)}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00129}00129\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00130}00130\ \textcolor{comment}{/**\ DELAYS\_DEFINES}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00131}00131\ \textcolor{comment}{\ \ *\ @\}}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00132}00132\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00133}00133\ } +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00134}00134\ } +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00135}00135\ \textcolor{comment}{/***************************************************************************}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00136}00136\ \textcolor{comment}{*******************************UTIL\_DEFINES********************************/}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00137}00137\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ dummy;\textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00138}00138\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00139}00139\ \textcolor{comment}{\ \ *\ @addtogroup\ UTILS\_DEFINES\ \ \ \ \ \ Utils\ defines}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00140}00140\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_DEFINES}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00141}00141\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Общие\ вспомогательные\ макросы}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00142}00142\ \textcolor{comment}{\ \ *\ @\{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00143}00143\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00144}00144\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00145}00145\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00146}00146\ \textcolor{comment}{\ *\ @brief\ Обнуление\ структуры.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00147}00147\ \textcolor{comment}{\ *\ @param\ \_struct\_\ Структура,\ которую\ нужно\ обнулить.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00148}00148\ \textcolor{comment}{\ *\ @details\ Макрос\ использует\ memset\ для\ обнуления\ всей\ памяти\ структуры.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00149}00149\ \textcolor{comment}{\ *\ Используется\ для\ быстрой\ и\ безопасной\ инициализации\ переменных\ структур\ до\ нуля.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00150}00150\ \textcolor{comment}{\ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00151}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{00151}}\ \textcolor{preprocessor}{\#define\ ClearStruct(\_struct\_)\ \ \ \ \ memset(\&(\_struct\_),\ 0,\ sizeof(\_struct\_))}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00152}00152\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00153}00153\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00154}00154\ \textcolor{comment}{\ \ *\ @brief\ \ Деление\ с\ округлением\ вверх}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00155}00155\ \textcolor{comment}{\ \ *\ @param\ \_val\_\ Делимое.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00156}00156\ \textcolor{comment}{\ \ *\ @param\ \_div\_\ Делитель.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00157}00157\ \textcolor{comment}{\ \ *\ @return\ Результат\ деления,\ округленный\ вверх.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00158}00158\ \textcolor{comment}{\ \ *\ @details\ \ Если\ результат\ деления\ без\ остатка:\ он\ возвращается\ как\ есть}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00159}00159\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ Если\ с\ остатком\ -\/\ округляется\ вверх}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00160}00160\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00161}00161\ \textcolor{comment}{//\#define\ Divide\_Up(\_val\_,\ \_div\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((\_val\_)\%(\_div\_))?\ (\_val\_)/(\_div\_)+1\ :\ (\_val\_)/\_div\_)\ \ /*\ через\ тернарный\ оператор\ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00162}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{00162}}\ \textcolor{preprocessor}{\#define\ Divide\_Up(\_val\_,\ \_div\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\_val\_\ -\/\ 1)\ /\ \_div\_)\ +\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{/*\ через\ мат\ выражение\ */}\textcolor{preprocessor}{\ }} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00163}00163\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00164}00164\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00165}00165\ \textcolor{comment}{\ \ *\ @brief\ \ Swap\ between\ Little\ Endian\ and\ Big\ Endian}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00166}00166\ \textcolor{comment}{\ \ *\ @param\ v\ Исходное\ 16-\/битное\ значение.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00167}00167\ \textcolor{comment}{\ \ *\ @return\ Результат\ с\ поменяными\ местами\ старшим\ и\ младшим\ байтом.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00168}00168\ \textcolor{comment}{\ \ *\ @details\ \ Переключения\ между\ двумя\ типами\ хранения\ слова:\ HI-\/LO\ байты\ и\ LO-\/HI\ байты.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00169}00169\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00170}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{00170}}\ \textcolor{preprocessor}{\#define\ ByteSwap16(v)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (((v\&0xFF00)\ >>\ (8))\ |\ ((v\&0x00FF)\ <<\ (8)))}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00171}00171\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00172}00172\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00173}00173\ \textcolor{comment}{\ \ *\ @brief\ \ Абсолютное\ значение\ числа}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00174}00174\ \textcolor{comment}{\ \ *\ @param\ x\ Число.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00175}00175\ \textcolor{comment}{\ \ *\ @return\ Абсолютное\ значение\ числа\ x.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00176}00176\ \textcolor{comment}{\ \ *\ @details\ \ Берет\ число\ по\ модулю.\ Хз\ как\ работает\ библиотечный\ abs\ в\ stdlib.h,\ мб\ это\ быстрее,\ но\ вряд\ ли\ конечно.}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00177}00177\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00178}\mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{00178}}\ \textcolor{preprocessor}{\#define\ ABS(x)\ (\ ((x)\ >\ 0)?\ (x)\ :\ -\/(x))}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00179}00179\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00180}00180\ \textcolor{comment}{/**\ UTILS\_DEFINES}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00181}00181\ \textcolor{comment}{\ \ *\ @\}}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00182}00182\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00183}00183\ \ \ } +\DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00184}00184\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_MYLIBS\_DEFINES\_H\_}} \end{DoxyCode} diff --git a/Doc/latex/mylibs__include_8h.tex b/Doc/latex/mylibs__include_8h.tex index 7dc274b..7e1d759 100644 --- a/Doc/latex/mylibs__include_8h.tex +++ b/Doc/latex/mylibs__include_8h.tex @@ -6,14 +6,15 @@ {\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline +{\ttfamily \#include "{}math.\+h"{}}\newline {\ttfamily \#include "{}bit\+\_\+access.\+h"{}}\newline {\ttfamily \#include "{}trackers.\+h"{}}\newline {\ttfamily \#include "{}trace.\+h"{}}\newline +{\ttfamily \#include "{}evolve\+\_\+optimizer.\+h"{}}\newline {\ttfamily \#include "{}general\+\_\+flash.\+h"{}}\newline {\ttfamily \#include "{}general\+\_\+gpio.\+h"{}}\newline {\ttfamily \#include "{}general\+\_\+tim.\+h"{}}\newline -Include dependency graph for mylibs\+\_\+include.\+h\+: -\nopagebreak +Include dependency graph for mylibs\+\_\+include.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/mylibs__include_8h__incl.md5 b/Doc/latex/mylibs__include_8h__incl.md5 index bae04a1..4d9f480 100644 --- a/Doc/latex/mylibs__include_8h__incl.md5 +++ b/Doc/latex/mylibs__include_8h__incl.md5 @@ -1 +1 @@ -12974059edd310824ecd8821917889e9 \ No newline at end of file +e8a6536a4a1a8e7b4caa7211e99459a4 \ No newline at end of file diff --git a/Doc/latex/mylibs__include_8h__incl.pdf b/Doc/latex/mylibs__include_8h__incl.pdf index a601a44..4da492e 100644 Binary files a/Doc/latex/mylibs__include_8h__incl.pdf and b/Doc/latex/mylibs__include_8h__incl.pdf differ diff --git a/Doc/latex/mylibs__include_8h_source.tex b/Doc/latex/mylibs__include_8h_source.tex index 13262ce..031799d 100644 --- a/Doc/latex/mylibs__include_8h_source.tex +++ b/Doc/latex/mylibs__include_8h_source.tex @@ -34,157 +34,98 @@ \DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00030}00030\ } \DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00031}00031\ \textcolor{preprocessor}{\#ifdef\ ARM\_MATH\_CM4}} \DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00032}00032\ \textcolor{preprocessor}{\ \ \#include\ "{}arm\_math.h"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00033}00033\ \textcolor{preprocessor}{\#endif}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00034}00034\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00035}00035\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00036}00036\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_BIT\_ACCESS\_LIB}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00037}00037\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{bit__access_8h}{bit\_access.h}}"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00038}00038\ \textcolor{preprocessor}{\#endif}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00039}00039\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00040}00040\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_TRACKERS\_LIB}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00041}00041\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{trackers_8h}{trackers.h}}"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00042}00042\ \textcolor{preprocessor}{\#endif}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00043}00043\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00044}00044\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_TRACE\_LIB}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00045}00045\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{trace_8h}{trace.h}}"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00046}00046\ \textcolor{preprocessor}{\#endif}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00047}00047\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00048}00048\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00049}00049\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00050}00050\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_GENERAL\_PERIPH\_LIBS}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00051}00051\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00052}00052\ \textcolor{preprocessor}{\#include\ "{}general\_flash.h"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00053}00053\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__gpio_8h}{general\_gpio.h}}"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00054}00054\ \textcolor{preprocessor}{\#ifdef\ HAL\_SPI\_MODULE\_ENABLED}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00055}00055\ \textcolor{preprocessor}{\#include\ "{}general\_spi.h"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00056}00056\ \textcolor{preprocessor}{\#endif}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00057}00057\ \textcolor{preprocessor}{\#ifdef\ HAL\_UART\_MODULE\_ENABLED}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00058}00058\ \textcolor{preprocessor}{\#include\ "{}general\_uart.h"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00059}00059\ \textcolor{preprocessor}{\#endif}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00060}00060\ \textcolor{preprocessor}{\#ifdef\ HAL\_TIM\_MODULE\_ENABLED}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00061}00061\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__tim_8h}{general\_tim.h}}"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00062}00062\ \textcolor{preprocessor}{\#endif}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00063}00063\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00064}00064\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//INCLUDE\_GENERAL\_PERIPH\_LIBS}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00065}00065\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00033}00033\ \textcolor{preprocessor}{\#else}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00034}00034\ \textcolor{preprocessor}{\ \ \#include\ "{}math.h"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00035}00035\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00036}00036\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00037}00037\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00038}00038\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_BIT\_ACCESS\_LIB}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00039}00039\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{bit__access_8h}{bit\_access.h}}"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00040}00040\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00041}00041\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00042}00042\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_TRACKERS\_LIB}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00043}00043\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{trackers_8h}{trackers.h}}"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00044}00044\ \textcolor{preprocessor}{\#else}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00045}00045\ \textcolor{preprocessor}{\ \ \#define\ TrackerTypeDef(num\_user\_vars)\ void\ *}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00046}00046\ \textcolor{preprocessor}{\ \ \#define\ num\_of\_usercnts(\_user\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00047}00047\ \textcolor{preprocessor}{\ \ \#define\ assert\_tracecnt(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ 0}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00048}00048\ \textcolor{preprocessor}{\ \ \#define\ if\_assert\_usertracker(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ if(0)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00049}00049\ \textcolor{preprocessor}{\ \ \#define\ tern\_assert\_usertracker(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ 0}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00050}00050\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dummy}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00051}00051\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dummy}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00052}00052\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dummy\ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00053}00053\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_User(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ dummy}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00054}00054\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00055}00055\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00056}00056\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00057}00057\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_User(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00058}00058\ \textcolor{preprocessor}{\ \ \#define\ TrackerWrite\_User(\_cntstruct\_,\ \_uservarnumb\_,\ \_val\_)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00059}00059\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_All(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00060}00060\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00061}00061\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00062}00062\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00063}00063\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_User(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00064}00064\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_UserAll(\_cntstruct\_)\ \ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00065}00065\ \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00066}00066\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00067}00067\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00068}00068\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00069}00069\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00070}00070\ \textcolor{comment}{//\ user\ includes}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00071}00071\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00072}00072\ \textcolor{comment}{//\ user\ settings}\textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00073}00073\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00074}00074\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00075}00075\ } -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00076}00076\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_MYLIBS\_INCLUDE\_H\_}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00077}00077\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00078}00078\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00079}00079\ \textcolor{comment}{@mainpage}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00080}00080\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00081}00081\ \textcolor{comment}{@section\ overview\ Обзор}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00082}00082\ \textcolor{comment}{MyLibs\ -\/\ это\ набор\ библиотек\ для\ удобной\ работы\ с\ периферией\ микроконтроллеров\ STM32.}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00083}00083\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00084}00084\ \textcolor{comment}{@subsection\ features\ Основные\ возможности}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00085}00085\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00086}00086\ \textcolor{comment}{@subsubsection\ utils\_module\ Общие\ утилиты\ @ref\ MYLIBS\_DEFINES}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00087}00087\ \textcolor{comment}{-\/\ Битовый\ доступ\ к\ регистрам\ через\ union}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00088}00088\ \textcolor{comment}{-\/\ Трекеры\ для\ статистики\ и\ отладки}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00089}00089\ \textcolor{comment}{-\/\ Макросы\ для\ задержек\ и\ утилит}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00090}00090\ \textcolor{comment}{-\/\ Поддержка\ FreeRTOS}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00091}00091\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00092}00092\ \textcolor{comment}{@subsubsection\ trace\_module\ Трассировка\ @ref\ TRACE}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00093}00093\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00094}00094\ \textcolor{comment}{-\/\ Serial\ трассировка\ через\ SWO\ и\ RTT}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00095}00095\ \textcolor{comment}{-\/\ GPIO\ трассировка\ для\ отладки}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00096}00096\ \textcolor{comment}{-\/\ Сохранение\ логов\ в\ Flash\ память}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00097}00097\ \textcolor{comment}{-\/\ Обработка\ HardFault\ с\ сохранением\ контекста}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00098}00098\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00099}00099\ \textcolor{comment}{@subsubsection\ gpio\_module\ Модуль\ GPIO\ @ref\ MY\_LIBS\_GPIO}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00100}00100\ \textcolor{comment}{-\/\ Управление\ светодиодами\ (включение/выключение,\ моргание,\ плавное\ затухание)}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00101}00101\ \textcolor{comment}{-\/\ Работа\ с\ кнопками\ (чтение\ состояния,\ фильтрация\ дребезга)}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00102}00102\ \textcolor{comment}{-\/\ Инициализация\ портов\ и\ тактирования}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00103}00103\ \textcolor{comment}{-\/\ Поддержка\ альтернативных\ функций}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00104}00104\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00105}00105\ \textcolor{comment}{@subsubsection\ tim\_module\ Модуль\ таймеров\ @ref\ MY\_LIBS\_TIM}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00106}00106\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00107}00107\ \textcolor{comment}{-\/\ Базовая\ инициализация\ таймеров}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00108}00108\ \textcolor{comment}{-\/\ Режимы\ прерываний}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00109}00109\ \textcolor{comment}{-\/\ Формирование\ задержек\ (блокирующие\ и\ неблокирующие)}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00110}00110\ \textcolor{comment}{-\/\ Работа\ с\ энкодерами\ (чтение\ положения,\ обработка\ кнопок)}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00111}00111\ \textcolor{comment}{-\/\ Настройка\ ШИМ\ и\ Output\ Compare}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00112}00112\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00113}00113\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00114}00114\ \textcolor{comment}{@subsection\ structure\ Структура\ проекта}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00115}00115\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00116}00116\ \textcolor{comment}{@code}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00117}00117\ \textcolor{comment}{├──\ inc/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Заголовочные\ файлы}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00118}00118\ \textcolor{comment}{│\ \ \ ├──\ mylibs\_include.h\ \ \ \ \ \#\ Главный\ include\ файл}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00119}00119\ \textcolor{comment}{│\ \ \ ├──\ mylibs\_config.h\ \ \ \ \ \ \#\ Конфигурация\ библиотек}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00120}00120\ \textcolor{comment}{│\ \ \ ├──\ mylibs\_defs.h\ \ \ \ \ \ \ \ \#\ Общие\ определения\ и\ макросы}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00121}00121\ \textcolor{comment}{│\ \ \ ├──\ bit\_access.h\ \ \ \ \ \ \ \ \ \#\ Битовый\ доступ\ к\ регистрам}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00122}00122\ \textcolor{comment}{│\ \ \ ├──\ trackers.h\ \ \ \ \ \ \ \ \ \ \ \#\ Трекеры\ для\ отладки}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00123}00123\ \textcolor{comment}{│\ \ \ ├──\ trace.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Трассировка\ и\ логирование}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00124}00124\ \textcolor{comment}{│\ \ \ ├──\ general\_gpio.h\ \ \ \ \ \ \ \#\ Работа\ с\ GPIO}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00125}00125\ \textcolor{comment}{│\ \ \ └──\ general\_tim.h\ \ \ \ \ \ \ \ \#\ Работа\ с\ таймерами}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00126}00126\ \textcolor{comment}{└──\ src/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Исходные\ файлы}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00127}00127\ \textcolor{comment}{\ \ \ \ ├──\ general\_gpio.c\ \ \ \ \ \ \ \#\ Реализация\ GPIO}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00128}00128\ \textcolor{comment}{\ \ \ \ └──\ general\_tim.c\ \ \ \ \ \ \ \ \#\ Реализация\ TIM}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00129}00129\ \textcolor{comment}{@endcode}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00130}00130\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00131}00131\ \textcolor{comment}{@subsection\ usage\_basic\ Использование}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00132}00132\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00133}00133\ \textcolor{comment}{Инструкция\ по\ подключению:}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00134}00134\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00135}00135\ \textcolor{comment}{1.\ Настройте\ конфигурацию\ @ref\ MYLIBS\_CONFIG\ в\ @ref\ mylibs\_config.h\ }} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00136}00136\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00137}00137\ \textcolor{comment}{2.\ Подключите\ главный\ заголовочный\ файл:}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00138}00138\ \textcolor{comment}{@code}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00139}00139\ \textcolor{comment}{\#include\ "{}mylibs\_include.h"{}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00140}00140\ \textcolor{comment}{@endcode}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00141}00141\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00142}00142\ \textcolor{comment}{3.\ Используйте\ нужные\ модули\ в\ своем\ коде}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00143}00143\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00144}00144\ \textcolor{comment}{@subsubsection\ gpio\_example\ Пример\ работы\ с\ GPIO}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00145}00145\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00146}00146\ \textcolor{comment}{@code}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00147}00147\ \textcolor{comment}{//\ Инициализация\ светодиода}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00148}00148\ \textcolor{comment}{MX\_GPIO\_Init();}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00149}00149\ \textcolor{comment}{GPIO\_LEDTypeDef\ led;}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00150}00150\ \textcolor{comment}{GPIO\_LED\_Init(\&led,\ GPIOA,\ GPIO\_PIN\_5,\ 1);}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00151}00151\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00152}00152\ \textcolor{comment}{//\ Включение\ светодиода}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00153}00153\ \textcolor{comment}{GPIO\_LED\_On(\&led);}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00154}00154\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00155}00155\ \textcolor{comment}{//\ Запуск\ моргания}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00156}00156\ \textcolor{comment}{GPIO\_LED\_Blink\_Start(\&led,\ 500);\ //\ Период\ 500\ мс}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00157}00157\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00158}00158\ \textcolor{comment}{//\ В\ основном\ цикле}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00159}00159\ \textcolor{comment}{while\ (1)\ \{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00160}00160\ \textcolor{comment}{GPIO\_LED\_Dynamic\_Handle(\&led);}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00161}00161\ \textcolor{comment}{\}}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00162}00162\ \textcolor{comment}{@endcode}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00163}00163\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00164}00164\ \textcolor{comment}{@subsubsection\ tim\_example\ Пример\ работы\ с\ таймером}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00165}00165\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00166}00166\ \textcolor{comment}{@code}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00167}00167\ \textcolor{comment}{//\ Настройка\ таймера}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00168}00168\ \textcolor{comment}{TIM\_SettingsTypeDef\ tim\_settings\ =\ \{0\};}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00169}00169\ \textcolor{comment}{tim\_settings.htim.Instance\ =\ TIM2;}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00170}00170\ \textcolor{comment}{tim\_settings.sTimAHBFreqMHz\ =\ SystemCoreClock;}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00171}00171\ \textcolor{comment}{tim\_settings.sTickBaseUS\ =\ TIM\_TickBase\_1MS;}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00172}00172\ \textcolor{comment}{tim\_settings.sTimFreqHz\ =\ 1000;\ //\ 1\ кГц}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00173}00173\ \textcolor{comment}{tim\_settings.sTimMode\ =\ TIM\_IT\_CONF;}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00174}00174\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00175}00175\ \textcolor{comment}{TIM\_Base\_Init(\&tim\_settings);}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00176}00176\ \textcolor{comment}{HAL\_TIM\_Base\_Start(\&tim\_settings.htim);}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00177}00177\ \textcolor{comment}{@endcode}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00178}00178\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00179}00179\ \textcolor{comment}{@subsection\ dependencies\ Зависимости}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00180}00180\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00181}00181\ \textcolor{comment}{-\/\ HAL\ библиотека\ STM32}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00182}00182\ \textcolor{comment}{-\/\ SEGGER\ RTT\ (опционально,\ для\ RTT\ трассировки)}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00183}00183\ \textcolor{comment}{-\/\ FreeRTOS\ (опционально,\ для\ FreeRTOS\ задержек)}} -\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00184}00184\ \textcolor{comment}{\ */}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00067}00067\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_TRACE\_LIB}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00068}00068\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{trace_8h}{trace.h}}"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00069}00069\ \textcolor{preprocessor}{\#else}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00070}00070\ \textcolor{preprocessor}{\#define\ my\_printf(...)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00071}00071\ \textcolor{preprocessor}{\#define\ log\_printf(TAG,\ fmt,\ ...)\ \ }} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00072}00072\ \textcolor{preprocessor}{\#define\ TRACE\_GPIO\_SET(\_gpio\_,\_pin\_)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00073}00073\ \textcolor{preprocessor}{\#define\ TRACE\_GPIO\_RESET(\_gpio\_,\_pin\_)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00074}00074\ \textcolor{preprocessor}{\#define\ RTT\_FlashPrepare(...)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00075}00075\ \textcolor{preprocessor}{\#define\ RTT\_EraseFlash(...)\ \ \ \ 0}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00076}00076\ \textcolor{preprocessor}{\#define\ RTT\_SaveToFlash(...)\ \ \ 0}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00077}00077\ \textcolor{preprocessor}{\#define\ RTT\_ReadFromFlash(...)\ 0}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00078}00078\ \textcolor{preprocessor}{\#define\ HF\_CheckRecovered(...)\ 0}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00079}00079\ \textcolor{preprocessor}{\#define\ HF\_HandleFault(...)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00080}00080\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00081}00081\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00082}00082\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_EVOLVE\_OPTIMIZER}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00083}00083\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{evolve__optimizer_8h}{evolve\_optimizer.h}}"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00084}00084\ \textcolor{preprocessor}{\#else}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00085}00085\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00086}00086\ \ \ uint16\_t\ n\_params;\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00087}00087\ \ \ uint16\_t\ n\_cand;\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00088}00088\ \ \ uint16\_t\ n\_best;\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00089}00089\ \ \ uint16\_t\ iq\_mutation;\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00090}00090\ \ \ int32\_t\ loss[0];\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00091}00091\ \ \ int32\_t\ candidates[0][0];\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00092}00092\ \}\ \mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}};} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00093}00093\ \textcolor{preprocessor}{\#define\ EvolveOptimizer\_Init(opt,\ n\_params,\ n\_cand,\ n\_best,\ iq\_mutation,\ start\_params)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00094}00094\ \textcolor{preprocessor}{\#define\ EvolveOptimizer\_Step(opt,\ params,\ LossFunc)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00095}00095\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE\_Q16(x,\ min\_val,\ max\_val)\ \ \ \ \ \ \ \ \ \ \ \ (x)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00096}00096\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE\_Q16(q16\_val,\ min\_val,\ max\_val)\ \ \ \ (q16\_val)}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00097}00097\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00098}00098\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00099}00099\ \textcolor{preprocessor}{\#ifdef\ INCLUDE\_GENERAL\_PERIPH\_LIBS}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00100}00100\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00101}00101\ \textcolor{preprocessor}{\#include\ "{}general\_flash.h"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00102}00102\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__gpio_8h}{general\_gpio.h}}"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00103}00103\ \textcolor{preprocessor}{\#ifdef\ HAL\_SPI\_MODULE\_ENABLED}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00104}00104\ \textcolor{preprocessor}{\#include\ "{}general\_spi.h"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00105}00105\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00106}00106\ \textcolor{preprocessor}{\#ifdef\ HAL\_UART\_MODULE\_ENABLED}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00107}00107\ \textcolor{preprocessor}{\#include\ "{}general\_uart.h"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00108}00108\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00109}00109\ \textcolor{preprocessor}{\#ifdef\ HAL\_TIM\_MODULE\_ENABLED}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00110}00110\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__tim_8h}{general\_tim.h}}"{}}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00111}00111\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00112}00112\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00113}00113\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//INCLUDE\_GENERAL\_PERIPH\_LIBS}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00114}00114\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00115}00115\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00116}00116\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00117}00117\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00118}00118\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00119}00119\ \textcolor{comment}{//\ user\ includes}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00120}00120\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00121}00121\ \textcolor{comment}{//\ user\ settings}\textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00122}00122\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00123}00123\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00124}00124\ } +\DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00125}00125\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_MYLIBS\_INCLUDE\_H\_}} \end{DoxyCode} diff --git a/Doc/latex/refman.tex b/Doc/latex/refman.tex index 6fd13d0..31821a5 100644 --- a/Doc/latex/refman.tex +++ b/Doc/latex/refman.tex @@ -243,6 +243,7 @@ \chapter{Topic Documentation} \input{group___m_y_l_i_b_s___a_l_l} \chapter{Class Documentation} +\input{struct_evolve_optimizer__t} \input{struct_g_p_i_o___l_e_d_type_def} \input{struct_g_p_i_o___switch_type_def} \input{struct_h_f___stack_frame__t} @@ -261,6 +262,8 @@ \input{____general__uart_8h_source} \input{bit__access_8h} \input{bit__access_8h_source} +\input{evolve__optimizer_8h} +\input{evolve__optimizer_8h_source} \input{general__gpio_8h} \input{general__gpio_8h_source} \input{general__tim_8h} @@ -275,6 +278,7 @@ \input{trace_8h_source} \input{trackers_8h} \input{trackers_8h_source} +\input{mainpage_8h_source} \input{____general__flash_8c_source} \input{____general__spi_8c_source} \input{____general__uart_8c_source} diff --git a/Doc/latex/struct_evolve_optimizer__t.tex b/Doc/latex/struct_evolve_optimizer__t.tex new file mode 100644 index 0000000..cd7a322 --- /dev/null +++ b/Doc/latex/struct_evolve_optimizer__t.tex @@ -0,0 +1,143 @@ +\doxysection{Evolve\+Optimizer\+\_\+t Struct Reference} +\hypertarget{struct_evolve_optimizer__t}{}\label{struct_evolve_optimizer__t}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}} + + +Структура эволюционного оптимизатора + + + + +{\ttfamily \#include $<$evolve\+\_\+optimizer.\+h$>$} + +\doxysubsubsection*{Public Attributes} +\begin{DoxyCompactItemize} +\item +uint16\+\_\+t \mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\+\_\+params}} +\begin{DoxyCompactList}\small\item\em Количество параметров \end{DoxyCompactList}\item +uint16\+\_\+t \mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\+\_\+cand}} +\begin{DoxyCompactList}\small\item\em Количество кандидатов \end{DoxyCompactList}\item +uint16\+\_\+t \mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\+\_\+best}} +\begin{DoxyCompactList}\small\item\em Количество лучших, усредняемых \end{DoxyCompactList}\item +uint16\+\_\+t \mbox{\hyperlink{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}{iq\+\_\+mutation}} +\begin{DoxyCompactList}\small\item\em Амплитуда мутации в Q16.\+16. \end{DoxyCompactList}\item +uint16\+\_\+t \mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\+\_\+index}} +\begin{DoxyCompactList}\small\item\em Индекс кандидата для обработки \end{DoxyCompactList}\item +int32\+\_\+t \mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}} \mbox{[}100\mbox{]} +\begin{DoxyCompactList}\small\item\em Loss для каждого кандидата \end{DoxyCompactList}\item +int32\+\_\+t \mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}} \mbox{[}100\mbox{]}\mbox{[}20\mbox{]} +\begin{DoxyCompactList}\small\item\em Параметры кандидатов \end{DoxyCompactList}\end{DoxyCompactItemize} + + +\doxysubsection{Detailed Description} +Структура эволюционного оптимизатора + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00081}{81}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + + + +\label{doc-variable-members} +\Hypertarget{struct_evolve_optimizer__t_doc-variable-members} +\doxysubsection{Member Data Documentation} +\Hypertarget{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!n\_params@{n\_params}} +\index{n\_params@{n\_params}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} +\doxysubsubsection{\texorpdfstring{n\_params}{n\_params}} +{\footnotesize\ttfamily \label{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8} +uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::n\+\_\+params} + + + +Количество параметров + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00082}{82}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + +\Hypertarget{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!n\_cand@{n\_cand}} +\index{n\_cand@{n\_cand}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} +\doxysubsubsection{\texorpdfstring{n\_cand}{n\_cand}} +{\footnotesize\ttfamily \label{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1} +uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::n\+\_\+cand} + + + +Количество кандидатов + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00083}{83}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + +\Hypertarget{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!n\_best@{n\_best}} +\index{n\_best@{n\_best}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} +\doxysubsubsection{\texorpdfstring{n\_best}{n\_best}} +{\footnotesize\ttfamily \label{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6} +uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::n\+\_\+best} + + + +Количество лучших, усредняемых + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00084}{84}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + +\Hypertarget{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!iq\_mutation@{iq\_mutation}} +\index{iq\_mutation@{iq\_mutation}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} +\doxysubsubsection{\texorpdfstring{iq\_mutation}{iq\_mutation}} +{\footnotesize\ttfamily \label{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5} +uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::iq\+\_\+mutation} + + + +Амплитуда мутации в Q16.\+16. + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00085}{85}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + +\Hypertarget{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!cand\_index@{cand\_index}} +\index{cand\_index@{cand\_index}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} +\doxysubsubsection{\texorpdfstring{cand\_index}{cand\_index}} +{\footnotesize\ttfamily \label{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae} +uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::cand\+\_\+index} + + + +Индекс кандидата для обработки + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00086}{86}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + +\Hypertarget{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!loss@{loss}} +\index{loss@{loss}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} +\doxysubsubsection{\texorpdfstring{loss}{loss}} +{\footnotesize\ttfamily \label{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d} +int32\+\_\+t Evolve\+Optimizer\+\_\+t\+::loss\mbox{[}100\mbox{]}} + + + +Loss для каждого кандидата + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00087}{87}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + +\Hypertarget{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!candidates@{candidates}} +\index{candidates@{candidates}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} +\doxysubsubsection{\texorpdfstring{candidates}{candidates}} +{\footnotesize\ttfamily \label{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d} +int32\+\_\+t Evolve\+Optimizer\+\_\+t\+::candidates\mbox{[}100\mbox{]}\mbox{[}20\mbox{]}} + + + +Параметры кандидатов + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00088}{88}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + + + +The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} +\item +E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{evolve__optimizer_8h}{evolve\+\_\+optimizer.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/struct_t_i_m___encoder_type_def.tex b/Doc/latex/struct_t_i_m___encoder_type_def.tex index fba5496..8249b12 100644 --- a/Doc/latex/struct_t_i_m___encoder_type_def.tex +++ b/Doc/latex/struct_t_i_m___encoder_type_def.tex @@ -11,8 +11,7 @@ -Collaboration diagram for TIM\+\_\+\+Encoder\+Type\+Def\+: -\nopagebreak +Collaboration diagram for TIM\+\_\+\+Encoder\+Type\+Def\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/struct_t_i_m___encoder_type_def__coll__graph.pdf b/Doc/latex/struct_t_i_m___encoder_type_def__coll__graph.pdf index 9e3d4a4..516acf7 100644 Binary files a/Doc/latex/struct_t_i_m___encoder_type_def__coll__graph.pdf and b/Doc/latex/struct_t_i_m___encoder_type_def__coll__graph.pdf differ diff --git a/Doc/latex/topics.tex b/Doc/latex/topics.tex index 61d5bd7..03634c8 100644 --- a/Doc/latex/topics.tex +++ b/Doc/latex/topics.tex @@ -5,11 +5,13 @@ Here is a list of all topics with brief descriptions\+:\begin{DoxyCompactList} \item \contentsline{section}{Configs}{\pageref{group___m_y_l_i_b_s___c_o_n_f_i_g}}{} \begin{DoxyCompactList} \item \contentsline{section}{Trace configs}{\pageref{group___t_r_a_c_e___c_o_n_f_i_g}}{} +\item \contentsline{section}{Evolve configs}{\pageref{group___e_v_o_l_v_e___c_o_n_f_i_g}}{} \item \contentsline{section}{Libraries configs}{\pageref{group___l_i_b_s___c_o_n_f_i_g}}{} \end{DoxyCompactList} -\item \contentsline{section}{General Defines}{\pageref{group___m_y_l_i_b_s___d_e_f_i_n_e_s}}{} +\item \contentsline{section}{General Tools}{\pageref{group___m_y_l_i_b_s___d_e_f_i_n_e_s}}{} \begin{DoxyCompactList} \item \contentsline{section}{Bit access defines}{\pageref{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}}{} +\item \contentsline{section}{Evolve optimizer}{\pageref{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r}}{} \item \contentsline{section}{Error Handler defines}{\pageref{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}}{} \item \contentsline{section}{Delays defines}{\pageref{group___d_e_l_a_y_s___d_e_f_i_n_e_s}}{} \item \contentsline{section}{Utils defines}{\pageref{group___u_t_i_l_s___d_e_f_i_n_e_s}}{} diff --git a/Doc/latex/trace_8h.tex b/Doc/latex/trace_8h.tex index cd956cb..34b2516 100644 --- a/Doc/latex/trace_8h.tex +++ b/Doc/latex/trace_8h.tex @@ -8,16 +8,14 @@ {\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline {\ttfamily \#include $<$string.\+h$>$}\newline {\ttfamily \#include "{}SEGGER\+\_\+\+RTT.\+h"{}}\newline -Include dependency graph for trace.\+h\+: -\nopagebreak +Include dependency graph for trace.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=337pt]{trace_8h__incl} \end{center} \end{figure} -This graph shows which files directly or indirectly include this file\+: -\nopagebreak +This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/trace_8h__dep__incl.pdf b/Doc/latex/trace_8h__dep__incl.pdf index 0e6a66b..ae17096 100644 Binary files a/Doc/latex/trace_8h__dep__incl.pdf and b/Doc/latex/trace_8h__dep__incl.pdf differ diff --git a/Doc/latex/trace_8h__incl.pdf b/Doc/latex/trace_8h__incl.pdf index 5e2469f..53119aa 100644 Binary files a/Doc/latex/trace_8h__incl.pdf and b/Doc/latex/trace_8h__incl.pdf differ diff --git a/Doc/latex/trackers_8h.tex b/Doc/latex/trackers_8h.tex index 9b09a0e..b00b13c 100644 --- a/Doc/latex/trackers_8h.tex +++ b/Doc/latex/trackers_8h.tex @@ -6,16 +6,14 @@ {\ttfamily \#include "{}mylibs\+\_\+defs.\+h"{}}\newline -Include dependency graph for trackers.\+h\+: -\nopagebreak +Include dependency graph for trackers.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=229pt]{trackers_8h__incl} \end{center} \end{figure} -This graph shows which files directly or indirectly include this file\+: -\nopagebreak +This graph shows which files directly or indirectly include this file\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/Doc/latex/trackers_8h__dep__incl.pdf b/Doc/latex/trackers_8h__dep__incl.pdf index 82a2eab..26999c4 100644 Binary files a/Doc/latex/trackers_8h__dep__incl.pdf and b/Doc/latex/trackers_8h__dep__incl.pdf differ diff --git a/Doc/latex/trackers_8h__incl.pdf b/Doc/latex/trackers_8h__incl.pdf index 2415d89..2282aec 100644 Binary files a/Doc/latex/trackers_8h__incl.pdf and b/Doc/latex/trackers_8h__incl.pdf differ diff --git a/Doc/latex/trackers_8h_source.tex b/Doc/latex/trackers_8h_source.tex index bfc2bba..0cb113a 100644 --- a/Doc/latex/trackers_8h_source.tex +++ b/Doc/latex/trackers_8h_source.tex @@ -138,25 +138,31 @@ \DoxyCodeLine{\Hypertarget{trackers_8h_source_l00134}00134\ \ \ } \DoxyCodeLine{\Hypertarget{trackers_8h_source_l00135}00135\ \textcolor{preprocessor}{\ \ \#define\ TrackerTypeDef(num\_user\_vars)\ void\ *}} \DoxyCodeLine{\Hypertarget{trackers_8h_source_l00136}00136\ } -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00137}00137\ \textcolor{preprocessor}{\ \ \#define\ num\_of\_usercnts(\_user\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00138}00138\ \textcolor{preprocessor}{\ \ \#define\ assert\_tracecnt(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00139}00139\ } -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00140}00140\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00141}00141\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00142}00142\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00143}00143\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_User(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00144}00144\ \textcolor{preprocessor}{\ \ \#define\ TrackerWrite\_User(\_cntstruct\_,\ \_uservarnumb\_,\ \_val\_)\ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00145}00145\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00146}00146\ \textcolor{comment}{\ \ /**\ @brief\ Очистка\ всей\ структуры\ */}} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00147}00147\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_All(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00148}00148\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00149}00149\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00150}00150\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00151}00151\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_User(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00152}00152\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_UserAll(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00153}00153\ } -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00154}00154\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//TRACKERS\_ENABLE}} -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00155}00155\ \ \ } -\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00156}00156\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_TRACKERS\_H\_}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00137}00137\ \textcolor{preprocessor}{\ \ \#define\ num\_of\_usercnts(\_user\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00138}00138\ \textcolor{preprocessor}{\ \ \#define\ assert\_tracecnt(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ 0}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00139}00139\ \textcolor{preprocessor}{\ \ \#define\ if\_assert\_usertracker(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ if(0)}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00140}00140\ \textcolor{preprocessor}{\ \ \#define\ tern\_assert\_usertracker(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ 0}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00141}00141\ } +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00142}00142\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dummy}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00143}00143\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dummy}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00144}00144\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dummy\ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00145}00145\ \textcolor{preprocessor}{\ \ \#define\ TrackerGet\_User(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ dummy}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00146}00146\ \ \ } +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00147}00147\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00148}00148\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00149}00149\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00150}00150\ \textcolor{preprocessor}{\ \ \#define\ TrackerCnt\_User(\_cntstruct\_,\ \_uservarnumb\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00151}00151\ \textcolor{preprocessor}{\ \ \#define\ TrackerWrite\_User(\_cntstruct\_,\ \_uservarnumb\_,\ \_val\_)}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00152}00152\ } +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00153}00153\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_All(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00154}00154\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Ok(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00155}00155\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Err(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00156}00156\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_Warn(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00157}00157\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_User(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00158}00158\ \textcolor{preprocessor}{\ \ \#define\ TrackerClear\_UserAll(\_cntstruct\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00159}00159\ } +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00160}00160\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//TRACKERS\_ENABLE}} +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00161}00161\ \ \ } +\DoxyCodeLine{\Hypertarget{trackers_8h_source_l00162}00162\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\_\_TRACKERS\_H\_}} \end{DoxyCode} diff --git a/MyLibsGeneral/Inc/evolve_optimizer.h b/MyLibsGeneral/Inc/evolve_optimizer.h new file mode 100644 index 0000000..d011766 --- /dev/null +++ b/MyLibsGeneral/Inc/evolve_optimizer.h @@ -0,0 +1,273 @@ +/** +****************************************************************************** +* @file evolve_optimizer.h +* @brief Заголовочный файл для адаптивного подбора параметров +****************************************************************************** +* @addtogroup EVOLVE_OPTIMIZER Evolve optimizer +* @ingroup MYLIBS_DEFINES +* @brief Библиотека для эволюционного подбора параметров +* @details +Поддерживает: +- Любое количество параметров +- Генерацию новых параметров на основе лучших кандидатов +- Мутацию для поиска оптимальных параметров +- Несколько независимых оптимизаторов в одной программе + +Если библиотека отключена @ref ENABLE_EVOLVE_OPTIMIZATION, то вставляются +заглушки, никак не влияющие на параметры и остальную программу + +@par Пример использования: +@code +#include "evolve_optimizer.h" +#define N_PARAMS 4 +#define N_CANDIDATES 100 +#define N_BEST 10 +#define IQ_MUTATION (PARAM_SCALE_Q16(0.1, 0, 1)) +int32_t params[N_PARAMS]; +EvolveOptimizer_t optimizer; + +// Формирование параметров +uint16_t param_u16 = 800; +float param_f = 0.01f; +uint8_t param_u8 = 40; +int16_t param_i16 = 1600; +params[0] = PARAM_SCALE_Q16(param_u16, 0, 1000); +params[1] = PARAM_SCALE_Q16(param_f, 0.001f, 0.1f); +params[2] = PARAM_SCALE_Q16(param_u8, 10, 100); +params[3] = PARAM_SCALE_Q16(param_i16, 500, 5000); + +// Инициалиазция +EvolveOptimizer_Init(&optimizer, N_PARAMS, N_CANDIDATES, N_BEST, IQ_MUTATION, params); + +// Шаг эволюции +int32_t loss = calc_iq_loss(); // расчет эффективности параметров +EvolveOptimizer_Step(&optimizer, params, loss); + +// Взятие следующих для эволюции параметров +param_u16 = PARAM_UNSCALE_Q16(params[0], 0, 1000); +param_f = PARAM_UNSCALE_Q16(params[1], 0.001f, 0.1f); +param_u8 = PARAM_UNSCALE_Q16(params[2], 10, 100); +param_i16 = PARAM_UNSCALE_Q16(params[3], 500, 5000); +@endcode +* @{ +*****************************************************************************/ +#ifndef __EVOLVE_OPTIMIZER_H_ +#define __EVOLVE_OPTIMIZER_H_ + +#include "mylibs_defs.h" +#include +#include + +#ifdef ENABLE_EVOLVE_OPTIMIZATION +/** + * @brief Линейное масштабирование x из диапазона [min_val, max_val] в Q16.16 [0, 65536) + */ +#define PARAM_SCALE_Q16(x, min_val, max_val) \ +((int32_t)((((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val))) * 65536.0f)) + +/** + * @brief Обратное линейное масштабирование Q16.16 значения в диапазон [min_val, max_val] + */ +#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) \ +(((float)(q16_val) / 65536.0f) * ((float)(max_val) - (float)(min_val)) + (float)(min_val)) + + +/** + * @brief Структура эволюционного оптимизатора + */ +typedef struct { + uint16_t n_params; ///< Количество параметров + uint16_t n_cand; ///< Количество кандидатов + uint16_t n_best; ///< Количество лучших, усредняемых + uint16_t iq_mutation; ///< Амплитуда мутации в Q16.16 + uint16_t cand_index; ///< Индекс кандидата для обработки + int32_t loss[EVOLVE_MAX_CANDIDATES]; ///< Loss для каждого кандидата + int32_t candidates[EVOLVE_MAX_CANDIDATES][EVOLVE_MAX_PARAMS]; ///< Параметры кандидатов + uint16_t sorted_idx[EVOLVE_MAX_CANDIDATES]; ///< Индексы отсортированных кандидатов +} EvolveOptimizer_t; + + + +/** + * @cond EVOLVE_INTERNAL + */ +#define Q16_MUL(a,b) ((int32_t)(((int64_t)(a) * (int64_t)(b)) >> 16)) + +// Вспомогательный указатель для сортировки +static EvolveOptimizer_t *g_sort_opt; // глобальный указатель на текущий оптимизатор + +static int cmp_idx(const void *a, const void *b) { + if (g_sort_opt->loss[*(const uint16_t*)a] < g_sort_opt->loss[*(const uint16_t*)b]) + return -1; + if (g_sort_opt->loss[*(const uint16_t*)a] > g_sort_opt->loss[*(const uint16_t*)b]) + return 1; + return 0; +} +/** @endcond */ + + + + + +/** + * @brief Инициализация эволюционного оптимизатора. + * @param opt Указатель на структуру оптимизатора + * @param n_params Количество параметров в одном кандидате + * @param n_cand Количество кандидатов + * @param n_best Количество лучших, усредняемых + * @param iq_mutation Амплитуда мутации в Q16.16 + * @param start_params Начальные параметры (Q16.16) + */ +__STATIC_INLINE HAL_StatusTypeDef EvolveOptimizer_Init(EvolveOptimizer_t* opt, + uint16_t n_params, + uint16_t n_cand, + uint16_t n_best, + uint16_t iq_mutation, + int32_t* start_params) +{ + if(check_null_ptr_2(opt, start_params)) + return HAL_ERROR; + + if(n_params > EVOLVE_MAX_PARAMS) + return HAL_ERROR; + opt->n_params = n_params; + + if(n_cand > EVOLVE_MAX_CANDIDATES) + return HAL_ERROR; + opt->n_cand = n_cand; + + if(n_best > EVOLVE_MAX_CANDIDATES/2) + return HAL_ERROR; + opt->n_best = n_best; + + if(iq_mutation > 32768) + return HAL_ERROR; + opt->iq_mutation = iq_mutation; + + for (uint16_t i = 0; i < n_cand; i++) { + for (uint16_t j = 0; j < n_params; j++) { + opt->candidates[i][j] = start_params[j]; + } + opt->loss[i] = 0; + } + uint32_t seed = HAL_GetTick() + (ADC1->DR & 0xFF); + srand(seed); + + return HAL_OK; +} + + +/** + * @brief Один шаг эволюционного оптимизатора. + * @param opt Указатель на структуру оптимизатора + * @param params Массив параметров, которые будут обновлены (на выходе — новые параметры) + * @param loss Loss текущего кандидата (Q16.16) + * @details + * Сохраняет loss текущего кандидата и формирует параметры следующего кандидата. + * Если накоплено n_cand кандидатов, генерируется новое поколение. + * Новое поколение формируется случайным выбором из n_best лучших с добавлением мутации. + * + * На выходе params содержит параметры следующего кандидата для измерений. + * @note Функция использует глобальную внутреннюю переменную для сортировки. + * Надо убедится что только один экземпляр функции запущен в момент времени + */ +__STATIC_INLINE HAL_StatusTypeDef EvolveOptimizer_Step(EvolveOptimizer_t* opt, + int32_t* params, + int32_t loss) +{ + if(check_null_ptr_2(opt, params)) + return HAL_ERROR; + + uint16_t n_params = opt->n_params; + if(n_params > EVOLVE_MAX_PARAMS) + return HAL_ERROR; + + uint16_t n_cand = opt->n_cand; + if(n_cand > EVOLVE_MAX_CANDIDATES) + return HAL_ERROR; + + uint16_t n_best = opt->n_best; + if(n_best > EVOLVE_MAX_CANDIDATES/2) + return HAL_ERROR; + + uint16_t mut = opt->iq_mutation; + if(mut > 32768) + return HAL_ERROR; + + // 1. Сохраняем loss текущего кандидата + opt->loss[opt->cand_index] = loss; + opt->cand_index++; + + if (opt->cand_index >= n_cand) { + // 2. Сортируем текущее поколение по loss + for(uint16_t i = 0; i < opt->n_cand; i++) + opt->sorted_idx[i] = i; + + g_sort_opt = opt; + qsort(opt->sorted_idx, opt->n_cand, sizeof(uint16_t), cmp_idx); + g_sort_opt = NULL; +// for (uint16_t i = 0; i < n_cand - 1; i++) { +// for (uint16_t j = i + 1; j < n_cand; j++) { +// if (opt->loss[j] < opt->loss[i]) { +// int32_t tmp_loss = opt->loss[i]; +// opt->loss[i] = opt->loss[j]; +// opt->loss[j] = tmp_loss; + +// for (uint16_t k = 0; k < n_params; k++) { +// int32_t tmp = opt->candidates[i][k]; +// opt->candidates[i][k] = opt->candidates[j][k]; +// opt->candidates[j][k] = tmp; +// } +// } +// } +// } + + // 3. Генерируем новое поколение: каждый кандидат берется случайно из лучших с мутацией + uint16_t n_elite = 2; // количество элитных кандидатов, которые сохраняем без изменений + for (uint16_t c = 0; c < n_cand; c++) { + if (c < n_elite) { + // Копируем лучших кандидатов напрямую без мутации + for (uint16_t i = 0; i < n_params; i++) { + opt->candidates[c][i] = opt->candidates[opt->sorted_idx[c]][i]; // просто сохраняем параметры + } + opt->loss[c] = 0; + } else { + // Остальные кандидаты формируются с кроссовером и мутацией + for (uint16_t i = 0; i < n_params; i++) { + int32_t noise = (rand() % (2 * mut)) - mut; + uint16_t parent = opt->sorted_idx[rand() % opt->n_best]; // каждый параметр из случайного лучшего + opt->candidates[c][i] = opt->candidates[parent][i] + noise; + } + opt->loss[c] = 0; + } + } + opt->cand_index = 0; + } + + // 4. Возвращаем параметры следующего кандидата + for (uint16_t i = 0; i < opt->n_params; i++) + params[i] = opt->candidates[opt->cand_index][i]; + + return HAL_OK; +} +#else // ENABLE_EVOLVE_OPTIMIZATION +//заглушки +typedef struct { + uint16_t n_params; + uint16_t n_cand; + uint16_t n_best; + uint16_t iq_mutation; + int32_t loss[0]; + int32_t candidates[0][0]; +} EvolveOptimizer_t; +#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, iq_mutation, start_params) +#define EvolveOptimizer_Step(opt, params, LossFunc) +#define PARAM_SCALE_Q16(x, min_val, max_val) (x) +#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) (q16_val) +#endif // ENABLE_EVOLVE_OPTIMIZATION + +#endif // __EVOLVE_OPTIMIZER_H_ + +/** EVOLVE_OPTIMIZER + * @} + */ diff --git a/MyLibsGeneral/Inc/mylibs_config.h b/MyLibsGeneral/Inc/mylibs_config.h index 4365a9b..cb15e9f 100644 --- a/MyLibsGeneral/Inc/mylibs_config.h +++ b/MyLibsGeneral/Inc/mylibs_config.h @@ -54,6 +54,21 @@ */ +/** + * @addtogroup EVOLVE_CONFIG Evolve configs + * @ingroup MYLIBS_CONFIG + * @brief Конфигурация однослойного персептрона и алгоритма обучения + * @{ + */ + +#define ENABLE_EVOLVE_OPTIMIZATION ///< Включить оптимизацию параметров +#define EVOLVE_MAX_PARAMS 20 ///< Максимальное количество параметров +#define EVOLVE_MAX_CANDIDATES 100 ///< Максимальное количество кандидатов для обучения + +/** EVOLVE_CONFIG + * @} + */ + /** * @addtogroup LIBS_CONFIG Libraries configs @@ -62,6 +77,7 @@ * @{ */ +#define INCLUDE_EVOLVE_OPTIMIZER ///< Подключить библиотеку для оптимизации параметров #define INCLUDE_BIT_ACCESS_LIB ///< Подключить библиотеку с typedef с битовыми полями #define INCLUDE_TRACKERS_LIB ///< Подключить библиотеку с трекерами #define INCLUDE_TRACE_LIB ///< Подключить библиотеку с трейсами diff --git a/MyLibsGeneral/Inc/mylibs_defs.h b/MyLibsGeneral/Inc/mylibs_defs.h index 9d2a22f..2a2749c 100644 --- a/MyLibsGeneral/Inc/mylibs_defs.h +++ b/MyLibsGeneral/Inc/mylibs_defs.h @@ -3,7 +3,7 @@ * @file mylibs_defs.h * @brief Заголочный файл для дефайнов библиотеки MyLibsGeneral. ************************************************************************** -* @defgroup MYLIBS_DEFINES General Defines +* @defgroup MYLIBS_DEFINES General Tools * @ingroup MYLIBS_ALL * @brief Общие макросы и typedef'ы, используемые по всему проекту * @@ -54,10 +54,6 @@ extern void Error_Handler(void); */ -/*************************************************************************** -********************************ACCESS_DEFINES*****************************/ - - /*************************************************************************** ******************************DELAYS_DEFINES*******************************/ /** @@ -137,7 +133,8 @@ extern void Error_Handler(void); /*************************************************************************** -*******************************MATH_DEFINES********************************/ +*******************************UTIL_DEFINES********************************/ +static int dummy; /** * @addtogroup UTILS_DEFINES Utils defines * @ingroup MYLIBS_DEFINES diff --git a/MyLibsGeneral/Inc/mylibs_include.h b/MyLibsGeneral/Inc/mylibs_include.h index 6c92fe8..5a0fd2d 100644 --- a/MyLibsGeneral/Inc/mylibs_include.h +++ b/MyLibsGeneral/Inc/mylibs_include.h @@ -30,6 +30,8 @@ #ifdef ARM_MATH_CM4 #include "arm_math.h" +#else + #include "math.h" #endif @@ -39,13 +41,60 @@ #ifdef INCLUDE_TRACKERS_LIB #include "trackers.h" +#else + #define TrackerTypeDef(num_user_vars) void * + #define num_of_usercnts(_user_) 0 + #define assert_tracecnt(_cntstruct_, _uservarnumb_) 0 + #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(0) + #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) 0 + #define TrackerGet_Ok(_cntstruct_) dummy + #define TrackerGet_Err(_cntstruct_) dummy + #define TrackerGet_Warn(_cntstruct_) dummy + #define TrackerGet_User(_cntstruct_, _uservarnumb_) dummy + #define TrackerCnt_Ok(_cntstruct_) + #define TrackerCnt_Err(_cntstruct_) + #define TrackerCnt_Warn(_cntstruct_) + #define TrackerCnt_User(_cntstruct_, _uservarnumb_) + #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_) + #define TrackerClear_All(_cntstruct_) + #define TrackerClear_Ok(_cntstruct_) + #define TrackerClear_Err(_cntstruct_) + #define TrackerClear_Warn(_cntstruct_) + #define TrackerClear_User(_cntstruct_) + #define TrackerClear_UserAll(_cntstruct_) #endif #ifdef INCLUDE_TRACE_LIB #include "trace.h" +#else +#define my_printf(...) +#define log_printf(TAG, fmt, ...) +#define TRACE_GPIO_SET(_gpio_,_pin_) +#define TRACE_GPIO_RESET(_gpio_,_pin_) +#define RTT_FlashPrepare(...) +#define RTT_EraseFlash(...) 0 +#define RTT_SaveToFlash(...) 0 +#define RTT_ReadFromFlash(...) 0 +#define HF_CheckRecovered(...) 0 +#define HF_HandleFault(...) #endif - +#ifdef INCLUDE_EVOLVE_OPTIMIZER +#include "evolve_optimizer.h" +#else +typedef struct { + uint16_t n_params; + uint16_t n_cand; + uint16_t n_best; + uint16_t iq_mutation; + int32_t loss[0]; + int32_t candidates[0][0]; +} EvolveOptimizer_t; +#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, iq_mutation, start_params) +#define EvolveOptimizer_Step(opt, params, LossFunc) +#define PARAM_SCALE_Q16(x, min_val, max_val) (x) +#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) (q16_val) +#endif #ifdef INCLUDE_GENERAL_PERIPH_LIBS @@ -73,112 +122,4 @@ /////////////////////////---USER SETTINGS---///////////////////////// -#endif // __MYLIBS_INCLUDE_H_ - -/** -@mainpage - -@section overview Обзор -MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32. - -@subsection features Основные возможности - -@subsubsection utils_module Общие утилиты @ref MYLIBS_DEFINES -- Битовый доступ к регистрам через union -- Трекеры для статистики и отладки -- Макросы для задержек и утилит -- Поддержка FreeRTOS - -@subsubsection trace_module Трассировка @ref TRACE - -- Serial трассировка через SWO и RTT -- GPIO трассировка для отладки -- Сохранение логов в Flash память -- Обработка HardFault с сохранением контекста - -@subsubsection gpio_module Модуль GPIO @ref MY_LIBS_GPIO -- Управление светодиодами (включение/выключение, моргание, плавное затухание) -- Работа с кнопками (чтение состояния, фильтрация дребезга) -- Инициализация портов и тактирования -- Поддержка альтернативных функций - -@subsubsection tim_module Модуль таймеров @ref MY_LIBS_TIM - -- Базовая инициализация таймеров -- Режимы прерываний -- Формирование задержек (блокирующие и неблокирующие) -- Работа с энкодерами (чтение положения, обработка кнопок) -- Настройка ШИМ и Output Compare - - -@subsection structure Структура проекта - -@code -├── inc/ # Заголовочные файлы -│ ├── mylibs_include.h # Главный include файл -│ ├── mylibs_config.h # Конфигурация библиотек -│ ├── mylibs_defs.h # Общие определения и макросы -│ ├── bit_access.h # Битовый доступ к регистрам -│ ├── trackers.h # Трекеры для отладки -│ ├── trace.h # Трассировка и логирование -│ ├── general_gpio.h # Работа с GPIO -│ └── general_tim.h # Работа с таймерами -└── src/ # Исходные файлы - ├── general_gpio.c # Реализация GPIO - └── general_tim.c # Реализация TIM -@endcode - -@subsection usage_basic Использование - -Инструкция по подключению: - -1. Настройте конфигурацию @ref MYLIBS_CONFIG в @ref mylibs_config.h - -2. Подключите главный заголовочный файл: -@code -#include "mylibs_include.h" -@endcode - -3. Используйте нужные модули в своем коде - -@subsubsection gpio_example Пример работы с GPIO - -@code -// Инициализация светодиода -MX_GPIO_Init(); -GPIO_LEDTypeDef led; -GPIO_LED_Init(&led, GPIOA, GPIO_PIN_5, 1); - -// Включение светодиода -GPIO_LED_On(&led); - -// Запуск моргания -GPIO_LED_Blink_Start(&led, 500); // Период 500 мс - -// В основном цикле -while (1) { -GPIO_LED_Dynamic_Handle(&led); -} -@endcode - -@subsubsection tim_example Пример работы с таймером - -@code -// Настройка таймера -TIM_SettingsTypeDef tim_settings = {0}; -tim_settings.htim.Instance = TIM2; -tim_settings.sTimAHBFreqMHz = SystemCoreClock; -tim_settings.sTickBaseUS = TIM_TickBase_1MS; -tim_settings.sTimFreqHz = 1000; // 1 кГц -tim_settings.sTimMode = TIM_IT_CONF; - -TIM_Base_Init(&tim_settings); -HAL_TIM_Base_Start(&tim_settings.htim); -@endcode - -@subsection dependencies Зависимости - -- HAL библиотека STM32 -- SEGGER RTT (опционально, для RTT трассировки) -- FreeRTOS (опционально, для FreeRTOS задержек) - */ \ No newline at end of file +#endif // __MYLIBS_INCLUDE_H_ \ No newline at end of file diff --git a/MyLibsGeneral/Inc/trackers.h b/MyLibsGeneral/Inc/trackers.h index 0c8718f..cc6e0d7 100644 --- a/MyLibsGeneral/Inc/trackers.h +++ b/MyLibsGeneral/Inc/trackers.h @@ -134,16 +134,22 @@ #define TrackerTypeDef(num_user_vars) void * - #define num_of_usercnts(_user_) - #define assert_tracecnt(_cntstruct_, _uservarnumb_) + #define num_of_usercnts(_user_) 0 + #define assert_tracecnt(_cntstruct_, _uservarnumb_) 0 + #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(0) + #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) 0 + #define TrackerGet_Ok(_cntstruct_) dummy + #define TrackerGet_Err(_cntstruct_) dummy + #define TrackerGet_Warn(_cntstruct_) dummy + #define TrackerGet_User(_cntstruct_, _uservarnumb_) dummy + #define TrackerCnt_Ok(_cntstruct_) #define TrackerCnt_Err(_cntstruct_) #define TrackerCnt_Warn(_cntstruct_) #define TrackerCnt_User(_cntstruct_, _uservarnumb_) - #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_) + #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_) - /** @brief Очистка всей структуры */ #define TrackerClear_All(_cntstruct_) #define TrackerClear_Ok(_cntstruct_) #define TrackerClear_Err(_cntstruct_) diff --git a/MyLibsGeneral/mainpage.h b/MyLibsGeneral/mainpage.h new file mode 100644 index 0000000..de2c943 --- /dev/null +++ b/MyLibsGeneral/mainpage.h @@ -0,0 +1,104 @@ + +/** +@mainpage + +@section overview Обзор +MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32. + +@subsection features Основные возможности + +@subsubsection utils_module Общие утилиты (@ref MYLIBS_DEFINES) +- Макросы для задержек и утилит (@ref DELAYS_DEFINES и @ref UTILS_DEFINES) +- Трекеры для статистики и отладки (@ref TRACKERS и @ref TRACE) +- Эволюционный алгоритм для оптимизации параметров (@ref EVOLVE_OPTIMIZER) +- Битовый доступ к регистрам через union (@ref BIT_ACCESS_DEFINES) + +@subsubsection trace_module Трассировка @ref TRACE +- Serial трассировка через SWO и RTT (@ref TRACE_SERIAL) +- GPIO трассировка для отладки (@ref TRACE_GPIO) +- Сохранение логов в Flash память (@ref TRACE_RTT_FLASH) +- Обработка HardFault с сохранением контекста (@ref TRACE_HARDFAULT) + +@subsubsection gpio_module Модуль GPIO @ref MY_LIBS_GPIO +- Инициализация портов и тактирования (@ref MYLIBS_GPIO_GENERAL) +- Управление светодиодами (включение/выключение, моргание, плавное затухание) (@ref MYLIBS_GPIO_LEDS) +- Работа с кнопками (чтение состояния, фильтрация дребезга) (@ref MYLIBS_GPIO_SWITCH) + +@subsubsection tim_module Модуль таймеров @ref MY_LIBS_TIM +- Базовая инициализация таймеров (@ref MYLIBS_TIM_GENERAL) +- Формирование задержек (блокирующие и неблокирующие) (@ref MYLIBS_TIM_DELAY) +- Работа с энкодерами (чтение положения, обработка кнопок) (@ref MYLIBS_TIM_ENCODER) +- Настройка ШИМ и Output Compare (@ref MYLIBS_TIM_OC) + + +@subsection structure Структура проекта + +@code +├── inc/ # Заголовочные файлы +│ ├── mylibs_include.h # Главный include файл +│ ├── mylibs_config.h # Конфигурация библиотек +│ ├── mylibs_defs.h # Общие определения и макросы +│ ├── bit_access.h # Битовый доступ к регистрам +│ ├── trackers.h # Трекеры для отладки +│ ├── trace.h # Трассировка и логирование +│ ├── general_gpio.h # Работа с GPIO +│ └── general_tim.h # Работа с таймерами +└── src/ # Исходные файлы + ├── general_gpio.c # Реализация GPIO + └── general_tim.c # Реализация TIM +@endcode + +@subsection usage_basic Использование + +Инструкция по подключению: + +1. Настройте конфигурацию @ref MYLIBS_CONFIG в @ref mylibs_config.h + +2. Подключите главный заголовочный файл: +@code +#include "mylibs_include.h" +@endcode + +3. Используйте нужные модули в своем коде + +@subsubsection gpio_example Пример работы с GPIO + +@code +// Инициализация светодиода +MX_GPIO_Init(); +GPIO_LEDTypeDef led; +GPIO_LED_Init(&led, GPIOA, GPIO_PIN_5, 1); + +// Включение светодиода +GPIO_LED_On(&led); + +// Запуск моргания +GPIO_LED_Blink_Start(&led, 500); // Период 500 мс + +// В основном цикле +while (1) { +GPIO_LED_Dynamic_Handle(&led); +} +@endcode + +@subsubsection tim_example Пример работы с таймером + +@code +// Настройка таймера +TIM_SettingsTypeDef tim_settings = {0}; +tim_settings.htim.Instance = TIM2; +tim_settings.sTimAHBFreqMHz = SystemCoreClock; +tim_settings.sTickBaseUS = TIM_TickBase_1MS; +tim_settings.sTimFreqHz = 1000; // 1 кГц +tim_settings.sTimMode = TIM_IT_CONF; + +TIM_Base_Init(&tim_settings); +HAL_TIM_Base_Start(&tim_settings.htim); +@endcode + +@subsection dependencies Зависимости + +- HAL библиотека STM32 +- SEGGER RTT (опционально, для RTT трассировки) +- FreeRTOS (опционально, для FreeRTOS задержек) + */ \ No newline at end of file