diff --git a/Doc/html/____general__flash_8c_source.html b/Doc/html/____general__flash_8c_source.html index 62a1810..35f7ff8 100644 --- a/Doc/html/____general__flash_8c_source.html +++ b/Doc/html/____general__flash_8c_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_flash.c Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_flash.c Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({ - + - +
-
192
- diff --git a/Doc/html/____general__flash_8h_source.html b/Doc/html/____general__flash_8h_source.html index 463e16a..4b017c4 100644 --- a/Doc/html/____general__flash_8h_source.html +++ b/Doc/html/____general__flash_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_flash.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_flash.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({ - + - +
-
7
8//////////////////////////////////////////////////////////////////////
9/////////////////////////---USER SETTINGS---/////////////////////////
-
10
+
10
11
12/////////////////////////---USER SETTINGS---/////////////////////////
-
13#include "mylibs_defs.h"
+
13#include "mylibs_defs.h"
14
15
16
17/////////////////////////////////////////////////////////////////////
18////////////////////////////---DEFINES---////////////////////////////
-
19
+
19
20////////////////////////////---DEFINES---////////////////////////////
-
21
+
21
22
23/////////////////////////////////////////////////////////////////////
24///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
25
+
25
26///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
27
+
27
28
29/////////////////////////////////////////////////////////////////////
30///////////////////////////---FUNCTIONS---///////////////////////////
-
31
+
31
32HAL_StatusTypeDef FLASH_Enable_DualBankMode(void);
33HAL_StatusTypeDef FLASH_WriteProtection(uint32_t BankN, uint32_t WriteProtection);
34/* functions for reading bytes/halswords/words */
@@ -142,17 +150,16 @@ $(function(){initNavTree('____general__flash_8h_source.html','',''); });
40HAL_StatusTypeDef FLASH_Write_HalfWord(uint32_t Address, uint16_t Data);
41HAL_StatusTypeDef FLASH_Write_Word(uint32_t Address, uint32_t Data);
42///////////////////////////---FUNCTIONS---///////////////////////////
-
43
+
43
44#endif // __FLASH_GENERAL_H_
Заголочный файл для дефайнов библиотеки MyLibsGeneral.
- diff --git a/Doc/html/____general__spi_8c_source.html b/Doc/html/____general__spi_8c_source.html index ad92bfa..f4b3e36 100644 --- a/Doc/html/____general__spi_8c_source.html +++ b/Doc/html/____general__spi_8c_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_spi.c Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_spi.c Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({ - + - +
-
- diff --git a/Doc/html/____general__spi_8h_source.html b/Doc/html/____general__spi_8h_source.html index e83c1f2..31fdfcd 100644 --- a/Doc/html/____general__spi_8h_source.html +++ b/Doc/html/____general__spi_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_spi.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_spi.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({ - + - +
-
8
9//////////////////////////////////////////////////////////////////////
10/////////////////////////---USER SETTINGS---/////////////////////////
-
11#define HAL_SPI_MODULE_ENABLED // need to uncomment these defines in stm32f4xx_hal_conf.h
+
11#define HAL_SPI_MODULE_ENABLED // need to uncomment these defines in stm32f4xx_hal_conf.h
12 // also need to add hal_spi.c (source code)
13
14#define USE_SPI1
@@ -118,22 +126,22 @@ $(function(){initNavTree('____general__spi_8h_source.html','',''); });
16#define USE_SPI3
17
18/////////////////////////---USER SETTINGS---/////////////////////////
-
19#include "mylibs_defs.h"
+
19#include "mylibs_defs.h"
20
21
22
23/////////////////////////////////////////////////////////////////////
24////////////////////////////---DEFINES---////////////////////////////
-
25
+
25
26
27
28////////////////////////////---DEFINES---////////////////////////////
-
29
+
29
30
31/////////////////////////////////////////////////////////////////////
32///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
33typedef struct // struct with settings for custom function
+
33typedef struct // struct with settings for custom function
34{
35 SPI_HandleTypeDef hspi;
36
@@ -152,11 +160,11 @@ $(function(){initNavTree('____general__spi_8h_source.html','',''); });
50///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
51
+
51
52
53/////////////////////////////////////////////////////////////////////
54///////////////////////////---FUNCTIONS---///////////////////////////
-
55/**
+
55/**
56 * @brief Initialize SPI with SPI_SettingsTypeDef structure.
57 * @param sspi - указатель на структуру с настройками SPI.
58 * @return HAL status.
@@ -200,18 +208,17 @@ $(function(){initNavTree('____general__spi_8h_source.html','',''); });
96 */
97HAL_StatusTypeDef Check_SPI_Init_Struct(SPI_SettingsTypeDef *sspi);
98///////////////////////////---FUNCTIONS---///////////////////////////
-
99
+
99
100#endif // __SPI_GENERAL_H_
Заголочный файл для дефайнов библиотеки MyLibsGeneral.
- diff --git a/Doc/html/____general__uart_8c_source.html b/Doc/html/____general__uart_8c_source.html index 041ddc5..aa257bf 100644 --- a/Doc/html/____general__uart_8c_source.html +++ b/Doc/html/____general__uart_8c_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_uart.c Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_uart.c Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({ - + - +
-
- diff --git a/Doc/html/____general__uart_8h_source.html b/Doc/html/____general__uart_8h_source.html index 810ca3d..4f87464 100644 --- a/Doc/html/____general__uart_8h_source.html +++ b/Doc/html/____general__uart_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_uart.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_uart.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({ - + - +
-
8
9//////////////////////////////////////////////////////////////////////
10/////////////////////////---USER SETTINGS---/////////////////////////
-
11#define HAL_UART_MODULE_ENABLED // need to uncomment these defines in stm32f4xx_hal_conf.h
+
11#define HAL_UART_MODULE_ENABLED // need to uncomment these defines in stm32f4xx_hal_conf.h
12//#define HAL_USART_MODULE_ENABLED // maybe also need to add hal_uart.h/.c (source code)
13
14//#define USE_USART1
@@ -122,13 +130,13 @@ $(function(){initNavTree('____general__uart_8h_source.html','',''); });
20/* note: used uart defines in modbus.h */
21
22/////////////////////////---USER SETTINGS---/////////////////////////
-
23#include "interface_config.h" /* used uart defines in modbus.h */
+
23#include "interface_config.h" /* used uart defines in modbus.h */
24
25
26
27/////////////////////////////////////////////////////////////////////
28////////////////////////////---DEFINES---////////////////////////////
-
29#include "mylibs_defs.h"
+
29#include "mylibs_defs.h"
30/**
31 * @brief Analog for HAL define. Remade with pointer to structure.
32 * @note @ref __HAL_LINKDMA.
@@ -140,12 +148,12 @@ $(function(){initNavTree('____general__uart_8h_source.html','',''); });
38
39
40////////////////////////////---DEFINES---////////////////////////////
-
41
+
41
42
43/////////////////////////////////////////////////////////////////////
44///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
45typedef struct // struct with settings for custom function
+
45typedef struct // struct with settings for custom function
46{
47 UART_HandleTypeDef huart;
48
@@ -160,11 +168,11 @@ $(function(){initNavTree('____general__uart_8h_source.html','',''); });
58///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
59
+
59
60
61/////////////////////////////////////////////////////////////////////
62///////////////////////////---FUNCTIONS---///////////////////////////
-
63/**
+
63/**
64 * @brief Initialize UART with UART_SettingsTypeDef structure.
65 * @param suart - указатель на структуру с настройками UART.
66 * @return HAL status.
@@ -208,18 +216,17 @@ $(function(){initNavTree('____general__uart_8h_source.html','',''); });
104 */
105HAL_StatusTypeDef Check_UART_Init_Struct(UART_SettingsTypeDef *suart);
106///////////////////////////---FUNCTIONS---///////////////////////////
-
107
+
107
108#endif // __UART_GENERAL_H_
Заголочный файл для дефайнов библиотеки MyLibsGeneral.
- diff --git a/Doc/html/annotated.html b/Doc/html/annotated.html index 17dc897..9b3b980 100644 --- a/Doc/html/annotated.html +++ b/Doc/html/annotated.html @@ -3,7 +3,7 @@ - + MyLibs: Class List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
-
diff --git a/Doc/html/bc_s.png b/Doc/html/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/Doc/html/bc_s.png differ diff --git a/Doc/html/bc_sd.png b/Doc/html/bc_sd.png new file mode 100644 index 0000000..31ca888 Binary files /dev/null and b/Doc/html/bc_sd.png differ diff --git a/Doc/html/bit__access_8h.html b/Doc/html/bit__access_8h.html index eacf932..f0e236e 100644 --- a/Doc/html/bit__access_8h.html +++ b/Doc/html/bit__access_8h.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
+
bit_access.h File Reference
@@ -104,72 +110,74 @@ $(function(){initNavTree('bit__access_8h.html','',''); });

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

#include "mylibs_defs.h"
-
Include dependency graph for bit_access.h:
+
+ + Include dependency graph for bit_access.h:
-
This graph shows which files directly or indirectly include this file:
+
+ + This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

- - - - - + + + + + + + +

+

Classes

union  uint8_BitTypeDef
union  uint16_BitTypeDef
union  uint32_BitTypeDef
union  uint64_BitTypeDef
union  uint8_BitTypeDef
 
union  uint16_BitTypeDef
 
union  uint32_BitTypeDef
 
union  uint64_BitTypeDef
 
- - + - + + - + + - + + +

+

Macros

#define uint8_bit(_uint8_, _bit_)
#define uint8_bit(_uint8_, _bit_)   (*(uint8_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
 Получить n-й бит из uint8_t.
#define uint16_bit(_uint8_, _bit_)
 
#define uint16_bit(_uint8_, _bit_)   (*(uint16_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
 Получить n-й бит из uint16_t.
#define uint32_bit(_uint8_, _bit_)
 
#define uint32_bit(_uint8_, _bit_)   (*(uint32_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
 Получить n-й бит из uint32_t.
#define uint64_bit(_uint8_, _bit_)
 
#define uint64_bit(_uint8_, _bit_)   (*(uint64_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
 Получить n-й бит из uint64_t.
 
-

Detailed Description

+

Detailed Description

Заголочный файл для дефайнов битового доступа.

Definition in file bit_access.h.

- -
diff --git a/Doc/html/bit__access_8h__dep__incl.map b/Doc/html/bit__access_8h__dep__incl.map index 11c4cbf..5c825d5 100644 --- a/Doc/html/bit__access_8h__dep__incl.map +++ b/Doc/html/bit__access_8h__dep__incl.map @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/Doc/html/bit__access_8h__dep__incl.md5 b/Doc/html/bit__access_8h__dep__incl.md5 index 2f7fcbf..20054ed 100644 --- a/Doc/html/bit__access_8h__dep__incl.md5 +++ b/Doc/html/bit__access_8h__dep__incl.md5 @@ -1 +1 @@ -9d0f52ae67584f7f09caa88b8c7ab4e9 \ No newline at end of file +7a9fce78f461300acd0d2ab58815dc95 \ No newline at end of file diff --git a/Doc/html/bit__access_8h__dep__incl.png b/Doc/html/bit__access_8h__dep__incl.png index 79f6619..3ef9c17 100644 Binary files a/Doc/html/bit__access_8h__dep__incl.png and b/Doc/html/bit__access_8h__dep__incl.png differ diff --git a/Doc/html/bit__access_8h__incl.map b/Doc/html/bit__access_8h__incl.map index 9afbbb7..b03b1f1 100644 --- a/Doc/html/bit__access_8h__incl.map +++ b/Doc/html/bit__access_8h__incl.map @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/Doc/html/bit__access_8h__incl.md5 b/Doc/html/bit__access_8h__incl.md5 index dd84ccf..78ce098 100644 --- a/Doc/html/bit__access_8h__incl.md5 +++ b/Doc/html/bit__access_8h__incl.md5 @@ -1 +1 @@ -4b8c2556090cdbb9271b9fbe97d7cf5b \ No newline at end of file +2dcaa807e109473ed5b8776ffa4971c6 \ No newline at end of file diff --git a/Doc/html/bit__access_8h__incl.png b/Doc/html/bit__access_8h__incl.png index 6e25770..62b90d7 100644 Binary files a/Doc/html/bit__access_8h__incl.png and b/Doc/html/bit__access_8h__incl.png differ diff --git a/Doc/html/bit__access_8h_source.html b/Doc/html/bit__access_8h_source.html index 37a5171..9098471 100644 --- a/Doc/html/bit__access_8h_source.html +++ b/Doc/html/bit__access_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
- + - +
-
- diff --git a/Doc/html/classes.html b/Doc/html/classes.html index 29c6937..23924c7 100644 --- a/Doc/html/classes.html +++ b/Doc/html/classes.html @@ -3,7 +3,7 @@ - + MyLibs: Class Index @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
-
diff --git a/Doc/html/clipboard.js b/Doc/html/clipboard.js index 9da9f3c..42c1fb0 100644 --- a/Doc/html/clipboard.js +++ b/Doc/html/clipboard.js @@ -28,8 +28,8 @@ SOFTWARE. */ let clipboard_title = "Copy to clipboard" -let clipboard_icon = `` -let clipboard_successIcon = `` +let clipboard_icon = `` +let clipboard_successIcon = `` let clipboard_successDuration = 1000 $(function() { diff --git a/Doc/html/closed.png b/Doc/html/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/Doc/html/closed.png differ diff --git a/Doc/html/darkmode_toggle.js b/Doc/html/darkmode_toggle.js index 9c1ca07..b9c7364 100644 --- a/Doc/html/darkmode_toggle.js +++ b/Doc/html/darkmode_toggle.js @@ -74,15 +74,10 @@ class DarkModeToggle extends HTMLElement { mainMenuVisible = menuStyle.display!=='none' } const searchBoxPos1 = document.getElementById("searchBoxPos1"); - const buttonLi = document.getElementById('toggle-dark-mode'); - if (buttonLi) { - buttonLi.parentNode.removeChild(buttonLi); - } if (searchBox) { // (1) search box visible searchBox.parentNode.appendChild(toggleButton) } else if (navRow1) { // (2) no search box, static menu bar const li = document.createElement('li'); - li.id = 'toggle-dark-mode'; li.style = 'float: right;' li.appendChild(toggleButton); toggleButton.style = 'width: 24px; height: 25px; padding-top: 11px; float: right;'; @@ -90,7 +85,6 @@ class DarkModeToggle extends HTMLElement { row.appendChild(li) } else if (mainMenu && mainMenuVisible) { // (3) no search box + dynamic menu bar expanded const li = document.createElement('li'); - li.id = 'toggle-dark-mode'; li.style = 'float: right;' li.appendChild(toggleButton); toggleButton.style = 'width: 14px; height: 36px; padding-top: 10px; float: right;'; diff --git a/Doc/html/dir_000002_000000.html b/Doc/html/dir_000002_000000.html index 39823a3..b7ab20a 100644 --- a/Doc/html/dir_000002_000000.html +++ b/Doc/html/dir_000002_000000.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src -> Inc Relation +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src -> Inc Relation + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -

Src → Inc Relation

File in MyLibsGeneral/SrcIncludes file in MyLibsGeneral/Inc
__general_spi.cgeneral_gpio.h
__general_uart.cgeneral_gpio.h
general_gpio.cgeneral_gpio.h
general_tim.cgeneral_tim.h
- -
diff --git a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.html b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.html index 2a88587..4586fc7 100644 --- a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.html +++ b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src Directory Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src Directory Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
Src Directory Reference
-
Directory dependency graph for Src:
+
+ + Directory dependency graph for Src:
- - - - - + + + + + + + - + + +

+

Files

 
__general_flash.c
 
__general_spi.c
 
__general_uart.c
 
general_gpio.c
 __general_flash.c
 
 __general_spi.c
 
 __general_uart.c
 
 general_gpio.c
 Модуль для инициализации портов и работы с ними.
 
general_tim.c
 
 general_tim.c
 Модуль для инициализации таймеров и работы с ними.
 
- - diff --git a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.map b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.map index 649ed93..783d929 100644 --- a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.map +++ b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.map @@ -1,4 +1,4 @@ - + diff --git a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.md5 b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.md5 index 26d1cc5..1cbce3c 100644 --- a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.md5 +++ b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.md5 @@ -1 +1 @@ -387bb26d88dde230c0675e9727f07c60 \ No newline at end of file +84dda0250b351e30a8ed843193ca7a92 \ No newline at end of file diff --git a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html index 480c66b..ceb2fd5 100644 --- a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html +++ b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral Directory Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral Directory Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
MyLibsGeneral Directory Reference
-
Directory dependency graph for MyLibsGeneral:
+
+ + Directory dependency graph for MyLibsGeneral:
- - - + + + +

+

Directories

 
Inc
 
Src
 Inc
 
 Src
 
- - + +

+

Files

 
mainpage.h
 mainpage.h
 
- - diff --git a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.map b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.map index 397ee7e..9406b23 100644 --- a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.map +++ b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.map @@ -1,4 +1,4 @@ - + diff --git a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.md5 b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.md5 index e96a2a1..9534313 100644 --- a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.md5 +++ b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.md5 @@ -1 +1 @@ -a1466c7fe0f5fc90492120d9a3a88167 \ No newline at end of file +9178b7f2911a2208010657da2be83ea6 \ No newline at end of file diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html index 62931e7..8a9cc60 100644 --- a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html +++ b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc Directory Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc Directory Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
Inc Directory Reference
-
Directory dependency graph for Inc:
+
+ + Directory dependency graph for Inc:
- - - - - + + + + + + + - + + - + + - + + - + + - + + - + + - + + - + + +

+

Files

 
__general_flash.h
 
__general_spi.h
 
__general_uart.h
 
bit_access.h
 __general_flash.h
 
 __general_spi.h
 
 __general_uart.h
 
 bit_access.h
 Заголочный файл для дефайнов битового доступа.
 
evolve_optimizer.h
 
 evolve_optimizer.h
 Заголовочный файл для адаптивного подбора параметров
 
general_gpio.h
 
 general_gpio.h
 Заголовочный файл для модуля инициализации портов и работы с ними.
 
general_tim.h
 
 general_tim.h
 Заголовочный файл для модуля инициализации таймеров и работы с ними.
 
mylibs_config.h
 
 mylibs_config.h
 Конфигурации для библиотек MyLibs.
 
mylibs_defs.h
 
 mylibs_defs.h
 Заголочный файл для дефайнов библиотеки MyLibsGeneral.
 
mylibs_include.h
 
 mylibs_include.h
 Заголочный файл для всех библиотек
 
trace.h
 
 trace.h
 Заголочный файл для работы с трассировкой.
 
trackers.h
 
 trackers.h
 Заголочный файл для работы с трекерами Trackers defines.
 
- - diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.map b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.map index 8f7cb36..e44b344 100644 --- a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.map +++ b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.map @@ -1,4 +1,4 @@ - + diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.md5 b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.md5 index f594f8b..bb4da48 100644 --- a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.md5 +++ b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.md5 @@ -1 +1 @@ -51bda8bf2e3b4eafeabf6cf3520068b7 \ No newline at end of file +88eae9c3335ed0a89cb7c7066ad193a7 \ No newline at end of file diff --git a/Doc/html/doc.svg b/Doc/html/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/Doc/html/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/Doc/html/docd.svg b/Doc/html/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/Doc/html/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/Doc/html/doxygen.css b/Doc/html/doxygen.css index 59138c1..7dbff89 100644 --- a/Doc/html/doxygen.css +++ b/Doc/html/doxygen.css @@ -1,12 +1,11 @@ -/* The standard CSS for doxygen 1.14.0*/ +/* The standard CSS for doxygen 1.10.0*/ html { /* page base colors */ --page-background-color: white; --page-foreground-color: black; --page-link-color: #3D578C; ---page-visited-link-color: #3D578C; ---page-external-link-color: #334975; +--page-visited-link-color: #4665A2; /* index */ --index-odd-item-bg-color: #F8F9FC; @@ -17,50 +16,46 @@ html { /* header */ --header-background-color: #F9FAFC; --header-separator-color: #C4CFE5; ---group-header-separator-color: #D9E0EE; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; --group-header-color: #354C7B; --inherit-header-color: gray; --footer-foreground-color: #2A3D61; ---footer-logo-width: 75px; +--footer-logo-width: 104px; --citation-label-color: #334975; --glow-color: cyan; --title-background-color: white; ---title-separator-color: #C4CFE5; +--title-separator-color: #5373B4; --directory-separator-color: #9CAFD4; --separator-color: #4A6AAA; --blockquote-background-color: #F7F8FB; --blockquote-border-color: #9CAFD4; ---scrollbar-thumb-color: #C4CFE5; +--scrollbar-thumb-color: #9CAFD4; --scrollbar-background-color: #F9FAFC; --icon-background-color: #728DC1; --icon-foreground-color: white; -/* --icon-doc-image: url('doc.svg'); --icon-folder-open-image: url('folderopen.svg'); ---icon-folder-closed-image: url('folderclosed.svg');*/ ---icon-folder-open-fill-color: #C4CFE5; ---icon-folder-fill-color: #D8DFEE; ---icon-folder-border-color: #4665A2; ---icon-doc-fill-color: #D8DFEE; ---icon-doc-border-color: #4665A2; +--icon-folder-closed-image: url('folderclosed.svg'); /* brief member declaration list */ --memdecl-background-color: #F9FAFC; --memdecl-separator-color: #DEE4F0; --memdecl-foreground-color: #555; --memdecl-template-color: #4665A2; ---memdecl-border-color: #D5DDEC; /* detailed member list */ --memdef-border-color: #A8B8D9; --memdef-title-background-color: #E2E8F2; ---memdef-proto-background-color: #EEF1F7; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; --memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); --memdef-doc-background-color: white; --memdef-param-name-color: #602020; --memdef-template-color: #4665A2; @@ -79,34 +74,29 @@ html { /** navigation bar/tree/menu */ --nav-background-color: #F9FAFC; --nav-foreground-color: #364D7C; ---nav-border-color: #C4CFE5; ---nav-breadcrumb-separator-color: #C4CFE5; ---nav-breadcrumb-active-bg: #EEF1F7; ---nav-breadcrumb-color: #354C7B; ---nav-breadcrumb-border-color: #E1E7F2; ---nav-splitbar-bg-color: #DCE2EF; ---nav-splitbar-handle-color: #9CAFD4; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); --nav-font-size-level1: 13px; --nav-font-size-level2: 10px; --nav-font-size-level3: 9px; --nav-text-normal-color: #283A5D; --nav-text-hover-color: white; --nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); --nav-menu-button-color: #364D7C; --nav-menu-background-color: white; --nav-menu-foreground-color: #555555; ---nav-menu-active-bg: #DCE2EF; ---nav-menu-active-color: #9CAFD4; --nav-menu-toggle-color: rgba(255, 255, 255, 0.5); ---nav-arrow-color: #B6C4DF; ---nav-arrow-selected-color: #90A5CE; - -/* sync icon */ ---sync-icon-border-color: #C4CFE5; ---sync-icon-background-color: #F9FAFC; ---sync-icon-selected-background-color: #EEF1F7; ---sync-icon-color: #C4CFE5; ---sync-icon-selected-color: #6884BD; +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; /* table of contents */ --toc-background-color: #F4F6FA; @@ -117,20 +107,18 @@ html { /** search field */ --search-background-color: white; --search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); --search-active-color: black; ---search-filter-background-color: rgba(255,255,255,.7); ---search-filter-backdrop-filter: blur(4px); +--search-filter-background-color: #F9FAFC; --search-filter-foreground-color: black; ---search-filter-border-color: rgba(150,150,150,.4); +--search-filter-border-color: #90A5CE; --search-filter-highlight-text-color: white; --search-filter-highlight-bg-color: #3D578C; --search-results-foreground-color: #425E97; ---search-results-background-color: rgba(255,255,255,.8); ---search-results-backdrop-filter: blur(4px); ---search-results-border-color: rgba(150,150,150,.4); ---search-box-border-color: #B6C4DF; ---search-close-icon-bg-color: #A0A0A0; ---search-close-icon-fg-color: white; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; /** code fragments */ --code-keyword-color: #008000; @@ -159,21 +147,23 @@ html { --fragment-lineno-link-hover-bg-color: #C8C8C8; --fragment-copy-ok-color: #2EC82E; --tooltip-foreground-color: black; ---tooltip-background-color: rgba(255,255,255,0.8); ---tooltip-arrow-background-color: white; ---tooltip-border-color: rgba(150,150,150,0.7); ---tooltip-backdrop-filter: blur(3px); +--tooltip-background-color: white; +--tooltip-border-color: gray; --tooltip-doc-color: grey; --tooltip-declaration-color: #006318; --tooltip-link-color: #4665A2; ---tooltip-shadow: 0 4px 8px 0 rgba(0,0,0,.25); +--tooltip-shadow: 1px 1px 7px gray; --fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); /** font-family */ ---font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-normal: Roboto,sans-serif; --font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; --font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-title: Tahoma,Arial,sans-serif; --font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; --font-family-search: Arial,Verdana,sans-serif; --font-family-icon: Arial,Helvetica; @@ -208,8 +198,7 @@ html.dark-mode { --page-background-color: black; --page-foreground-color: #C9D1D9; --page-link-color: #90A5CE; ---page-visited-link-color: #90A5CE; ---page-external-link-color: #A3B4D7; +--page-visited-link-color: #A3B4D7; /* index */ --index-odd-item-bg-color: #0B101A; @@ -220,7 +209,8 @@ html.dark-mode { /* header */ --header-background-color: #070B11; --header-separator-color: #141C2E; ---group-header-separator-color: #1D2A43; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; --group-header-color: #90A5CE; --inherit-header-color: #A0A0A0; @@ -230,36 +220,35 @@ html.dark-mode { --glow-color: cyan; --title-background-color: #090D16; ---title-separator-color: #212F4B; +--title-separator-color: #354C79; --directory-separator-color: #283A5D; --separator-color: #283A5D; --blockquote-background-color: #101826; --blockquote-border-color: #283A5D; ---scrollbar-thumb-color: #2C3F65; +--scrollbar-thumb-color: #283A5D; --scrollbar-background-color: #070B11; --icon-background-color: #334975; --icon-foreground-color: #C4CFE5; ---icon-folder-open-fill-color: #4665A2; ---icon-folder-fill-color: #5373B4; ---icon-folder-border-color: #C4CFE5; ---icon-doc-fill-color: #6884BD; ---icon-doc-border-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); /* brief member declaration list */ --memdecl-background-color: #0B101A; --memdecl-separator-color: #2C3F65; --memdecl-foreground-color: #BBB; --memdecl-template-color: #7C95C6; ---memdecl-border-color: #233250; /* detailed member list */ --memdef-border-color: #233250; --memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); --memdef-proto-background-color: #19243A; --memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); --memdef-doc-background-color: black; --memdef-param-name-color: #D28757; --memdef-template-color: #7C95C6; @@ -278,34 +267,29 @@ html.dark-mode { /** navigation bar/tree/menu */ --nav-background-color: #101826; --nav-foreground-color: #364D7C; ---nav-border-color: #212F4B; ---nav-breadcrumb-separator-color: #212F4B; ---nav-breadcrumb-active-bg: #1D2A43; ---nav-breadcrumb-color: #90A5CE; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); --nav-breadcrumb-border-color: #2A3D61; ---nav-splitbar-bg-color: #283A5D; ---nav-splitbar-handle-color: #4665A2; +--nav-splitbar-image: url('splitbard.png'); --nav-font-size-level1: 13px; --nav-font-size-level2: 10px; --nav-font-size-level3: 9px; --nav-text-normal-color: #B6C4DF; --nav-text-hover-color: #DCE2EF; --nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); --nav-menu-button-color: #B6C4DF; --nav-menu-background-color: #05070C; --nav-menu-foreground-color: #BBBBBB; ---nav-menu-active-bg: #1D2A43; ---nav-menu-active-color: #C9D3E7; --nav-menu-toggle-color: rgba(255, 255, 255, 0.2); ---nav-arrow-color: #4665A2; ---nav-arrow-selected-color: #6884BD; - -/* sync icon */ ---sync-icon-border-color: #212F4B; ---sync-icon-background-color: #101826; ---sync-icon-selected-background-color: #1D2A43; ---sync-icon-color: #4665A2; ---sync-icon-selected-color: #5373B4; +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; /* table of contents */ --toc-background-color: #151E30; @@ -316,20 +300,18 @@ html.dark-mode { /** search field */ --search-background-color: black; --search-foreground-color: #C5C5C5; ---search-active-color: #F5F5F5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; --search-filter-background-color: #101826; --search-filter-foreground-color: #90A5CE; ---search-filter-backdrop-filter: none; --search-filter-border-color: #7C95C6; --search-filter-highlight-text-color: #BCC9E2; --search-filter-highlight-bg-color: #283A5D; ---search-results-background-color: black; +--search-results-background-color: #101826; --search-results-foreground-color: #90A5CE; ---search-results-backdrop-filter: none; ---search-results-border-color: #334975; ---search-box-border-color: #334975; ---search-close-icon-bg-color: #909090; ---search-close-icon-fg-color: black; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; /** code fragments */ --code-keyword-color: #CC99CD; @@ -359,20 +341,22 @@ html.dark-mode { --fragment-copy-ok-color: #0EA80E; --tooltip-foreground-color: #C9D1D9; --tooltip-background-color: #202020; ---tooltip-arrow-background-color: #202020; ---tooltip-backdrop-filter: none; --tooltip-border-color: #C9D1D9; --tooltip-doc-color: #D9E1E9; --tooltip-declaration-color: #20C348; --tooltip-link-color: #79C0FF; --tooltip-shadow: none; --fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); /** font-family */ ---font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-normal: Roboto,sans-serif; --font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; --font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; ---font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-title: Tahoma,Arial,sans-serif; --font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; --font-family-search: Arial,Verdana,sans-serif; --font-family-icon: Arial,Helvetica; @@ -403,8 +387,8 @@ html.dark-mode { } body { - background-color: var(--page-background-color); - color: var(--page-foreground-color); + background-color: var(--page-background-color); + color: var(--page-foreground-color); } body, table, div, p, dl { @@ -414,22 +398,13 @@ body, table, div, p, dl { line-height: 22px; } -body.resizing { - user-select: none; - -webkit-user-select: none; -} - -#doc-content { - scrollbar-width: thin; -} - /* @group Heading Levels */ .title { font-family: var(--font-family-normal); line-height: 28px; - font-size: 160%; - font-weight: 400; + font-size: 150%; + font-weight: bold; margin: 10px 2px; } @@ -438,10 +413,7 @@ h1.groupheader { } h2.groupheader { - box-shadow: 12px 0 var(--page-background-color), - -12px 0 var(--page-background-color), - 12px 1px var(--group-header-separator-color), - -12px 1px var(--group-header-separator-color); + border-bottom: 1px solid var(--group-header-separator-color); color: var(--group-header-color); font-size: 150%; font-weight: normal; @@ -451,13 +423,6 @@ h2.groupheader { width: 100%; } -td h2.groupheader { - box-shadow: 13px 0 var(--page-background-color), - -13px 0 var(--page-background-color), - 13px 1px var(--group-header-separator-color), - -13px 1px var(--group-header-separator-color); -} - h3.groupheader { font-size: 100%; } @@ -484,8 +449,8 @@ p.startli, p.startdd { } th p.starttd, th p.intertd, th p.endtd { - font-size: 100%; - font-weight: 700; + font-size: 100%; + font-weight: 700; } p.starttd { @@ -530,11 +495,9 @@ h3.version { } div.navtab { - margin-right: 6px; - padding-right: 6px; + padding-right: 15px; text-align: right; line-height: 110%; - background-color: var(--nav-background-color); } div.navtab table { @@ -547,10 +510,19 @@ td.navtab { } td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; padding-right: 6px; padding-left: 6px; - border-radius: 0 6px 6px 0; - background-color: var(--nav-menu-active-bg); +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; } div.qindex{ @@ -625,11 +597,16 @@ a { color: var(--page-visited-link-color); } -span.label a:hover { +a:hover { text-decoration: none; background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); } +a:hover > span.arrow { + text-decoration: none; + background : var(--nav-background-color); +} + a.el { font-weight: bold; } @@ -637,12 +614,12 @@ a.el { a.elRef { } -a.el, a.el:visited, a.code, a.code:visited, a.line, a.line:visited { - color: var(--page-link-color); +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: var(--page-external-link-color); + color: var(--code-external-link-color); } a.code.hl_class { /* style for links to class names in code snippets */ } @@ -678,125 +655,103 @@ dl.el { margin-left: -1cm; } -ul.check { - list-style:none; - text-indent: -16px; - padding-left: 38px; -} -li.unchecked:before { - content: "\2610\A0"; -} -li.checked:before { - content: "\2611\A0"; -} - -ol { - text-indent: 0px; -} - ul { - text-indent: 0px; - overflow: visible; + overflow: visible; } ul.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; - column-count: 3; - list-style-type: none; + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; } #side-nav ul { - overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ } #main-nav ul { - overflow: visible; /* reset ul rule for the navigation bar drop down lists */ + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ } .fragment { - text-align: left; - direction: ltr; - overflow-x: auto; - overflow-y: hidden; - position: relative; - min-height: 12px; - margin: 10px 0px; - padding: 10px 10px; - border: 1px solid var(--fragment-border-color); - border-radius: 4px; - background-color: var(--fragment-background-color); - color: var(--fragment-foreground-color); + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); } pre.fragment { - word-wrap: break-word; - font-size: 10pt; - line-height: 125%; - font-family: var(--font-family-monospace); -} - -span.tt { - white-space: pre; - font-family: var(--font-family-monospace); + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); } .clipboard { - width: 24px; - height: 24px; - right: 5px; - top: 5px; - opacity: 0; - position: absolute; - display: inline; - overflow: hidden; - justify-content: center; - align-items: center; - cursor: pointer; + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: auto; + fill: var(--fragment-foreground-color); + justify-content: center; + align-items: center; + cursor: pointer; } .clipboard.success { - border: 1px solid var(--fragment-foreground-color); - border-radius: 4px; + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; } .fragment:hover .clipboard, .clipboard.success { - opacity: .4; + opacity: .28; } .clipboard:hover, .clipboard.success { - opacity: 1 !important; + opacity: 1 !important; } .clipboard:active:not([class~=success]) svg { - transform: scale(.91); + transform: scale(.91); } .clipboard.success svg { - fill: var(--fragment-copy-ok-color); + fill: var(--fragment-copy-ok-color); } .clipboard.success { - border-color: var(--fragment-copy-ok-color); + border-color: var(--fragment-copy-ok-color); } div.line { font-family: var(--font-family-monospace); - font-size: 13px; + font-size: 13px; min-height: 13px; line-height: 1.2; - text-wrap: wrap; - word-break: break-all; + text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* CSS3 */ word-wrap: break-word; /* IE 5.5+ */ - text-indent: -62px; - padding-left: 62px; + text-indent: -53px; + padding-left: 53px; padding-bottom: 0px; margin: 0px; -webkit-transition-property: background-color, box-shadow; @@ -812,8 +767,8 @@ div.line { } div.line:after { - content:"\000A"; - white-space: pre; + content:"\000A"; + white-space: pre; } div.line.glow { @@ -822,67 +777,26 @@ div.line.glow { } span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; display: inline-block; width: 12px; height: 12px; - margin-left: 4px; - margin-right: 1px; -} - -span.foldnone { - display: inline-block; - position: relative; - cursor: pointer; - user-select: none; -} - -span.fold.plus, span.fold.minus { - width: 10px; - height: 10px; - background-color: var(--fragment-background-color); - position: relative; - border: 1px solid var(--fold-line-color); - margin-right: 1px; -} - -span.fold.plus::before, span.fold.minus::before { - content: ''; - position: absolute; - background-color: var(--fold-line-color); -} - -span.fold.plus::before { - width: 2px; - height: 6px; - top: 2px; - left: 4px; -} - -span.fold.plus::after { - content: ''; - position: absolute; - width: 6px; - height: 2px; - top: 4px; - left: 2px; - background-color: var(--fold-line-color); -} - -span.fold.minus::before { - width: 6px; - height: 2px; - top: 4px; - left: 2px; + background-repeat:no-repeat; + background-position:center; } span.lineno { padding-right: 4px; - margin-right: 9px; + margin-right: 9px; text-align: right; border-right: 2px solid var(--fragment-lineno-border-color); color: var(--fragment-lineno-foreground-color); background-color: var(--fragment-lineno-background-color); - white-space: pre; + white-space: pre; } span.lineno a, span.lineno a:visited { color: var(--fragment-lineno-link-fg-color); @@ -904,27 +818,18 @@ span.lineno a:hover { } div.classindex ul { - list-style: none; - padding-left: 0; + list-style: none; + padding-left: 0; } div.classindex span.ai { - display: inline-block; + display: inline-block; } div.groupHeader { - box-shadow: 13px 0 var(--page-background-color), - -13px 0 var(--page-background-color), - 13px 1px var(--group-header-separator-color), - -13px 1px var(--group-header-separator-color); - color: var(--group-header-color); - font-size: 110%; - font-weight: 500; - margin-left: 0px; - margin-top: 0em; - margin-bottom: 6px; - padding-top: 8px; - padding-bottom: 4px; + margin-left: 16px; + margin-top: 12px; + font-weight: bold; } div.groupText { @@ -934,13 +839,13 @@ div.groupText { body { color: var(--page-foreground-color); - margin: 0; + margin: 0; } div.contents { margin-top: 10px; margin-left: 12px; - margin-right: 12px; + margin-right: 8px; } p.formulaDsp { @@ -960,9 +865,9 @@ img.formulaInl, img.inline { div.center { text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; } div.center img { @@ -1037,10 +942,10 @@ span.vhdllogic { } blockquote { - background-color: var(--blockquote-background-color); - border-left: 2px solid var(--blockquote-border-color); - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; } /* @end */ @@ -1062,14 +967,9 @@ th.dirtab { } hr { + height: 0px; border: none; - margin-top: 16px; - margin-bottom: 16px; - height: 1px; - box-shadow: 13px 0 var(--page-background-color), - -13px 0 var(--page-background-color), - 13px 1px var(--group-header-separator-color), - -13px 1px var(--group-header-separator-color); + border-top: 1px solid var(--separator-color); } hr.footer { @@ -1084,6 +984,14 @@ table.memberdecls { } .memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } @@ -1093,23 +1001,13 @@ table.memberdecls { box-shadow: 0 0 15px var(--glow-color); } -.memberdecls tr[class^='memitem'] { - font-family: var(--font-family-monospace); -} - .mdescLeft, .mdescRight, -.memItemLeft, .memItemRight { - padding-top: 2px; - padding-bottom: 2px; -} - -.memTemplParams { - padding-left: 10px; - padding-top: 5px; -} - -.memItemLeft, .memItemRight, .memTemplParams { +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { @@ -1117,104 +1015,27 @@ table.memberdecls { color: var(--memdecl-foreground-color); } -tr[class^='memdesc'] { - box-shadow: inset 0px 1px 3px 0px rgba(0,0,0,.075); +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; } -.mdescLeft { - border-left: 1px solid var(--memdecl-border-color); - border-bottom: 1px solid var(--memdecl-border-color); +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; } -.mdescRight { - border-right: 1px solid var(--memdecl-border-color); - border-bottom: 1px solid var(--memdecl-border-color); +.memItemRight, .memTemplItemRight { + width: 100%; } .memTemplParams { color: var(--memdecl-template-color); - white-space: nowrap; + white-space: nowrap; font-size: 80%; - border-left: 1px solid var(--memdecl-border-color); - border-right: 1px solid var(--memdecl-border-color); } -td.ititle { - border: 1px solid var(--memdecl-border-color); - border-top-left-radius: 4px; - border-top-right-radius: 4px; - padding-left: 10px; -} - -tr:not(:first-child) > td.ititle { - border-top: 0; - border-radius: 0; -} - -.memItemLeft { - white-space: nowrap; - border-left: 1px solid var(--memdecl-border-color); - border-bottom: 1px solid var(--memdecl-border-color); - padding-left: 10px; - transition: none; -} - -.memItemRight { - width: 100%; - border-right: 1px solid var(--memdecl-border-color); - border-bottom: 1px solid var(--memdecl-border-color); - padding-right: 10px; - transition: none; -} - -tr.heading + tr[class^='memitem'] td.memItemLeft, -tr.groupHeader + tr[class^='memitem'] td.memItemLeft, -tr.inherit_header + tr[class^='memitem'] td.memItemLeft { - border-top: 1px solid var(--memdecl-border-color); - border-top-left-radius: 4px; -} - -tr.heading + tr[class^='memitem'] td.memItemRight, -tr.groupHeader + tr[class^='memitem'] td.memItemRight, -tr.inherit_header + tr[class^='memitem'] td.memItemRight { - border-top: 1px solid var(--memdecl-border-color); - border-top-right-radius: 4px; -} - -tr.heading + tr[class^='memitem'] td.memTemplParams, -tr.heading + tr td.ititle, -tr.groupHeader + tr[class^='memitem'] td.memTemplParams, -tr.groupHeader + tr td.ititle, -tr.inherit_header + tr[class^='memitem'] td.memTemplParams { - border-top: 1px solid var(--memdecl-border-color); - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -table.memberdecls tr:last-child td.memItemLeft, -table.memberdecls tr:last-child td.mdescLeft, -table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemLeft, -table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemLeft, -table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescLeft, -table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescLeft { - border-bottom-left-radius: 4px; -} - -table.memberdecls tr:last-child td.memItemRight, -table.memberdecls tr:last-child td.mdescRight, -table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemRight, -table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemRight, -table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescRight, -table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescRight { - border-bottom-right-radius: 4px; -} - -tr.template .memItemLeft, tr.template .memItemRight { - border-top: none; - padding-top: 0; -} - - /* @end */ /* @group Member Details */ @@ -1229,43 +1050,24 @@ tr.template .memItemLeft, tr.template .memItemRight { border-top-right-radius: 4px; border-top-left-radius: 4px; margin-bottom: -1px; - background-color: var(--memdef-proto-background-color); + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); line-height: 1.25; - font-family: var(--font-family-monospace); - font-weight: 500; - font-size: 16px; + font-weight: 300; float:left; - box-shadow: 0 10px 0 -1px var(--memdef-proto-background-color), - 0 2px 8px 0 rgba(0,0,0,.075); - position: relative; -} - -.memtitle:after { - content: ''; - display: block; - background: var(--memdef-proto-background-color); - height: 10px; - bottom: -10px; - left: 0px; - right: -14px; - position: absolute; - border-top-right-radius: 6px; } .permalink { - font-family: var(--font-family-monospace); - font-weight: 500; - line-height: 1.25; - font-size: 16px; - display: inline-block; - vertical-align: middle; + font-size: 65%; + display: inline-block; + vertical-align: middle; } .memtemplate { font-size: 80%; color: var(--memdef-template-color); - font-family: var(--font-family-monospace); font-weight: normal; margin-left: 9px; } @@ -1278,21 +1080,22 @@ tr.template .memItemLeft, tr.template .memItemRight { padding: 0; margin-bottom: 10px; margin-right: 5px; - display: table !important; - width: 100%; - box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); - border-radius: 4px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; } .memitem.glow { - box-shadow: 0 0 15px var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); } .memname { - font-family: var(--font-family-monospace); - font-size: 13px; - font-weight: 400; - margin-left: 6px; + font-weight: 400; + margin-left: 6px; } .memname td { @@ -1300,39 +1103,53 @@ tr.template .memItemLeft, tr.template .memItemRight { } .memproto, dl.reflist dt { - border-top: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 0px 6px 0px; - color: var(--memdef-proto-text-color); - font-weight: bold; - background-color: var(--memdef-proto-background-color); - border-top-right-radius: 4px; - border-bottom: 1px solid var(--memdef-border-color); + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; } .overload { - font-family: var(--font-family-monospace); + font-family: var(--font-family-monospace); font-size: 65%; } .memdoc, dl.reflist dd { - border-bottom: 1px solid var(--memdef-border-color); - border-left: 1px solid var(--memdef-border-color); - border-right: 1px solid var(--memdef-border-color); - padding: 6px 10px 2px 10px; - border-top-width: 0; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); } dl.reflist dt { - padding: 5px; + padding: 5px; } dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; + margin: 0px 0px 10px 0px; + padding: 5px; } .paramkey { @@ -1347,9 +1164,9 @@ dl.reflist dd { .paramname { white-space: nowrap; - padding: 0px; - padding-bottom: 1px; - margin-left: 2px; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; } .paramname em { @@ -1363,23 +1180,23 @@ dl.reflist dd { } .params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; + margin-left: 0px; + padding-left: 0px; } .params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { - font-weight: bold; - vertical-align: top; + font-weight: bold; + vertical-align: top; } .params .paramtype, .tparams .paramtype { - font-style: italic; - vertical-align: top; + font-style: italic; + vertical-align: top; } .params .paramdir, .tparams .paramdir { - font-family: var(--font-family-monospace); - vertical-align: top; + font-family: var(--font-family-monospace); + vertical-align: top; } table.mlabels { @@ -1398,15 +1215,15 @@ td.mlabels-right { } span.mlabels { - margin-left: 8px; + margin-left: 8px; } span.mlabel { - background-color: var(--label-background-color); - border-top:1px solid var(--label-left-top-border-color); - border-left:1px solid var(--label-left-top-border-color); - border-right:1px solid var(--label-right-bottom-border-color); - border-bottom:1px solid var(--label-right-bottom-border-color); + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); text-shadow: none; color: var(--label-foreground-color); margin-right: 4px; @@ -1424,37 +1241,39 @@ span.mlabel { /* these are for tree view inside a (index) page */ div.directory { - margin: 10px 0px; - width: 100%; + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; } .directory table { - border-collapse:collapse; + border-collapse:collapse; } .directory td { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; vertical-align: top; } .directory td.entry { - white-space: nowrap; - padding-right: 6px; + white-space: nowrap; + padding-right: 6px; padding-top: 3px; } .directory td.entry a { - outline:none; + outline:none; } .directory td.entry a img { - border: none; + border: none; } .directory td.desc { - width: 100%; - padding-left: 6px; + width: 100%; + padding-left: 6px; padding-right: 6px; padding-top: 3px; border-left: 1px solid rgba(0,0,0,0.05); @@ -1475,178 +1294,90 @@ div.directory { } .directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; } .directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; + cursor: pointer; + padding-left: 2px; + padding-right: 2px; color: var(--page-link-color); } .arrow { - color: var(--nav-background-color); - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 14px; - transition: opacity 0.3s ease; -} - -span.arrowhead { - position: relative; - padding: 0; - margin: 0 0 0 2px; - display: inline-block; - width: 5px; - height: 5px; - border-right: 2px solid var(--nav-arrow-color); - border-bottom: 2px solid var(--nav-arrow-color); - transform: rotate(-45deg); - transition: transform 0.3s ease; -} - -span.arrowhead.opened { - transform: rotate(45deg); -} - -.selected span.arrowhead { - border-right: 2px solid var(--nav-arrow-selected-color); - border-bottom: 2px solid var(--nav-arrow-selected-color); + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; } .icon { - font-family: var(--font-family-icon); - line-height: normal; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: var(--icon-background-color); - color: var(--icon-foreground-color); - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; } .icona { - width: 24px; - height: 22px; - display: inline-block; + width: 24px; + height: 22px; + display: inline-block; } -.iconfolder { - width: 24px; - height: 18px; - margin-top: 6px; - vertical-align:top; - display: inline-block; - position: relative; +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; } .icondoc { - width: 24px; - height: 18px; - margin-top: 3px; - vertical-align:top; - display: inline-block; - position: relative; + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; } -.folder-icon { - width: 16px; - height: 11px; - background-color: var(--icon-folder-fill-color); - border: 1px solid var(--icon-folder-border-color); - border-radius: 0 2px 2px 2px; - position: relative; - box-sizing: content-box; -} - -.folder-icon::after { - content: ''; - position: absolute; - top: 2px; - left: -1px; - width: 16px; - height: 7px; - background-color: var(--icon-folder-open-fill-color); - border: 1px solid var(--icon-folder-border-color); - border-radius: 7px 7px 2px 2px; - transform-origin: top left; - opacity: 0; - transition: all 0.3s linear; -} - -.folder-icon::before { - content: ''; - position: absolute; - top: -3px; - left: -1px; - width: 6px; - height: 2px; - background-color: var(--icon-folder-fill-color); - border-top: 1px solid var(--icon-folder-border-color); - border-left: 1px solid var(--icon-folder-border-color); - border-right: 1px solid var(--icon-folder-border-color); - border-radius: 2px 2px 0 0; -} - -.folder-icon.open::after { - top: 3px; - opacity: 1; -} - -.doc-icon { - left: 6px; - width: 12px; - height: 16px; - background-color: var(--icon-doc-border-color); - clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); - position: relative; - display: inline-block; -} -.doc-icon::before { - content: ""; - left: 1px; - top: 1px; - width: 10px; - height: 14px; - background-color: var(--icon-doc-fill-color); - clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); - position: absolute; - box-sizing: border-box; -} -.doc-icon::after { - content: ""; - left: 7px; - top: 0px; - width: 3px; - height: 3px; - background-color: transparent; - position: absolute; - border: 1px solid var(--icon-doc-border-color); -} - - - - /* @end */ div.dynheader { - margin-top: 8px; + margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -1655,13 +1386,6 @@ div.dynheader { user-select: none; } -span.dynarrow { - position: relative; - display: inline-block; - width: 12px; - bottom: 1px; -} - address { font-style: normal; color: var(--footer-foreground-color); @@ -1673,8 +1397,8 @@ table.doxtable caption { table.doxtable { border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; + margin-top: 4px; + margin-bottom: 4px; } table.doxtable td, table.doxtable th { @@ -1691,145 +1415,127 @@ table.doxtable th { } table.fieldtable { - margin-bottom: 10px; - border: 1px solid var(--memdef-border-color); - border-spacing: 0px; - border-radius: 4px; - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } .fieldtable td, .fieldtable th { - padding: 3px 7px 2px; + padding: 3px 7px 2px; } -.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit { - white-space: nowrap; - border-right: 1px solid var(--memdef-border-color); - border-bottom: 1px solid var(--memdef-border-color); - vertical-align: top; +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; } .fieldtable td.fieldname { - padding-top: 3px; + padding-top: 3px; } -.fieldtable td.fieldinit { - padding-top: 3px; - text-align: right; -} - - .fieldtable td.fielddoc { - border-bottom: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); } .fieldtable td.fielddoc p:first-child { - margin-top: 0px; + margin-top: 0px; } .fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; + margin-bottom: 2px; } .fieldtable tr:last-child td { - border-bottom: none; + border-bottom: none; } .fieldtable th { - background-color: var(--memdef-title-background-color); - font-size: 90%; - color: var(--memdef-proto-text-color); - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid var(--memdef-border-color); + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); } -/* ----------- navigation breadcrumb styling ----------- */ -#nav-path ul { - height: 30px; - line-height: 30px; - color: var(--nav-text-normal-color); +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; overflow: hidden; - margin: 0px; - padding-left: 4px; - background-image: none; - background: var(--page-background-color); - border-bottom: 1px solid var(--nav-breadcrumb-separator-color); - font-size: var(--nav-font-size-level1); - font-family: var(--font-family-nav); - position: relative; - z-index: 100; + font-size: 13px; } -#main-nav { - border-bottom: 1px solid var(--nav-border-color); +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; } -.navpath li { +.navpath li +{ list-style-type:none; float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; color: var(--nav-foreground-color); } -.navpath li.footer { - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - font-size: 8pt; - color: var(--footer-foreground-color); +.navpath li.navelem a +{ + height:32px; + display:block; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; } -#nav-path li.navelem { - background-image: none; - display: flex; - align-items: center; - padding-left: 15px; +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); } -.navpath li.navelem a { - text-shadow: none; - display: inline-block; - color: var(--nav-breadcrumb-color); - position: relative; - top: 0px; - height: 30px; - margin-right: -20px; +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; } -#nav-path li.navelem:after { - content: ''; - display: inline-block; - position: relative; - top: 0; - right: -15px; - width: 30px; - height: 30px; - transform: scaleX(0.5) scale(0.707) rotate(45deg); - z-index: 10; - background: var(--page-background-color); - box-shadow: 2px -2px 0 2px var(--nav-breadcrumb-separator-color); - border-radius: 0 5px 0 50px; -} - -#nav-path li.navelem:first-child { - margin-left: -6px; -} - -#nav-path li.navelem:hover, -#nav-path li.navelem:hover:after { - background-color: var(--nav-breadcrumb-active-bg); -} - -/* ---------------------- */ div.summary { @@ -1847,14 +1553,14 @@ div.summary a table.classindex { - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; } div.ingroups @@ -1871,8 +1577,10 @@ div.ingroups a div.header { - margin: 0px; + background-image: var(--header-gradient-image); + background-repeat:repeat-x; background-color: var(--header-background-color); + margin: 0px; border-bottom: 1px solid var(--header-separator-color); } @@ -1881,105 +1589,166 @@ div.headertitle padding: 5px 5px 5px 10px; } +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + dl { - padding: 0 0 0 0; + padding: 0 0 0 0; } -dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { - font-weight: bold !important; +/* + +dl.section { + margin-left: 0px; + padding-left: 0px; } -dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, -dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { - padding: 10px; - margin: 10px 0px; - overflow: hidden; - margin-left: 0; - border-radius: 4px; +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; } -dl.section dd { - margin-bottom: 2px; +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; } -dl.warning, dl.attention, dl.important { - background: var(--warning-color-bg); - border-left: 8px solid var(--warning-color-hl); - color: var(--warning-color-text); -} - -dl.warning dt, dl.attention dt, dl.important dt { - color: var(--warning-color-hl); -} - -dl.note, dl.remark { - background: var(--note-color-bg); - border-left: 8px solid var(--note-color-hl); - color: var(--note-color-text); -} - -dl.note dt, dl.remark dt { - color: var(--note-color-hl); -} - -dl.todo { - background: var(--todo-color-bg); - border-left: 8px solid var(--todo-color-hl); - color: var(--todo-color-text); -} - -dl.todo dt { - color: var(--todo-color-hl); -} - -dl.test { - background: var(--test-color-bg); - border-left: 8px solid var(--test-color-hl); - color: var(--test-color-text); -} - -dl.test dt { - color: var(--test-color-hl); -} - -dl.bug dt a { - color: var(--bug-color-hl) !important; -} - -dl.bug { - background: var(--bug-color-bg); - border-left: 8px solid var(--bug-color-hl); - color: var(--bug-color-text); -} - -dl.bug dt a { - color: var(--bug-color-hl) !important; +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; } dl.deprecated { - background: var(--deprecated-color-bg); - border-left: 8px solid var(--deprecated-color-hl); - color: var(--deprecated-color-text); + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +*/ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-hl); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); } dl.deprecated dt a { - color: var(--deprecated-color-hl) !important; + color: var(--deprecated-color-hl) !important; } -dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, -dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, -dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { - margin-inline-start: 0px; +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; } dl.invariant, dl.pre, dl.post { - background: var(--invariant-color-bg); - border-left: 8px solid var(--invariant-color-hl); - color: var(--invariant-color-text); + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); } dl.invariant dt, dl.pre dt, dl.post dt { - color: var(--invariant-color-hl); + color: var(--invariant-color-hl); } @@ -2002,27 +1771,22 @@ dl.invariant dt, dl.pre dt, dl.post dt { #projectalign { - vertical-align: middle; - padding-left: 0.5em; + vertical-align: middle; + padding-left: 0.5em; } #projectname { font-size: 200%; font-family: var(--font-family-title); - margin: 0; - padding: 0; -} - -#side-nav #projectname -{ - font-size: 130%; + margin: 0px; + padding: 2px 0px; } #projectbrief { font-size: 90%; - font-family: var(--font-family-title); + font-family: var(--font-family-title); margin: 0px; padding: 0px; } @@ -2030,42 +1794,43 @@ dl.invariant dt, dl.pre dt, dl.post dt { #projectnumber { font-size: 50%; - font-family: var(--font-family-title); + font-family: 50% var(--font-family-title); margin: 0px; padding: 0px; } #titlearea { - padding: 0 0 0 5px; + padding: 0px; margin: 0px; + width: 100%; border-bottom: 1px solid var(--title-separator-color); background-color: var(--title-background-color); } .image { - text-align: center; + text-align: center; } .dotgraph { - text-align: center; + text-align: center; } .mscgraph { - text-align: center; + text-align: center; } .plantumlgraph { - text-align: center; + text-align: center; } .diagraph { - text-align: center; + text-align: center; } .caption @@ -2074,67 +1839,70 @@ dl.invariant dt, dl.pre dt, dl.post dt { } dl.citelist { - margin-bottom:50px; + margin-bottom:50px; } dl.citelist dt { - color:var(--citation-label-color); - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; - text-align:right; - width:52px; + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; } dl.citelist dd { - margin:2px 0 2px 72px; - padding:5px 0; + margin:2px 0 2px 72px; + padding:5px 0; } div.toc { - padding: 14px 25px; - background-color: var(--toc-background-color); - border: 1px solid var(--toc-border-color); - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; } div.toc li { - background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; - font: 10px/1.2 var(--font-family-toc); - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; } div.toc h3 { - font: bold 12px/1.2 var(--font-family-toc); + font: bold 12px/1.2 var(--font-family-toc); color: var(--toc-header-color); - border-bottom: 0 none; - margin: 0; + border-bottom: 0 none; + margin: 0; } div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li[class^='level'] { - margin-left: 15px; + list-style: none outside none; + border: medium none; + padding: 0px; } div.toc li.level1 { - margin-left: 0px; + margin-left: 0px; } -div.toc li.empty { - background-image: none; - margin-top: 0px; +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; } span.emoji { @@ -2144,12 +1912,13 @@ span.emoji { } span.obfuscator { - display: none; + display: none; } .inherit_header { - font-weight: 400; - cursor: pointer; + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -2159,49 +1928,49 @@ span.obfuscator { } .inherit_header td { - padding: 6px 0 2px 0; + padding: 6px 0px 2px 5px; } .inherit { - display: none; + display: none; } tr.heading h2 { - margin-top: 12px; - margin-bottom: 12px; + margin-top: 12px; + margin-bottom: 4px; } /* tooltip related style info */ .ttc { - position: absolute; - display: none; + position: absolute; + display: none; } #powerTip { cursor: default; - color: var(--tooltip-foreground-color); + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); background-color: var(--tooltip-background-color); - backdrop-filter: var(--tooltip-backdrop-filter); - -webkit-backdrop-filter: var(--tooltip-backdrop-filter); border: 1px solid var(--tooltip-border-color); - border-radius: 4px; + border-radius: 4px 4px 4px 4px; box-shadow: var(--tooltip-shadow); display: none; font-size: smaller; max-width: 80%; + opacity: 0.9; padding: 1ex 1em 1em; position: absolute; z-index: 2147483647; } #powerTip div.ttdoc { - color: var(--tooltip-doc-color); + color: var(--tooltip-doc-color); font-style: italic; } #powerTip div.ttname a { - font-weight: bold; + font-weight: bold; } #powerTip a { @@ -2209,18 +1978,18 @@ tr.heading h2 { } #powerTip div.ttname { - font-weight: bold; + font-weight: bold; } #powerTip div.ttdeci { - color: var(--tooltip-declaration-color); + color: var(--tooltip-declaration-color); } #powerTip div { - margin: 0px; - padding: 0px; - font-size: 12px; - font-family: var(--font-family-tooltip); + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); line-height: 16px; } @@ -2266,7 +2035,7 @@ tr.heading h2 { } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: var(--tooltip-arrow-background-color); + border-top-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } @@ -2294,7 +2063,7 @@ tr.heading h2 { } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: var(--tooltip-arrow-background-color); + border-bottom-color: var(--tooltip-background-color); border-width: 10px; margin: 0px -10px; } @@ -2351,29 +2120,29 @@ tr.heading h2 { @media print { - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } } /* @group Markdown */ table.markdownTable { border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; + margin-top: 4px; + margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { @@ -2404,13 +2173,9 @@ th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } -tt, code, kbd +tt, code, kbd, samp { - display: inline-block; -} -tt, code, kbd -{ - vertical-align: top; + display: inline-block; } /* @end */ @@ -2419,27 +2184,26 @@ u { } details>summary { - list-style-type: none; + list-style-type: none; } details > summary::-webkit-details-marker { - display: none; + display: none; } details>summary::before { - content: "\25ba"; - padding-right:4px; - font-size: 80%; + content: "\25ba"; + padding-right:4px; + font-size: 80%; } details[open]>summary::before { - content: "\25bc"; - padding-right:4px; - font-size: 80%; + content: "\25bc"; + padding-right:4px; + font-size: 80%; } -:root { - scrollbar-width: thin; +body { scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); } diff --git a/Doc/html/doxygen_crawl.html b/Doc/html/doxygen_crawl.html index e209206..19a05df 100644 --- a/Doc/html/doxygen_crawl.html +++ b/Doc/html/doxygen_crawl.html @@ -4,304 +4,169 @@ Validator / crawler helper - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - + - - - - + - + - - - - - - - - - - + - - - - - - - - - - - + - - - - - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Doc/html/dynsections.js b/Doc/html/dynsections.js index d89724e..24dfe9c 100644 --- a/Doc/html/dynsections.js +++ b/Doc/html/dynsections.js @@ -23,11 +23,8 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function toggleVisibility(linkObj) { - return dynsection.toggleVisibility(linkObj); -} - let dynsection = { + // helper function updateStripes : function() { $('table.directory tr'). @@ -43,13 +40,15 @@ let dynsection = { const trigger = $('#'+base+'-trigger'); const src=$(trigger).attr('src'); if (content.is(':visible')===true) { - content.slideUp('fast'); + content.hide(); summary.show(); - $(linkObj).find('.arrowhead').addClass('closed').removeClass('opened'); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); } else { - content.slideDown('fast'); + content.show(); summary.hide(); - $(linkObj).find('.arrowhead').removeClass('closed').addClass('opened'); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); } return false; }, @@ -60,12 +59,12 @@ let dynsection = { const i = $('#img'+this.id.substring(3)); const a = $('#arr'+this.id.substring(3)); if (l'); + $('span[class=lineno]:first').append(''); // add vertical lines to other rows $('span[class=lineno]').not(':eq(0)').append(''); // add toggle controls to lines with fold divs @@ -167,8 +169,9 @@ let codefold = { const start = $(this).attr('data-start'); const end = $(this).attr('data-end'); // replace normal fold span with controls for the first line of a foldable fragment - $(this).find('span[class=fold]:first').replaceWith(''); + $(this).find('span[class=fold]:first').replaceWith(''); // append div for folded (closed) representation $(this).after(''); // extract the first line from the "open" section to represent closed content @@ -180,7 +183,7 @@ let codefold = { $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); } // replace minus with plus symbol - $(line).find('span[class=fold]').addClass('plus').removeClass('minus'); + $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); // append ellipsis $(line).append(' '+start+''+end); // insert constructed line into closed div diff --git a/Doc/html/evolve__optimizer_8h.html b/Doc/html/evolve__optimizer_8h.html index 4e74b63..031520b 100644 --- a/Doc/html/evolve__optimizer_8h.html +++ b/Doc/html/evolve__optimizer_8h.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
+
evolve_optimizer.h File Reference
@@ -106,79 +113,88 @@ $(function(){initNavTree('evolve__optimizer_8h.html','',''); });
#include "mylibs_defs.h"
#include <stdint.h>
#include <stdlib.h>
-
Include dependency graph for evolve_optimizer.h:
+
+ + Include dependency graph for evolve_optimizer.h:
-
This graph shows which files directly or indirectly include this file:
+
+ + This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

- - + +

+

Classes

struct  EvolveOptimizer_t
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].
#define local_time()
#define PARAM_SCALE(x, min_val, max_val)   (((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val)))
 Линейное масштабирование x из диапазона [min_val, max_val] в диапазон [0, 1)
 
#define PARAM_UNSCALE(val, min_val, max_val)   (((float)(val)) * ((float)(max_val) - (float)(min_val)) + (float)(min_val))
 Обратное линейное масштабирование значения из [0, 1) в диапазон [min_val, max_val].
 
#define local_time()   HAL_GetTick()
 Локальное время
 
#define EVOLVE_MUTATION_MIN_PCT   10
 Минимальная мутация (в процентах от Loss)
 
#define EVOLVE_MUTATION_MAX_PCT   100
 Максимальная мутация (в процентах от Loss)
 
#define ELOVLE_N_ELITE_CANDIDATE   2
 Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2)
 
- - - - - + + + + + +

+

Functions

__STATIC_INLINE int 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 int EvolveOptimizer_Step (EvolveOptimizer_t *opt, int32_t *params, int32_t loss)
 Один шаг эволюционного оптимизатора.
__STATIC_INLINE int EvolveOptimizer_Init (EvolveOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, float mutation_amp, float *start_params)
 Инициализация эволюционного оптимизатора.
 
__STATIC_INLINE int EvolveOptimizer_Step (EvolveOptimizer_t *opt, float *params, float loss)
 Один шаг эволюционного оптимизатора.
 
-

Detailed Description

+

Detailed Description

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

Definition in file evolve_optimizer.h.

- -
diff --git a/Doc/html/evolve__optimizer_8h.js b/Doc/html/evolve__optimizer_8h.js index 30c542c..4382494 100644 --- a/Doc/html/evolve__optimizer_8h.js +++ b/Doc/html/evolve__optimizer_8h.js @@ -1,8 +1,11 @@ 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 ], + [ "PARAM_SCALE", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e", null ], + [ "PARAM_UNSCALE", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3", null ], [ "local_time", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653", null ], - [ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1", null ], - [ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a", null ] + [ "EVOLVE_MUTATION_MIN_PCT", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6", null ], + [ "EVOLVE_MUTATION_MAX_PCT", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc", null ], + [ "ELOVLE_N_ELITE_CANDIDATE", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb", null ], + [ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21", null ], + [ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef", null ] ]; \ 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 index 2741c58..415f98a 100644 --- a/Doc/html/evolve__optimizer_8h__dep__incl.map +++ b/Doc/html/evolve__optimizer_8h__dep__incl.map @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/Doc/html/evolve__optimizer_8h__dep__incl.md5 b/Doc/html/evolve__optimizer_8h__dep__incl.md5 index 4ae7408..69e9dea 100644 --- a/Doc/html/evolve__optimizer_8h__dep__incl.md5 +++ b/Doc/html/evolve__optimizer_8h__dep__incl.md5 @@ -1 +1 @@ -41a81c5527cb10d478e05e49562aedc3 \ No newline at end of file +f553378750fe54c08a141590bf28abc6 \ 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 index 02dd104..18e4a8e 100644 Binary files a/Doc/html/evolve__optimizer_8h__dep__incl.png 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 index 97465e0..037f879 100644 --- a/Doc/html/evolve__optimizer_8h__incl.map +++ b/Doc/html/evolve__optimizer_8h__incl.map @@ -1,13 +1,13 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/Doc/html/evolve__optimizer_8h__incl.md5 b/Doc/html/evolve__optimizer_8h__incl.md5 index 29bbece..ab56a56 100644 --- a/Doc/html/evolve__optimizer_8h__incl.md5 +++ b/Doc/html/evolve__optimizer_8h__incl.md5 @@ -1 +1 @@ -4993f7378dc2ed7a2e950385e8313f89 \ No newline at end of file +fd2e7c14c3afd7acdbec8e90d05455b4 \ No newline at end of file diff --git a/Doc/html/evolve__optimizer_8h__incl.png b/Doc/html/evolve__optimizer_8h__incl.png index 09857dc..b22e7b3 100644 Binary files a/Doc/html/evolve__optimizer_8h__incl.png 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 index 7bdfeb3..ac55157 100644 --- a/Doc/html/evolve__optimizer_8h_source.html +++ b/Doc/html/evolve__optimizer_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/evolve_optimizer.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
- + - +
-
20 заглушки, никак не влияющие на параметры и остальную программу
21- @ref EVOLVE_MAX_PARAMS - Максимальное количество параметров
22- @ref EVOLVE_MAX_CANDIDATES - Максимальное количество кандидатов для обучения
-
23
-
24
-
25@par Пример использования:
-
26@code
-
27#include "evolve_optimizer.h"
-
28#define N_PARAMS 4
-
29#define N_CANDIDATES 100
-
30#define N_BEST 10
-
31#define IQ_MUTATION (PARAM_SCALE_Q16(0.1, 0, 1))
-
32int32_t params[N_PARAMS];
-
33EvolveOptimizer_t optimizer;
-
34
-
35// Формирование параметров
-
36uint16_t param_u16 = 800;
-
37float param_f = 0.01f;
-
38uint8_t param_u8 = 40;
-
39int16_t param_i16 = 1600;
-
40params[0] = PARAM_SCALE_Q16(param_u16, 0, 1000);
-
41params[1] = PARAM_SCALE_Q16(param_f, 0.001f, 0.1f);
-
42params[2] = PARAM_SCALE_Q16(param_u8, 10, 100);
-
43params[3] = PARAM_SCALE_Q16(param_i16, 500, 5000);
-
44
-
45// Инициалиазция
-
46EvolveOptimizer_Init(&optimizer, N_PARAMS, N_CANDIDATES, N_BEST, IQ_MUTATION, params);
-
47
-
48// Шаг эволюции
-
49int32_t loss = calc_iq_loss(); // расчет эффективности параметров
-
50EvolveOptimizer_Step(&optimizer, params, loss);
-
51
-
52// Взятие следующих для эволюции параметров
-
53param_u16 = PARAM_UNSCALE_Q16(params[0], 0, 1000);
-
54param_f = PARAM_UNSCALE_Q16(params[1], 0.001f, 0.1f);
-
55param_u8 = PARAM_UNSCALE_Q16(params[2], 10, 100);
-
56param_i16 = PARAM_UNSCALE_Q16(params[3], 500, 5000);
-
57@endcode
-
58* @{
-
59*****************************************************************************/
-
60#ifndef __EVOLVE_OPTIMIZER_H_
-
61#define __EVOLVE_OPTIMIZER_H_
-
62
-
63#include "mylibs_defs.h"
-
64#include <stdint.h>
-
65#include <stdlib.h>
-
66
-
67#ifdef ENABLE_EVOLVE_OPTIMIZATION
-
68/**
-
69 * @brief Линейное масштабирование x из диапазона [min_val, max_val] в Q16.16 [0, 65536)
-
70 */
-
-
71#define PARAM_SCALE_Q16(x, min_val, max_val) \
-
72((int32_t)((((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val))) * 65536.0f))
+
23- (опционально) @ref EVOLVE_MUTATION_MIN_PCT - Минимальная мутация в процентах от Loss (по умолчанию 10%)
+
24- (опционально) @ref EVOLVE_MUTATION_MAX_PCT - Максимальная мутация в процентах от Loss (по умолчанию 100%)
+
25- (опционально) @ref ELOVLE_N_ELITE_CANDIDATE - Количество кандидатов, которые проходят в поколение без изменений
+
26
+
27@par Пример использования:
+
28@code
+
29#include "evolve_optimizer.h"
+
30#define N_PARAMS 4
+
31#define N_CANDIDATES 100
+
32#define N_BEST 10
+
33#define MUTATION 0.1f
+
34float params[N_PARAMS];
+
35EvolveOptimizer_t optimizer;
+
36
+
37// Формирование параметров
+
38uint16_t param_u16 = 800;
+
39float param_f = 0.01f;
+
40uint8_t param_u8 = 40;
+
41int16_t param_i16 = 1600;
+
42params[0] = PARAM_SCALE(param_u16, 0.0f, 1000.0f);
+
43params[1] = PARAM_SCALE(param_f, 0.001f, 0.1f);
+
44params[2] = PARAM_SCALE(param_u8, 10.0f, 100.0f);
+
45params[3] = PARAM_SCALE(param_i16, 500.0f, 5000.0f);
+
46
+
47// Инициалиазция
+
48EvolveOptimizer_Init(&optimizer, N_PARAMS, N_CANDIDATES, N_BEST, MUTATION, params);
+
49
+
50// Шаг эволюции
+
51float loss = calc_loss(); // расчет эффективности параметров (от 0 до 1)
+
52EvolveOptimizer_Step(&optimizer, params, loss);
+
53
+
54// Взятие следующих для эволюции параметров
+
55param_u16 = PARAM_UNSCALE(params[0], 0.0f, 1000.0f);
+
56param_f = PARAM_UNSCALE(params[1], 0.001f, 0.1f);
+
57param_u8 = PARAM_UNSCALE(params[2], 10.0f, 100.0f);
+
58param_i16 = PARAM_UNSCALE(params[3], 500.0f, 5000.0f);
+
59@endcode
+
60* @{
+
61*****************************************************************************/
+
62#ifndef __EVOLVE_OPTIMIZER_H_
+
63#define __EVOLVE_OPTIMIZER_H_
+
64
+
65#include "mylibs_defs.h"
+
66#include <stdint.h>
+
67#include <stdlib.h>
+
68
+
69#ifdef ENABLE_EVOLVE_OPTIMIZATION
+
70/**
+
71 * @brief Линейное масштабирование x из диапазона [min_val, max_val] в диапазон [0, 1)
+
72 */
+
+
73#define PARAM_SCALE(x, min_val, max_val) \
+
74(((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val)))
-
73
-
74/**
-
75 * @brief Обратное линейное масштабирование Q16.16 значения в диапазон [min_val, max_val]
-
76 */
-
-
77#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) \
-
78(((float)(q16_val) / 65536.0f) * ((float)(max_val) - (float)(min_val)) + (float)(min_val))
-
-
79
-
80#ifndef local_time
-
81#define local_time() HAL_GetTick() ///< Локальное время
-
82#endif
-
83
-
84/**
-
85 * @brief Структура эволюционного оптимизатора
-
86 */
-
-
87typedef struct {
-
88 uint16_t n_params; ///< Количество параметров
-
89 uint16_t n_cand; ///< Количество кандидатов
-
90 uint16_t n_best; ///< Количество лучших, усредняемых
-
91 uint16_t iq_mutation; ///< Амплитуда мутации в Q16.16
-
92 uint16_t cand_index; ///< Индекс кандидата для обработки
-
93 int32_t loss[EVOLVE_MAX_CANDIDATES]; ///< Loss для каждого кандидата
-
94 int32_t candidates[EVOLVE_MAX_CANDIDATES][EVOLVE_MAX_PARAMS]; ///< Параметры кандидатов
-
95 uint16_t sorted_idx[EVOLVE_MAX_CANDIDATES]; ///< Индексы отсортированных кандидатов
- +
75
+
76/**
+
77 * @brief Обратное линейное масштабирование значения из [0, 1) в диапазон [min_val, max_val]
+
78 */
+
+
79#define PARAM_UNSCALE(val, min_val, max_val) \
+
80(((float)(val)) * ((float)(max_val) - (float)(min_val)) + (float)(min_val))
+
81
+
82#ifndef local_time
+
83#define local_time() HAL_GetTick() ///< Локальное время
+
84#endif
+
85
+
86
+
87
+
88#ifndef EVOLVE_MUTATION_MIN_PCT
+
89#define EVOLVE_MUTATION_MIN_PCT 10 ///< Минимальная мутация (в процентах от Loss)
+
90#endif
+
91#ifndef EVOLVE_MUTATION_MAX_PCT
+
92#define EVOLVE_MUTATION_MAX_PCT 100 ///< Максимальная мутация (в процентах от Loss)
+
93#endif
+
94#ifndef ELOVLE_N_ELITE_CANDIDATE
+
95#define ELOVLE_N_ELITE_CANDIDATE 2 ///< Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2)
+
96#endif
97
-
98
-
99
-
100/**
-
101 * @cond EVOLVE_INTERNAL
-
102 */
-
103#define Q16_MUL(a,b) ((int32_t)(((int64_t)(a) * (int64_t)(b)) >> 16))
-
104
-
105// Вспомогательный указатель для сортировки
-
106static EvolveOptimizer_t *g_sort_opt; // глобальный указатель на текущий оптимизатор
-
107
-
108static int cmp_idx(const void *a, const void *b) {
-
109 if (g_sort_opt->loss[*(const uint16_t*)a] < g_sort_opt->loss[*(const uint16_t*)b])
-
110 return -1;
-
111 if (g_sort_opt->loss[*(const uint16_t*)a] > g_sort_opt->loss[*(const uint16_t*)b])
-
112 return 1;
-
113 return 0;
-
114}
-
115/** @endcond */
-
116
-
117
-
118
+
98
+
99/**
+
100 * @brief Структура эволюционного оптимизатора
+
101 */
+
+
102typedef struct {
+
103 float stability; ///< Коэффициент насколько стабильная популяция (0..1)(@ref n_cand)
+
104 uint16_t n_params; ///< Количество параметров
+
105 uint16_t n_cand; ///< Количество кандидатов в популяции
+
106 uint16_t n_best; ///< Количество лучших, усредняемых
+
107 float mutation_amp; ///< Амплитуда мутации (0..1)
+
108 uint16_t cand_index; ///< Индекс кандидата для обработки
+
109 float loss[EVOLVE_MAX_CANDIDATES]; ///< Loss для каждого кандидата
+
110 float candidates[EVOLVE_MAX_CANDIDATES][EVOLVE_MAX_PARAMS]; ///< Параметры кандидатов
+
111 uint16_t sorted_idx[EVOLVE_MAX_CANDIDATES]; ///< Индексы отсортированных кандидатов
+ +
+
113
+
114
+
115
+
116/**
+
117 * @cond EVOLVE_INTERNAL
+
118 */
119
-
120
-
121/**
-
122 * @brief Инициализация эволюционного оптимизатора.
-
123 * @param opt Указатель на структуру оптимизатора
-
124 * @param n_params Количество параметров в одном кандидате
-
125 * @param n_cand Количество кандидатов
-
126 * @param n_best Количество лучших, усредняемых
-
127 * @param iq_mutation Амплитуда мутации в Q16.16
-
128 * @param start_params Начальные параметры (Q16.16)
-
129 * @return 0 — если окей,
-
130 * -1 — если ошибка
-
131 */
-
- -
133 uint16_t n_params,
-
134 uint16_t n_cand,
-
135 uint16_t n_best,
-
136 uint16_t iq_mutation,
-
137 int32_t* start_params)
-
138{
-
139 if((opt = NULL) || (start_params == NULL))
-
140 return -1;
-
141
-
142 if(n_params > EVOLVE_MAX_PARAMS)
-
143 return -1;
-
144 opt->n_params = n_params;
-
145
-
146 if(n_cand > EVOLVE_MAX_CANDIDATES)
-
147 return -1;
-
148 opt->n_cand = n_cand;
-
149
-
150 if(n_best > EVOLVE_MAX_CANDIDATES/2)
-
151 return -1;
-
152 opt->n_best = n_best;
-
153
-
154 if(iq_mutation > 32768)
-
155 return -1;
-
156 opt->iq_mutation = iq_mutation;
+
120// Вспомогательный указатель для сортировки
+
121static EvolveOptimizer_t *g_sort_opt; // глобальный указатель на текущий оптимизатор
+
122
+
123// функция условия сортировки
+
124static int cmp_idx(const void *a, const void *b) {
+
125 if (g_sort_opt->loss[*(const uint16_t*)a] < g_sort_opt->loss[*(const uint16_t*)b])
+
126 return -1;
+
127 if (g_sort_opt->loss[*(const uint16_t*)a] > g_sort_opt->loss[*(const uint16_t*)b])
+
128 return 1;
+
129 return 0;
+
130}
+
131/** @endcond */
+
132
+
133
+
134
+
135
+
136
+
137/**
+
138 * @brief Инициализация эволюционного оптимизатора.
+
139 * @param opt Указатель на структуру оптимизатора
+
140 * @param n_params Количество параметров в одном кандидате
+
141 * @param n_cand Количество кандидатов
+
142 * @param n_best Количество лучших, усредняемых
+
143 * @param mutation_amp Амплитуда мутации (в диапазоне 0.0–1.0)
+
144 * @param start_params Начальные параметры (в диапазоне 0.0–1.0)
+
145 * @return 0 — если окей,
+
146 * -1 — если ошибка
+
147 */
+
+ +
149 uint16_t n_params,
+
150 uint16_t n_cand,
+
151 uint16_t n_best,
+
152 float mutation_amp,
+
153 float* start_params)
+
154{
+
155 if((opt == NULL) || (start_params == NULL))
+
156 return -1;
157
-
158 for (uint16_t i = 0; i < n_cand; i++) {
-
159 for (uint16_t j = 0; j < n_params; j++) {
-
160 opt->candidates[i][j] = start_params[j];
-
161 }
-
162 opt->loss[i] = 0;
-
163 }
-
164 uint32_t seed = local_time() + (ADC1->DR & 0xFF);
-
165 srand(seed);
-
166
-
167 return 0;
-
168}
+
158 if(n_params > EVOLVE_MAX_PARAMS)
+
159 return -1;
+
160 opt->n_params = n_params;
+
161
+
162 if(n_cand > EVOLVE_MAX_CANDIDATES)
+
163 return -1;
+
164 opt->n_cand = n_cand;
+
165
+
166 if(n_best > EVOLVE_MAX_CANDIDATES/2)
+
167 return -1;
+
168 opt->n_best = n_best;
+
169
+
170
+
171 if((mutation_amp > 1) || (mutation_amp < 0))
+
172 return -1;
+
173 if(mutation_amp <= 0.001f)
+
174 mutation_amp = 0.001f;
+
175 opt->mutation_amp = mutation_amp;
+
176
+
177 uint32_t seed = local_time();
+
178#ifdef ADC1
+
179 seed += (ADC1->DR & 0xFF);
+
180#endif
+
181 srand(seed);
+
182
+
183 for (uint16_t i = 0; i < n_cand; i++) {
+
184 for (uint16_t j = 0; j < n_params; j++) {
+
185 // Добавляем случайную мутацию вокруг стартового параметра
+
186 float base = start_params[j];
+
187 float inv_randmax = 1.0f / (float)RAND_MAX;
+
188 float noise = ((float)rand() * inv_randmax * 2.0f - 1.0f) * mutation_amp;
+
189 opt->candidates[i][j] = base + noise;
+
190 if (opt->candidates[i][j] < 0.0f) opt->candidates[i][j] = 0.0f;
+
191 if (opt->candidates[i][j] > 1.0f) opt->candidates[i][j] = 1.0f;
+
192 }
+
193 opt->loss[i] = 0.0f;
+
194 }
+
195
+
196 return 0;
+
197}
-
169
-
170
-
171/**
-
172 * @brief Один шаг эволюционного оптимизатора.
-
173 * @param opt Указатель на структуру оптимизатора
-
174 * @param params Массив параметров, которые будут обновлены (на выходе — новые параметры)
-
175 * @param loss Loss текущего кандидата (Q16.16)
-
176 * @return 0 — если окей,
-
177 * -1 — если ошибка
-
178 * @details
-
179 * Сохраняет loss текущего кандидата и формирует параметры следующего кандидата.
-
180 * Если накоплено n_cand кандидатов, генерируется новое поколение.
-
181 * Новое поколение формируется случайным выбором из n_best лучших с добавлением мутации.
-
182 *
-
183 * На выходе params содержит параметры следующего кандидата для измерений.
-
184 * @note Функция использует глобальную внутреннюю переменную для сортировки.
-
185 * Надо убедится что только один экземпляр функции запущен в момент времени
-
186 */
-
- -
188 int32_t* params,
-
189 int32_t loss)
-
190{
-
191 if((opt = NULL) || (params == NULL))
-
192 return -1;
-
193
-
194 uint16_t n_params = opt->n_params;
-
195 if(n_params > EVOLVE_MAX_PARAMS)
-
196 return -1;
-
197
-
198 uint16_t n_cand = opt->n_cand;
-
199 if(n_cand > EVOLVE_MAX_CANDIDATES)
-
200 return -1;
-
201
-
202 uint16_t n_best = opt->n_best;
-
203 if(n_best > EVOLVE_MAX_CANDIDATES/2)
-
204 return -1;
-
205
-
206 uint16_t mut = opt->iq_mutation;
-
207 if(mut > 32768)
-
208 return -1;
-
209
-
210 // 1. Сохраняем loss текущего кандидата
-
211 opt->loss[opt->cand_index] = loss;
-
212 opt->cand_index++;
-
213
-
214 if (opt->cand_index >= n_cand) {
-
215 // 2. Сортируем текущее поколение по loss
-
216 for(uint16_t i = 0; i < opt->n_cand; i++)
-
217 opt->sorted_idx[i] = i;
-
218
-
219 g_sort_opt = opt;
-
220 qsort(opt->sorted_idx, opt->n_cand, sizeof(uint16_t), cmp_idx);
-
221 g_sort_opt = NULL;
-
222// for (uint16_t i = 0; i < n_cand - 1; i++) {
-
223// for (uint16_t j = i + 1; j < n_cand; j++) {
-
224// if (opt->loss[j] < opt->loss[i]) {
-
225// int32_t tmp_loss = opt->loss[i];
-
226// opt->loss[i] = opt->loss[j];
-
227// opt->loss[j] = tmp_loss;
-
228
-
229// for (uint16_t k = 0; k < n_params; k++) {
-
230// int32_t tmp = opt->candidates[i][k];
-
231// opt->candidates[i][k] = opt->candidates[j][k];
-
232// opt->candidates[j][k] = tmp;
-
233// }
-
234// }
-
235// }
-
236// }
-
237
-
238 // 3. Генерируем новое поколение: каждый кандидат берется случайно из лучших с мутацией
-
239 uint16_t n_elite = 2; // количество элитных кандидатов, которые сохраняем без изменений
-
240 for (uint16_t c = 0; c < n_cand; c++) {
-
241 if (c < n_elite) {
-
242 // Копируем лучших кандидатов напрямую без мутации
-
243 for (uint16_t i = 0; i < n_params; i++) {
-
244 opt->candidates[c][i] = opt->candidates[opt->sorted_idx[c]][i]; // просто сохраняем параметры
-
245 }
-
246 opt->loss[c] = 0;
-
247 } else {
-
248 // Остальные кандидаты формируются с кроссовером и мутацией
-
249 for (uint16_t i = 0; i < n_params; i++) {
-
250 int32_t noise = (rand() % (2 * mut)) - mut;
-
251 uint16_t parent = opt->sorted_idx[rand() % opt->n_best]; // каждый параметр из случайного лучшего
-
252 opt->candidates[c][i] = opt->candidates[parent][i] + noise;
-
253 }
-
254 opt->loss[c] = 0;
-
255 }
-
256 }
-
257 opt->cand_index = 0;
-
258 }
-
259
-
260 // 4. Возвращаем параметры следующего кандидата
-
261 for (uint16_t i = 0; i < opt->n_params; i++)
-
262 params[i] = opt->candidates[opt->cand_index][i];
-
263
-
264 return 0;
-
265}
+
198
+
199
+
200/**
+
201 * @brief Один шаг эволюционного оптимизатора.
+
202 * @param opt Указатель на структуру оптимизатора
+
203 * @param params Массив параметров, которые будут обновлены (на выходе — новые параметры)
+
204 * @param loss Loss текущего кандидата
+
205 * @return 0 — если окей,
+
206 * -1 — если ошибка
+
207 * @details
+
208 * Сохраняет loss текущего кандидата и формирует параметры следующего кандидата.
+
209 * Если накоплено n_cand кандидатов, генерируется новое поколение.
+
210 * Новое поколение формируется случайным выбором из n_best лучших с добавлением мутации.
+
211 *
+
212 * На выходе params содержит параметры следующего кандидата для измерений.
+
213 * @note Функция использует глобальную внутреннюю переменную для сортировки.
+
214 * Надо убедится что только один экземпляр функции запущен в момент времени
+
215 */
+
+ +
217 float* params,
+
218 float loss)
+
219{
+
220 if((opt == NULL) || (params == NULL))
+
221 return -1;
+
222
+
223 uint16_t n_params = opt->n_params;
+
224 if(n_params > EVOLVE_MAX_PARAMS)
+
225 return -1;
+
226
+
227 uint16_t n_cand = opt->n_cand;
+
228 if(n_cand > EVOLVE_MAX_CANDIDATES)
+
229 return -1;
+
230
+
231 uint16_t n_best = opt->n_best;
+
232 if(n_best > EVOLVE_MAX_CANDIDATES/2)
+
233 return -1;
+
234
+
235 float mut = opt->mutation_amp;
+
236 if((mut > 1) ||(mut < 0))
+
237 return -1;
+
238
+
239 // 1. Сохраняем loss текущего кандидата
+
240 opt->loss[opt->cand_index] = loss;
+
241 opt->cand_index++;
+
242
+
243 if (opt->cand_index >= n_cand) {
+
244 // 2. Сортируем текущее поколение по loss
+
245 for(uint16_t i = 0; i < opt->n_cand; i++)
+
246 opt->sorted_idx[i] = i;
+
247
+
248 g_sort_opt = opt;
+
249 qsort(opt->sorted_idx, opt->n_cand, sizeof(uint16_t), cmp_idx);
+
250 g_sort_opt = NULL;
+
251
+
252 // --- Адаптивная мутация в зависимости от Loss ---
+
253 float best_loss = opt->loss[opt->sorted_idx[0]];
+
254 float worst_loss = opt->loss[opt->sorted_idx[opt->n_cand - 1]];
+
255 float diff = worst_loss - best_loss;
+
256
+
257 float sum_loss = 0.0f;
+
258 for (uint16_t i = 0; i < n_cand; i++)
+
259 sum_loss += opt->loss[i];
+
260 float avg_loss = sum_loss / (float)n_cand;
+
261
+
262
+
263 float loss_ratio = (diff > 0.0f) ? ((avg_loss - best_loss) / diff) : 0.5f;
+
264 if (loss_ratio < 0.0f) loss_ratio = 0.0f;
+
265 if (loss_ratio > 1.0f) loss_ratio = 1.0f;
+
266
+
267 // Записываем стабильность популяции в структуру
+
268 if(diff < 0.0f) diff = 0.0f;
+
269 if(diff > 1.0f) diff = 1.0f;
+
270 opt->stability = (1.0f - worst_loss) * (1.0f - (worst_loss - best_loss));
+
271 if(opt->stability < 0.0f) opt->stability = 0.0f;
+
272 if(opt->stability > 1.0f) opt->stability = 1.0f;
+
273
+
274 float mut_pct = EVOLVE_MUTATION_MIN_PCT +
+ +
276 float adaptive_mut = mut * (mut_pct / 100.0f);
+
277 if (adaptive_mut < 0.0001f) adaptive_mut = 0.0001f;
+
278
+
279 // 3. Генерируем новое поколение
+
280 uint16_t n_elite = ELOVLE_N_ELITE_CANDIDATE;
+
281 for (uint16_t c = 0; c < n_cand; c++) {
+
282 if (c < n_elite) {
+
283 for (uint16_t i = 0; i < n_params; i++)
+
284 opt->candidates[c][i] = opt->candidates[opt->sorted_idx[c]][i];
+
285 opt->loss[c] = 0.0f;
+
286 } else {
+
287 for (uint16_t i = 0; i < n_params; i++) {
+
288 float inv_randmax = 1.0f / (float)RAND_MAX;
+
289 float noise = ((float)rand() * inv_randmax * 2.0f - 1.0f) * adaptive_mut;
+
290 uint16_t parent = opt->sorted_idx[rand() % opt->n_best];
+
291 opt->candidates[c][i] = opt->candidates[parent][i] + noise;
+
292 if (opt->candidates[c][i] < 0.0f) opt->candidates[c][i] = 0.0f;
+
293 if (opt->candidates[c][i] > 1.0f) opt->candidates[c][i] = 1.0f;
+
294 }
+
295 opt->loss[c] = 0.0f;
+
296 }
+
297 }
+
298 opt->cand_index = 0;
+
299 }
+
300
+
301 // 4. Возвращаем параметры следующего кандидата
+
302 for (uint16_t i = 0; i < opt->n_params; i++)
+
303 params[i] = opt->candidates[opt->cand_index][i];
+
304
+
305 return 0;
+
306}
-
266#else // ENABLE_EVOLVE_OPTIMIZATION
-
267//заглушки
-
268typedef struct {
-
269 uint16_t n_params;
-
270 uint16_t n_cand;
-
271 uint16_t n_best;
-
272 uint16_t iq_mutation;
-
273 int32_t loss[0];
-
274 int32_t candidates[0][0];
- -
276#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, iq_mutation, start_params)
-
277#define EvolveOptimizer_Step(opt, params, LossFunc)
-
278#define PARAM_SCALE_Q16(x, min_val, max_val) (x)
-
279#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) (q16_val)
-
280#endif // ENABLE_EVOLVE_OPTIMIZATION
-
281
-
282#endif // __EVOLVE_OPTIMIZER_H_
-
283
-
284/** EVOLVE_OPTIMIZER
-
285 * @}
-
286 */
+
307#else // ENABLE_EVOLVE_OPTIMIZATION
+
308//заглушки
+
309typedef struct {
+
310 uint16_t n_params;
+
311 uint16_t n_cand;
+
312 uint16_t n_best;
+
313 float mutation_amp;
+
314 float loss[0];
+
315 float candidates[0][0];
+ +
317#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, mutation_amp, start_params)
+
318#define EvolveOptimizer_Step(opt, params, LossFunc)
+
319#define PARAM_SCALE(x, min_val, max_val) (x)
+
320#define PARAM_UNSCALE(val, min_val, max_val) (val)
+
321#endif // ENABLE_EVOLVE_OPTIMIZATION
+
322
+
323#endif // __EVOLVE_OPTIMIZER_H_
+
324
+
325/** EVOLVE_OPTIMIZER
+
326 * @}
+
327 */
#define EVOLVE_MAX_CANDIDATES
Максимальное количество кандидатов для обучения
#define EVOLVE_MAX_PARAMS
Максимальное количество параметров
-
__STATIC_INLINE int EvolveOptimizer_Step(EvolveOptimizer_t *opt, int32_t *params, int32_t loss)
Один шаг эволюционного оптимизатора.
-
#define local_time()
Локальное время
-
__STATIC_INLINE int 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 EVOLVE_MUTATION_MIN_PCT
Минимальная мутация (в процентах от Loss)
+
#define ELOVLE_N_ELITE_CANDIDATE
Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2)
+
__STATIC_INLINE int EvolveOptimizer_Init(EvolveOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, float mutation_amp, float *start_params)
Инициализация эволюционного оптимизатора.
+
#define EVOLVE_MUTATION_MAX_PCT
Максимальная мутация (в процентах от Loss)
+
#define local_time()
Локальное время
+
__STATIC_INLINE int EvolveOptimizer_Step(EvolveOptimizer_t *opt, float *params, float loss)
Один шаг эволюционного оптимизатора.
Заголочный файл для дефайнов библиотеки MyLibsGeneral.
-
Структура эволюционного оптимизатора
-
uint16_t cand_index
Индекс кандидата для обработки
-
uint16_t n_params
Количество параметров
-
uint16_t iq_mutation
Амплитуда мутации в Q16.16.
-
int32_t candidates[100][20]
Параметры кандидатов
-
uint16_t sorted_idx[100]
Индексы отсортированных кандидатов
-
uint16_t n_best
Количество лучших, усредняемых
-
uint16_t n_cand
Количество кандидатов
-
int32_t loss[100]
Loss для каждого кандидата
+
Структура эволюционного оптимизатора
+
uint16_t cand_index
Индекс кандидата для обработки
+
uint16_t n_params
Количество параметров
+
uint16_t sorted_idx[100]
Индексы отсортированных кандидатов
+
float stability
Коэффициент насколько стабильная популяция (0..1)(n_cand)
+
float loss[100]
Loss для каждого кандидата
+
uint16_t n_best
Количество лучших, усредняемых
+
uint16_t n_cand
Количество кандидатов в популяции
+
float candidates[100][20]
Параметры кандидатов
+
float mutation_amp
Амплитуда мутации (0..1)
-
diff --git a/Doc/html/files.html b/Doc/html/files.html index 4b8cceb..a27bf8e 100644 --- a/Doc/html/files.html +++ b/Doc/html/files.html @@ -3,7 +3,7 @@ - + MyLibs: File List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
- + -
@@ -71,9 +73,10 @@ $(function() { -
Here is a list of all documented files with brief descriptions:
[detail level 123]
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +
 
MyLibsGeneral
 
Inc
 
__general_flash.h
 
__general_spi.h
 
__general_uart.h
 
bit_access.h
Заголочный файл для дефайнов битового доступа
 
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
  MyLibsGeneral
  Inc
 __general_flash.h
 __general_spi.h
 __general_uart.h
 bit_access.hЗаголочный файл для дефайнов битового доступа
 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/folderclosed.svg b/Doc/html/folderclosed.svg new file mode 100644 index 0000000..b04bed2 --- /dev/null +++ b/Doc/html/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/Doc/html/folderclosedd.svg b/Doc/html/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/Doc/html/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/Doc/html/folderopen.svg b/Doc/html/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/Doc/html/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/Doc/html/folderopend.svg b/Doc/html/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/Doc/html/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/Doc/html/functions.html b/Doc/html/functions.html index b94a60a..4841303 100644 --- a/Doc/html/functions.html +++ b/Doc/html/functions.html @@ -3,7 +3,7 @@ - + MyLibs: Class Members @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
Here is a list of all documented class members with links to the class documentation for each member:
-

- c -

-
diff --git a/Doc/html/functions_vars.html b/Doc/html/functions_vars.html index 31585ac..d9cec07 100644 --- a/Doc/html/functions_vars.html +++ b/Doc/html/functions_vars.html @@ -3,7 +3,7 @@ - + MyLibs: Class Members - Variables @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
Here is a list of all documented variables with links to the class documentation for each member:
-

- c -

-
diff --git a/Doc/html/general__gpio_8c.html b/Doc/html/general__gpio_8c.html index 895b805..82278a7 100644 --- a/Doc/html/general__gpio_8c.html +++ b/Doc/html/general__gpio_8c.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_gpio.c File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src/general_gpio.c File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
+
general_gpio.c File Reference
@@ -104,50 +109,61 @@ $(function(){initNavTree('general__gpio_8c.html','',''); });

Модуль для инициализации портов и работы с ними. More...

#include "general_gpio.h"
-
Include dependency graph for general_gpio.c:
+
+ + Include dependency graph for general_gpio.c:

Go to the source code of this file.

- + + + + + + + + + +

+

Functions

HAL_StatusTypeDef GPIO_Clock_Enable (GPIO_TypeDef *GPIOx)
 Включить тактирование порта GPIO.
 
HAL_StatusTypeDef GPIO_LED_Init (GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel)
 Инициализировать светодиод (структуру светодиода)
 
HAL_StatusTypeDef GPIO_LED_On (GPIO_LEDTypeDef *led)
 Включить светодиод
 
HAL_StatusTypeDef GPIO_LED_Off (GPIO_LEDTypeDef *led)
 Выключить светодиод
 
HAL_StatusTypeDef GPIO_LED_Set (GPIO_LEDTypeDef *led, uint8_t led_state)
 Выставить светодиод по переменной
 
HAL_StatusTypeDef GPIO_LED_Blink_Start (GPIO_LEDTypeDef *led, uint32_t period)
 Активировать моргание светодиодом
 
HAL_StatusTypeDef GPIO_LED_Fading_Start (GPIO_LEDTypeDef *led, uint32_t period)
 Активировать моргание светодиодом
 
void GPIO_LED_Dynamic_Handle (GPIO_LEDTypeDef *led)
 Управление динамическими режимами свечения светодиода
 
HAL_StatusTypeDef GPIO_Switch_Init (GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)
 Инициализировать кнопку (структуру кнопки)
 
int GPIO_Read_Switch (GPIO_SwitchTypeDef *sw)
 Считать состоянии кнопки
 
-

Detailed Description

+

Detailed Description

Модуль для инициализации портов и работы с ними.

Реализация функций для работы с GPIO:

  • Включение тактирования портов
  • @@ -159,19 +175,11 @@ Functions

    Definition in file general_gpio.c.

- -
diff --git a/Doc/html/general__gpio_8c__incl.map b/Doc/html/general__gpio_8c__incl.map index 1d47388..99ab50e 100644 --- a/Doc/html/general__gpio_8c__incl.map +++ b/Doc/html/general__gpio_8c__incl.map @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/Doc/html/general__gpio_8c__incl.md5 b/Doc/html/general__gpio_8c__incl.md5 index 958ccc2..78771e7 100644 --- a/Doc/html/general__gpio_8c__incl.md5 +++ b/Doc/html/general__gpio_8c__incl.md5 @@ -1 +1 @@ -6e517891df2cdbcb0824fafba9ac3005 \ No newline at end of file +ef5806c364614a686ed2e7465f1e02dc \ No newline at end of file diff --git a/Doc/html/general__gpio_8c__incl.png b/Doc/html/general__gpio_8c__incl.png index f8a4a65..e3e6c87 100644 Binary files a/Doc/html/general__gpio_8c__incl.png and b/Doc/html/general__gpio_8c__incl.png differ diff --git a/Doc/html/general__gpio_8c_source.html b/Doc/html/general__gpio_8c_source.html index 73e3cc1..627536e 100644 --- a/Doc/html/general__gpio_8c_source.html +++ b/Doc/html/general__gpio_8c_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_gpio.c Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src/general_gpio.c Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
- + - +
-
GPIO_TypeDef * Sw_Port
GPIO порт ножки кнопки
- diff --git a/Doc/html/general__gpio_8h.html b/Doc/html/general__gpio_8h.html index 7538746..b5bf390 100644 --- a/Doc/html/general__gpio_8h.html +++ b/Doc/html/general__gpio_8h.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_gpio.h File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_gpio.h File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
+
general_gpio.h File Reference
@@ -104,69 +112,79 @@ $(function(){initNavTree('general__gpio_8h.html','',''); });

Заголовочный файл для модуля инициализации портов и работы с ними. More...

#include "mylibs_defs.h"
-
Include dependency graph for general_gpio.h:
+
+ + Include dependency graph for general_gpio.h:
-
This graph shows which files directly or indirectly include this file:
+
+ + This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

- - + - + + +

+

Classes

struct  GPIO_LEDTypeDef
struct  GPIO_LEDTypeDef
 Структура светодиода More...
struct  GPIO_SwitchTypeDef
 
struct  GPIO_SwitchTypeDef
 Структура кнопки More...
 
- + + + + + - + +

+

Macros

#define LED_PWM_TICKS   15
 Количество тиков в периоде ШИМ
 
#define LED_ON   1
 Состояние пина для включения светодиода
 
#define LED_OFF   0
 Состояние пина для выключения светодиода
 
#define SW_ON   1
 Состояние пина при нажатой кнопке
 
#define SW_OFF   0
 Состояние пина при отжатой кнопке
 
#define GPIO_TIM_Alternate_Mapping(INSTANCE)
 Маппинг альтернативной функции SPI между GPIO.
 Маппинг альтернативной функции TIM между GPIO.
 
- , LED_IS_FADING = 3 } +

+

Enumerations

enum  GPIO_LEDStateTypeDef { LED_IS_OFF = 0 , LED_IS_ON = 1 @@ -174,49 +192,52 @@ Enumerations
 Режимы работы светодиода More...
 
- + + + + + + + + + +

+

Functions

HAL_StatusTypeDef GPIO_Clock_Enable (GPIO_TypeDef *GPIOx)
 Включить тактирование порта GPIO.
 
HAL_StatusTypeDef GPIO_Switch_Init (GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State)
 Инициализировать кнопку (структуру кнопки)
 
int GPIO_Read_Switch (GPIO_SwitchTypeDef *swstart)
 Считать состоянии кнопки
 
HAL_StatusTypeDef GPIO_LED_Init (GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State)
 Инициализировать светодиод (структуру светодиода)
 
HAL_StatusTypeDef GPIO_LED_On (GPIO_LEDTypeDef *led)
 Включить светодиод
 
HAL_StatusTypeDef GPIO_LED_Off (GPIO_LEDTypeDef *led)
 Выключить светодиод
 
HAL_StatusTypeDef GPIO_LED_Set (GPIO_LEDTypeDef *led, uint8_t led_state)
 Выставить светодиод по переменной
 
HAL_StatusTypeDef GPIO_LED_Blink_Start (GPIO_LEDTypeDef *led, uint32_t period)
 Активировать моргание светодиодом
 
HAL_StatusTypeDef GPIO_LED_Fading_Start (GPIO_LEDTypeDef *led, uint32_t period)
 Активировать моргание светодиодом
 
void GPIO_LED_Dynamic_Handle (GPIO_LEDTypeDef *led)
 Управление динамическими режимами свечения светодиода
 
-

Detailed Description

+

Detailed Description

Заголовочный файл для модуля инициализации портов и работы с ними.

Definition in file general_gpio.h.

- -
diff --git a/Doc/html/general__gpio_8h__dep__incl.map b/Doc/html/general__gpio_8h__dep__incl.map index 5752b36..1ee50f3 100644 --- a/Doc/html/general__gpio_8h__dep__incl.map +++ b/Doc/html/general__gpio_8h__dep__incl.map @@ -1,16 +1,16 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/Doc/html/general__gpio_8h__dep__incl.md5 b/Doc/html/general__gpio_8h__dep__incl.md5 index ad68897..b686327 100644 --- a/Doc/html/general__gpio_8h__dep__incl.md5 +++ b/Doc/html/general__gpio_8h__dep__incl.md5 @@ -1 +1 @@ -601832d7a86478887e6618268a8e6110 \ No newline at end of file +f42bf5193afb062a9c95d3c96bb4e0cd \ No newline at end of file diff --git a/Doc/html/general__gpio_8h__dep__incl.png b/Doc/html/general__gpio_8h__dep__incl.png index 506ce37..8d29aae 100644 Binary files a/Doc/html/general__gpio_8h__dep__incl.png and b/Doc/html/general__gpio_8h__dep__incl.png differ diff --git a/Doc/html/general__gpio_8h__incl.map b/Doc/html/general__gpio_8h__incl.map index 2a678e8..f3ddf1d 100644 --- a/Doc/html/general__gpio_8h__incl.map +++ b/Doc/html/general__gpio_8h__incl.map @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/Doc/html/general__gpio_8h__incl.md5 b/Doc/html/general__gpio_8h__incl.md5 index e999f78..7a01ba7 100644 --- a/Doc/html/general__gpio_8h__incl.md5 +++ b/Doc/html/general__gpio_8h__incl.md5 @@ -1 +1 @@ -64dafee7a8d3ae5fb443763ec7bc3400 \ No newline at end of file +21dce52570063c58c664fb8c26d4473d \ No newline at end of file diff --git a/Doc/html/general__gpio_8h__incl.png b/Doc/html/general__gpio_8h__incl.png index 04247fc..0a47dfa 100644 Binary files a/Doc/html/general__gpio_8h__incl.png and b/Doc/html/general__gpio_8h__incl.png differ diff --git a/Doc/html/general__gpio_8h_source.html b/Doc/html/general__gpio_8h_source.html index 11028f6..3ebec28 100644 --- a/Doc/html/general__gpio_8h_source.html +++ b/Doc/html/general__gpio_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_gpio.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_gpio.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
- + - +
-
122
123/////////////////////////////////////////////////////////////////////
124///////////////////////////---FUNCTIONS---///////////////////////////
-
125/**
+
125/**
126 * @addtogroup MYLIBS_GPIO_GENERAL General tools
127 * @ingroup MY_LIBS_GPIO
128 * @brief Общие функции/макросы для работы с GPIO
@@ -288,7 +296,7 @@ $(function(){initNavTree('general__gpio_8h_source.html','',''); });
178 * @}
179 */
180///////////////////////////---FUNCTIONS---///////////////////////////
-
181
+
181
182
183#endif // __GPIO_GENERAL_H_
HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
Включить тактирование порта GPIO.
@@ -321,12 +329,11 @@ $(function(){initNavTree('general__gpio_8h_source.html','',''); });
GPIO_TypeDef * Sw_Port
GPIO порт ножки кнопки
- diff --git a/Doc/html/general__tim_8c.html b/Doc/html/general__tim_8c.html index bc889a7..bd4d793 100644 --- a/Doc/html/general__tim_8c.html +++ b/Doc/html/general__tim_8c.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_tim.c File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src/general_tim.c File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
+
general_tim.c File Reference
@@ -104,55 +109,67 @@ $(function(){initNavTree('general__tim_8c.html','',''); });

Модуль для инициализации таймеров и работы с ними. More...

#include "general_tim.h"
-
Include dependency graph for general_tim.c:
+
+ + Include dependency graph for general_tim.c:

Go to the source code of this file.

- + + + + + + + + + + +

+

Functions

HAL_StatusTypeDef TIM_Base_Init (TIM_SettingsTypeDef *stim)
 Инициализация таймера.
 
HAL_StatusTypeDef TIM_Encoder_Init (TIM_EncoderTypeDef *henc, TIM_HandleTypeDef *htim)
 Инициализация режима энкодер у таймера.
 
HAL_StatusTypeDef TIM_Output_PWM_Init (TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN)
 Инициализация выхода ШИМ таймера.
 
HAL_StatusTypeDef TIM_OC_Comparator_Init (TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)
 Инициализация OC компаратора таймера.
 
HAL_StatusTypeDef TIM_Encoder_Read (TIM_EncoderTypeDef *henc)
 Считать энкодер.
 
int TIM_Encoder_ReadSwitch (TIM_EncoderTypeDef *henc)
 Считать кнопку энкодера.
 
HAL_StatusTypeDef TIM_Delay (TIM_HandleTypeDef *htim, uint16_t delay)
 Задержка в тиках таймера (блокирующая).
 
HAL_StatusTypeDef TIM_Delay_Start (TIM_HandleTypeDef *htim)
 Начать отсчет неблокирующей задержки.
 
HAL_StatusTypeDef TIM_Delay_NonBlocking (TIM_HandleTypeDef *htim, uint16_t delay)
 Задержка в тиках таймера (неблокирующая).
 
void TIM_Base_MspInit (TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode)
 Инициализация CLK и NVIC таймеров.
 
void TIM_Base_MspDeInit (TIM_HandleTypeDef *htim)
 Деинициализация CLK и NVIC таймеров.
 
-

Detailed Description

+

Detailed Description

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

Реализация функций для работы с TIM:

  • Инициализация таймера и его каналов
  • @@ -163,19 +180,11 @@ Functions

    Definition in file general_tim.c.

- -
diff --git a/Doc/html/general__tim_8c__incl.map b/Doc/html/general__tim_8c__incl.map index 1096c09..c9dcd77 100644 --- a/Doc/html/general__tim_8c__incl.map +++ b/Doc/html/general__tim_8c__incl.map @@ -1,14 +1,14 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/Doc/html/general__tim_8c__incl.md5 b/Doc/html/general__tim_8c__incl.md5 index b3c8500..7a3d6eb 100644 --- a/Doc/html/general__tim_8c__incl.md5 +++ b/Doc/html/general__tim_8c__incl.md5 @@ -1 +1 @@ -b9386d564e6b4fd6c35f93b0536b2339 \ No newline at end of file +eb15c46347f395057c20d321276b7d03 \ No newline at end of file diff --git a/Doc/html/general__tim_8c__incl.png b/Doc/html/general__tim_8c__incl.png index 616abfe..d4ca6a6 100644 Binary files a/Doc/html/general__tim_8c__incl.png and b/Doc/html/general__tim_8c__incl.png differ diff --git a/Doc/html/general__tim_8c_source.html b/Doc/html/general__tim_8c_source.html index 09759d2..bc98ff1 100644 --- a/Doc/html/general__tim_8c_source.html +++ b/Doc/html/general__tim_8c_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_tim.c Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Src/general_tim.c Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
- + - +
-
#define check_null_ptr_1(p1)
Проверить один указатель на NULL.
Definition mylibs_defs.h:38
#define check_null_ptr_3(p1, p2, p3)
Проверить три указателя на NULL.
Definition mylibs_defs.h:44
#define MyLibs_Error_Handler(params)
Error_Handler который будет вызыватся в библиотеке
Definition mylibs_defs.h:31
-
#define GPIO_TIM_Alternate_Mapping(INSTANCE)
Маппинг альтернативной функции SPI между GPIO.
+
#define GPIO_TIM_Alternate_Mapping(INSTANCE)
Маппинг альтернативной функции TIM между GPIO.
HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
Включить тактирование порта GPIO.
int GPIO_Read_Switch(GPIO_SwitchTypeDef *swstart)
Считать состоянии кнопки
HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State)
Инициализировать кнопку (структуру кнопки)
@@ -888,12 +896,11 @@ $(function(){initNavTree('general__tim_8c_source.html','',''); });
float sTimFreqHz
Желаемая частота таймера
- diff --git a/Doc/html/general__tim_8h.html b/Doc/html/general__tim_8h.html index 534318f..02f3cb8 100644 --- a/Doc/html/general__tim_8h.html +++ b/Doc/html/general__tim_8h.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
+
general_tim.h File Reference
@@ -105,87 +113,109 @@ $(function(){initNavTree('general__tim_8h.html','',''); }); More...

#include "mylibs_defs.h"
#include "general_gpio.h"
-
Include dependency graph for general_tim.h:
+
+ + Include dependency graph for general_tim.h:
-
This graph shows which files directly or indirectly include this file:
+
+ + This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

- - + - + + +

+

Classes

struct  TIM_SettingsTypeDef
struct  TIM_SettingsTypeDef
 Структура инициализации таймера More...
struct  TIM_EncoderTypeDef
 
struct  TIM_EncoderTypeDef
 Структура инициализации енкодера More...
 
- + + + + + + + + + + + + + + + + +

+

Macros

#define HAL_TIM_MODULE_ENABLED
 
#define USE_TIM1
 Включить TIM1 в TIM_Base_MspInit.
 
#define USE_TIM2
 Включить TIM2 в TIM_Base_MspInit.
 
#define USE_TIM3
 Включить TIM3 в TIM_Base_MspInit.
 
#define USE_TIM4
 Включить TIM4 в TIM_Base_MspInit.
 
#define USE_TIM5
 Включить TIM5 в TIM_Base_MspInit.
 
#define USE_TIM6
 Включить TIM6 в TIM_Base_MspInit.
 
#define USE_TIM7
 Включить TIM7 в TIM_Base_MspInit.
 
#define USE_TIM8
 Включить TIM8 в TIM_Base_MspInit.
 
#define USE_TIM9
 Включить TIM9 в TIM_Base_MspInit.
 
#define USE_TIM10
 Включить TIM10 в TIM_Base_MspInit.
 
#define USE_TIM11
 Включить TIM11 в TIM_Base_MspInit.
 
#define USE_TIM12
 Включить TIM12 в TIM_Base_MspInit.
 
#define USE_TIM13
 Включить TIM13 в TIM_Base_MspInit.
 
#define USE_TIM14
 Включить TIM14 в TIM_Base_MspInit.
 
#define TIM_IT_CONF_Pos   0
 
#define TIM_IT_CONF   (1<<(TIM_IT_CONF_Pos))
 
- +
} +

+

Enumerations

enum  TIM_ITModeTypeDef { TIM_DEFAULT = 0 , TIM_IT_MODE = (1<<( 0 )) }
 Режим прерываний таймера More...
 
enum  TIM_MHzTickBaseTypeDef {
  TIM_Base_Disable = 0 , TIM_TickBase_1US = 1 @@ -198,37 +228,49 @@ Enumerations
 Длительность тика таймера (частота тактирования таймера) More...
 
- + + + + + + + + + + +

+

Functions

HAL_StatusTypeDef TIM_Output_PWM_Init (TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t PWM_PIN)
 Инициализация выхода ШИМ таймера.
 
HAL_StatusTypeDef TIM_OC_Comparator_Init (TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)
 Инициализация OC компаратора таймера.
 
HAL_StatusTypeDef TIM_Encoder_Init (TIM_EncoderTypeDef *henc1, TIM_HandleTypeDef *htim)
 Инициализация режима энкодер у таймера.
 
HAL_StatusTypeDef TIM_Encoder_Read (TIM_EncoderTypeDef *henc)
 Считать энкодер.
 
int TIM_Encoder_ReadSwitch (TIM_EncoderTypeDef *henc)
 Считать кнопку энкодера.
 
HAL_StatusTypeDef TIM_Delay_Start (TIM_HandleTypeDef *htim)
 Начать отсчет неблокирующей задержки.
 
HAL_StatusTypeDef TIM_Delay (TIM_HandleTypeDef *htim, uint16_t delay)
 Задержка в тиках таймера (блокирующая).
 
HAL_StatusTypeDef TIM_Delay_NonBlocking (TIM_HandleTypeDef *htim, uint16_t delay)
 Задержка в тиках таймера (неблокирующая).
 
HAL_StatusTypeDef TIM_Base_Init (TIM_SettingsTypeDef *stim)
 Инициализация таймера.
 
void TIM_Base_MspInit (TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode)
 Инициализация CLK и NVIC таймеров.
 
void TIM_Base_MspDeInit (TIM_HandleTypeDef *htim)
 Деинициализация CLK и NVIC таймеров.
 
-

Detailed Description

+

Detailed Description

Заголовочный файл для модуля инициализации таймеров и работы с ними.

Definition in file general_tim.h.

-

Macro Definition Documentation

+

Macro Definition Documentation

◆ TIM_IT_CONF_Pos

@@ -263,19 +305,11 @@ Functions
- - diff --git a/Doc/html/general__tim_8h__dep__incl.map b/Doc/html/general__tim_8h__dep__incl.map index e76bc39..3dcd765 100644 --- a/Doc/html/general__tim_8h__dep__incl.map +++ b/Doc/html/general__tim_8h__dep__incl.map @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/Doc/html/general__tim_8h__dep__incl.md5 b/Doc/html/general__tim_8h__dep__incl.md5 index abe2711..2434b2c 100644 --- a/Doc/html/general__tim_8h__dep__incl.md5 +++ b/Doc/html/general__tim_8h__dep__incl.md5 @@ -1 +1 @@ -44714191f83fa51a72cbc1377ffdbdff \ No newline at end of file +74541afe89b6c16b8591605dc764fc98 \ No newline at end of file diff --git a/Doc/html/general__tim_8h__dep__incl.png b/Doc/html/general__tim_8h__dep__incl.png index c7c1671..6bb7cd8 100644 Binary files a/Doc/html/general__tim_8h__dep__incl.png and b/Doc/html/general__tim_8h__dep__incl.png differ diff --git a/Doc/html/general__tim_8h__incl.map b/Doc/html/general__tim_8h__incl.map index ee3bd57..21eca5a 100644 --- a/Doc/html/general__tim_8h__incl.map +++ b/Doc/html/general__tim_8h__incl.map @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/Doc/html/general__tim_8h__incl.md5 b/Doc/html/general__tim_8h__incl.md5 index c5ffabb..d78e9c9 100644 --- a/Doc/html/general__tim_8h__incl.md5 +++ b/Doc/html/general__tim_8h__incl.md5 @@ -1 +1 @@ -8d2ac3de78aaeedbad6de045ad16b161 \ No newline at end of file +8ec1d8e42b4cabc9ae1262ea0306324b \ No newline at end of file diff --git a/Doc/html/general__tim_8h__incl.png b/Doc/html/general__tim_8h__incl.png index ac28d97..481c01c 100644 Binary files a/Doc/html/general__tim_8h__incl.png and b/Doc/html/general__tim_8h__incl.png differ diff --git a/Doc/html/general__tim_8h_source.html b/Doc/html/general__tim_8h_source.html index 6374e8d..5f30512 100644 --- a/Doc/html/general__tim_8h_source.html +++ b/Doc/html/general__tim_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({ - + - +
-
22
23/////////////////////////////////////////////////////////////////////
24/////////////////////////---USER SETTINGS---/////////////////////////
-
25/**
+
25/**
26 * @addtogroup TIM_INIT Init defines
27 * @ingroup MYLIBS_TIM_GENERAL
28 * @brief Настройка таймеров
@@ -150,12 +158,12 @@ $(function(){initNavTree('general__tim_8h_source.html','',''); });
48 * @}
49 */
50/////////////////////////---USER SETTINGS---/////////////////////////
-
51#include "mylibs_defs.h"
+
51#include "mylibs_defs.h"
52#include "general_gpio.h"
53
54/////////////////////////////////////////////////////////////////////
55////////////////////////////---DEFINES---////////////////////////////
-
56#define TIM_IT_CONF_Pos 0
+
56#define TIM_IT_CONF_Pos 0
57//#define TIM_PWM_CONF_Pos 1
58//#define TIM_CLCK_SRC_CONF_Pos 2
59//#define TIM_SLAVE_CONF_Pos 3
@@ -166,12 +174,12 @@ $(function(){initNavTree('general__tim_8h_source.html','',''); });
64//#define TIM_PWM_CONF (1<<(TIM_PWM_Pos))
65
66////////////////////////////---DEFINES---////////////////////////////]
-
67
+
67
68
69
70/////////////////////////////////////////////////////////////////////
71///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
72/**
+
72/**
73 * @brief Режим прерываний таймера
74 * @ingroup MYLIBS_TIM_GENERAL
75 */
@@ -264,10 +272,10 @@ $(function(){initNavTree('general__tim_8h_source.html','',''); });
156///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
157
+
157
158/////////////////////////////////////////////////////////////////////
159///////////////////////////---FUNCTIONS---///////////////////////////
-
160/**
+
160/**
161 * @addtogroup MYLIBS_TIM_OC PWM/OC Channels tools
162 * @ingroup MY_LIBS_TIM
163 * @brief Функции для инициализации базовых функций каналов таймера
@@ -329,7 +337,7 @@ $(function(){initNavTree('general__tim_8h_source.html','',''); });
219 * @}
220 */
221///////////////////////////---FUNCTIONS---///////////////////////////
-
222
+
222
223
224#endif // __TIM_GENERAL_H_
Заголовочный файл для модуля инициализации портов и работы с ними.
@@ -380,12 +388,11 @@ $(function(){initNavTree('general__tim_8h_source.html','',''); });
float sTimFreqHz
Желаемая частота таймера
- diff --git a/Doc/html/globals.html b/Doc/html/globals.html index b470d85..66ad2d8 100644 --- a/Doc/html/globals.html +++ b/Doc/html/globals.html @@ -3,7 +3,7 @@ - + MyLibs: File Members @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
Here is a list of all documented file members with links to the documentation:
-

- a -

-
diff --git a/Doc/html/globals_defs.html b/Doc/html/globals_defs.html index 77ff945..29ec4f2 100644 --- a/Doc/html/globals_defs.html +++ b/Doc/html/globals_defs.html @@ -3,7 +3,7 @@ - + MyLibs: File Members @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
Here is a list of all documented macros with links to the documentation:
-

- a -

-
diff --git a/Doc/html/globals_enum.html b/Doc/html/globals_enum.html index 6f657c5..5e793c5 100644 --- a/Doc/html/globals_enum.html +++ b/Doc/html/globals_enum.html @@ -3,7 +3,7 @@ - + MyLibs: File Members @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
-
diff --git a/Doc/html/globals_eval.html b/Doc/html/globals_eval.html index 0a9db7f..6328d76 100644 --- a/Doc/html/globals_eval.html +++ b/Doc/html/globals_eval.html @@ -3,7 +3,7 @@ - + MyLibs: File Members @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
-
diff --git a/Doc/html/globals_func.html b/Doc/html/globals_func.html index 1c29fbd..fca3e0d 100644 --- a/Doc/html/globals_func.html +++ b/Doc/html/globals_func.html @@ -3,7 +3,7 @@ - + MyLibs: File Members @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
Here is a list of all documented functions with links to the documentation:
-

- e -

-
diff --git a/Doc/html/graph_legend.html b/Doc/html/graph_legend.html index 141b423..dc6f4f9 100644 --- a/Doc/html/graph_legend.html +++ b/Doc/html/graph_legend.html @@ -3,7 +3,7 @@ - + MyLibs: Graph Legend @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
  • A dark red arrow is used for private inheritance.
  • -A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • -A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
    -
    diff --git a/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html b/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html index 91e6dff..08e7802 100644 --- a/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html +++ b/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html @@ -3,7 +3,7 @@ - + MyLibs: Bit access defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Bit access defines
    + +
    Bit access defines

    Макросы и typedef'ы для работы с битами в unsigned типах. More...

    -
    Collaboration diagram for Bit access defines:
    +
    + + Collaboration diagram for Bit access defines:
    - - - - - + + + + + + + +

    +

    Classes

    union  uint8_BitTypeDef
    union  uint16_BitTypeDef
    union  uint32_BitTypeDef
    union  uint64_BitTypeDef
    union  uint8_BitTypeDef
     
    union  uint16_BitTypeDef
     
    union  uint32_BitTypeDef
     
    union  uint64_BitTypeDef
     
    - - + - + + - + + - + + +

    +

    Macros

    #define uint8_bit(_uint8_, _bit_)
    #define uint8_bit(_uint8_, _bit_)   (*(uint8_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
     Получить n-й бит из uint8_t.
    #define uint16_bit(_uint8_, _bit_)
     
    #define uint16_bit(_uint8_, _bit_)   (*(uint16_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
     Получить n-й бит из uint16_t.
    #define uint32_bit(_uint8_, _bit_)
     
    #define uint32_bit(_uint8_, _bit_)   (*(uint32_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
     Получить n-й бит из uint32_t.
    #define uint64_bit(_uint8_, _bit_)
     
    #define uint64_bit(_uint8_, _bit_)   (*(uint64_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
     Получить n-й бит из uint64_t.
     
    -

    Detailed Description

    +

    Detailed Description

    Макросы и typedef'ы для работы с битами в unsigned типах.

    В этом файле определены макросы для получения значения конкретного бита^

  • Макросы возвращают 0 или 1.
  • -
  • Доступ реализован через приведение к union с битовыми полями, поэтому это безопасный способ работы с отдельными битами без ручного сдвига и маскирования.
  • +
  • Доступ реализован через приведение к union с битовыми полями, поэтому это безопасный способ работы с отдельными битами без ручного сдвига и маскирования.
  • -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ uint8_bit

    @@ -162,18 +177,16 @@ Macros #define uint8_bit ( - _uint8_, + _uint8_, - _bit_ ) + _bit_ )   (*(uint8_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
    -Value:
    (*(uint8_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
    - -
    +

    Получить n-й бит из uint8_t.

    Parameters
    @@ -198,18 +211,16 @@ Macros - + - +
    #define uint16_bit ( _uint8_, _uint8_,
    _bit_ ) _bit_ )   (*(uint16_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
    -Value:
    (*(uint16_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
    - -
    +

    Получить n-й бит из uint16_t.

    Parameters
    @@ -234,18 +245,16 @@ Macros - + - +
    #define uint32_bit ( _uint8_, _uint8_,
    _bit_ ) _bit_ )   (*(uint32_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
    -Value:
    (*(uint32_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
    - -
    +

    Получить n-й бит из uint32_t.

    Parameters
    @@ -270,18 +279,16 @@ Macros - + - +
    #define uint64_bit ( _uint8_, _uint8_,
    _bit_ ) _bit_ )   (*(uint64_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
    -Value:
    (*(uint64_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
    - -
    +

    Получить n-й бит из uint64_t.

    Parameters
    @@ -299,18 +306,10 @@ Macros - - diff --git a/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.html b/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.html index d0f6ddf..0aa93d9 100644 --- a/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.html +++ b/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.html @@ -3,7 +3,7 @@ - +MyLibs: Delays defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + -
    @@ -71,9 +73,10 @@ $(function() {
    -
    -
    Delays defines
    + +
    Delays defines

    Макросы и определения для работы с задержками в миллисекундах. More...

    -
    Collaboration diagram for Delays defines:
    +
    + + Collaboration diagram for Delays defines:
    - - + - + + - + + - + + +

    +

    Macros

    #define msDelay(_ms_)
    #define msDelay(_ms_)   HAL_Delay(_ms_)
     Задержка на указанное количество миллисекунд.
    #define msDelayStart(_pvar_)
     
    #define msDelayStart(_pvar_)   *(_pvar_) = HAL_GetTick()
     Начать отсчет задержки.
    #define msDelayWhileActive(_ms_, _pvar_)
     
    #define msDelayWhileActive(_ms_, _pvar_)   (HAL_GetTick() - *(_pvar_) < _ms_)
     Проверяет, активна ли задержка.
    #define msDelayWaitDone(_ms_, _pvar_)
     
    #define msDelayWaitDone(_ms_, _pvar_)   (HAL_GetTick() - *(_pvar_) >= _ms_)
     Проверяет, завершилась ли задержка.
     
    -

    Detailed Description

    +

    Detailed Description

    Макросы и определения для работы с задержками в миллисекундах.

    Этот блок содержит макросы для реализации задержек с использованием HAL или FreeRTOS:

    • msDelay — простая задержка заданной длительности;
    • @@ -133,7 +143,7 @@ Macros
    • msDelayWhileActive — проверка, активна ли задержка;
    • msDelayWaitDone — проверка, завершена ли задержка. Эти макросы удобны для реализации неблокирующих задержек.
    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ msDelay

    @@ -143,13 +153,12 @@ Macros #define msDelay ( - _ms_) - + _ms_) +    HAL_Delay(_ms_)
    -Value:
    HAL_Delay(_ms_)
    -
    +

    Задержка на указанное количество миллисекунд.

    Parameters
    @@ -172,13 +181,12 @@ Macros - - + +
    #define msDelayStart ( _pvar_) _pvar_)   *(_pvar_) = HAL_GetTick()
    -Value:
    *(_pvar_) = HAL_GetTick()
    -
    +

    Начать отсчет задержки.

    Parameters
    @@ -202,17 +210,16 @@ Macros - + - +
    #define msDelayWhileActive ( _ms_, _ms_,
    _pvar_ ) _pvar_ )   (HAL_GetTick() - *(_pvar_) < _ms_)
    -Value:
    (HAL_GetTick() - *(_pvar_) < _ms_)
    -
    +

    Проверяет, активна ли задержка.

    Parameters
    @@ -246,17 +253,16 @@ Macros - + - +
    #define msDelayWaitDone ( _ms_, _ms_,
    _pvar_ ) _pvar_ )   (HAL_GetTick() - *(_pvar_) >= _ms_)
    -Value:
    (HAL_GetTick() - *(_pvar_) >= _ms_)
    -
    +

    Проверяет, завершилась ли задержка.

    Parameters
    @@ -283,18 +289,10 @@ Macros - - diff --git a/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html index 02199b4..a3931c8 100644 --- a/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html +++ b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html @@ -3,7 +3,7 @@ - +MyLibs: Error Handler defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + -
    @@ -71,9 +73,10 @@ $(function() {
    -
    -
    Error Handler defines
    + +
    Error Handler defines

    Дефайны для обработки ошибок More...

    -
    Collaboration diagram for Error Handler defines:
    +
    + + Collaboration diagram for Error Handler defines:
    - - + - + + - + + - + + - + + - + + +

    +

    Macros

    #define MyLibs_Error_Handler(params)
    #define MyLibs_Error_Handler(params)   Error_Handler(params)
     Error_Handler который будет вызыватся в библиотеке
    #define check_null_ptr_1(p1)
     
    #define check_null_ptr_1(p1)   (p1 == NULL)
     Проверить один указатель на NULL.
    #define check_null_ptr_2(p1, p2)
     
    #define check_null_ptr_2(p1, p2)   ((p1 == NULL) || (p1 != NULL && p2 == NULL))
     Проверить два указателя на NULL.
    #define check_null_ptr_3(p1, p2, p3)
     
    #define check_null_ptr_3(p1, p2, p3)   ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && p3 == NULL))))
     Проверить три указателя на NULL.
    #define check_null_ptr_4(p1, p2, p3, p4)
     
    #define check_null_ptr_4(p1, p2, p3, p4)   ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && ((p3 == NULL) || (p3 != NULL && p4 == NULL))))))
     Проверить четыре указателя на NULL.
    #define check_null_ptr_5(p1, p2, p3, p4, p5)
     
    #define check_null_ptr_5(p1, p2, p3, p4, p5)   ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && ((p3 == NULL) || (p3 != NULL && ((p4 == NULL) || (p4 != NULL && p5 == NULL))))))))
     Проверить пять указателей на NULL.
     
    - +

    +

    Functions

    void Error_Handler (void)
     
    -

    Detailed Description

    +

    Detailed Description

    Дефайны для обработки ошибок

    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ MyLibs_Error_Handler

    @@ -146,13 +160,12 @@ void Error_Handler (vo #define MyLibs_Error_Handler ( - params) - + params) +    Error_Handler(params)
    -Value:
    Error_Handler(params)
    -
    +

    Error_Handler который будет вызыватся в библиотеке

    Definition at line 31 of file mylibs_defs.h.

    @@ -168,13 +181,12 @@ void Error_Handler (vo #define check_null_ptr_1 ( - p1) - + p1) +    (p1 == NULL)
    -Value:
    (p1 == NULL)
    -
    +

    Проверить один указатель на NULL.

    Definition at line 38 of file mylibs_defs.h.

    @@ -190,17 +202,16 @@ void Error_Handler (vo #define check_null_ptr_2 ( - p1, + p1, - p2 ) + p2 )   ((p1 == NULL) || (p1 != NULL && p2 == NULL))
    -Value:
    ((p1 == NULL) || (p1 != NULL && p2 == NULL))
    -
    +

    Проверить два указателя на NULL.

    Definition at line 41 of file mylibs_defs.h.

    @@ -216,22 +227,21 @@ void Error_Handler (vo #define check_null_ptr_3 ( - p1, + p1, - p2, + p2, - p3 ) + p3 )   ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && p3 == NULL))))
    -Value:
    ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && p3 == NULL))))
    -
    +

    Проверить три указателя на NULL.

    Definition at line 44 of file mylibs_defs.h.

    @@ -247,27 +257,26 @@ void Error_Handler (vo #define check_null_ptr_4 ( - p1, + p1, - p2, + p2, - p3, + p3, - p4 ) + p4 )   ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && ((p3 == NULL) || (p3 != NULL && p4 == NULL))))))
    -Value:
    ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && ((p3 == NULL) || (p3 != NULL && p4 == NULL))))))
    -
    +

    Проверить четыре указателя на NULL.

    Definition at line 47 of file mylibs_defs.h.

    @@ -283,32 +292,31 @@ void Error_Handler (vo #define check_null_ptr_5 ( - p1, + p1, - p2, + p2, - p3, + p3, - p4, + p4, - p5 ) + p5 )   ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && ((p3 == NULL) || (p3 != NULL && ((p4 == NULL) || (p4 != NULL && p5 == NULL))))))))
    -Value:
    ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && ((p3 == NULL) || (p3 != NULL && ((p4 == NULL) || (p4 != NULL && p5 == NULL))))))))
    -
    +

    Проверить пять указателей на NULL.

    Definition at line 50 of file mylibs_defs.h.

    @@ -317,18 +325,10 @@ void Error_Handler (vo
    - -
    diff --git a/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.html b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.html index 3581a16..14d4da5 100644 --- a/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.html +++ b/Doc/html/group___e_v_o_l_v_e___c_o_n_f_i_g.html @@ -3,7 +3,7 @@ - + MyLibs: Evolve configs @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Evolve configs
    + +
    Evolve configs

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

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

    +

    Macros

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

    Detailed Description

    +

    Detailed Description

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

    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ ENABLE_EVOLVE_OPTIMIZATION

    @@ -182,18 +191,10 @@ Macros
    - -
    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 index 641eb2f..89e1aeb 100644 --- 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 @@ -3,7 +3,7 @@ - + MyLibs: Evolve optimizer @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Evolve optimizer
    + +
    Evolve optimizer

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

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

    +

    Classes

    struct  EvolveOptimizer_t
    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].
    #define local_time()
    #define PARAM_SCALE(x, min_val, max_val)   (((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val)))
     Линейное масштабирование x из диапазона [min_val, max_val] в диапазон [0, 1)
     
    #define PARAM_UNSCALE(val, min_val, max_val)   (((float)(val)) * ((float)(max_val) - (float)(min_val)) + (float)(min_val))
     Обратное линейное масштабирование значения из [0, 1) в диапазон [min_val, max_val].
     
    #define local_time()   HAL_GetTick()
     Локальное время
     
    #define EVOLVE_MUTATION_MIN_PCT   10
     Минимальная мутация (в процентах от Loss)
     
    #define EVOLVE_MUTATION_MAX_PCT   100
     Максимальная мутация (в процентах от Loss)
     
    #define ELOVLE_N_ELITE_CANDIDATE   2
     Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2)
     
    - - - - - + + + + + +

    +

    Functions

    __STATIC_INLINE int 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 int EvolveOptimizer_Step (EvolveOptimizer_t *opt, int32_t *params, int32_t loss)
     Один шаг эволюционного оптимизатора.
    __STATIC_INLINE int EvolveOptimizer_Init (EvolveOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, float mutation_amp, float *start_params)
     Инициализация эволюционного оптимизатора.
     
    __STATIC_INLINE int EvolveOptimizer_Step (EvolveOptimizer_t *opt, float *params, float loss)
     Один шаг эволюционного оптимизатора.
     
    -

    Detailed Description

    +

    Detailed Description

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

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

    • Любое количество параметров
    • @@ -147,13 +170,16 @@ Functions
    • ENABLE_EVOLVE_OPTIMIZATION - Включить оптимизацию параметров Если библиотека отключена ENABLE_EVOLVE_OPTIMIZATION, то вставляются заглушки, никак не влияющие на параметры и остальную программу
    • EVOLVE_MAX_PARAMS - Максимальное количество параметров
    • EVOLVE_MAX_CANDIDATES - Максимальное количество кандидатов для обучения
    • +
    • (опционально) EVOLVE_MUTATION_MIN_PCT - Минимальная мутация в процентах от Loss (по умолчанию 10%)
    • +
    • (опционально) EVOLVE_MUTATION_MAX_PCT - Максимальная мутация в процентах от Loss (по умолчанию 100%)
    • +
    • (опционально) ELOVLE_N_ELITE_CANDIDATE - Количество кандидатов, которые проходят в поколение без изменений
    Пример использования:
    #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];
    +
    #define MUTATION 0.1f
    +
    float params[N_PARAMS];
    // Формирование параметров
    @@ -161,90 +187,89 @@ Functions
    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);
    +
    params[0] = PARAM_SCALE(param_u16, 0.0f, 1000.0f);
    +
    params[1] = PARAM_SCALE(param_f, 0.001f, 0.1f);
    +
    params[2] = PARAM_SCALE(param_u8, 10.0f, 100.0f);
    +
    params[3] = PARAM_SCALE(param_i16, 500.0f, 5000.0f);
    // Инициалиазция
    -
    EvolveOptimizer_Init(&optimizer, N_PARAMS, N_CANDIDATES, N_BEST, IQ_MUTATION, params);
    +
    EvolveOptimizer_Init(&optimizer, N_PARAMS, N_CANDIDATES, N_BEST, MUTATION, params);
    // Шаг эволюции
    -
    int32_t loss = calc_iq_loss(); // расчет эффективности параметров
    -
    EvolveOptimizer_Step(&optimizer, params, loss);
    +
    float loss = calc_loss(); // расчет эффективности параметров (от 0 до 1)
    +
    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);
    +
    param_u16 = PARAM_UNSCALE(params[0], 0.0f, 1000.0f);
    +
    param_f = PARAM_UNSCALE(params[1], 0.001f, 0.1f);
    +
    param_u8 = PARAM_UNSCALE(params[2], 10.0f, 100.0f);
    +
    param_i16 = PARAM_UNSCALE(params[3], 500.0f, 5000.0f);
    Заголовочный файл для адаптивного подбора параметров
    -
    #define PARAM_UNSCALE_Q16(q16_val, min_val, max_val)
    Обратное линейное масштабирование Q16.16 значения в диапазон [min_val, max_val].
    -
    __STATIC_INLINE int EvolveOptimizer_Step(EvolveOptimizer_t *opt, int32_t *params, int32_t loss)
    Один шаг эволюционного оптимизатора.
    -
    __STATIC_INLINE int 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

    +
    __STATIC_INLINE int EvolveOptimizer_Init(EvolveOptimizer_t *opt, uint16_t n_params, uint16_t n_cand, uint16_t n_best, float mutation_amp, float *start_params)
    Инициализация эволюционного оптимизатора.
    +
    #define PARAM_SCALE(x, min_val, max_val)
    Линейное масштабирование x из диапазона [min_val, max_val] в диапазон [0, 1)
    +
    #define PARAM_UNSCALE(val, min_val, max_val)
    Обратное линейное масштабирование значения из [0, 1) в диапазон [min_val, max_val].
    +
    __STATIC_INLINE int EvolveOptimizer_Step(EvolveOptimizer_t *opt, float *params, float loss)
    Один шаг эволюционного оптимизатора.
    +
    Структура эволюционного оптимизатора
    +

    + +

    Macro Definition Documentation

    + +

    ◆ PARAM_SCALE

    - + - + - + - +
    #define PARAM_SCALE_Q16#define PARAM_SCALE ( x, x,
    min_val, min_val,
    max_val ) max_val )   (((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_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 71 of file evolve_optimizer.h.

    +

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

    + +

    Definition at line 73 of file evolve_optimizer.h.

    - -

    ◆ PARAM_UNSCALE_Q16

    + +

    ◆ PARAM_UNSCALE

    - + - + - + - +
    #define PARAM_UNSCALE_Q16#define PARAM_UNSCALE ( q16_val, val,
    min_val, min_val,
    max_val ) max_val )   (((float)(val)) * ((float)(max_val) - (float)(min_val)) + (float)(min_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 77 of file evolve_optimizer.h.

    +

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

    + +

    Definition at line 79 of file evolve_optimizer.h.

    @@ -257,22 +282,75 @@ Functions #define local_time ( - ) - + ) +    HAL_GetTick()
    -Value:
    HAL_GetTick()
    -
    +

    Локальное время

    -

    Definition at line 81 of file evolve_optimizer.h.

    +

    Definition at line 83 of file evolve_optimizer.h.

    -

    Function Documentation

    - -

    ◆ EvolveOptimizer_Init()

    + +

    ◆ EVOLVE_MUTATION_MIN_PCT

    + +
    +
    + + + + +
    #define EVOLVE_MUTATION_MIN_PCT   10
    +
    + +

    Минимальная мутация (в процентах от Loss)

    + +

    Definition at line 89 of file evolve_optimizer.h.

    + +
    +
    + +

    ◆ EVOLVE_MUTATION_MAX_PCT

    + +
    +
    + + + + +
    #define EVOLVE_MUTATION_MAX_PCT   100
    +
    + +

    Максимальная мутация (в процентах от Loss)

    + +

    Definition at line 92 of file evolve_optimizer.h.

    + +
    +
    + +

    ◆ ELOVLE_N_ELITE_CANDIDATE

    + +
    +
    + + + + +
    #define ELOVLE_N_ELITE_CANDIDATE   2
    +
    + +

    Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2)

    + +

    Definition at line 95 of file evolve_optimizer.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ EvolveOptimizer_Init()

    @@ -280,32 +358,32 @@ Functions __STATIC_INLINE int EvolveOptimizer_Init ( - EvolveOptimizer_t * opt, + EvolveOptimizer_t * opt, - uint16_t n_params, + uint16_t n_params, - uint16_t n_cand, + uint16_t n_cand, - uint16_t n_best, + uint16_t n_best, - uint16_t iq_mutation, + float mutation_amp, - int32_t * start_params ) + float * start_params )
    @@ -317,19 +395,19 @@ Functions n_paramsКоличество параметров в одном кандидате n_candКоличество кандидатов n_bestКоличество лучших, усредняемых - iq_mutationАмплитуда мутации в Q16.16 - start_paramsНачальные параметры (Q16.16) + mutation_ampАмплитуда мутации (в диапазоне 0.0–1.0) + start_paramsНачальные параметры (в диапазоне 0.0–1.0)
    Returns
    0 — если окей, -1 — если ошибка
    -

    Definition at line 132 of file evolve_optimizer.h.

    +

    Definition at line 148 of file evolve_optimizer.h.

    - -

    ◆ EvolveOptimizer_Step()

    + +

    ◆ EvolveOptimizer_Step()

    @@ -337,17 +415,17 @@ Functions __STATIC_INLINE int EvolveOptimizer_Step ( - EvolveOptimizer_t * opt, + EvolveOptimizer_t * opt, - int32_t * params, + float * params, - int32_t loss ) + float loss )
    @@ -357,7 +435,7 @@ Functions - +
    optУказатель на структуру оптимизатора
    paramsМассив параметров, которые будут обновлены (на выходе — новые параметры)
    lossLoss текущего кандидата (Q16.16)
    lossLoss текущего кандидата
    @@ -365,24 +443,16 @@ Functions

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

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

    Note
    Функция использует глобальную внутреннюю переменную для сортировки. Надо убедится что только один экземпляр функции запущен в момент времени
    -

    Definition at line 187 of file evolve_optimizer.h.

    +

    Definition at line 216 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 index 701b377..d3344de 100644 --- 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 @@ -1,18 +1,22 @@ var group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r = [ [ "EvolveOptimizer_t", "struct_evolve_optimizer__t.html", [ + [ "stability", "struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c", null ], [ "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 ], + [ "mutation_amp", "struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8", 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 ], + [ "loss", "struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df", null ], + [ "candidates", "struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4", null ], [ "sorted_idx", "struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a", 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 ], + [ "PARAM_SCALE", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e", null ], + [ "PARAM_UNSCALE", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3", null ], [ "local_time", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653", null ], - [ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1", null ], - [ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a", null ] + [ "EVOLVE_MUTATION_MIN_PCT", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6", null ], + [ "EVOLVE_MUTATION_MAX_PCT", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc", null ], + [ "ELOVLE_N_ELITE_CANDIDATE", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb", null ], + [ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21", null ], + [ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef", null ] ]; \ No newline at end of file diff --git a/Doc/html/group___g_p_i_o___i_n_i_t.html b/Doc/html/group___g_p_i_o___i_n_i_t.html index 259fa68..e643f63 100644 --- a/Doc/html/group___g_p_i_o___i_n_i_t.html +++ b/Doc/html/group___g_p_i_o___i_n_i_t.html @@ -3,7 +3,7 @@ - + MyLibs: Init defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    - + +

    Настройка состояний кнопок и количества тиков в периоде ШИМ More...

    -
    Collaboration diagram for Init defines:
    +
    + + Collaboration diagram for Init defines:
    - + + + + +

    +

    Macros

    #define LED_PWM_TICKS   15
     Количество тиков в периоде ШИМ
     
    #define LED_ON   1
     Состояние пина для включения светодиода
     
    #define LED_OFF   0
     Состояние пина для выключения светодиода
     
    #define SW_ON   1
     Состояние пина при нажатой кнопке
     
    #define SW_OFF   0
     Состояние пина при отжатой кнопке
     
    -

    Detailed Description

    +

    Detailed Description

    Настройка состояний кнопок и количества тиков в периоде ШИМ

    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ LED_PWM_TICKS

    @@ -222,18 +233,10 @@ Macros
    - -
    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 2d37dfe..f0e726d 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 @@ -3,7 +3,7 @@ - + MyLibs: Libraries configs @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Libraries configs
    + +
    Libraries configs

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

    -
    Collaboration diagram for Libraries configs:
    +
    + + Collaboration diagram for Libraries configs:
    - + + + + +

    +

    Macros

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

    Detailed Description

    +

    Detailed Description

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

    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ INCLUDE_EVOLVE_OPTIMIZER

    @@ -222,18 +233,10 @@ Macros
    - -
    diff --git a/Doc/html/group___m_y___l_i_b_s___g_p_i_o.html b/Doc/html/group___m_y___l_i_b_s___g_p_i_o.html index b588aa0..7b2cede 100644 --- a/Doc/html/group___m_y___l_i_b_s___g_p_i_o.html +++ b/Doc/html/group___m_y___l_i_b_s___g_p_i_o.html @@ -3,7 +3,7 @@ - + MyLibs: GPIO Tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    GPIO Tools
    + +
    GPIO Tools

    Функции и макросы для удобной работы с GPIO. More...

    -
    Collaboration diagram for GPIO Tools:
    +
    + + Collaboration diagram for GPIO Tools:
    - - + - + + - + + +

    +

    Topics

     General tools
     General tools
     Общие функции/макросы для работы с GPIO.
     Switch tools
     
     Switch tools
     Функции для работы с GPIO, как с кнопкой
     LED tools
     
     LED tools
     Функции для работы с GPIO, для управления светодиодом
     
    -

    Detailed Description

    +

    Detailed Description

    Функции и макросы для удобной работы с GPIO.

    Модуль предоставляет универсальные инструменты для работы с GPIO):

    • General tools — инициализация и общие функции работы с портами.
    • @@ -135,18 +144,10 @@ Topics
    - -
    diff --git a/Doc/html/group___m_y___l_i_b_s___t_i_m.html b/Doc/html/group___m_y___l_i_b_s___t_i_m.html index 5bc3728..4afff85 100644 --- a/Doc/html/group___m_y___l_i_b_s___t_i_m.html +++ b/Doc/html/group___m_y___l_i_b_s___t_i_m.html @@ -3,7 +3,7 @@ - + MyLibs: TIM Tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    TIM Tools
    + +
    TIM Tools

    Функции и макросы для удобной работы с TIM. More...

    -
    Collaboration diagram for TIM Tools:
    +
    + + Collaboration diagram for TIM Tools:
    - - + - + + - + + - + + +

    +

    Topics

     PWM/OC Channels tools
     PWM/OC Channels tools
     Функции для инициализации базовых функций каналов таймера
     Encoder tools
     
     Encoder tools
     Функции для считывания энкодера
     Delay tools
     
     Delay tools
     Функции для формирования задержек с помощью таймеров
     General tools
     
     General tools
     Функции для базовой инициализации таймеров
     
    -

    Detailed Description

    +

    Detailed Description

    Функции и макросы для удобной работы с TIM.

    Модуль предоставляет универсальные инструменты для работы с TIM:

    • General tools — базовая инициализация таймеров и прерываний.
    • @@ -141,18 +151,10 @@ Topics
    - -
    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 2edb3f9..db4abd7 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 @@ -3,7 +3,7 @@ - + MyLibs: My Libs @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    My Libs
    + +
    My Libs

    Все используемые MyLibs библиотеки More...

    -
    Collaboration diagram for My Libs:
    +
    + + Collaboration diagram for My Libs:
    - - + - + + - + + +

    +

    Topics

     Configs
     Configs
     Конфигурации для библиотек MyLibs.
     General Tools
     
     General Tools
     Общие макросы и typedef'ы, используемые по всему проекту
     Peripheral
     
     Peripheral
     Модули для управления периферией
     
    -

    Detailed Description

    +

    Detailed Description

    Все используемые MyLibs библиотеки

    Для подключения библиотеки необходимо:

    • Сконфигурировать mylibs_config.h:
        @@ -138,18 +147,10 @@ Topics
    - -
    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 04d29e3..837c430 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 @@ -3,7 +3,7 @@ - + MyLibs: Configs @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Configs
    + +
    Configs

    Конфигурации для библиотек MyLibs. More...

    -
    Collaboration diagram for Configs:
    +
    + + Collaboration diagram for Configs:
    - - + - + + - + + +

    +

    Topics

     Trace configs
     Trace configs
     Конфигурация трекеров и трассировки
     Evolve configs
     
     Evolve configs
     Конфигурация однослойного персептрона и алгоритма обучения
     Libraries configs
     
     Libraries configs
     Подключение различных модулей библиотеки
     
    -

    Detailed Description

    +

    Detailed Description

    Конфигурации для библиотек MyLibs.

    - -
    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 093beb8..cfa10db 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 @@ -3,7 +3,7 @@ - + MyLibs: General Tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    General Tools
    + +
    General Tools

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

    -
    Collaboration diagram for General Tools:
    +
    + + Collaboration diagram for General Tools:
    - - + - + + - + + - + + - + + - + + - + + +

    +

    Topics

     Bit access defines
     Bit access defines
     Макросы и typedef'ы для работы с битами в unsigned типах.
     Evolve optimizer
     
     Evolve optimizer
     Библиотека для эволюционного подбора параметров
     Error Handler defines
     
     Error Handler defines
     Дефайны для обработки ошибок
     Delays defines
     
     Delays defines
     Макросы и определения для работы с задержками в миллисекундах.
     Utils defines
     
     Utils defines
     Общие вспомогательные макросы
     Trace defines
     
     Trace defines
     Дефайны для работы с трассировкой
     Trackers defines
     
     Trackers defines
     Дефайны для работы с трекерами
     
    -

    Detailed Description

    +

    Detailed Description

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

    - -
    diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html index fb55ba4..14b0ac7 100644 --- a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html +++ b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html @@ -3,7 +3,7 @@ - + MyLibs: General tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    General tools
    + +
    General tools

    Общие функции/макросы для работы с GPIO. More...

    -
    Collaboration diagram for General tools:
    +
    + + Collaboration diagram for General tools:
    - - + +

    +

    Topics

     Init defines
     Init defines
     Настройка состояний кнопок и количества тиков в периоде ШИМ
     
    - - + +

    +

    Macros

    #define GPIO_TIM_Alternate_Mapping(INSTANCE)
     Маппинг альтернативной функции SPI между GPIO.
     Маппинг альтернативной функции TIM между GPIO.
     
    - +

    +

    Functions

    HAL_StatusTypeDef GPIO_Clock_Enable (GPIO_TypeDef *GPIOx)
     Включить тактирование порта GPIO.
     
    -

    Detailed Description

    +

    Detailed Description

    Общие функции/макросы для работы с GPIO.

    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ GPIO_TIM_Alternate_Mapping

    @@ -142,7 +153,7 @@ Functions #define GPIO_TIM_Alternate_Mapping ( - INSTANCE) + INSTANCE) @@ -153,14 +164,13 @@ Functions
    (((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \
    (0))
    -

    Маппинг альтернативной функции SPI между GPIO.

    -

    Маппинг альтернативной функции TIM между GPIO

    +

    Маппинг альтернативной функции TIM между GPIO.

    Definition at line 69 of file general_gpio.h.

    -

    Function Documentation

    +

    Function Documentation

    ◆ GPIO_Clock_Enable()

    @@ -184,18 +194,10 @@ Functions
    - - diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html index 3155f94..d4c6383 100644 --- a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html +++ b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html @@ -3,7 +3,7 @@ - + MyLibs: LED tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -

    Функции для работы с GPIO, для управления светодиодом More...

    -
    Collaboration diagram for LED tools:
    +
    + + Collaboration diagram for LED tools:
    - - + +

    +

    Classes

    struct  GPIO_LEDTypeDef
    struct  GPIO_LEDTypeDef
     Структура светодиода More...
     
    - , LED_IS_FADING = 3 } +

    +

    Enumerations

    enum  GPIO_LEDStateTypeDef { LED_IS_OFF = 0 , LED_IS_ON = 1 @@ -127,27 +136,35 @@ Enumerations
     Режимы работы светодиода More...
     
    - + + + + + + +

    +

    Functions

    HAL_StatusTypeDef GPIO_LED_Init (GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State)
     Инициализировать светодиод (структуру светодиода)
     
    HAL_StatusTypeDef GPIO_LED_On (GPIO_LEDTypeDef *led)
     Включить светодиод
     
    HAL_StatusTypeDef GPIO_LED_Off (GPIO_LEDTypeDef *led)
     Выключить светодиод
     
    HAL_StatusTypeDef GPIO_LED_Set (GPIO_LEDTypeDef *led, uint8_t led_state)
     Выставить светодиод по переменной
     
    HAL_StatusTypeDef GPIO_LED_Blink_Start (GPIO_LEDTypeDef *led, uint32_t period)
     Активировать моргание светодиодом
     
    HAL_StatusTypeDef GPIO_LED_Fading_Start (GPIO_LEDTypeDef *led, uint32_t period)
     Активировать моргание светодиодом
     
    void GPIO_LED_Dynamic_Handle (GPIO_LEDTypeDef *led)
     Управление динамическими режимами свечения светодиода
     
    -

    Detailed Description

    +

    Detailed Description

    Функции для работы с GPIO, для управления светодиодом

    -

    Enumeration Type Documentation

    +

    Enumeration Type Documentation

    ◆ GPIO_LEDStateTypeDef

    @@ -176,7 +193,7 @@ Functions
    -

    Function Documentation

    +

    Function Documentation

    ◆ GPIO_LED_Init()

    @@ -186,17 +203,17 @@ Functions HAL_StatusTypeDef GPIO_LED_Init ( - GPIO_LEDTypeDef * led, + GPIO_LEDTypeDef * led, - GPIO_TypeDef * GPIOx, + GPIO_TypeDef * GPIOx, - uint32_t GPIO_PIN_X, + uint32_t GPIO_PIN_X, @@ -286,7 +303,7 @@ Functions HAL_StatusTypeDef GPIO_LED_Set ( - GPIO_LEDTypeDef * led, + GPIO_LEDTypeDef * led, @@ -319,7 +336,7 @@ Functions HAL_StatusTypeDef GPIO_LED_Blink_Start ( - GPIO_LEDTypeDef * led, + GPIO_LEDTypeDef * led, @@ -353,7 +370,7 @@ Functions HAL_StatusTypeDef GPIO_LED_Fading_Start ( - GPIO_LEDTypeDef * led, + GPIO_LEDTypeDef * led, @@ -408,18 +425,10 @@ Functions
    - - diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html index 82e3bfb..9c2d8b8 100644 --- a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html +++ b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html @@ -3,7 +3,7 @@ - + MyLibs: Switch tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Switch tools
    + +
    Switch tools

    Функции для работы с GPIO, как с кнопкой More...

    -
    Collaboration diagram for Switch tools:
    +
    + + Collaboration diagram for Switch tools:
    - - + +

    +

    Classes

    struct  GPIO_SwitchTypeDef
    struct  GPIO_SwitchTypeDef
     Структура кнопки More...
     
    - + +

    +

    Functions

    HAL_StatusTypeDef GPIO_Switch_Init (GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State)
     Инициализировать кнопку (структуру кнопки)
     
    int GPIO_Read_Switch (GPIO_SwitchTypeDef *swstart)
     Считать состоянии кнопки
     
    -

    Detailed Description

    +

    Detailed Description

    Функции для работы с GPIO, как с кнопкой

    -

    Function Documentation

    +

    Function Documentation

    ◆ GPIO_Switch_Init()

    @@ -138,17 +148,17 @@ Functions HAL_StatusTypeDef GPIO_Switch_Init ( - GPIO_SwitchTypeDef * sw, + GPIO_SwitchTypeDef * sw, - GPIO_TypeDef * GPIOx, + GPIO_TypeDef * GPIOx, - uint32_t GPIO_PIN_X, + uint32_t GPIO_PIN_X, @@ -205,18 +215,10 @@ Functions
    - -
    diff --git a/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.html b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.html index be528a7..a0a8774 100644 --- a/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.html +++ b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.html @@ -3,7 +3,7 @@ - + MyLibs: Peripheral @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Peripheral
    + +
    Peripheral

    Модули для управления периферией More...

    -
    Collaboration diagram for Peripheral:
    +
    + + Collaboration diagram for Peripheral:
    - - + - + + +

    +

    Topics

     GPIO Tools
     GPIO Tools
     Функции и макросы для удобной работы с GPIO.
     TIM Tools
     
     TIM Tools
     Функции и макросы для удобной работы с TIM.
     
    -

    Detailed Description

    +

    Detailed Description

    Модули для управления периферией

    - -
    diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html index 0ff461a..e0afecf 100644 --- a/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html @@ -3,7 +3,7 @@ - + MyLibs: Delay tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Delay tools
    + +
    Delay tools

    Функции для формирования задержек с помощью таймеров More...

    -
    Collaboration diagram for Delay tools:
    +
    + + Collaboration diagram for Delay tools:
    - + + +

    +

    Functions

    HAL_StatusTypeDef TIM_Delay_Start (TIM_HandleTypeDef *htim)
     Начать отсчет неблокирующей задержки.
     
    HAL_StatusTypeDef TIM_Delay (TIM_HandleTypeDef *htim, uint16_t delay)
     Задержка в тиках таймера (блокирующая).
     
    HAL_StatusTypeDef TIM_Delay_NonBlocking (TIM_HandleTypeDef *htim, uint16_t delay)
     Задержка в тиках таймера (неблокирующая).
     
    -

    Detailed Description

    +

    Detailed Description

    Функции для формирования задержек с помощью таймеров

    -

    Function Documentation

    +

    Function Documentation

    ◆ TIM_Delay_Start()

    @@ -164,7 +173,7 @@ Functions HAL_StatusTypeDef TIM_Delay ( - TIM_HandleTypeDef * htim, + TIM_HandleTypeDef * htim, @@ -198,7 +207,7 @@ Functions HAL_StatusTypeDef TIM_Delay_NonBlocking ( - TIM_HandleTypeDef * htim, + TIM_HandleTypeDef * htim, @@ -225,18 +234,10 @@ Functions
    - -
    diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html index 7401cc6..e1af34d 100644 --- a/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html @@ -3,7 +3,7 @@ - + MyLibs: Encoder tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Encoder tools
    + +
    Encoder tools

    Функции для считывания энкодера More...

    -
    Collaboration diagram for Encoder tools:
    +
    + + Collaboration diagram for Encoder tools:
    - - + +

    +

    Classes

    struct  TIM_EncoderTypeDef
    struct  TIM_EncoderTypeDef
     Структура инициализации енкодера More...
     
    - + + +

    +

    Functions

    HAL_StatusTypeDef TIM_Encoder_Init (TIM_EncoderTypeDef *henc1, TIM_HandleTypeDef *htim)
     Инициализация режима энкодер у таймера.
     
    HAL_StatusTypeDef TIM_Encoder_Read (TIM_EncoderTypeDef *henc)
     Считать энкодер.
     
    int TIM_Encoder_ReadSwitch (TIM_EncoderTypeDef *henc)
     Считать кнопку энкодера.
     
    -

    Detailed Description

    +

    Detailed Description

    Функции для считывания энкодера

    -

    Function Documentation

    +

    Function Documentation

    ◆ TIM_Encoder_Init()

    @@ -140,7 +151,7 @@ Functions HAL_StatusTypeDef TIM_Encoder_Init ( - TIM_EncoderTypeDef * henc, + TIM_EncoderTypeDef * henc, @@ -224,18 +235,10 @@ Functions
    - -
    diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html index 27e851f..ab492db 100644 --- a/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html @@ -3,7 +3,7 @@ - + MyLibs: General tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    General tools
    + +
    General tools

    Функции для базовой инициализации таймеров More...

    -
    Collaboration diagram for General tools:
    +
    + + Collaboration diagram for General tools:
    - - + +

    +

    Topics

     Init defines
     Init defines
     Настройка таймеров
     
    - - + +

    +

    Classes

    struct  TIM_SettingsTypeDef
    struct  TIM_SettingsTypeDef
     Структура инициализации таймера More...
     
    - +
    } +

    +

    Enumerations

    enum  TIM_ITModeTypeDef { TIM_DEFAULT = 0 , TIM_IT_MODE = (1<<( 0 )) }
     Режим прерываний таймера More...
     
    enum  TIM_MHzTickBaseTypeDef {
      TIM_Base_Disable = 0 , TIM_TickBase_1US = 1 @@ -143,19 +155,23 @@ Enumerations
     Длительность тика таймера (частота тактирования таймера) More...
     
    - + + +

    +

    Functions

    HAL_StatusTypeDef TIM_Base_Init (TIM_SettingsTypeDef *stim)
     Инициализация таймера.
     
    void TIM_Base_MspInit (TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode)
     Инициализация CLK и NVIC таймеров.
     
    void TIM_Base_MspDeInit (TIM_HandleTypeDef *htim)
     Деинициализация CLK и NVIC таймеров.
     
    -

    Detailed Description

    +

    Detailed Description

    Функции для базовой инициализации таймеров

    -

    Enumeration Type Documentation

    +

    Enumeration Type Documentation

    ◆ TIM_ITModeTypeDef

    @@ -215,7 +231,7 @@ Functions
    -

    Function Documentation

    +

    Function Documentation

    ◆ TIM_Base_Init()

    @@ -262,7 +278,7 @@ Functions void TIM_Base_MspInit ( - TIM_HandleTypeDef * htim, + TIM_HandleTypeDef * htim, @@ -315,18 +331,10 @@ Functions
    - - diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.html b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.html index 84523ed..29c0731 100644 --- a/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.html +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.html @@ -3,7 +3,7 @@ - + MyLibs: PWM/OC Channels tools @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    PWM/OC Channels tools
    + +
    PWM/OC Channels tools

    Функции для инициализации базовых функций каналов таймера More...

    -
    Collaboration diagram for PWM/OC Channels tools:
    +
    + + Collaboration diagram for PWM/OC Channels tools:
    - + +

    +

    Functions

    HAL_StatusTypeDef TIM_Output_PWM_Init (TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t PWM_PIN)
     Инициализация выхода ШИМ таймера.
     
    HAL_StatusTypeDef TIM_OC_Comparator_Init (TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)
     Инициализация OC компаратора таймера.
     
    -

    Detailed Description

    +

    Detailed Description

    Функции для инициализации базовых функций каналов таймера

    -

    Function Documentation

    +

    Function Documentation

    ◆ TIM_Output_PWM_Init()

    @@ -133,22 +141,22 @@ Functions HAL_StatusTypeDef TIM_Output_PWM_Init ( - TIM_HandleTypeDef * htim, + TIM_HandleTypeDef * htim, - TIM_OC_InitTypeDef * sConfigOC, + TIM_OC_InitTypeDef * sConfigOC, - uint32_t TIM_CHANNEL, + uint32_t TIM_CHANNEL, - GPIO_TypeDef * GPIOx, + GPIO_TypeDef * GPIOx, @@ -185,7 +193,7 @@ Functions HAL_StatusTypeDef TIM_OC_Comparator_Init ( - TIM_HandleTypeDef * htim, + TIM_HandleTypeDef * htim, @@ -212,18 +220,10 @@ Functions
    - -
    diff --git a/Doc/html/group___t_i_m___i_n_i_t.html b/Doc/html/group___t_i_m___i_n_i_t.html index ad276d8..9130ced 100644 --- a/Doc/html/group___t_i_m___i_n_i_t.html +++ b/Doc/html/group___t_i_m___i_n_i_t.html @@ -3,7 +3,7 @@ - + MyLibs: Init defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    - + +

    Настройка таймеров More...

    -
    Collaboration diagram for Init defines:
    +
    + + Collaboration diagram for Init defines:
    - + + + + + + + + + + + + + + +

    +

    Macros

    #define HAL_TIM_MODULE_ENABLED
     
    #define USE_TIM1
     Включить TIM1 в TIM_Base_MspInit.
     
    #define USE_TIM2
     Включить TIM2 в TIM_Base_MspInit.
     
    #define USE_TIM3
     Включить TIM3 в TIM_Base_MspInit.
     
    #define USE_TIM4
     Включить TIM4 в TIM_Base_MspInit.
     
    #define USE_TIM5
     Включить TIM5 в TIM_Base_MspInit.
     
    #define USE_TIM6
     Включить TIM6 в TIM_Base_MspInit.
     
    #define USE_TIM7
     Включить TIM7 в TIM_Base_MspInit.
     
    #define USE_TIM8
     Включить TIM8 в TIM_Base_MspInit.
     
    #define USE_TIM9
     Включить TIM9 в TIM_Base_MspInit.
     
    #define USE_TIM10
     Включить TIM10 в TIM_Base_MspInit.
     
    #define USE_TIM11
     Включить TIM11 в TIM_Base_MspInit.
     
    #define USE_TIM12
     Включить TIM12 в TIM_Base_MspInit.
     
    #define USE_TIM13
     Включить TIM13 в TIM_Base_MspInit.
     
    #define USE_TIM14
     Включить TIM14 в TIM_Base_MspInit.
     
    -

    Detailed Description

    +

    Detailed Description

    Настройка таймеров

    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ HAL_TIM_MODULE_ENABLED

    @@ -419,18 +440,10 @@ Macros
    - -
    diff --git a/Doc/html/group___t_r_a_c_e.html b/Doc/html/group___t_r_a_c_e.html index 6941ffc..2365c24 100644 --- a/Doc/html/group___t_r_a_c_e.html +++ b/Doc/html/group___t_r_a_c_e.html @@ -3,7 +3,7 @@ - + MyLibs: Trace defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Trace defines
    + +
    Trace defines

    Дефайны для работы с трассировкой More...

    -
    Collaboration diagram for Trace defines:
    +
    + + Collaboration diagram for Trace defines:
    - - + - + + - + + - + + +

    +

    Topics

     Serial trace defines
     Serial trace defines
     Дефайны для работы с serial трассировкой (SWO, RTT)
     GPIO trace defines
     
     GPIO trace defines
     Дефайны для работы с GPIO трассировкой
     Flash RTT Buffer
     
     Flash RTT Buffer
     Макросы и функции для сохранения/чтения RTT буфера в Flash.
     Hardfault trace defines
     
     Hardfault trace defines
     Модуль трассировки HardFault с возможностью сохранения RTT буфера во Flash.
     
    -

    Detailed Description

    +

    Detailed Description

    Дефайны для работы с трассировкой

    - -
    diff --git a/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.html b/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.html index cd9e6da..99c9556 100644 --- a/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.html +++ b/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.html @@ -3,7 +3,7 @@ - + MyLibs: Trace configs @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Trace configs
    + +
    Trace configs

    Конфигурация трекеров и трассировки More...

    -
    Collaboration diagram for Trace configs:
    +
    + + Collaboration diagram for Trace configs:
    - + + + + + + + + + + + + + + + +

    +

    Macros

    #define TRACKERS_ENABLE
     Включить трекеры
     
    #define SERIAL_TRACE_ENABLE
     Включить serial трассировку
     
    #define RTT_TRACE_ENABLE
     Включить serial трассировку через RTT.
     
    #define SWO_TRACE_ENABLE
     Включить serial трассировку через SWO.
     
    #define LOG_LEVEL   1
     Уровень log serial трассировки log_printf.
     
    #define RTT_FLASH_BUFFER_SIZE   1024
     Размер буфера RTT в Flash.
     
    #define RTT_FLASH_SECTOR   FLASH_SECTOR_11
     Сектор FLASH куда положится RTT буфер
     
    #define RTT_FLASH_SECTOR_START   0x080E0000
     Начало сектора RTT_FLASH_SECTOR.
     
    #define RTT_FLASH_SECTOR_END   0x080FFFFF
     Конец сектора RTT_FLASH_SECTOR.
     
    #define HARDFAULT_SERIAL_TRACE
     Включить обработку и serial трассировку Hardfault.
     
    #define HF_RTT_TAG_BASE   0xDEAD0000
     базовый тег для HardFault
     
    #define HF_RTT_TAIL_SIZE   RTT_FLASH_BUFFER_SIZE
     Размер буфера RTT, который сохранится при Hardfault.
     
    #define HF_STACK_DUMP_WORDS   32
     Сколько слов стека будет проанализировано во время Hardfault.
     
    #define HF_FLASH_ADDR   ((uint32_t)0x080FF000)
     Адрес FLASH куда положится RTT буфер
     
    #define HF_RAM_END   0x20030000
     Конец RAM памяти (чтобы во время анализа стека не выйти за пределы)
     
    #define GPIO_TRACE_ENABLE
     Включить GPIO трассировку
     
    -

    Detailed Description

    +

    Detailed Description

    Конфигурация трекеров и трассировки

    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ TRACKERS_ENABLE

    @@ -447,18 +469,10 @@ Macros
    - -
    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 8c0129f..b0b1874 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 @@ -3,7 +3,7 @@ - + MyLibs: GPIO trace defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    GPIO trace defines
    + +
    GPIO trace defines

    Дефайны для работы с GPIO трассировкой More...

    -
    Collaboration diagram for GPIO trace defines:
    +
    + + Collaboration diagram for GPIO trace defines:
    - - + - + + +

    +

    Macros

    #define TRACE_GPIO_RESET(_gpio_, _pin_)
    #define TRACE_GPIO_RESET(_gpio_, _pin_)   (_gpio_)->BSRR = ((_pin_)<<16)
     Сбросить указанную ножку GPIO.
    #define TRACE_GPIO_SET(_gpio_, _pin_)
     
    #define TRACE_GPIO_SET(_gpio_, _pin_)   (_gpio_)->BSRR = (((_pin_)))
     Установить указанную ножку GPIO.
     
    -

    Detailed Description

    +

    Detailed Description

    Дефайны для работы с GPIO трассировкой

    Определяется дефайны для работы с GPIO трассировкой:

    • TRACE_GPIO_RESET() - для сброса ножки GPIO (через BSRR)
    • TRACE_GPIO_SET() - для выставления ножки GPIO (через BSRR)
    • -
    • Если трассировка GPIO_TRACE_ENABLE отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют
    • +
    • Если трассировка GPIO_TRACE_ENABLE отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют
      +
    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ TRACE_GPIO_RESET

    @@ -138,17 +147,16 @@ Macros #define TRACE_GPIO_RESET ( - _gpio_, + _gpio_, - _pin_ ) + _pin_ )   (_gpio_)->BSRR = ((_pin_)<<16)
    -Value:
    (_gpio_)->BSRR = ((_pin_)<<16)
    -
    +

    Сбросить указанную ножку GPIO.

    Parameters
    @@ -175,17 +183,16 @@ Macros - + - +
    #define TRACE_GPIO_SET ( _gpio_, _gpio_,
    _pin_ ) _pin_ )   (_gpio_)->BSRR = (((_pin_)))
    -Value:
    (_gpio_)->BSRR = (((_pin_)))
    -
    +

    Установить указанную ножку GPIO.

    Parameters
    @@ -205,18 +212,10 @@ Macros - - 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 3a31782..a75a57e 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 @@ -3,7 +3,7 @@ - +MyLibs: Hardfault trace defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + -
    @@ -71,9 +73,10 @@ $(function() {
    -
    -
    Hardfault trace defines
    + +
    Hardfault trace defines

    Модуль трассировки HardFault с возможностью сохранения RTT буфера во Flash. More...

    -
    Collaboration diagram for Hardfault trace defines:
    +
    + + Collaboration diagram for Hardfault trace defines:
    - - + +

    +

    Classes

    struct  HF_StackFrame_t
    struct  HF_StackFrame_t
     Контекст стек-фрейма процессора при HardFault. More...
     
    - + +

    +

    Functions

    __STATIC_FORCEINLINE int HF_CheckRecovered (int erase)
     Проверка и вывод последнего HardFault-трейса из Flash.
     
    __STATIC_FORCEINLINE void HF_HandleFault (void)
     Обработчик HardFault.
     
    -

    Detailed Description

    +

    Detailed Description

    Модуль трассировки HardFault с возможностью сохранения RTT буфера во Flash.

    Этот модуль позволяет сохранять контекст процессора и последние символы RTT буфера при возникновении HardFault.

    Механизм работы:

      @@ -169,7 +179,7 @@ Functions
      __STATIC_FORCEINLINE int HF_CheckRecovered(int erase)
      Проверка и вывод последнего HardFault-трейса из Flash.
      Definition trace.h:486
      __STATIC_FORCEINLINE void HF_HandleFault(void)
      Обработчик HardFault.
      Definition trace.h:527
      __STATIC_FORCEINLINE int RTT_EraseFlash(void)
      Стирание сектора Flash с RTT-буфером
      Definition trace.h:375
      -

    Function Documentation

    +

    Function Documentation

    ◆ HF_CheckRecovered()

    @@ -207,7 +217,7 @@ Functions __STATIC_FORCEINLINE void HF_HandleFault ( - void ) + void ) @@ -230,18 +240,10 @@ Functions
    - - 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 07f8f9d..b401ff0 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 @@ -3,7 +3,7 @@ - + MyLibs: Flash RTT Buffer @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Flash RTT Buffer
    + +
    Flash RTT Buffer

    Макросы и функции для сохранения/чтения RTT буфера в Flash. More...

    -
    Collaboration diagram for Flash RTT Buffer:
    +
    + + Collaboration diagram for Flash RTT Buffer:
    - - + +

    +

    Classes

    struct  RTT_FlashHeader_t
    struct  RTT_FlashHeader_t
     Структура RTT, которая будет положена в Flash. More...
     
    - + + + +

    +

    Functions

    __STATIC_FORCEINLINE void RTT_FlashPrepare (void)
     Подготовка Flash к записи
     
    __STATIC_FORCEINLINE int RTT_SaveToFlash (uint32_t tag, uint32_t tail_size)
     Сохраняет последние символы RTT-буфера в Flash по тегу
     
    __STATIC_FORCEINLINE int RTT_ReadFromFlash (uint32_t tag, char *Buffer, uint32_t tail_size, uint32_t *read_size)
     Читает последние символы RTT-буфера из Flash по тегу
     
    __STATIC_FORCEINLINE int RTT_EraseFlash (void)
     Стирание сектора Flash с RTT-буфером
     
    -

    Detailed Description

    +

    Detailed Description

    Макросы и функции для сохранения/чтения RTT буфера в Flash.

    Модуль позволяет сохранять данные RTT буфера во Flash и читать их обратно по тегам.
    Теги работают следующим образом:
    @@ -151,7 +163,7 @@ Functions

  • RTT_FLASH_SECTOR_START - Начало сектора RTT_FLASH_SECTOR
  • RTT_FLASH_SECTOR_END - Конец сектора RTT_FLASH_SECTOR
  • -

    Function Documentation

    +

    Function Documentation

    ◆ RTT_FlashPrepare()

    @@ -161,7 +173,7 @@ Functions __STATIC_FORCEINLINE void RTT_FlashPrepare ( - void ) + void ) @@ -183,7 +195,7 @@ Functions __STATIC_FORCEINLINE int RTT_SaveToFlash ( - uint32_t tag, + uint32_t tag, @@ -221,17 +233,17 @@ Functions __STATIC_FORCEINLINE int RTT_ReadFromFlash ( - uint32_t tag, + uint32_t tag, - char * Buffer, + char * Buffer, - uint32_t tail_size, + uint32_t tail_size, @@ -270,7 +282,7 @@ Functions __STATIC_FORCEINLINE int RTT_EraseFlash ( - void ) + void ) @@ -284,18 +296,10 @@ Functions
    - -
    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 77f3ffd..a2019a0 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 @@ -3,7 +3,7 @@ - + MyLibs: Serial trace defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Serial trace defines
    + +
    Serial trace defines

    Дефайны для работы с serial трассировкой (SWO, RTT) More...

    -
    Collaboration diagram for Serial trace defines:
    +
    + + Collaboration diagram for Serial trace defines:
    - - + + +

    +

    Macros

    #define my_printf(...)
    #define my_printf(...)   SEGGER_RTT_printf(0, __VA_ARGS__)
     Универсальный макрос для вывода трассировки
     
    #define log_printf(TAG, fmt, ...)
     Макрос логирования с поддержкой уровней LOG_LEVEL.
     
    -

    Detailed Description

    +

    Detailed Description

    Дефайны для работы с serial трассировкой (SWO, RTT)

    В зависимости от настроек определяется дефайн my_printf() и log_printf() для работы с трассировкой:

    • SERIAL_TRACE_ENABLE - Если трассировка отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют
    • RTT_TRACE_ENABLE - для RTT это будет вызов функции SEGGER_RTT_printf(), с подключением библиотеки SEGGER_RTT.h Предварительно надо подключить библиотеку SEGGER RTT и вызвать функцию SEGGER_RTT_Init()
    • SWO_TRACE_ENABLE для SWO это будет просто printf()

      Но библиотеку STDOUT надо подключить самостоятельно:

      -
          Manage Run-Time Environment -> Compiler -> I/O -> STDOUT 
      -

      Для SWO также надо включить трассировку:
      +

          Manage Run-Time Environment -> Compiler -> I/O -> STDOUT 

      Для SWO также надо включить трассировку:

      -
          Options For Target -> Debug -> Debugger Settings
      -

      В вкладке Debug:

        +
            Options For Target -> Debug -> Debugger Settings

        В вкладке Debug:

        • Port = SW В вкладке Trace:
        • Указать Core Clock
        • Выставить Trace Port = SWO
        • -
        • ITM - выбрать нужный порт (для Keil нулевой порт)
        • +
        • ITM - выбрать нужный порт (для Keil нулевой порт)
          +
      -

      Macro Definition Documentation

      +

      Macro Definition Documentation

      ◆ my_printf

      @@ -150,17 +157,16 @@ Macros #define my_printf ( - ...) - + ...) +    SEGGER_RTT_printf(0, __VA_ARGS__)
    -Value:
    SEGGER_RTT_printf(0, __VA_ARGS__)
    -
    +

    Универсальный макрос для вывода трассировки

    Варианты реализации:

      -
    • RTT_TRACE_ENABLE SEGGER_RTT_printf(0, ...)
    • -
    • SWO_TRACE_ENABLE - printf(...)
    • +
    • RTT_TRACE_ENABLE SEGGER_RTT_printf(0, ...)
    • +
    • SWO_TRACE_ENABLE - printf(...)
    • NO_TRACE - пустой макрос
    @@ -177,17 +183,17 @@ Macros #define log_printf ( - TAG, + TAG, - fmt, + fmt, - ... ) + ... )
    @@ -215,18 +221,10 @@ Macros
    - -
    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 66db708..09abab2 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 @@ -3,7 +3,7 @@ - + MyLibs: Trackers defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Trackers defines
    + +
    Trackers defines

    Дефайны для работы с трекерами More...

    -
    Collaboration diagram for Trackers defines:
    +
    + + Collaboration diagram for Trackers defines:
    - - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + +

    +

    Macros

    #define TrackerTypeDef(num_user_vars)
     Структура для счетчиков отладки
    #define num_of_usercnts(_user_)
     
    #define num_of_usercnts(_user_)   (sizeof(_user_) / sizeof(uint32_t))
     Получить количетство пользовательских переменных
    #define assert_usertracker(_cntstruct_, _uservarnumb_)
     
    #define assert_usertracker(_cntstruct_, _uservarnumb_)   ((_uservarnumb_) < num_of_usercnts((_cntstruct_).user))
     Проверка существует ли указанная пользовательская переменная
    #define if_assert_usertracker(_cntstruct_, _uservarnumb_)
     
    #define if_assert_usertracker(_cntstruct_, _uservarnumb_)   if(assert_usertracker(_cntstruct_, _uservarnumb_))
     Условие для проверки существует ли указанная пользовательская переменная
    #define tern_assert_usertracker(_cntstruct_, _uservarnumb_)
     
    #define tern_assert_usertracker(_cntstruct_, _uservarnumb_)   (assert_usertracker(_cntstruct_, _uservarnumb_)) ? _uservarnumb_ : 0
     Тернарный оператор для проверки существует ли указанная пользовательская переменная
    #define TrackerGet_Ok(_cntstruct_)
     
    #define TrackerGet_Ok(_cntstruct_)   (_cntstruct_).cnt_ok
     Считать счетчик успешных событий
    #define TrackerGet_Err(_cntstruct_)
     
    #define TrackerGet_Err(_cntstruct_)   (_cntstruct_).cnt_err
     Считать счетчик ошибок
    #define TrackerGet_Warn(_cntstruct_)
     
    #define TrackerGet_Warn(_cntstruct_)   (_cntstruct_).cnt_warn
     Считать счетчик предупреждений
    #define TrackerGet_User(_cntstruct_, _uservarnumb_)
     
    #define TrackerGet_User(_cntstruct_, _uservarnumb_)   (_cntstruct_).user[tern_assert_usertracker(_cntstruct_, _uservarnumb_)]
     Считать пользовательскую переменную
    #define TrackerCnt_Ok(_cntstruct_)
     
    #define TrackerCnt_Ok(_cntstruct_)   (_cntstruct_).cnt_ok++
     Инкрементирование счетчика успешных событий
    #define TrackerCnt_Err(_cntstruct_)
     
    #define TrackerCnt_Err(_cntstruct_)   (_cntstruct_).cnt_err++
     Инкрементирование счетчика ошибок
    #define TrackerCnt_Warn(_cntstruct_)
     
    #define TrackerCnt_Warn(_cntstruct_)   (_cntstruct_).cnt_warn++
     Инкрементирование счетчика предупреждений
    #define TrackerCnt_User(_cntstruct_, _uservarnumb_)
     
    #define TrackerCnt_User(_cntstruct_, _uservarnumb_)   if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_]++;
     Инкрементирование пользовательской переменной
    #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)
     
    #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)   if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = (_val_)
     Запись числа в пользовательскую переменную
    #define TrackerClear_All(_cntstruct_)
     
    #define TrackerClear_All(_cntstruct_)   memset(&(_cntstruct_), 0, sizeof(_cntstruct_))
     Очистка всей структуры
    #define TrackerClear_Ok(_cntstruct_)
     
    #define TrackerClear_Ok(_cntstruct_)   (_cntstruct_).cnt_ok = 0
     Очистка счетчика успешных событий
    #define TrackerClear_Err(_cntstruct_)
     
    #define TrackerClear_Err(_cntstruct_)   (_cntstruct_).cnt_err = 0
     Очистка счетчика ошибок
    #define TrackerClear_Warn(_cntstruct_)
     
    #define TrackerClear_Warn(_cntstruct_)   (_cntstruct_).cnt_warn = 0
     Очистка счетчика предупреждений
    #define TrackerClear_User(_cntstruct_, _uservarnumb_)
     
    #define TrackerClear_User(_cntstruct_, _uservarnumb_)   if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = 0;
     Очистка пользовательской переменной
    #define TrackerClear_UserAll(_cntstruct_)
     
    #define TrackerClear_UserAll(_cntstruct_)   memset(&(_cntstruct_).user, 0, sizeof((_cntstruct_).user))
     Очистка всех пользовательских переменных
     
    -

    Detailed Description

    +

    Detailed Description

    Дефайны для работы с трекерами


    Есть дефайн для объявления структуры трекера: TrackerTypeDef(num_user_vars). Структура состоит из следующих элементов:

    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ TrackerTypeDef

    @@ -211,7 +238,7 @@ Macros #define TrackerTypeDef ( - num_user_vars) + num_user_vars) @@ -247,13 +274,12 @@ Macros #define num_of_usercnts ( - _user_) - + _user_) +    (sizeof(_user_) / sizeof(uint32_t))
    -Value:
    (sizeof(_user_) / sizeof(uint32_t))
    -
    +

    Получить количетство пользовательских переменных

    Definition at line 80 of file trackers.h.

    @@ -269,18 +295,16 @@ Macros #define assert_usertracker ( - _cntstruct_, + _cntstruct_, - _uservarnumb_ ) + _uservarnumb_ )   ((_uservarnumb_) < num_of_usercnts((_cntstruct_).user))
    -Value:
    ((_uservarnumb_) < num_of_usercnts((_cntstruct_).user))
    -
    #define num_of_usercnts(_user_)
    Получить количетство пользовательских переменных
    Definition trackers.h:80
    -
    +

    Проверка существует ли указанная пользовательская переменная

    Definition at line 82 of file trackers.h.

    @@ -296,18 +320,16 @@ Macros #define if_assert_usertracker ( - _cntstruct_, + _cntstruct_, - _uservarnumb_ ) + _uservarnumb_ )   if(assert_usertracker(_cntstruct_, _uservarnumb_))
    -Value:
    if(assert_usertracker(_cntstruct_, _uservarnumb_))
    -
    #define assert_usertracker(_cntstruct_, _uservarnumb_)
    Проверка существует ли указанная пользовательская переменная
    Definition trackers.h:82
    -
    +

    Условие для проверки существует ли указанная пользовательская переменная

    Definition at line 84 of file trackers.h.

    @@ -323,17 +345,16 @@ Macros #define tern_assert_usertracker ( - _cntstruct_, + _cntstruct_, - _uservarnumb_ ) + _uservarnumb_ )   (assert_usertracker(_cntstruct_, _uservarnumb_)) ? _uservarnumb_ : 0
    -Value:
    (assert_usertracker(_cntstruct_, _uservarnumb_)) ? _uservarnumb_ : 0
    -
    +

    Тернарный оператор для проверки существует ли указанная пользовательская переменная

    Definition at line 86 of file trackers.h.

    @@ -349,13 +370,12 @@ Macros #define TrackerGet_Ok ( - _cntstruct_) - + _cntstruct_) +    (_cntstruct_).cnt_ok
    -Value:
    (_cntstruct_).cnt_ok
    -
    +

    Считать счетчик успешных событий

    Definition at line 90 of file trackers.h.

    @@ -371,13 +391,12 @@ Macros #define TrackerGet_Err ( - _cntstruct_) - + _cntstruct_) +    (_cntstruct_).cnt_err
    -Value:
    (_cntstruct_).cnt_err
    -
    +

    Считать счетчик ошибок

    Definition at line 92 of file trackers.h.

    @@ -393,13 +412,12 @@ Macros #define TrackerGet_Warn ( - _cntstruct_) - + _cntstruct_) +    (_cntstruct_).cnt_warn
    -Value:
    (_cntstruct_).cnt_warn
    -
    +

    Считать счетчик предупреждений

    Definition at line 94 of file trackers.h.

    @@ -415,18 +433,16 @@ Macros #define TrackerGet_User ( - _cntstruct_, + _cntstruct_, - _uservarnumb_ ) + _uservarnumb_ )   (_cntstruct_).user[tern_assert_usertracker(_cntstruct_, _uservarnumb_)]
    -Value:
    (_cntstruct_).user[tern_assert_usertracker(_cntstruct_, _uservarnumb_)]
    -
    #define tern_assert_usertracker(_cntstruct_, _uservarnumb_)
    Тернарный оператор для проверки существует ли указанная пользовательская переменная
    Definition trackers.h:86
    -
    +

    Считать пользовательскую переменную

    Note
    Здесь нет проверки - существует ли пользовательская переменная! Есть возможность выйти за границы структуры!!! Чтобы этого избежать можно использовать дефайн #ref assert_usertracker()
      if(assert_usertracker(struct, 0)) {
           TrackerGet_User(struct, 0)
    @@ -446,13 +462,12 @@ Macros
             
               #define TrackerCnt_Ok
               (
    -                    _cntstruct_)
    -          
    +                    _cntstruct_)
    +             (_cntstruct_).cnt_ok++
             
           
     
    -Value:
    (_cntstruct_).cnt_ok++
    -
    +

    Инкрементирование счетчика успешных событий

    Definition at line 111 of file trackers.h.

    @@ -468,13 +483,12 @@ Macros #define TrackerCnt_Err ( - _cntstruct_) - + _cntstruct_) +    (_cntstruct_).cnt_err++
    -Value:
    (_cntstruct_).cnt_err++
    -
    +

    Инкрементирование счетчика ошибок

    Definition at line 113 of file trackers.h.

    @@ -490,13 +504,12 @@ Macros #define TrackerCnt_Warn ( - _cntstruct_) - + _cntstruct_) +    (_cntstruct_).cnt_warn++
    -Value:
    (_cntstruct_).cnt_warn++
    -
    +

    Инкрементирование счетчика предупреждений

    Definition at line 115 of file trackers.h.

    @@ -512,18 +525,16 @@ Macros #define TrackerCnt_User ( - _cntstruct_, + _cntstruct_, - _uservarnumb_ ) + _uservarnumb_ )   if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_]++;
    -Value:
    if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_]++;
    -
    #define if_assert_usertracker(_cntstruct_, _uservarnumb_)
    Условие для проверки существует ли указанная пользовательская переменная
    Definition trackers.h:84
    -
    +

    Инкрементирование пользовательской переменной

    Definition at line 117 of file trackers.h.

    @@ -539,22 +550,21 @@ Macros #define TrackerWrite_User ( - _cntstruct_, + _cntstruct_, - _uservarnumb_, + _uservarnumb_, - _val_ ) + _val_ )   if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = (_val_)
    -Value:
    if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = (_val_)
    -
    +

    Запись числа в пользовательскую переменную

    Definition at line 119 of file trackers.h.

    @@ -570,13 +580,12 @@ Macros #define TrackerClear_All ( - _cntstruct_) - + _cntstruct_) +    memset(&(_cntstruct_), 0, sizeof(_cntstruct_))
    -Value:
    memset(&(_cntstruct_), 0, sizeof(_cntstruct_))
    -
    +

    Очистка всей структуры

    Definition at line 122 of file trackers.h.

    @@ -592,13 +601,12 @@ Macros #define TrackerClear_Ok ( - _cntstruct_) - + _cntstruct_) +    (_cntstruct_).cnt_ok = 0
    -Value:
    (_cntstruct_).cnt_ok = 0
    -
    +

    Очистка счетчика успешных событий

    Definition at line 124 of file trackers.h.

    @@ -614,13 +622,12 @@ Macros #define TrackerClear_Err ( - _cntstruct_) - + _cntstruct_) +    (_cntstruct_).cnt_err = 0
    -Value:
    (_cntstruct_).cnt_err = 0
    -
    +

    Очистка счетчика ошибок

    Definition at line 126 of file trackers.h.

    @@ -636,13 +643,12 @@ Macros #define TrackerClear_Warn ( - _cntstruct_) - + _cntstruct_) +    (_cntstruct_).cnt_warn = 0
    -Value:
    (_cntstruct_).cnt_warn = 0
    -
    +

    Очистка счетчика предупреждений

    Definition at line 128 of file trackers.h.

    @@ -658,17 +664,16 @@ Macros #define TrackerClear_User ( - _cntstruct_, + _cntstruct_, - _uservarnumb_ ) + _uservarnumb_ )   if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = 0;
    -Value:
    if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = 0;
    -
    +

    Очистка пользовательской переменной

    Definition at line 130 of file trackers.h.

    @@ -684,13 +689,12 @@ Macros #define TrackerClear_UserAll ( - _cntstruct_) - + _cntstruct_) +    memset(&(_cntstruct_).user, 0, sizeof((_cntstruct_).user))
    -Value:
    memset(&(_cntstruct_).user, 0, sizeof((_cntstruct_).user))
    -
    +

    Очистка всех пользовательских переменных

    Definition at line 132 of file trackers.h.

    @@ -699,18 +703,10 @@ Macros
    - -
    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 066db90..847999e 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 @@ -3,7 +3,7 @@ - + MyLibs: Utils defines @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    Utils defines
    + +
    Utils defines

    Общие вспомогательные макросы More...

    -
    Collaboration diagram for Utils defines:
    +
    + + Collaboration diagram for Utils defines:
    - - + - + + - + + - + + +

    +

    Macros

    #define ClearStruct(_struct_)
    #define ClearStruct(_struct_)   memset(&(_struct_), 0, sizeof(_struct_))
     Обнуление структуры.
    #define Divide_Up(_val_, _div_)
     
    #define Divide_Up(_val_, _div_)   ((_val_ - 1) / _div_) + 1 /* через мат выражение */
     Деление с округлением вверх
    #define ByteSwap16(v)
     
    #define ByteSwap16(v)   (((v&0xFF00) >> (8)) | ((v&0x00FF) << (8)))
     Swap between Little Endian and Big Endian.
    #define ABS(x)
     
    #define ABS(x)   ( ((x) > 0)? (x) : -(x))
     Абсолютное значение числа
     
    -

    Detailed Description

    +

    Detailed Description

    Общие вспомогательные макросы

    -

    Macro Definition Documentation

    +

    Macro Definition Documentation

    ◆ ClearStruct

    @@ -137,13 +147,12 @@ Macros #define ClearStruct ( - _struct_) - + _struct_) +    memset(&(_struct_), 0, sizeof(_struct_))
    -Value:
    memset(&(_struct_), 0, sizeof(_struct_))
    -
    +

    Обнуление структуры.

    Parameters
    @@ -166,17 +175,16 @@ Macros - + - +
    #define Divide_Up ( _val_, _val_,
    _div_ ) _div_ )   ((_val_ - 1) / _div_) + 1 /* через мат выражение */
    -Value:
    ((_val_ - 1) / _div_) + 1 /* через мат выражение */
    -
    +

    Деление с округлением вверх

    Parameters
    @@ -201,13 +209,12 @@ Macros - - + +
    #define ByteSwap16 ( v) v)   (((v&0xFF00) >> (8)) | ((v&0x00FF) << (8)))
    -Value:
    (((v&0xFF00) >> (8)) | ((v&0x00FF) << (8)))
    -
    +

    Swap between Little Endian and Big Endian.

    Parameters
    @@ -231,13 +238,12 @@ Macros - - + +
    #define ABS ( x) x)   ( ((x) > 0)? (x) : -(x))
    -Value:
    ( ((x) > 0)? (x) : -(x))
    -
    +

    Абсолютное значение числа

    Parameters
    @@ -254,18 +260,10 @@ Macros - - diff --git a/Doc/html/index.html b/Doc/html/index.html index 87e4bf6..3916f2b 100644 --- a/Doc/html/index.html +++ b/Doc/html/index.html @@ -3,7 +3,7 @@ - +MyLibs: MyLibs @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + -
    @@ -71,9 +73,10 @@ $(function() {
    -
    MyLibs
    -

    +

    Обзор

    MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32.

    -

    +

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

    -

    +

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

    • Макросы для задержек и утилит (Delays defines и Utils defines)
    • @@ -113,7 +116,7 @@ $(function(){initNavTree('index.html','',''); });
    • Эволюционный алгоритм для оптимизации параметров (Evolve optimizer)
    • Битовый доступ к регистрам через union (Bit access defines)
    -

    +

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

    • Serial трассировка через SWO и RTT (Serial trace defines)
    • @@ -121,14 +124,14 @@ $(function(){initNavTree('index.html','',''); });
    • Сохранение логов в Flash память (Flash RTT Buffer)
    • Обработка HardFault с сохранением контекста (Hardfault trace defines)
    -

    +

    Модуль GPIO GPIO Tools

    • Инициализация портов и тактирования (General tools)
    • Управление светодиодами (включение/выключение, моргание, плавное затухание) (LED tools)
    • Работа с кнопками (чтение состояния, фильтрация дребезга) (Switch tools)
    -

    +

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

    • Базовая инициализация таймеров (General tools)
    • @@ -136,7 +139,7 @@ $(function(){initNavTree('index.html','',''); });
    • Работа с энкодерами (чтение положения, обработка кнопок) (Encoder tools)
    • Настройка ШИМ и Output Compare (PWM/OC Channels tools)
    -

    +

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

    ├── inc/ # Заголовочные файлы
    │ ├── mylibs_include.h # Главный include файл
    @@ -150,7 +153,7 @@ $(function(){initNavTree('index.html','',''); });
    └── src/ # Исходные файлы
    ├── general_gpio.c # Реализация GPIO
    └── general_tim.c # Реализация TIM
    -

    +

    Использование

    Инструкция по подключению:

      @@ -160,7 +163,7 @@ $(function(){initNavTree('index.html','',''); });
  • Используйте нужные модули в своем коде
  • -

    +

    Пример работы с GPIO

    // Инициализация светодиода
    MX_GPIO_Init();
    @@ -182,7 +185,7 @@ $(function(){initNavTree('index.html','',''); });
    void GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led)
    Управление динамическими режимами свечения светодиода
    HAL_StatusTypeDef GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period)
    Активировать моргание светодиодом
    Структура светодиода
    -

    +

    Пример работы с таймером

    // Настройка таймера
    TIM_SettingsTypeDef tim_settings = {0};
    @@ -202,7 +205,7 @@ $(function(){initNavTree('index.html','',''); });
    TIM_ITModeTypeDef sTimMode
    Настройки прерывания таймера
    TIM_HandleTypeDef htim
    HAL handle таймера
    float sTimFreqHz
    Желаемая частота таймера
    -

    +

    Зависимости

    • HAL библиотека STM32
    • @@ -210,14 +213,13 @@ $(function(){initNavTree('index.html','',''); });
    • FreeRTOS (опционально, для FreeRTOS задержек)
    - + - diff --git a/Doc/html/jquery.js b/Doc/html/jquery.js index 875ada7..1dffb65 100644 --- a/Doc/html/jquery.js +++ b/Doc/html/jquery.js @@ -1,143 +1,17 @@ /*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e} -var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( -"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType -}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c -)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ -return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( -":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") -)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( -"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( -a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, -null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne -).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( -var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n; -return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, -r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] -,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( -function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, -"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} -),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( -"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t -){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t -]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, -getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, -s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), -this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t -).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( -","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( -this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ -width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), -!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ -this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height -,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, -i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left -)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e -){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), -i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( -)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, -function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 -]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){ -targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", -"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( -session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} -closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( -session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, -function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); -tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, -finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); -return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} -function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), -elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, -viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, -"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); -/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + */ +!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 * http://www.smartmenus.org/ - * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), -mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( -$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( -this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( -"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" -).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( -this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( -var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ -return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( -!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( -this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 -]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( -"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ -t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" -)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ -t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), -a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, -downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) -)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t -)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), -canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, -rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} -return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, -bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/Doc/html/mainpage_8h_source.html b/Doc/html/mainpage_8h_source.html index 14c5a8d..010d228 100644 --- a/Doc/html/mainpage_8h_source.html +++ b/Doc/html/mainpage_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/mainpage.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/mainpage.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
    - + - +
    -
    104 */
    - diff --git a/Doc/html/menu.js b/Doc/html/menu.js index 15f9c52..717761d 100644 --- a/Doc/html/menu.js +++ b/Doc/html/menu.js @@ -22,7 +22,7 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { function makeTree(data,relPath) { let result=''; if ('children' in data) { @@ -49,7 +49,7 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { searchBoxHtml='
    '+ '
    '+ '
    '+ + '" method="get"> '+ ''+ @@ -60,8 +60,8 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { } else { searchBoxHtml='
    '+ ''+ - ''+ + ' '+ ''+ ''+ - '
    '+ + ''+ '
    '+ '
    '; } @@ -83,12 +84,14 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { '
    '); $('#main-nav').append(makeTree(menudata,relPath)); $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); - $('#main-menu').append('
  • '); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } const $mainMenuState = $('#main-menu-state'); let prevWidth = 0; if ($mainMenuState.length) { const initResizableIfExists = function() { - if (typeof initResizable==='function') initResizable(treeview); + if (typeof initResizable==='function') initResizable(); } // animate mobile menu $mainMenuState.change(function() { diff --git a/Doc/html/menudata.js b/Doc/html/menudata.js index 7655322..a1b4cb1 100644 --- a/Doc/html/menudata.js +++ b/Doc/html/menudata.js @@ -35,8 +35,8 @@ var menudata={children:[ {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:"m",url:"functions.html#index_m"}, {text:"n",url:"functions.html#index_n"}, {text:"p",url:"functions.html#index_p"}, {text:"r",url:"functions.html#index_r"}, @@ -48,8 +48,8 @@ var menudata={children:[ {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:"m",url:"functions_vars.html#index_m"}, {text:"n",url:"functions_vars.html#index_n"}, {text:"p",url:"functions_vars.html#index_p"}, {text:"r",url:"functions_vars.html#index_r"}, diff --git a/Doc/html/minus.svg b/Doc/html/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/Doc/html/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Doc/html/minusd.svg b/Doc/html/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/Doc/html/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Doc/html/mylibs__config_8h.html b/Doc/html/mylibs__config_8h.html index 4c94c66..c5c8870 100644 --- a/Doc/html/mylibs__config_8h.html +++ b/Doc/html/mylibs__config_8h.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_config.h File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_config.h File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
    - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    mylibs_config.h File Reference
    @@ -104,136 +109,154 @@ $(function(){initNavTree('mylibs__config_8h.html','',''); });

    Конфигурации для библиотек MyLibs. More...

    #include "stm32f4xx_hal.h"
    -
    Include dependency graph for mylibs_config.h:
    +
    + + Include dependency graph for mylibs_config.h:
    -
    This graph shows which files directly or indirectly include this file:
    +
    + + This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    - + + + + + + + + + + + + + + + + + + + + + + + +

    +

    Macros

    #define TRACKERS_ENABLE
     Включить трекеры
     
    #define SERIAL_TRACE_ENABLE
     Включить serial трассировку
     
    #define RTT_TRACE_ENABLE
     Включить serial трассировку через RTT.
     
    #define SWO_TRACE_ENABLE
     Включить serial трассировку через SWO.
     
    #define LOG_LEVEL   1
     Уровень log serial трассировки log_printf.
     
    #define RTT_FLASH_BUFFER_SIZE   1024
     Размер буфера RTT в Flash.
     
    #define RTT_FLASH_SECTOR   FLASH_SECTOR_11
     Сектор FLASH куда положится RTT буфер
     
    #define RTT_FLASH_SECTOR_START   0x080E0000
     Начало сектора RTT_FLASH_SECTOR.
     
    #define RTT_FLASH_SECTOR_END   0x080FFFFF
     Конец сектора RTT_FLASH_SECTOR.
     
    #define HARDFAULT_SERIAL_TRACE
     Включить обработку и serial трассировку Hardfault.
     
    #define HF_RTT_TAG_BASE   0xDEAD0000
     базовый тег для HardFault
     
    #define HF_RTT_TAIL_SIZE   RTT_FLASH_BUFFER_SIZE
     Размер буфера RTT, который сохранится при Hardfault.
     
    #define HF_STACK_DUMP_WORDS   32
     Сколько слов стека будет проанализировано во время Hardfault.
     
    #define HF_FLASH_ADDR   ((uint32_t)0x080FF000)
     Адрес FLASH куда положится RTT буфер
     
    #define HF_RAM_END   0x20030000
     Конец 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
     Подключить библиотеку с трекерами
     
    #define INCLUDE_TRACE_LIB
     Подключить библиотеку с трейсами
     
    #define INCLUDE_GENERAL_PERIPH_LIBS
     Подключить библиотеку с периферией
     
    -

    Detailed Description

    +

    Detailed Description

    Конфигурации для библиотек MyLibs.

    Definition in file mylibs_config.h.

    - -
    diff --git a/Doc/html/mylibs__config_8h__dep__incl.map b/Doc/html/mylibs__config_8h__dep__incl.map index 64974ec..4efa19d 100644 --- a/Doc/html/mylibs__config_8h__dep__incl.map +++ b/Doc/html/mylibs__config_8h__dep__incl.map @@ -1,40 +1,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Doc/html/mylibs__config_8h__dep__incl.md5 b/Doc/html/mylibs__config_8h__dep__incl.md5 index 2f6fe17..a472a39 100644 --- a/Doc/html/mylibs__config_8h__dep__incl.md5 +++ b/Doc/html/mylibs__config_8h__dep__incl.md5 @@ -1 +1 @@ -29f3209273b7878fca69d464878bc9ff \ No newline at end of file +ee8ba613c66132201fb932c77e0ad018 \ 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 e12080c..2b6edb9 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__incl.map b/Doc/html/mylibs__config_8h__incl.map index a83cb29..f06cfbf 100644 --- a/Doc/html/mylibs__config_8h__incl.map +++ b/Doc/html/mylibs__config_8h__incl.map @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/Doc/html/mylibs__config_8h__incl.md5 b/Doc/html/mylibs__config_8h__incl.md5 index f136b91..d0ac3e6 100644 --- a/Doc/html/mylibs__config_8h__incl.md5 +++ b/Doc/html/mylibs__config_8h__incl.md5 @@ -1 +1 @@ -fb457d2826e0abaa227e1adc840edd68 \ No newline at end of file +7361bc4b175718270d049d00a1cbdbe2 \ No newline at end of file diff --git a/Doc/html/mylibs__config_8h__incl.png b/Doc/html/mylibs__config_8h__incl.png index 9c49be9..021f13e 100644 Binary files a/Doc/html/mylibs__config_8h__incl.png and b/Doc/html/mylibs__config_8h__incl.png differ diff --git a/Doc/html/mylibs__config_8h_source.html b/Doc/html/mylibs__config_8h_source.html index 8ba7606..e7e3ac5 100644 --- a/Doc/html/mylibs__config_8h_source.html +++ b/Doc/html/mylibs__config_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_config.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_config.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
    - + - +
    -
    94#endif //__MYLIBS_CONFIG_H_
    - diff --git a/Doc/html/mylibs__defs_8h.html b/Doc/html/mylibs__defs_8h.html index 639bfe0..11b6fe0 100644 --- a/Doc/html/mylibs__defs_8h.html +++ b/Doc/html/mylibs__defs_8h.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_defs.h File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_defs.h File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    mylibs_defs.h File Reference
    @@ -104,121 +110,130 @@ $(function(){initNavTree('mylibs__defs_8h.html','',''); });

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

    #include "mylibs_config.h"
    -
    Include dependency graph for mylibs_defs.h:
    +
    + + Include dependency graph for mylibs_defs.h:
    -
    This graph shows which files directly or indirectly include this file:
    +
    + + This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    - - + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + +

    +

    Macros

    #define MyLibs_Error_Handler(params)
    #define MyLibs_Error_Handler(params)   Error_Handler(params)
     Error_Handler который будет вызыватся в библиотеке
    #define check_null_ptr_1(p1)
     
    #define check_null_ptr_1(p1)   (p1 == NULL)
     Проверить один указатель на NULL.
    #define check_null_ptr_2(p1, p2)
     
    #define check_null_ptr_2(p1, p2)   ((p1 == NULL) || (p1 != NULL && p2 == NULL))
     Проверить два указателя на NULL.
    #define check_null_ptr_3(p1, p2, p3)
     
    #define check_null_ptr_3(p1, p2, p3)   ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && p3 == NULL))))
     Проверить три указателя на NULL.
    #define check_null_ptr_4(p1, p2, p3, p4)
     
    #define check_null_ptr_4(p1, p2, p3, p4)   ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && ((p3 == NULL) || (p3 != NULL && p4 == NULL))))))
     Проверить четыре указателя на NULL.
    #define check_null_ptr_5(p1, p2, p3, p4, p5)
     
    #define check_null_ptr_5(p1, p2, p3, p4, p5)   ((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && ((p3 == NULL) || (p3 != NULL && ((p4 == NULL) || (p4 != NULL && p5 == NULL))))))))
     Проверить пять указателей на NULL.
    #define msDelay(_ms_)
     
    #define msDelay(_ms_)   HAL_Delay(_ms_)
     Задержка на указанное количество миллисекунд.
    #define msDelayStart(_pvar_)
     
    #define msDelayStart(_pvar_)   *(_pvar_) = HAL_GetTick()
     Начать отсчет задержки.
    #define msDelayWhileActive(_ms_, _pvar_)
     
    #define msDelayWhileActive(_ms_, _pvar_)   (HAL_GetTick() - *(_pvar_) < _ms_)
     Проверяет, активна ли задержка.
    #define msDelayWaitDone(_ms_, _pvar_)
     
    #define msDelayWaitDone(_ms_, _pvar_)   (HAL_GetTick() - *(_pvar_) >= _ms_)
     Проверяет, завершилась ли задержка.
    #define ClearStruct(_struct_)
     
    #define ClearStruct(_struct_)   memset(&(_struct_), 0, sizeof(_struct_))
     Обнуление структуры.
    #define Divide_Up(_val_, _div_)
     
    #define Divide_Up(_val_, _div_)   ((_val_ - 1) / _div_) + 1 /* через мат выражение */
     Деление с округлением вверх
    #define ByteSwap16(v)
     
    #define ByteSwap16(v)   (((v&0xFF00) >> (8)) | ((v&0x00FF) << (8)))
     Swap between Little Endian and Big Endian.
    #define ABS(x)
     
    #define ABS(x)   ( ((x) > 0)? (x) : -(x))
     Абсолютное значение числа
     
    - +

    +

    Functions

    void Error_Handler (void)
     
    -

    Detailed Description

    +

    Detailed Description

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

    Definition in file mylibs_defs.h.

    - -
    diff --git a/Doc/html/mylibs__defs_8h__dep__incl.map b/Doc/html/mylibs__defs_8h__dep__incl.map index a1ac985..8fa37fc 100644 --- a/Doc/html/mylibs__defs_8h__dep__incl.map +++ b/Doc/html/mylibs__defs_8h__dep__incl.map @@ -1,38 +1,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Doc/html/mylibs__defs_8h__dep__incl.md5 b/Doc/html/mylibs__defs_8h__dep__incl.md5 index 77cf79b..3966021 100644 --- a/Doc/html/mylibs__defs_8h__dep__incl.md5 +++ b/Doc/html/mylibs__defs_8h__dep__incl.md5 @@ -1 +1 @@ -3009d51b0bc5d0623e8c666bec71ce5b \ No newline at end of file +0d52bcfe55773d72fc2fd1ffe571809c \ 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 a5864bb..37c8c1a 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__incl.map b/Doc/html/mylibs__defs_8h__incl.map index 3999afd..187d88e 100644 --- a/Doc/html/mylibs__defs_8h__incl.map +++ b/Doc/html/mylibs__defs_8h__incl.map @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/Doc/html/mylibs__defs_8h__incl.md5 b/Doc/html/mylibs__defs_8h__incl.md5 index 9f55d02..9e01e49 100644 --- a/Doc/html/mylibs__defs_8h__incl.md5 +++ b/Doc/html/mylibs__defs_8h__incl.md5 @@ -1 +1 @@ -b9276a0f630657b77b3f0cee41c5de21 \ No newline at end of file +8a0ac3856fdf2caf22b43c3ac8597efe \ No newline at end of file diff --git a/Doc/html/mylibs__defs_8h__incl.png b/Doc/html/mylibs__defs_8h__incl.png index 4b2f864..274d9bd 100644 Binary files a/Doc/html/mylibs__defs_8h__incl.png and b/Doc/html/mylibs__defs_8h__incl.png differ diff --git a/Doc/html/mylibs__defs_8h_source.html b/Doc/html/mylibs__defs_8h_source.html index 86e81c3..0733a3c 100644 --- a/Doc/html/mylibs__defs_8h_source.html +++ b/Doc/html/mylibs__defs_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_defs.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_defs.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
    - + - +
    -
    Конфигурации для библиотек MyLibs.
    - diff --git a/Doc/html/mylibs__include_8h.html b/Doc/html/mylibs__include_8h.html index a47e7ab..be2ac76 100644 --- a/Doc/html/mylibs__include_8h.html +++ b/Doc/html/mylibs__include_8h.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_include.h File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_include.h File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    #include "general_flash.h"
    #include "general_gpio.h"
    #include "general_tim.h"
    -
    Include dependency graph for mylibs_include.h:
    +
    + + Include dependency graph for mylibs_include.h:

    Go to the source code of this file.

    -

    Detailed Description

    +

    Detailed Description

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

    Здесь нужно собрать библиотеки и дефайны, которые должны быть видны во всем проекте, чтобы не подключать 100 инклюдов в каждом ".c" файле

    Definition in file mylibs_include.h.

    - - diff --git a/Doc/html/mylibs__include_8h__incl.map b/Doc/html/mylibs__include_8h__incl.map index 325308a..cbac04c 100644 --- a/Doc/html/mylibs__include_8h__incl.map +++ b/Doc/html/mylibs__include_8h__incl.map @@ -1,40 +1,40 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Doc/html/mylibs__include_8h__incl.md5 b/Doc/html/mylibs__include_8h__incl.md5 index 48042dd..fbafb1d 100644 --- a/Doc/html/mylibs__include_8h__incl.md5 +++ b/Doc/html/mylibs__include_8h__incl.md5 @@ -1 +1 @@ -d43d5a141d087c4ef99d3ea25bfc5d0a \ No newline at end of file +eac9d1a6617c9c7d940c97bf6eaa8368 \ 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 5c944d3..032dfec 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 fb84a65..5b3eb8f 100644 --- a/Doc/html/mylibs__include_8h_source.html +++ b/Doc/html/mylibs__include_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_include.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_include.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({ - + - +
    -
    116
    117
    118/////////////////////////---USER SETTINGS---/////////////////////////
    -
    119// user includes
    +
    119// user includes
    120
    121// user settings
    122/////////////////////////---USER SETTINGS---/////////////////////////
    -
    123
    +
    123
    124
    125#endif // __MYLIBS_INCLUDE_H_
    Заголочный файл для дефайнов битового доступа.
    @@ -230,17 +238,16 @@ $(function(){initNavTree('mylibs__include_8h_source.html','',''); });
    Заголовочный файл для модуля инициализации портов и работы с ними.
    Заголовочный файл для модуля инициализации таймеров и работы с ними.
    Заголочный файл для дефайнов библиотеки MyLibsGeneral.
    -
    Структура эволюционного оптимизатора
    +
    Структура эволюционного оптимизатора
    Заголочный файл для работы с трассировкой.
    Заголочный файл для работы с трекерами Trackers defines.
    - diff --git a/Doc/html/nav_f.png b/Doc/html/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/Doc/html/nav_f.png differ diff --git a/Doc/html/nav_fd.png b/Doc/html/nav_fd.png new file mode 100644 index 0000000..032fbdd Binary files /dev/null and b/Doc/html/nav_fd.png differ diff --git a/Doc/html/nav_g.png b/Doc/html/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/Doc/html/nav_g.png differ diff --git a/Doc/html/nav_h.png b/Doc/html/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/Doc/html/nav_h.png differ diff --git a/Doc/html/nav_hd.png b/Doc/html/nav_hd.png new file mode 100644 index 0000000..de80f18 Binary files /dev/null and b/Doc/html/nav_hd.png differ diff --git a/Doc/html/navtree.css b/Doc/html/navtree.css index 0ea3a07..69211d4 100644 --- a/Doc/html/navtree.css +++ b/Doc/html/navtree.css @@ -11,8 +11,8 @@ #nav-tree li { white-space:nowrap; - margin:0; - padding:0; + margin:0px; + padding:0px; } #nav-tree .plus { @@ -20,10 +20,15 @@ } #nav-tree .selected { - position: relative; - background-color: var(--nav-menu-active-bg); - border-radius: 0 6px 6px 0; - /*margin-right: 5px;*/ + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; } #nav-tree img { @@ -43,7 +48,6 @@ margin:0px; padding:0px; font: 12px var(--font-family-nav); - line-height: 22px; } #nav-tree .label a { @@ -52,7 +56,7 @@ #nav-tree .selected a { text-decoration:none; - color:var(--page-link-color); + color:var(--nav-text-active-color); } #nav-tree .children_ul { @@ -61,9 +65,8 @@ } #nav-tree .item { - margin: 0 6px 0 -5px; - padding: 0 0 0 5px; - height: 22px; + margin:0px; + padding:0px; } #nav-tree { @@ -86,6 +89,7 @@ display:block; position: absolute; left: 0px; + width: $width; overflow : hidden; } @@ -94,31 +98,15 @@ } .ui-resizable-e { - transition: opacity 0.5s ease; - background-color: var(--nav-splitbar-bg-color); - opacity:0; - cursor:col-resize; + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; height:100%; right:0; top:0; width:6px; - position: relative; -} - -.ui-resizable-e:after { - content: ''; - display: block; - top: 50%; - left: 1px; - width: 2px; - height: 15px; - border-left: 1px solid var(--nav-splitbar-handle-color); - border-right: 1px solid var(--nav-splitbar-handle-color); - position: absolute; -} - -.ui-resizable-e:hover { - opacity: 1; } .ui-resizable-handle { @@ -133,97 +121,24 @@ } #nav-tree { + background-repeat:repeat-x; background-color: var(--nav-background-color); -webkit-overflow-scrolling : touch; /* iOS 5+ */ - scrollbar-width: thin; - border-right: 1px solid var(--nav-border-color); - padding-left: 5px; } #nav-sync { position:absolute; - top:0px; - right:0px; - z-index:1; + top:5px; + right:24px; + z-index:0; } #nav-sync img { opacity:0.3; } -div.nav-sync-icon { - position: relative; - width: 24px; - height: 17px; - left: -6px; - top: -1px; - opacity: 0.7; - display: inline-block; - background-color: var(--sync-icon-background-color); - border: 1px solid var(--sync-icon-border-color); - box-sizing: content-box; -} - -div.nav-sync-icon:hover { - background-color: var(--sync-icon-selected-background-color); - opacity: 1.0; -} - -div.nav-sync-icon.active:after { - content: ''; - background-color: var(--sync-icon-background-color); - border-top: 2px solid var(--sync-icon-color); - position: absolute; - width: 16px; - height: 0px; - top: 7px; - left: 4px; -} - -div.nav-sync-icon.active:hover:after { - border-top: 2px solid var(--sync-icon-selected-color); -} - -span.sync-icon-left { - position: absolute; - padding: 0; - margin: 0; - top: 3px; - left: 4px; - display: inline-block; - width: 8px; - height: 8px; - border-left: 2px solid var(--sync-icon-color); - border-top: 2px solid var(--sync-icon-color); - transform: rotate(-45deg); -} - -span.sync-icon-right { - position: absolute; - padding: 0; - margin: 0; - top: 3px; - left: 10px; - display: inline-block; - width: 8px; - height: 8px; - border-right: 2px solid var(--sync-icon-color); - border-bottom: 2px solid var(--sync-icon-color); - transform: rotate(-45deg); -} - -div.nav-sync-icon:hover span.sync-icon-left { - border-left: 2px solid var(--sync-icon-selected-color); - border-top: 2px solid var(--sync-icon-selected-color); -} - -div.nav-sync-icon:hover span.sync-icon-right { - border-right: 2px solid var(--sync-icon-selected-color); - border-bottom: 2px solid var(--sync-icon-selected-color); -} - -#nav-path ul { - border-top: 1px solid var(--nav-breadcrumb-separator-color); +#nav-sync img:hover { + opacity:0.9; } @media print @@ -232,96 +147,3 @@ div.nav-sync-icon:hover span.sync-icon-right { div.ui-resizable-handle { display: none; position: relative; } } -/*---------------------------*/ -#container { - display: grid; - grid-template-columns: auto auto; - overflow: hidden; -} - -#page-nav { - background: var(--nav-background-color); - display: block; - width: 250px; - box-sizing: content-box; - position: relative; - border-left: 1px solid var(--nav-border-color); -} - -#page-nav-tree { - display: inline-block; -} - -#page-nav-resize-handle { - transition: opacity 0.5s ease; - background-color: var(--nav-splitbar-bg-color); - opacity:0; - cursor:col-resize; - height:100%; - right:0; - top:0; - width:6px; - position: relative; - z-index: 1; - user-select: none; -} - -#page-nav-resize-handle:after { - content: ''; - display: block; - top: 50%; - left: 1px; - width: 2px; - height: 15px; - border-left: 1px solid var(--nav-splitbar-handle-color); - border-right: 1px solid var(--nav-splitbar-handle-color); - position: absolute; -} - -#page-nav-resize-handle.dragging, -#page-nav-resize-handle:hover { - opacity: 1; -} - -#page-nav-contents { - padding: 0; - margin: 0; - display: block; - top: 0; - left: 0; - height: 100%; - width: 100%; - position: absolute; - overflow: auto; - scrollbar-width: thin; - -webkit-overflow-scrolling : touch; /* iOS 5+ */ -} - -ul.page-outline, -ul.page-outline ul { - text-indent: 0; - list-style: none outside none; - padding: 0 0 0 4px; -} - -ul.page-outline { - margin: 0 4px 4px 6px; -} - -ul.page-outline div.item { - font: 12px var(--font-family-nav); - line-height: 22px; -} - -ul.page-outline li { - white-space: nowrap; -} - -ul.page-outline li.vis { - background-color: var(--nav-breadcrumb-active-bg); -} - -#container.resizing { - cursor: col-resize; - user-select: none; -} diff --git a/Doc/html/navtree.js b/Doc/html/navtree.js index 4fcf6e3..884b79b 100644 --- a/Doc/html/navtree.js +++ b/Doc/html/navtree.js @@ -23,34 +23,16 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function initNavTree(toroot,relpath,allMembersFile) { +function initNavTree(toroot,relpath) { let navTreeSubIndices = []; - const ARROW_DOWN = ''; - const ARROW_RIGHT = ''; + const ARROW_DOWN = '▼'; + const ARROW_RIGHT = '►'; const NAVPATH_COOKIE_NAME = ''+'navpath'; - const fullSidebar = typeof page_layout!=='undefined' && page_layout==1; - - function getScrollBarWidth () { - let outer = $('
    ').css({visibility: 'hidden', width: 100, overflow: 'scroll', scrollbarWidth: 'thin'}).appendTo('body'); - let widthWithScroll = $('
    ').css({width: '100%'}).appendTo(outer).outerWidth(); - outer.remove(); - return 100 - widthWithScroll; - } - const scrollbarWidth = getScrollBarWidth(); - - function adjustSyncIconPosition() { - if (!fullSidebar) { - const nt = document.getElementById("nav-tree"); - const hasVerticalScrollbar = nt.scrollHeight > nt.clientHeight; - $("#nav-sync").css({right:parseInt(hasVerticalScrollbar?scrollbarWidth:0)}); - } - } const getData = function(varName) { const i = varName.lastIndexOf('/'); const n = i>=0 ? varName.substring(i+1) : varName; - const e = n.replace(/-/g,'_'); - return window[e]; + return eval(n.replace(/-/g,'_')); } const stripPath = function(uri) { @@ -95,7 +77,7 @@ function initNavTree(toroot,relpath,allMembersFile) { const script = document.createElement('script'); script.id = scriptName; script.type = 'text/javascript'; - script.onload = function() { func(); adjustSyncIconPosition(); } + script.onload = func; script.src = scriptName+'.js'; head.appendChild(script); } @@ -114,8 +96,8 @@ function initNavTree(toroot,relpath,allMembersFile) { node.expandToggle.href = "javascript:void(0)"; node.expandToggle.onclick = function() { if (node.expanded) { - $(node.getChildrenUL()).slideUp("fast",adjustSyncIconPosition); - $(node.plus_img.childNodes[0]).removeClass('opened').addClass('closed'); + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=ARROW_RIGHT; node.expanded = false; } else { expandNode(o, node, false, true); @@ -140,9 +122,9 @@ function initNavTree(toroot,relpath,allMembersFile) { if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || ancParent.is(':header')) { - pos = ancParent.offset().top; + pos = ancParent.position().top; } else if (anchor.position()) { - pos = anchor.offset().top; + pos = anchor.position().top; } if (pos) { const dcOffset = docContent.offset().top; @@ -154,33 +136,12 @@ function initNavTree(toroot,relpath,allMembersFile) { docContent.animate({ scrollTop: pos + dcScrTop - dcOffset },Math.max(50,Math.min(500,dist)),function() { + window.location.href=aname; animationInProgress=false; - if (anchor.parent().attr('class')=='memItemLeft') { - let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); - glowEffect(rows.children(),300); // member without details - } else if (anchor.parent().attr('class')=='fieldname') { - glowEffect(anchor.parent().parent(),1000); // enum value - } else if (anchor.parent().attr('class')=='fieldtype') { - glowEffect(anchor.parent().parent(),1000); // struct field - } else if (anchor.parent().is(":header")) { - glowEffect(anchor.parent(),1000); // section header - } else { - glowEffect(anchor.next(),1000); // normal member - } }); } } - function htmlToNode(html) { - const template = document.createElement('template'); - template.innerHTML = html; - const nNodes = template.content.childNodes.length; - if (nNodes !== 1) { - throw new Error(`html parameter must represent a single node; got ${nNodes}. `); - } - return template.content.firstChild; - } - const newNode = function(o, po, text, link, childrenData, lastNode) { const node = { children : [], @@ -192,6 +153,7 @@ function initNavTree(toroot,relpath,allMembersFile) { parentNode : po, itemDiv : document.createElement("div"), labelSpan : document.createElement("span"), + label : document.createTextNode(text), expanded : false, childrenUL : null, getChildrenUL : function() { @@ -214,7 +176,7 @@ function initNavTree(toroot,relpath,allMembersFile) { const a = document.createElement("a"); node.labelSpan.appendChild(a); po.getChildrenUL().appendChild(node.li); - a.appendChild(htmlToNode(''+text+'')); + a.appendChild(node.label); if (link) { let url; if (link.substring(0,1)=='^') { @@ -279,8 +241,8 @@ function initNavTree(toroot,relpath,allMembersFile) { if (!node.childrenVisited) { getNode(o, node); } - $(node.getChildrenUL()).slideDown("fast",adjustSyncIconPosition); - $(node.plus_img.childNodes[0]).addClass('opened').removeClass('closed'); + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = ARROW_DOWN; node.expanded = true; if (setFocus) { $(node.expandToggle).focus(); @@ -298,6 +260,18 @@ function initNavTree(toroot,relpath,allMembersFile) { const highlightAnchor = function() { const aname = hashUrl(); const anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft') { + let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname') { + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype') { + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } gotoAnchor(anchor,aname); } @@ -319,6 +293,7 @@ function initNavTree(toroot,relpath,allMembersFile) { if ($('#nav-tree-contents .item:first').hasClass('selected')) { topOffset+=25; } + $('#nav-sync').css('top',topOffset+'px'); showRoot(); } @@ -335,7 +310,7 @@ function initNavTree(toroot,relpath,allMembersFile) { getNode(o, node); } $(node.getChildrenUL()).css({'display':'block'}); - $(node.plus_img.childNodes[0]).removeClass('closed').addClass('opened'); + node.plus_img.innerHTML = ARROW_DOWN; node.expanded = true; const n = node.children[o.breadcrumbs[index]]; if (index+10) { // try root page without hash as fallback - gotoUrl(o,root,'',relpath); - } else { - o.breadcrumbs = $.extend(true, [], nti); - if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index - navTo(o,NAVTREE[0][1],"",relpath); - $('.item').removeClass('selected'); - $('.item').removeAttr('id'); - } - if (o.breadcrumbs) { - o.breadcrumbs.unshift(0); // add 0 for root node - showNode(o, o.node, 0, hash); - } + o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]); + if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index + navTo(o,NAVTREE[0][1],"",relpath); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); } - } - - const gotoUrl = function(o,root,hash,relpath) { - const url=root+hash; - let i=-1; - while (NAVTREEINDEX[i+1]<=url) i++; - if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath) - } else { - getScript(relpath+'navtreeindex'+i,function() { - navTreeSubIndices[i] = window['NAVTREEINDEX'+i]; - if (navTreeSubIndices[i]) { - gotoNode(o,i,root,hash,relpath); - } - }); + if (o.breadcrumbs) { + o.breadcrumbs.unshift(0); // add 0 for root node + showNode(o, o.node, 0, hash); } } @@ -416,15 +385,28 @@ function initNavTree(toroot,relpath,allMembersFile) { glowEffect(anchor.parent(),1000); // line number hash=''; // strip line number anchors } - gotoUrl(o,root,hash,relpath); + const url=root+hash; + let i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function() { + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } } const showSyncOff = function(n,relpath) { - n.html(''); + n.html(''); } const showSyncOn = function(n,relpath) { - n.html(''); + n.html(''); } const o = { @@ -471,429 +453,30 @@ function initNavTree(toroot,relpath,allMembersFile) { showRoot(); $(window).bind('hashchange', () => { - if (!animationInProgress) { - if (window.location.hash && window.location.hash.length>1) { - let a; - if ($(location).attr('hash')) { - const clslink=stripPath(pathName())+':'+hashValue(); - a=$('.item a[class$="'+clslink.replace(/1) { + let a; + if ($(location).attr('hash')) { + const clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ try to keep right panel width - const shrinkLeft = Math.min(deficit, leftPanelWidth-minPanelWidth); - leftPanelWidth -= shrinkLeft; - const remainingDeficit = deficit - shrinkLeft; - const shrinkRight = Math.min(remainingDeficit, rightPanelWidth-minPanelWidth); - rightPanelWidth -= shrinkRight; - } else { // dragging right handle -> try to keep left panel width - const shrinkRight = Math.min(deficit, rightPanelWidth-minPanelWidth); - rightPanelWidth -= shrinkRight; - const remainingDeficit = deficit - shrinkRight; - const shrinkLeft = Math.min(remainingDeficit, leftPanelWidth-minPanelWidth); - leftPanelWidth -= shrinkLeft; - } - } else { - rightPanelWidth = pagenav.length ? Math.max(minPanelWidth,rightPanelWidth) : 0; - leftPanelWidth = Math.max(minPanelWidth,leftPanelWidth); - } - return { leftPanelWidth, rightPanelWidth } - } - - function updateWidths(sidenavWidth,pagenavWidth,dragLeft) - { - const widths = constrainPanelWidths(sidenavWidth,pagenavWidth,dragLeft); - const widthStr = parseInt(widths.leftPanelWidth)+"px"; - content.css({marginLeft:widthStr}); - if (fullSidebar) { - footer.css({marginLeft:widthStr}); - if (mainnav) { - mainnav.css({marginLeft:widthStr}); - } - } - sidenav.css({width:widthStr}); - if (pagenav.length) { - container.css({gridTemplateColumns:'auto '+parseInt(widths.rightPanelWidth)+'px'}); - pagenav.css({width:parseInt(widths.rightPanelWidth-1)+'px'}); - } - return widths; - } - - function resizeWidth(dragLeft) { - const sidenavWidth = $(sidenav).outerWidth()-barWidth; - const pagenavWidth = pagenav.length ? $(pagenav).outerWidth() : 0; - const widths = updateWidths(sidenavWidth,pagenavWidth,dragLeft); - Cookie.writeSetting(RESIZE_COOKIE_NAME,widths.leftPanelWidth-barWidth); - if (pagenav.length) { - Cookie.writeSetting(PAGENAV_COOKIE_NAME,widths.rightPanelWidth); - } - } - - function restoreWidth(sidenavWidth,pagenavWidth) { - updateWidths(sidenavWidth,pagenavWidth,false); - showHideNavBar(); - } - - function resizeHeight() { - const headerHeight = header.outerHeight(); - const windowHeight = $(window).height(); - let contentHeight; - const footerHeight = footer.outerHeight(); - let navtreeHeight,sideNavHeight; - if (!fullSidebar) { - contentHeight = windowHeight - headerHeight - footerHeight - 1; - navtreeHeight = contentHeight; - sideNavHeight = contentHeight; - } else if (fullSidebar) { - contentHeight = windowHeight - footerHeight - 1; - navtreeHeight = windowHeight - headerHeight - 1; - sideNavHeight = windowHeight - 1; - if (mainnav) { - contentHeight -= mainnav.outerHeight(); - } - } - navtree.css({height:navtreeHeight + "px"}); - sidenav.css({height:sideNavHeight + "px"}); - content.css({height:contentHeight + "px"}); - resizeWidth(false); - showHideNavBar(); - if (location.hash.slice(1)) { - (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); - } - } - - header = $("#top"); - content = $("#doc-content"); - footer = $("#nav-path"); - sidenav = $("#side-nav"); - if (document.getElementById('main-nav')) { - mainnav = $("#main-nav"); - } - navtree = $("#nav-tree"); - pagenav = $("#page-nav"); - container = $("#container"); - $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(true); } }); - $(sidenav).resizable({ minWidth: 0 }); - if (pagenav.length) { - pagehandle = $("#page-nav-resize-handle"); - pagehandle.on('mousedown touchstart',function(e) { - $('body').addClass('resizing'); - pagehandle.addClass('dragging'); - $(document).on('mousemove touchmove',function(e) { - const clientX = e.clientX || e.originalEvent.touches[0].clientX; - let pagenavWidth = container[0].offsetWidth-clientX+barWidth/2; - const sidenavWidth = sidenav.width(); - const widths = constrainPanelWidths(sidenavWidth,pagenavWidth,false); - container.css({gridTemplateColumns:'auto '+parseInt(widths.rightPanelWidth)+'px'}); - pagenav.css({width:parseInt(widths.rightPanelWidth-1)+'px'}); - content.css({marginLeft:parseInt(widths.leftPanelWidth)+'px'}); - Cookie.writeSetting(PAGENAV_COOKIE_NAME,pagenavWidth); - }); - $(document).on('mouseup touchend', function(e) { - $('body').removeClass('resizing'); - pagehandle.removeClass('dragging'); - $(document).off('mousemove mouseup touchmove touchend'); - }); - }); - } else { - container.css({gridTemplateColumns:'auto'}); - } - const width = parseInt(Cookie.readSetting(RESIZE_COOKIE_NAME,250)); - const pagenavWidth = parseInt(Cookie.readSetting(PAGENAV_COOKIE_NAME,250)); - if (width) { restoreWidth(width+barWidth,pagenavWidth); } else { resizeWidth(); } - const url = location.href; - const i=url.indexOf("#"); - if (i>=0) window.location.hash=url.substr(i); - const _preventDefault = function(evt) { evt.preventDefault(); }; - $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); - $(window).ready(function() { - let lastWidth = -1; - let lastHeight = -1; - $(window).resize(function() { - const newWidth = $(this).width(), newHeight = $(this).height(); - if (newWidth!=lastWidth || newHeight!=lastHeight) { - resizeHeight(); - navtree_trampoline.updateContentTop(); - lastWidth = newWidth; - lastHeight = newHeight; - } - }); - resizeHeight(); - lastWidth = $(window).width(); - lastHeight = $(window).height(); - content.scroll(function() { - navtree_trampoline.updateContentTop(); - }); - }); - } - - - function initPageToc() { - const topMapping = []; - const toc_contents = $('#page-nav-contents'); - const content=$('
      ').addClass('page-outline'); - - var entityMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '/': '/', - '`': '`', - '=': '=' - }; - function escapeHtml (string) { - return String(string).replace(/[&<>"'`=\/]/g, function (s) { - return entityMap[s]; - }); - } - - // for ClassDef/GroupDef/ModuleDef/ConceptDef/DirDef - const groupSections = []; - let currentGroup = null; - $('h2.groupheader, h2.memtitle').each(function(){ - const $element = $(this); - if ($element.hasClass('groupheader')) { - currentGroup = { groupHeader: $element, memTitles: [] }; - groupSections.push(currentGroup); - } else if ($element.hasClass('memtitle') && currentGroup) { - currentGroup.memTitles.push($element); - } - }); - groupSections.forEach(function(item){ - const title = item.groupHeader.text().trim(); - let id = item.groupHeader.attr('id'); - const table = item.groupHeader.parents('table.memberdecls'); - let rows = $(); - if (table.length>0) { - rows = table.find("tr[class^='memitem:'] td.memItemRight, tr[class^='memitem:'] td.memItemLeft.anon, tr[class=groupHeader] td"); - } - function hasSubItems() { - return item.memTitles.length>0 || rows.toArray().some(function(el) { return $(el).is(':visible'); }); - } - const li = $('
    • ').attr('id','nav-'+id); - const div = $('
      ').addClass('item'); - const span = $('').addClass('arrow').css({ paddingLeft:'0' }); - if (hasSubItems()) { - span.append($('').addClass('arrowhead opened')); - } - const ahref = $('').attr('href','#'+id).append(title); - content.append(li.append(div.append(span).append(ahref))); - topMapping.push(id); - const ulStack = []; - ulStack.push(content); - if (hasSubItems()) { - let last_id = undefined; - let inMemberGroup = false; - // declaration sections have rows for items - rows.each(function(){ - let td = $(this); - let tr = $(td).parent(); - const is_anon_enum = td.contents().first().text().trim()=='{'; - if (tr.hasClass('template')) { - tr = tr.prev(); - } - id = $(tr).attr('id'); - const text = is_anon_enum ? 'anonymous enum' : $(this).find('a:first,b,div.groupHeader').text(); - let isMemberGroupHeader = $(tr).hasClass('groupHeader'); - if ($(tr).is(":visible") && last_id!=id && id!==undefined) { - if (isMemberGroupHeader && inMemberGroup) { - ulStack.pop(); - inMemberGroup=false; - } - const li2 = $('
    • ').attr('id','nav-'+id); - const div2 = $('
      ').addClass('item'); - const span2 = $('').addClass('arrow').css({ paddingLeft:parseInt(ulStack.length*16)+'px' }); - const ahref = $('').attr('href','#'+id).append(escapeHtml(text)); - li2.append(div2.append(span2).append(ahref)); - topMapping.push(id); - if (isMemberGroupHeader) { - span2.append($('').addClass('arrowhead opened')); - ulStack[ulStack.length-1].append(li2); - const ul2 = $('
        '); - ulStack.push(ul2); - li2.append(div2).append(ul2); - inMemberGroup=true; - } else { - ulStack[ulStack.length-1].append(li2); - } - last_id=id; - } - }); - // detailed documentation has h2.memtitle sections for items - item.memTitles.forEach(function(data) { - const text = $(data).contents().not($(data).children().first()).text(); - const name = text.replace(/\(\)(\s*\[\d+\/\d+\])?$/, '') // func() [2/8] -> func - id = $(data).find('span.permalink a').attr('href') - if (id!==undefined && name!==undefined) { - const li2 = $('
      • ').attr('id','nav-'+id.substring(1)); - const div2 = $('
      • '); - const div = $('
        ').addClass('item'); - const span = $('').addClass('arrow').css({ paddingLeft:'0' }); - const ahref = $('').attr('href',srcBaseUrl+dstBaseUrl+pageName).addClass('noscroll'); - content.append(li.append(div.append(span).append(ahref.append(LISTOFALLMEMBERS)))); - } - - if (groupSections.length==0) { - // for PageDef - const sectionTree = [], sectionStack = []; - $('h1.doxsection, h2.doxsection, h3.doxsection, h4.doxsection, h5.doxsection, h6.doxsection').each(function(){ - const level = parseInt(this.tagName[1]); - const anchor = $(this).find('a.anchor').attr('id'); - const node = { text: $(this).html(), id: anchor, children: [] }; - while (sectionStack.length && sectionStack[sectionStack.length - 1].level >= level) sectionStack.pop(); - (sectionStack.length ? sectionStack[sectionStack.length - 1].children : sectionTree).push(node); - sectionStack.push({ ...node, level }); - }); - if (sectionTree.length>0) { - function render(nodes, level=0) { - nodes.map(n => { - const li = $('
      • ').attr('id','nav-'+n.id); - const div = $('
        ').addClass('item'); - const span = $('').addClass('arrow').attr('style','padding-left:'+parseInt(level*16)+'px;'); - if (n.children.length > 0) { span.append($('').addClass('arrowhead opened')); } - const url = $('').attr('href','#'+n.id); - content.append(li.append(div.append(span).append(url.append(n.text)))); - topMapping.push(n.id); - render(n.children,level+1); - }); - } - render(sectionTree); - } - } - - toc_contents.append(content); - - $(".page-outline a[href]:not(.noscroll)").click(function(e) { - e.preventDefault(); - const aname = $(this).attr("href"); - gotoAnchor($(aname),aname); - }); - - let lastScrollSourceOffset = -1; - let lastScrollTargetOffset = -1; - let lastScrollTargetId = ''; - - navtree_trampoline.updateContentTop = function() { - const pagenavcontents = $("#page-nav-contents"); - if (pagenavcontents.length) { - const content = $("#doc-content"); - const height = content.height(); - const navy = pagenavcontents.offset().top; - const yc = content.offset().top; - let offsets = [] - for (let i=0;imargin || ye>margin) && (yslastScrollTargetOffset) || - (!scrollDown && targetOffset { - navtree_trampoline.updateContentTop(); - },200); - } - $(document).ready(function() { initPageToc(); initResizable(); }); - + $("div.toc a[href]").click(function(e) { + e.preventDefault(); + const aname = $(this).attr("href"); + gotoAnchor($(aname),aname); + }); } /* @license-end */ diff --git a/Doc/html/navtreedata.js b/Doc/html/navtreedata.js index ea6eff0..b8330df 100644 --- a/Doc/html/navtreedata.js +++ b/Doc/html/navtreedata.js @@ -27,10 +27,10 @@ var NAVTREE = [ "MyLibs", "index.html", [ [ "Обзор", "index.html#overview", [ [ "Основные возможности", "index.html#features", [ - [ "Общие утилиты (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 ] + [ "Общие утилиты (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 ] ] ], [ "Структура проекта", "index.html#structure", null ], [ "Использование", "index.html#usage_basic", [ @@ -64,9 +64,8 @@ var NAVTREE = var NAVTREEINDEX = [ "____general__flash_8c_source.html", -"struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5" +"struct_r_t_t___flash_header__t.html#ae7276198385c8d6f6508f433d042d52a" ]; -var SYNCONMSG = 'click to disable panel synchronization'; -var SYNCOFFMSG = 'click to enable panel synchronization'; -var LISTOFALLMEMBERS = 'List of all members'; \ No newline at end of file +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; \ No newline at end of file diff --git a/Doc/html/navtreeindex0.js b/Doc/html/navtreeindex0.js index cdd7a2d..bc95142 100644 --- a/Doc/html/navtreeindex0.js +++ b/Doc/html/navtreeindex0.js @@ -53,11 +53,14 @@ var NAVTREEINDEX0 = "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#ga71a0c240c667e976d9caef391ab767ba":[1,0,1,1,2], -"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a":[1,0,1,1,5], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6":[1,0,1,1,4], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb":[1,0,1,1,6], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21":[1,0,1,1,7], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e":[1,0,1,1,1], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc":[1,0,1,1,5], "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653":[1,0,1,1,3], -"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1":[1,0,1,1,4], -"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaff223481fcffea77394a331afde29fdc":[1,0,1,1,1], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3":[1,0,1,1,2], +"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef":[1,0,1,1,8], "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], @@ -215,14 +218,15 @@ var NAVTREEINDEX0 = "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#a74b81df1c298c99162310f3f7d91735a":[1,0,1,1,0,7], -"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_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae":[1,0,1,1,0,5], +"struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8":[1,0,1,1,0,1], +"struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a":[1,0,1,1,0,8], +"struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c":[1,0,1,1,0,0], +"struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df":[1,0,1,1,0,6], +"struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6":[1,0,1,1,0,3], +"struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1":[1,0,1,1,0,2], +"struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4":[1,0,1,1,0,7], +"struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8":[1,0,1,1,0,4], "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], @@ -245,9 +249,5 @@ var NAVTREEINDEX0 = "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_r_t_t___flash_header__t.html#a844ee5470a323a749856cbb7a682dc57":[1,0,1,5,2,0,0] }; diff --git a/Doc/html/navtreeindex1.js b/Doc/html/navtreeindex1.js index 09a6155..d127260 100644 --- a/Doc/html/navtreeindex1.js +++ b/Doc/html/navtreeindex1.js @@ -1,5 +1,9 @@ var NAVTREEINDEX1 = { +"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], diff --git a/Doc/html/open.png b/Doc/html/open.png new file mode 100644 index 0000000..30f75c7 Binary files /dev/null and b/Doc/html/open.png differ diff --git a/Doc/html/plus.svg b/Doc/html/plus.svg new file mode 100644 index 0000000..0752016 --- /dev/null +++ b/Doc/html/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Doc/html/plusd.svg b/Doc/html/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/Doc/html/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Doc/html/resize.js b/Doc/html/resize.js new file mode 100644 index 0000000..6ad2ae8 --- /dev/null +++ b/Doc/html/resize.js @@ -0,0 +1,109 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initResizable() { + let sidenav,navtree,content,header,footer,barWidth=6; + const RESIZE_COOKIE_NAME = ''+'width'; + + function resizeWidth() { + const sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) { + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() { + const headerHeight = header.outerHeight(); + const footerHeight = footer.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight,navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + content.css({height:contentHeight + "px"}); + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() { + let newWidth; + if (sidenav.width()>0) { + newWidth=0; + } else { + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + const sidenavWidth = $(sidenav).outerWidth(); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: () => resizeWidth() }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(() => resizeHeight()); + const device = navigator.userAgent.toLowerCase(); + const touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + const url = location.href; + const i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + const _preventDefault = (evt) => evt.preventDefault(); + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/Doc/html/search/all_10.js b/Doc/html/search/all_10.js index b8c67f8..6183e1d 100644 --- a/Doc/html/search/all_10.js +++ b/Doc/html/search/all_10.js @@ -27,32 +27,36 @@ 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___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,'']]], - ['trace_20defines_31',['Trace defines',['../group___t_r_a_c_e.html',1,'']]], - ['trace_20defines_32',['trace 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___t_r_a_c_e___s_e_r_i_a_l.html',1,'Serial trace defines']]], - ['trace_2eh_33',['trace.h',['../trace_8h.html',1,'']]], - ['trace_5fgpio_5freset_34',['TRACE_GPIO_RESET',['../group___t_r_a_c_e___g_p_i_o.html#ga69741d88c991112e99fe7a62e025108a',1,'trace.h']]], - ['trace_5fgpio_5fset_35',['TRACE_GPIO_SET',['../group___t_r_a_c_e___g_p_i_o.html#ga02a6a7b273766121db8ad4a1371373eb',1,'trace.h']]], - ['trackerclear_5fall_36',['TrackerClear_All',['../group___t_r_a_c_k_e_r_s.html#ga704f7b9f8c65c9bcec48ce7cb77a2d3b',1,'trackers.h']]], - ['trackerclear_5ferr_37',['TrackerClear_Err',['../group___t_r_a_c_k_e_r_s.html#gae860b6947c6e317e14d40bd7b4b8eb74',1,'trackers.h']]], - ['trackerclear_5fok_38',['TrackerClear_Ok',['../group___t_r_a_c_k_e_r_s.html#ga5dd8bac8c7ab5832019d55d7a68371b9',1,'trackers.h']]], - ['trackerclear_5fuser_39',['TrackerClear_User',['../group___t_r_a_c_k_e_r_s.html#ga063dab1067005e1600ea32531fdf3f8d',1,'trackers.h']]], - ['trackerclear_5fuserall_40',['TrackerClear_UserAll',['../group___t_r_a_c_k_e_r_s.html#gaaec7ec19977bb26fa1919dfe920b82d5',1,'trackers.h']]], - ['trackerclear_5fwarn_41',['TrackerClear_Warn',['../group___t_r_a_c_k_e_r_s.html#ga365a8c60bd13b75154feda649dd21ead',1,'trackers.h']]], - ['trackercnt_5ferr_42',['TrackerCnt_Err',['../group___t_r_a_c_k_e_r_s.html#ga49af29ab3927cad105c1d2b018a767e9',1,'trackers.h']]], - ['trackercnt_5fok_43',['TrackerCnt_Ok',['../group___t_r_a_c_k_e_r_s.html#ga23de0006aa08984cfeddb6aa5e512fa1',1,'trackers.h']]], - ['trackercnt_5fuser_44',['TrackerCnt_User',['../group___t_r_a_c_k_e_r_s.html#ga1b7549afc4a1760b54a9b93b0f6d105e',1,'trackers.h']]], - ['trackercnt_5fwarn_45',['TrackerCnt_Warn',['../group___t_r_a_c_k_e_r_s.html#ga8017fb05a56a1b667244f1f786fa9c57',1,'trackers.h']]], - ['trackerget_5ferr_46',['TrackerGet_Err',['../group___t_r_a_c_k_e_r_s.html#ga9dc91e6b798a081f95f2ccef2c288e5e',1,'trackers.h']]], - ['trackerget_5fok_47',['TrackerGet_Ok',['../group___t_r_a_c_k_e_r_s.html#gab880911066605602a966641682090169',1,'trackers.h']]], - ['trackerget_5fuser_48',['TrackerGet_User',['../group___t_r_a_c_k_e_r_s.html#ga4b08632669043dfdbd219dda03502bdb',1,'trackers.h']]], - ['trackerget_5fwarn_49',['TrackerGet_Warn',['../group___t_r_a_c_k_e_r_s.html#ga47ac59a406ee74d4cd9fe0fbaf63a758',1,'trackers.h']]], - ['trackers_20defines_50',['Trackers defines',['../group___t_r_a_c_k_e_r_s.html',1,'']]], - ['trackers_2eh_51',['trackers.h',['../trackers_8h.html',1,'']]], - ['trackers_5fenable_52',['TRACKERS_ENABLE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#gac9eaedc31ab023ce7d6403999216e496',1,'mylibs_config.h']]], - ['trackertypedef_53',['TrackerTypeDef',['../group___t_r_a_c_k_e_r_s.html#ga50ccb119acf302969b7fdcb58f2130e4',1,'trackers.h']]], - ['trackerwrite_5fuser_54',['TrackerWrite_User',['../group___t_r_a_c_k_e_r_s.html#gad2f4062a9ac8c2ab062a364f640ebc51',1,'trackers.h']]] + ['tools_27',['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']]], + ['tools_28',['General Tools',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'']]], + ['tools_29',['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']]], + ['tools_30',['GPIO Tools',['../group___m_y___l_i_b_s___g_p_i_o.html',1,'']]], + ['tools_31',['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']]], + ['tools_32',['TIM Tools',['../group___m_y___l_i_b_s___t_i_m.html',1,'']]], + ['trace_33',['Трассировка @ref TRACE',['../index.html#trace_module',1,'']]], + ['trace_20configs_34',['Trace configs',['../group___t_r_a_c_e___c_o_n_f_i_g.html',1,'']]], + ['trace_20defines_35',['trace 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___t_r_a_c_e___s_e_r_i_a_l.html',1,'Serial trace defines']]], + ['trace_20defines_36',['Trace defines',['../group___t_r_a_c_e.html',1,'']]], + ['trace_2eh_37',['trace.h',['../trace_8h.html',1,'']]], + ['trace_5fgpio_5freset_38',['TRACE_GPIO_RESET',['../group___t_r_a_c_e___g_p_i_o.html#ga69741d88c991112e99fe7a62e025108a',1,'trace.h']]], + ['trace_5fgpio_5fset_39',['TRACE_GPIO_SET',['../group___t_r_a_c_e___g_p_i_o.html#ga02a6a7b273766121db8ad4a1371373eb',1,'trace.h']]], + ['trackerclear_5fall_40',['TrackerClear_All',['../group___t_r_a_c_k_e_r_s.html#ga704f7b9f8c65c9bcec48ce7cb77a2d3b',1,'trackers.h']]], + ['trackerclear_5ferr_41',['TrackerClear_Err',['../group___t_r_a_c_k_e_r_s.html#gae860b6947c6e317e14d40bd7b4b8eb74',1,'trackers.h']]], + ['trackerclear_5fok_42',['TrackerClear_Ok',['../group___t_r_a_c_k_e_r_s.html#ga5dd8bac8c7ab5832019d55d7a68371b9',1,'trackers.h']]], + ['trackerclear_5fuser_43',['TrackerClear_User',['../group___t_r_a_c_k_e_r_s.html#ga063dab1067005e1600ea32531fdf3f8d',1,'trackers.h']]], + ['trackerclear_5fuserall_44',['TrackerClear_UserAll',['../group___t_r_a_c_k_e_r_s.html#gaaec7ec19977bb26fa1919dfe920b82d5',1,'trackers.h']]], + ['trackerclear_5fwarn_45',['TrackerClear_Warn',['../group___t_r_a_c_k_e_r_s.html#ga365a8c60bd13b75154feda649dd21ead',1,'trackers.h']]], + ['trackercnt_5ferr_46',['TrackerCnt_Err',['../group___t_r_a_c_k_e_r_s.html#ga49af29ab3927cad105c1d2b018a767e9',1,'trackers.h']]], + ['trackercnt_5fok_47',['TrackerCnt_Ok',['../group___t_r_a_c_k_e_r_s.html#ga23de0006aa08984cfeddb6aa5e512fa1',1,'trackers.h']]], + ['trackercnt_5fuser_48',['TrackerCnt_User',['../group___t_r_a_c_k_e_r_s.html#ga1b7549afc4a1760b54a9b93b0f6d105e',1,'trackers.h']]], + ['trackercnt_5fwarn_49',['TrackerCnt_Warn',['../group___t_r_a_c_k_e_r_s.html#ga8017fb05a56a1b667244f1f786fa9c57',1,'trackers.h']]], + ['trackerget_5ferr_50',['TrackerGet_Err',['../group___t_r_a_c_k_e_r_s.html#ga9dc91e6b798a081f95f2ccef2c288e5e',1,'trackers.h']]], + ['trackerget_5fok_51',['TrackerGet_Ok',['../group___t_r_a_c_k_e_r_s.html#gab880911066605602a966641682090169',1,'trackers.h']]], + ['trackerget_5fuser_52',['TrackerGet_User',['../group___t_r_a_c_k_e_r_s.html#ga4b08632669043dfdbd219dda03502bdb',1,'trackers.h']]], + ['trackerget_5fwarn_53',['TrackerGet_Warn',['../group___t_r_a_c_k_e_r_s.html#ga47ac59a406ee74d4cd9fe0fbaf63a758',1,'trackers.h']]], + ['trackers_20defines_54',['Trackers defines',['../group___t_r_a_c_k_e_r_s.html',1,'']]], + ['trackers_2eh_55',['trackers.h',['../trackers_8h.html',1,'']]], + ['trackers_5fenable_56',['TRACKERS_ENABLE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#gac9eaedc31ab023ce7d6403999216e496',1,'mylibs_config.h']]], + ['trackertypedef_57',['TrackerTypeDef',['../group___t_r_a_c_k_e_r_s.html#ga50ccb119acf302969b7fdcb58f2130e4',1,'trackers.h']]], + ['trackerwrite_5fuser_58',['TrackerWrite_User',['../group___t_r_a_c_k_e_r_s.html#gad2f4062a9ac8c2ab062a364f640ebc51',1,'trackers.h']]] ]; diff --git a/Doc/html/search/all_15.js b/Doc/html/search/all_15.js index 5143fc3..728d84a 100644 --- a/Doc/html/search/all_15.js +++ b/Doc/html/search/all_15.js @@ -1,5 +1,5 @@ var searchData= [ - ['модуль_20таймеров_20my_5flibs_5ftim_0',['Модуль таймеров <a class="el" href="group___m_y___l_i_b_s___t_i_m.html">TIM Tools</a>',['../index.html#tim_module',1,'']]], - ['модуль_20gpio_20my_5flibs_5fgpio_1',['Модуль 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,'']]] + ['модуль_20таймеров_20ref_20my_5flibs_5ftim_0',['Модуль таймеров @ref MY_LIBS_TIM',['../index.html#tim_module',1,'']]], + ['модуль_20gpio_20ref_20my_5flibs_5fgpio_1',['Модуль GPIO @ref MY_LIBS_GPIO',['../index.html#gpio_module',1,'']]] ]; diff --git a/Doc/html/search/all_16.js b/Doc/html/search/all_16.js index ca20af9..08f8b9f 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 Tools</a>)',['../index.html#utils_module',1,'']]], + ['общие_20утилиты_20ref_20mylibs_5fdefines_1',['Общие утилиты (@ref MYLIBS_DEFINES)',['../index.html#utils_module',1,'']]], ['основные_20возможности_2',['Основные возможности',['../index.html#features',1,'']]] ]; diff --git a/Doc/html/search/all_1a.js b/Doc/html/search/all_1a.js index 22224e1..fd98780 100644 --- a/Doc/html/search/all_1a.js +++ b/Doc/html/search/all_1a.js @@ -1,6 +1,6 @@ var searchData= [ - ['трассировка_20trace_0',['Трассировка <a class="el" href="group___t_r_a_c_e.html">Trace defines</a>',['../index.html#trace_module',1,'']]], - ['таймеров_20my_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,'']]], - ['таймером_2',['Пример работы с таймером',['../index.html#tim_example',1,'']]] + ['таймеров_20ref_20my_5flibs_5ftim_0',['Модуль таймеров @ref MY_LIBS_TIM',['../index.html#tim_module',1,'']]], + ['таймером_1',['Пример работы с таймером',['../index.html#tim_example',1,'']]], + ['трассировка_20ref_20trace_2',['Трассировка @ref TRACE',['../index.html#trace_module',1,'']]] ]; diff --git a/Doc/html/search/all_1b.js b/Doc/html/search/all_1b.js index f69cabe..03ba3a5 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 Tools</a>)',['../index.html#utils_module',1,'']]] + ['утилиты_20ref_20mylibs_5fdefines_0',['Общие утилиты (@ref MYLIBS_DEFINES)',['../index.html#utils_module',1,'']]] ]; diff --git a/Doc/html/search/all_2.js b/Doc/html/search/all_2.js index 471f910..8fed4dd 100644 --- a/Doc/html/search/all_2.js +++ b/Doc/html/search/all_2.js @@ -1,7 +1,7 @@ var searchData= [ ['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']]], + ['candidates_1',['candidates',['../struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4',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']]], diff --git a/Doc/html/search/all_4.js b/Doc/html/search/all_4.js index 004dfd2..0884da6 100644 --- a/Doc/html/search/all_4.js +++ b/Doc/html/search/all_4.js @@ -1,16 +1,19 @@ var searchData= [ - ['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#gadaf3a90724197e1737d5c70c7bcc75e1',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#ga75acd71c85d4e60dc0eb31bc5780086a',1,'evolve_optimizer.h']]], - ['evolveoptimizer_5ft_12',['EvolveOptimizer_t',['../struct_evolve_optimizer__t.html',1,'']]] + ['elovle_5fn_5felite_5fcandidate_0',['ELOVLE_N_ELITE_CANDIDATE',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga38607e23d9234524bc7de5869b15b8eb',1,'evolve_optimizer.h']]], + ['enable_5fevolve_5foptimization_1',['ENABLE_EVOLVE_OPTIMIZATION',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga2cac097081444a7a9b040f4b11550e47',1,'mylibs_config.h']]], + ['encoder_20tools_2',['Encoder tools',['../group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html',1,'']]], + ['encoder_5fdiff_3',['Encoder_Diff',['../struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3',1,'TIM_EncoderTypeDef']]], + ['encoder_5fshdw_4',['Encoder_Shdw',['../struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2',1,'TIM_EncoderTypeDef']]], + ['error_20handler_20defines_5',['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_6',['Evolve configs',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html',1,'']]], + ['evolve_20optimizer_7',['Evolve optimizer',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html',1,'']]], + ['evolve_5fmax_5fcandidates_8',['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_9',['EVOLVE_MAX_PARAMS',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee',1,'mylibs_config.h']]], + ['evolve_5fmutation_5fmax_5fpct_10',['EVOLVE_MUTATION_MAX_PCT',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga861c1c6a503c21441abcec0d57b848bc',1,'evolve_optimizer.h']]], + ['evolve_5fmutation_5fmin_5fpct_11',['EVOLVE_MUTATION_MIN_PCT',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga2f2b1be34ad4eb1bf3267237200cd6c6',1,'evolve_optimizer.h']]], + ['evolve_5foptimizer_2eh_12',['evolve_optimizer.h',['../evolve__optimizer_8h.html',1,'']]], + ['evolveoptimizer_5finit_13',['EvolveOptimizer_Init',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21',1,'evolve_optimizer.h']]], + ['evolveoptimizer_5fstep_14',['EvolveOptimizer_Step',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaef44a1f3298514569cc2b396a92101ef',1,'evolve_optimizer.h']]], + ['evolveoptimizer_5ft_15',['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 ab97706..ea28794 100644 --- a/Doc/html/search/all_6.js +++ b/Doc/html/search/all_6.js @@ -7,7 +7,7 @@ var searchData= ['general_5ftim_2ec_4',['general_tim.c',['../general__tim_8c.html',1,'']]], ['general_5ftim_2eh_5',['general_tim.h',['../general__tim_8h.html',1,'']]], ['gpio_6',['Пример работы с GPIO',['../index.html#gpio_example',1,'']]], - ['gpio_20my_5flibs_5fgpio_7',['Модуль 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,'']]], + ['gpio_20ref_20my_5flibs_5fgpio_7',['Модуль GPIO @ref MY_LIBS_GPIO',['../index.html#gpio_module',1,'']]], ['gpio_20tools_8',['GPIO Tools',['../group___m_y___l_i_b_s___g_p_i_o.html',1,'']]], ['gpio_20trace_20defines_9',['GPIO trace defines',['../group___t_r_a_c_e___g_p_i_o.html',1,'']]], ['gpio_5fclock_5fenable_10',['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']]], diff --git a/Doc/html/search/all_8.js b/Doc/html/search/all_8.js index 2b98e91..037d453 100644 --- a/Doc/html/search/all_8.js +++ b/Doc/html/search/all_8.js @@ -6,6 +6,5 @@ var searchData= ['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']]] + ['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']]] ]; diff --git a/Doc/html/search/all_9.js b/Doc/html/search/all_9.js index d707ae3..89afd0d 100644 --- a/Doc/html/search/all_9.js +++ b/Doc/html/search/all_9.js @@ -17,6 +17,6 @@ var searchData= ['local_5ftime_14',['local_time',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653',1,'evolve_optimizer.h']]], ['log_5flevel_15',['LOG_LEVEL',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga0b87e0d3bf5853bcbb0b66a7c48fdc05',1,'mylibs_config.h']]], ['log_5fprintf_16',['log_printf',['../group___t_r_a_c_e___s_e_r_i_a_l.html#ga730fb7b8d0bbb348dca73c15bd0e0b26',1,'trace.h']]], - ['loss_17',['loss',['../struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d',1,'EvolveOptimizer_t']]], + ['loss_17',['loss',['../struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df',1,'EvolveOptimizer_t']]], ['lr_18',['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 f2ebf4a..fedafe7 100644 --- a/Doc/html/search/all_a.js +++ b/Doc/html/search/all_a.js @@ -4,14 +4,15 @@ var searchData= ['msdelaystart_1',['msDelayStart',['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#ga8a5051b1292d1019fe8dd3fc5521ab25',1,'mylibs_defs.h']]], ['msdelaywaitdone_2',['msDelayWaitDone',['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#gaed082c07b9fc4d1894330d885b9b5518',1,'mylibs_defs.h']]], ['msdelaywhileactive_3',['msDelayWhileActive',['../group___d_e_l_a_y_s___d_e_f_i_n_e_s.html#ga0b97e172659a59ee4fa56f851643ae85',1,'mylibs_defs.h']]], - ['my_20libs_4',['My Libs',['../group___m_y_l_i_b_s___a_l_l.html',1,'']]], - ['my_5flibs_5fgpio_5',['Модуль 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_6',['Модуль таймеров <a class="el" href="group___m_y___l_i_b_s___t_i_m.html">TIM Tools</a>',['../index.html#tim_module',1,'']]], - ['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 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,'']]] + ['mutation_5famp_4',['mutation_amp',['../struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8',1,'EvolveOptimizer_t']]], + ['my_20libs_5',['My Libs',['../group___m_y_l_i_b_s___a_l_l.html',1,'']]], + ['my_5flibs_5fgpio_6',['Модуль GPIO @ref MY_LIBS_GPIO',['../index.html#gpio_module',1,'']]], + ['my_5flibs_5ftim_7',['Модуль таймеров @ref MY_LIBS_TIM',['../index.html#tim_module',1,'']]], + ['my_5fprintf_8',['my_printf',['../group___t_r_a_c_e___s_e_r_i_a_l.html#gae9b9b8a611e291a2f2aa5abf99f3ebaa',1,'trace.h']]], + ['mylibs_9',['MyLibs',['../index.html',1,'']]], + ['mylibs_5fconfig_2eh_10',['mylibs_config.h',['../mylibs__config_8h.html',1,'']]], + ['mylibs_5fdefines_11',['Общие утилиты (@ref MYLIBS_DEFINES)',['../index.html#utils_module',1,'']]], + ['mylibs_5fdefs_2eh_12',['mylibs_defs.h',['../mylibs__defs_8h.html',1,'']]], + ['mylibs_5ferror_5fhandler_13',['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_14',['mylibs_include.h',['../mylibs__include_8h.html',1,'']]] ]; diff --git a/Doc/html/search/all_d.js b/Doc/html/search/all_d.js index 397ab9d..7209e2c 100644 --- a/Doc/html/search/all_d.js +++ b/Doc/html/search/all_d.js @@ -1,7 +1,7 @@ var searchData= [ - ['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']]], + ['param_5fscale_0',['PARAM_SCALE',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga83abbcabaff9111c03ae2475ee72ea3e',1,'evolve_optimizer.h']]], + ['param_5funscale_1',['PARAM_UNSCALE',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaa1d5510fe5f0bd989473f3ebe324bde3',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']]], diff --git a/Doc/html/search/all_e.js b/Doc/html/search/all_e.js index 95ce717..40ec221 100644 --- a/Doc/html/search/all_e.js +++ b/Doc/html/search/all_e.js @@ -5,15 +5,19 @@ var searchData= ['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']]], - ['rtt_20buffer_5',['Flash RTT Buffer',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html',1,'']]], - ['rtt_5feraseflash_6',['RTT_EraseFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga8d8c6850e32b42871faefce3352012d1',1,'trace.h']]], - ['rtt_5fflash_5fbuffer_5fsize_7',['RTT_FLASH_BUFFER_SIZE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga501312b24e322de4dd6755ad442f0ba3',1,'mylibs_config.h']]], - ['rtt_5fflash_5fsector_8',['RTT_FLASH_SECTOR',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga3bc1b76864e1d32cbdd174d4caae7724',1,'mylibs_config.h']]], - ['rtt_5fflash_5fsector_5fend_9',['RTT_FLASH_SECTOR_END',['../group___t_r_a_c_e___c_o_n_f_i_g.html#gafeca0be3688dea07ff443f894668003d',1,'mylibs_config.h']]], - ['rtt_5fflash_5fsector_5fstart_10',['RTT_FLASH_SECTOR_START',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga8e56f75d3ab8a89ddde1404ae23c3297',1,'mylibs_config.h']]], - ['rtt_5fflashheader_5ft_11',['RTT_FlashHeader_t',['../struct_r_t_t___flash_header__t.html',1,'']]], - ['rtt_5fflashprepare_12',['RTT_FlashPrepare',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga21353cb4f5af666237739e62ce019cd6',1,'trace.h']]], - ['rtt_5freadfromflash_13',['RTT_ReadFromFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga734b2ebbf0c77699b739013878cfd146',1,'trace.h']]], - ['rtt_5fsavetoflash_14',['RTT_SaveToFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga79f222c8ab644de4d47f07528d1edd63',1,'trace.h']]], - ['rtt_5ftrace_5fenable_15',['RTT_TRACE_ENABLE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga00ff2175bdc1fb11c8ec970ea3010dd8',1,'mylibs_config.h']]] + ['ref_20my_5flibs_5fgpio_5',['Модуль GPIO @ref MY_LIBS_GPIO',['../index.html#gpio_module',1,'']]], + ['ref_20my_5flibs_5ftim_6',['Модуль таймеров @ref MY_LIBS_TIM',['../index.html#tim_module',1,'']]], + ['ref_20mylibs_5fdefines_7',['Общие утилиты (@ref MYLIBS_DEFINES)',['../index.html#utils_module',1,'']]], + ['ref_20trace_8',['Трассировка @ref TRACE',['../index.html#trace_module',1,'']]], + ['rtt_20buffer_9',['Flash RTT Buffer',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html',1,'']]], + ['rtt_5feraseflash_10',['RTT_EraseFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga8d8c6850e32b42871faefce3352012d1',1,'trace.h']]], + ['rtt_5fflash_5fbuffer_5fsize_11',['RTT_FLASH_BUFFER_SIZE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga501312b24e322de4dd6755ad442f0ba3',1,'mylibs_config.h']]], + ['rtt_5fflash_5fsector_12',['RTT_FLASH_SECTOR',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga3bc1b76864e1d32cbdd174d4caae7724',1,'mylibs_config.h']]], + ['rtt_5fflash_5fsector_5fend_13',['RTT_FLASH_SECTOR_END',['../group___t_r_a_c_e___c_o_n_f_i_g.html#gafeca0be3688dea07ff443f894668003d',1,'mylibs_config.h']]], + ['rtt_5fflash_5fsector_5fstart_14',['RTT_FLASH_SECTOR_START',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga8e56f75d3ab8a89ddde1404ae23c3297',1,'mylibs_config.h']]], + ['rtt_5fflashheader_5ft_15',['RTT_FlashHeader_t',['../struct_r_t_t___flash_header__t.html',1,'']]], + ['rtt_5fflashprepare_16',['RTT_FlashPrepare',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga21353cb4f5af666237739e62ce019cd6',1,'trace.h']]], + ['rtt_5freadfromflash_17',['RTT_ReadFromFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga734b2ebbf0c77699b739013878cfd146',1,'trace.h']]], + ['rtt_5fsavetoflash_18',['RTT_SaveToFlash',['../group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga79f222c8ab644de4d47f07528d1edd63',1,'trace.h']]], + ['rtt_5ftrace_5fenable_19',['RTT_TRACE_ENABLE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga00ff2175bdc1fb11c8ec970ea3010dd8',1,'mylibs_config.h']]] ]; diff --git a/Doc/html/search/all_f.js b/Doc/html/search/all_f.js index 9761998..6527aed 100644 --- a/Doc/html/search/all_f.js +++ b/Doc/html/search/all_f.js @@ -10,20 +10,21 @@ var searchData= ['sorted_5fidx_7',['sorted_idx',['../struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a',1,'EvolveOptimizer_t']]], ['spi_5fsettingstypedef_8',['SPI_SettingsTypeDef',['../struct_s_p_i___settings_type_def.html',1,'']]], ['sslaveconfig_9',['sSlaveConfig',['../struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969',1,'TIM_SettingsTypeDef']]], - ['state_10',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]], - ['stickbaseprescaler_11',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]], - ['stickbaseus_12',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]], - ['stimahbfreqmhz_13',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]], - ['stimfreqhz_14',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]], - ['stimmode_15',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]], - ['sw_16',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]], - ['sw_5factivelvl_17',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]], - ['sw_5ffilterdelay_18',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]], - ['sw_5foff_19',['SW_OFF',['../group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067',1,'general_gpio.h']]], - ['sw_5fon_20',['SW_ON',['../group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9',1,'general_gpio.h']]], - ['sw_5fpin_21',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]], - ['sw_5fport_22',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]], - ['sw_5fprevstate_23',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]], - ['switch_20tools_24',['Switch tools',['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html',1,'']]], - ['swo_5ftrace_5fenable_25',['SWO_TRACE_ENABLE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#gab8db9704b5d11858aa879689b9d36336',1,'mylibs_config.h']]] + ['stability_10',['stability',['../struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c',1,'EvolveOptimizer_t']]], + ['state_11',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]], + ['stickbaseprescaler_12',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]], + ['stickbaseus_13',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]], + ['stimahbfreqmhz_14',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]], + ['stimfreqhz_15',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]], + ['stimmode_16',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]], + ['sw_17',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]], + ['sw_5factivelvl_18',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]], + ['sw_5ffilterdelay_19',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]], + ['sw_5foff_20',['SW_OFF',['../group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067',1,'general_gpio.h']]], + ['sw_5fon_21',['SW_ON',['../group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9',1,'general_gpio.h']]], + ['sw_5fpin_22',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]], + ['sw_5fport_23',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]], + ['sw_5fprevstate_24',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]], + ['switch_20tools_25',['Switch tools',['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html',1,'']]], + ['swo_5ftrace_5fenable_26',['SWO_TRACE_ENABLE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#gab8db9704b5d11858aa879689b9d36336',1,'mylibs_config.h']]] ]; diff --git a/Doc/html/search/close.svg b/Doc/html/search/close.svg new file mode 100644 index 0000000..337d6cc --- /dev/null +++ b/Doc/html/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/Doc/html/search/functions_0.js b/Doc/html/search/functions_0.js index ede5d0f..32253ba 100644 --- a/Doc/html/search/functions_0.js +++ b/Doc/html/search/functions_0.js @@ -1,5 +1,5 @@ var searchData= [ - ['evolveoptimizer_5finit_0',['EvolveOptimizer_Init',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1',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#ga75acd71c85d4e60dc0eb31bc5780086a',1,'evolve_optimizer.h']]] + ['evolveoptimizer_5finit_0',['EvolveOptimizer_Init',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga4e3ea118b5b9068619c57724a925ba21',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#gaef44a1f3298514569cc2b396a92101ef',1,'evolve_optimizer.h']]] ]; diff --git a/Doc/html/search/groups_f.js b/Doc/html/search/groups_f.js index 96ba99e..0861945 100644 --- a/Doc/html/search/groups_f.js +++ b/Doc/html/search/groups_f.js @@ -1,10 +1,14 @@ 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___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,'']]], - ['trace_20defines_5',['trace 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___t_r_a_c_e___s_e_r_i_a_l.html',1,'Serial trace defines']]], - ['trackers_20defines_6',['Trackers defines',['../group___t_r_a_c_k_e_r_s.html',1,'']]] + ['tools_1',['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']]], + ['tools_2',['General Tools',['../group___m_y_l_i_b_s___d_e_f_i_n_e_s.html',1,'']]], + ['tools_3',['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']]], + ['tools_4',['GPIO Tools',['../group___m_y___l_i_b_s___g_p_i_o.html',1,'']]], + ['tools_5',['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']]], + ['tools_6',['TIM Tools',['../group___m_y___l_i_b_s___t_i_m.html',1,'']]], + ['trace_20configs_7',['Trace configs',['../group___t_r_a_c_e___c_o_n_f_i_g.html',1,'']]], + ['trace_20defines_8',['trace 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___t_r_a_c_e___s_e_r_i_a_l.html',1,'Serial trace defines']]], + ['trace_20defines_9',['Trace defines',['../group___t_r_a_c_e.html',1,'']]], + ['trackers_20defines_10',['Trackers defines',['../group___t_r_a_c_k_e_r_s.html',1,'']]] ]; diff --git a/Doc/html/search/mag.svg b/Doc/html/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/Doc/html/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/Doc/html/search/mag_d.svg b/Doc/html/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/Doc/html/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/Doc/html/search/mag_sel.svg b/Doc/html/search/mag_sel.svg new file mode 100644 index 0000000..553dba8 --- /dev/null +++ b/Doc/html/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/Doc/html/search/mag_seld.svg b/Doc/html/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/Doc/html/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/Doc/html/search/pages_0.js b/Doc/html/search/pages_0.js index 4ff0f40..2e8c2c6 100644 --- a/Doc/html/search/pages_0.js +++ b/Doc/html/search/pages_0.js @@ -1,5 +1,4 @@ var searchData= [ - ['gpio_0',['Пример работы с GPIO',['../index.html#gpio_example',1,'']]], - ['gpio_20my_5flibs_5fgpio_1',['Модуль 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,'']]] + ['mylibs_0',['MyLibs',['../index.html',1,'']]] ]; diff --git a/Doc/html/search/search.css b/Doc/html/search/search.css index 956f31f..19f76f9 100644 --- a/Doc/html/search/search.css +++ b/Doc/html/search/search.css @@ -5,8 +5,8 @@ display: flex; justify-content: center; align-items: center; - height: 43px; - margin-right: 0; + height: 36px; + margin-right: 1em; } /*---------------- Search box styling */ @@ -27,23 +27,43 @@ dark-mode-toggle { white-space : nowrap; background: var(--search-background-color); border-radius: 0.65em; - border: 1px solid var(--search-box-border-color); + box-shadow: var(--search-box-shadow); z-index: 102; - margin-right: 4px; } #MSearchBox .left { display: inline-block; vertical-align: middle; - height: 1.6em; + height: 1.4em; } +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + #MSearchField { display: inline-block; - vertical-align: top; + vertical-align: middle; width: 7.5em; - height: 22px; - margin: 0 0 0 0.15em; + height: 19px; + margin: 0 0.15em; padding: 0; line-height: 1em; border:none; @@ -66,7 +86,7 @@ dark-mode-toggle { display: inline-block; vertical-align: middle; width: 1.4em; - height: 1.6em; + height: 1.4em; } #MSearchClose { @@ -81,100 +101,14 @@ dark-mode-toggle { } #MSearchCloseImg { - margin: 6px 0 0 4px; + padding: 0.3em; + margin: 0; } -.close-icon { - width: 11px; - height: 11px; - background-color: var(--search-close-icon-bg-color); - border-radius: 50%; - position: relative; - display: flex; - justify-content: center; - align-items: center; - box-sizing: content-box; -} - -.close-icon:before, -.close-icon:after { - content: ''; - position: absolute; - width: 7px; - height: 1px; - background-color: var(--search-close-icon-fg-color); -} - -.close-icon:before { - transform: rotate(45deg); -} - -.close-icon:after { - transform: rotate(-45deg); -} - - .MSearchBoxActive #MSearchField { color: var(--search-active-color); } -.search-icon { - width: 20px; - height: 20px; - display: inline-block; - position: relative; - margin-left: 3px; -} - -#MSearchSelectExt.search-icon { - width: 10px; -} - -#MSearchSelectExt + input { - margin-left: 5px; -} - -.search-icon::before, .search-icon::after { - content: ''; - position: absolute; - border: 1.5px solid var(--search-foreground-color); - box-sizing: content-box; -} - -.search-icon::before { - width: 6px; - height: 6px; - border-radius: 50%; - top: 7px; - left: 2px; - background: var(--search-background-color); -} - -.search-icon::after { - border: 1px solid var(--search-foreground-color); - width: 0px; - height: 3px; - border-radius: 2px; - top: 15px; - left: 8px; - transform: rotate(-45deg); - transform-origin: top left; -} - -.search-icon-dropdown { - content: ''; - width: 0; - height: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid var(--search-foreground-color); - top: 8px; - left: 15px; - transform: translateX(-50%); - position: absolute; -} - - /*---------------- Search filter selection */ @@ -185,12 +119,15 @@ dark-mode-toggle { left: 0; top: 0; border: 1px solid var(--search-filter-border-color); background-color: var(--search-filter-background-color); - backdrop-filter: var(--search-filter-backdrop-filter); - -webkit-backdrop-filter: var(--search-filter-backdrop-filter); z-index: 10001; padding-top: 4px; padding-bottom: 4px; - border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); } .SelectItem { @@ -239,39 +176,18 @@ iframe#MSearchResults { height: 15em; } -@keyframes slideInSearchResults { - from { - opacity: 0; - transform: translate(0, 15px); - } - - to { - opacity: 1; - transform: translate(0, 20px); - } -} - #MSearchResultsWindow { display: none; position: absolute; - left: auto; - right: 4px; - top: 0; + left: 0; top: 0; border: 1px solid var(--search-results-border-color); background-color: var(--search-results-background-color); - backdrop-filter: var(--search-results-backdrop-filter); - -webkit-backdrop-filter: var(--search-results-backdrop-filter); z-index:10000; width: 300px; height: 400px; overflow: auto; - border-radius: 8px; - transform: translate(0, 20px); - animation: ease-out 280ms slideInSearchResults; - box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); } - /* ----------------------------------- */ @@ -285,13 +201,13 @@ iframe#MSearchResults { } .SRPage .SREntry { - font-size: 10pt; - padding: 2px 5px; + font-size: 8pt; + padding: 1px 5px; } div.SRPage { margin: 5px 2px; - /*background-color: var(--search-results-background-color);*/ + background-color: var(--search-results-background-color); } .SRChildren { @@ -345,17 +261,14 @@ div.searchresults { margin-right: 10px; } -#searchBoxPos1 dark-mode-toggle { - margin-top: 4px; -} - /*---------------- External search page results */ .pages b { - color: var(--nav-foreground-color); + color: white; padding: 5px 5px 3px 5px; - background-color: var(--nav-menu-active-bg); - border-radius: 4px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; } .pages { diff --git a/Doc/html/search/search.js b/Doc/html/search/search.js index dc14410..666af01 100644 --- a/Doc/html/search/search.js +++ b/Doc/html/search/search.js @@ -607,12 +607,6 @@ function createResults(resultsPath) { elem.setAttribute('className',attr); } - const decodeHtml = (html) => { - const txt = document.createElement("textarea"); - txt.innerHTML = html; - return txt.value; - }; - const results = document.getElementById("SRResults"); results.innerHTML = ''; searchData.forEach((elem,index) => { @@ -626,14 +620,10 @@ function createResults(resultsPath) { srLink.setAttribute('id','Item'+index); setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); setClassAttr(srLink,'SRSymbol'); - srLink.innerHTML = decodeHtml(elem[1][0]); + srLink.innerHTML = elem[1][0]; srEntry.appendChild(srLink); if (elem[1].length==2) { // single result - if (elem[1][1][0].startsWith('http://') || elem[1][1][0].startsWith('https://')) { // absolute path - srLink.setAttribute('href',elem[1][1][0]); - } else { // relative path - srLink.setAttribute('href',resultsPath+elem[1][1][0]); - } + srLink.setAttribute('href',resultsPath+elem[1][1][0]); srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); if (elem[1][1][1]) { srLink.setAttribute('target','_parent'); @@ -642,7 +632,7 @@ function createResults(resultsPath) { } const srScope = document.createElement('span'); setClassAttr(srScope,'SRScope'); - srScope.innerHTML = decodeHtml(elem[1][1][2]); + srScope.innerHTML = elem[1][1][2]; srEntry.appendChild(srScope); } else { // multiple results srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); @@ -653,18 +643,14 @@ function createResults(resultsPath) { srChild.setAttribute('id','Item'+index+'_c'+c); setKeyActions(srChild,'return searchResults.NavChild(event,'+index+','+c+')'); setClassAttr(srChild,'SRScope'); - if (elem[1][c+1][0].startsWith('http://') || elem[1][c+1][0].startsWith('https://')) { // absolute path - srChild.setAttribute('href',elem[1][c+1][0]); - } else { // relative path - srChild.setAttribute('href',resultsPath+elem[1][c+1][0]); - } + srChild.setAttribute('href',resultsPath+elem[1][c+1][0]); srChild.setAttribute('onclick','searchBox.CloseResultsWindow()'); if (elem[1][c+1][1]) { srChild.setAttribute('target','_parent'); } else { srChild.setAttribute('target','_blank'); } - srChild.innerHTML = decodeHtml(elem[1][c+1][2]); + srChild.innerHTML = elem[1][c+1][2]; srChildren.appendChild(srChild); } srEntry.appendChild(srChildren); diff --git a/Doc/html/search/searchdata.js b/Doc/html/search/searchdata.js index afacf37..9a4156c 100644 --- a/Doc/html/search/searchdata.js +++ b/Doc/html/search/searchdata.js @@ -4,11 +4,11 @@ var indexSectionsWithContent = 1: "eghrstu", 2: "begmt", 3: "eghrt", - 4: "cdeghilnprst", + 4: "cdeghlmnprst", 5: "gt", 6: "lt", 7: "abcdefghilmoprstu", - 8: "gmtвзимопрсту" + 8: "m" }; var indexSectionNames = diff --git a/Doc/html/search/variables_0.js b/Doc/html/search/variables_0.js index c5df047..0d2dad9 100644 --- a/Doc/html/search/variables_0.js +++ b/Doc/html/search/variables_0.js @@ -1,5 +1,5 @@ var searchData= [ ['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']]] + ['candidates_1',['candidates',['../struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4',1,'EvolveOptimizer_t']]] ]; diff --git a/Doc/html/search/variables_5.js b/Doc/html/search/variables_5.js index b322adf..6a97596 100644 --- a/Doc/html/search/variables_5.js +++ b/Doc/html/search/variables_5.js @@ -1,4 +1,9 @@ var searchData= [ - ['iq_5fmutation_0',['iq_mutation',['../struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5',1,'EvolveOptimizer_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#a93f628397c2f8d4027f2906752b650df',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_6.js b/Doc/html/search/variables_6.js index def9829..76205be 100644 --- a/Doc/html/search/variables_6.js +++ b/Doc/html/search/variables_6.js @@ -1,9 +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']]], - ['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']]] + ['mutation_5famp_0',['mutation_amp',['../struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8',1,'EvolveOptimizer_t']]] ]; diff --git a/Doc/html/search/variables_a.js b/Doc/html/search/variables_a.js index 188fe02..e291301 100644 --- a/Doc/html/search/variables_a.js +++ b/Doc/html/search/variables_a.js @@ -7,16 +7,17 @@ var searchData= ['smasterconfig_4',['sMasterConfig',['../struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21',1,'TIM_SettingsTypeDef']]], ['sorted_5fidx_5',['sorted_idx',['../struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a',1,'EvolveOptimizer_t']]], ['sslaveconfig_6',['sSlaveConfig',['../struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969',1,'TIM_SettingsTypeDef']]], - ['state_7',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]], - ['stickbaseprescaler_8',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]], - ['stickbaseus_9',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]], - ['stimahbfreqmhz_10',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]], - ['stimfreqhz_11',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]], - ['stimmode_12',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]], - ['sw_13',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]], - ['sw_5factivelvl_14',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]], - ['sw_5ffilterdelay_15',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]], - ['sw_5fpin_16',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]], - ['sw_5fport_17',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]], - ['sw_5fprevstate_18',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]] + ['stability_7',['stability',['../struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c',1,'EvolveOptimizer_t']]], + ['state_8',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]], + ['stickbaseprescaler_9',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]], + ['stickbaseus_10',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]], + ['stimahbfreqmhz_11',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]], + ['stimfreqhz_12',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]], + ['stimmode_13',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]], + ['sw_14',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]], + ['sw_5factivelvl_15',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]], + ['sw_5ffilterdelay_16',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]], + ['sw_5fpin_17',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]], + ['sw_5fport_18',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]], + ['sw_5fprevstate_19',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]] ]; diff --git a/Doc/html/splitbar.png b/Doc/html/splitbar.png new file mode 100644 index 0000000..fe895f2 Binary files /dev/null and b/Doc/html/splitbar.png differ diff --git a/Doc/html/splitbard.png b/Doc/html/splitbard.png new file mode 100644 index 0000000..8367416 Binary files /dev/null and b/Doc/html/splitbard.png differ diff --git a/Doc/html/struct_evolve_optimizer__t-members.html b/Doc/html/struct_evolve_optimizer__t-members.html index 8578c3c..34782f0 100644 --- a/Doc/html/struct_evolve_optimizer__t-members.html +++ b/Doc/html/struct_evolve_optimizer__t-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({
        - + -
      @@ -71,9 +73,10 @@ $(function() {
    - diff --git a/Doc/html/struct_evolve_optimizer__t.html b/Doc/html/struct_evolve_optimizer__t.html index d7f47e8..36e2fab 100644 --- a/Doc/html/struct_evolve_optimizer__t.html +++ b/Doc/html/struct_evolve_optimizer__t.html @@ -3,7 +3,7 @@ - + MyLibs: EvolveOptimizer_t Struct Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    EvolveOptimizer_t Struct Reference
    @@ -106,30 +112,59 @@ $(function(){initNavTree('struct_evolve_optimizer__t.html','','struct_evolve_opt

    #include <evolve_optimizer.h>

    - + + + + - + + - - + + + + - - - - + + + + + + + +

    +

    Public Attributes

    float stability
     Коэффициент насколько стабильная популяция (0..1)(n_cand)
     
    uint16_t n_params
     Количество параметров
     
    uint16_t n_cand
     Количество кандидатов
     Количество кандидатов в популяции
     
    uint16_t n_best
     Количество лучших, усредняемых
    uint16_t iq_mutation
     Амплитуда мутации в Q16.16.
     
    float mutation_amp
     Амплитуда мутации (0..1)
     
    uint16_t cand_index
     Индекс кандидата для обработки
    int32_t loss [100]
     Loss для каждого кандидата
    int32_t candidates [100][20]
     Параметры кандидатов
     
    float loss [100]
     Loss для каждого кандидата
     
    float candidates [100][20]
     Параметры кандидатов
     
    uint16_t sorted_idx [100]
     Индексы отсортированных кандидатов
     
    -

    Detailed Description

    +

    Detailed Description

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

    -

    Definition at line 87 of file evolve_optimizer.h.

    -

    Member Data Documentation

    +

    Definition at line 102 of file evolve_optimizer.h.

    +

    Member Data Documentation

    + +

    ◆ stability

    + +
    +
    + + + + +
    float EvolveOptimizer_t::stability
    +
    + +

    Коэффициент насколько стабильная популяция (0..1)(n_cand)

    + +

    Definition at line 103 of file evolve_optimizer.h.

    + +
    +

    ◆ n_params

    @@ -144,7 +179,7 @@ Public Attributes

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

    -

    Definition at line 88 of file evolve_optimizer.h.

    +

    Definition at line 104 of file evolve_optimizer.h.

    @@ -160,9 +195,9 @@ Public Attributes
    -

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

    +

    Количество кандидатов в популяции

    -

    Definition at line 89 of file evolve_optimizer.h.

    +

    Definition at line 105 of file evolve_optimizer.h.

    @@ -180,25 +215,25 @@ Public Attributes

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

    -

    Definition at line 90 of file evolve_optimizer.h.

    +

    Definition at line 106 of file evolve_optimizer.h.

    - -

    ◆ iq_mutation

    + +

    ◆ mutation_amp

    - +
    uint16_t EvolveOptimizer_t::iq_mutationfloat EvolveOptimizer_t::mutation_amp
    -

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

    +

    Амплитуда мутации (0..1)

    -

    Definition at line 91 of file evolve_optimizer.h.

    +

    Definition at line 107 of file evolve_optimizer.h.

    @@ -216,43 +251,43 @@ Public Attributes

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

    -

    Definition at line 92 of file evolve_optimizer.h.

    +

    Definition at line 108 of file evolve_optimizer.h.

    - -

    ◆ loss

    + +

    ◆ loss

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

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

    -

    Definition at line 93 of file evolve_optimizer.h.

    +

    Definition at line 109 of file evolve_optimizer.h.

    - -

    ◆ candidates

    + +

    ◆ candidates

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

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

    -

    Definition at line 94 of file evolve_optimizer.h.

    +

    Definition at line 110 of file evolve_optimizer.h.

    @@ -270,28 +305,20 @@ Public Attributes

    Индексы отсортированных кандидатов

    -

    Definition at line 95 of file evolve_optimizer.h.

    +

    Definition at line 111 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 index 86e701f..cf9289a 100644 --- a/Doc/html/struct_evolve_optimizer__t.js +++ b/Doc/html/struct_evolve_optimizer__t.js @@ -1,11 +1,12 @@ var struct_evolve_optimizer__t = [ + [ "stability", "struct_evolve_optimizer__t.html#a80eb0b8525b6bb838484f5922b9d8f7c", null ], [ "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 ], + [ "mutation_amp", "struct_evolve_optimizer__t.html#af779c7aeba0053e36cee7aade160f1c8", 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 ], + [ "loss", "struct_evolve_optimizer__t.html#a93f628397c2f8d4027f2906752b650df", null ], + [ "candidates", "struct_evolve_optimizer__t.html#aec67667fd1f1533e693e41c79bc28da4", null ], [ "sorted_idx", "struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a", null ] ]; \ No newline at end of file diff --git a/Doc/html/struct_g_p_i_o___l_e_d_type_def-members.html b/Doc/html/struct_g_p_i_o___l_e_d_type_def-members.html index beef91b..cd97a90 100644 --- a/Doc/html/struct_g_p_i_o___l_e_d_type_def-members.html +++ b/Doc/html/struct_g_p_i_o___l_e_d_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    tickprev (defined in GPIO_LEDTypeDef)GPIO_LEDTypeDef
    -
    diff --git a/Doc/html/struct_g_p_i_o___l_e_d_type_def.html b/Doc/html/struct_g_p_i_o___l_e_d_type_def.html index 3bc820a..8e74029 100644 --- a/Doc/html/struct_g_p_i_o___l_e_d_type_def.html +++ b/Doc/html/struct_g_p_i_o___l_e_d_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: GPIO_LEDTypeDef Struct Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    GPIO_LEDTypeDef Struct Reference
    @@ -106,25 +112,31 @@ $(function(){initNavTree('struct_g_p_i_o___l_e_d_type_def.html','','struct_g_p_i

    #include <general_gpio.h>

    - + + + + + +

    +

    Public Attributes

    GPIO_LEDStateTypeDef state
     Текущий режим работы светодиода
     
    GPIO_TypeDef * LED_Port
     GPIO порт ножки светодиода
     
    uint32_t LED_Pin
     GPIO пин ножки светодиода
     
    uint8_t LED_ActiveLvl
     Активный уровень ножки (при котором светодиод горит)
     
    uint32_t LED_Period
     Период моргания светодиода
     
    uint32_t tickprev
     
    -

    Detailed Description

    +

    Detailed Description

    Структура светодиода

    Definition at line 93 of file general_gpio.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ state

    @@ -232,23 +244,15 @@ Public Attributes

    The documentation for this struct was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_gpio.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_gpio.h
    - - diff --git a/Doc/html/struct_g_p_i_o___switch_type_def-members.html b/Doc/html/struct_g_p_i_o___switch_type_def-members.html index 4957c60..23156f4 100644 --- a/Doc/html/struct_g_p_i_o___switch_type_def-members.html +++ b/Doc/html/struct_g_p_i_o___switch_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    -
    diff --git a/Doc/html/struct_g_p_i_o___switch_type_def.html b/Doc/html/struct_g_p_i_o___switch_type_def.html index 5629694..7e5088c 100644 --- a/Doc/html/struct_g_p_i_o___switch_type_def.html +++ b/Doc/html/struct_g_p_i_o___switch_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: GPIO_SwitchTypeDef Struct Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    GPIO_SwitchTypeDef Struct Reference
    @@ -106,25 +112,31 @@ $(function(){initNavTree('struct_g_p_i_o___switch_type_def.html','','struct_g_p_

    #include <general_gpio.h>

    - + + + + + +

    +

    Public Attributes

    GPIO_TypeDef * Sw_Port
     GPIO порт ножки кнопки
     
    uint32_t Sw_Pin
     GPIO пин ножки кнопки
     
    uint8_t Sw_ActiveLvl
     Активный уровень ножки (при котором кнопка нажата)
     
    uint32_t Sw_PrevState
     Предыдущее состояние кнопки
     
    uint32_t Sw_FilterDelay
     Фильтр от дребезга (в мс)
     
    uint32_t tickprev
     
    -

    Detailed Description

    +

    Detailed Description

    Структура кнопки

    Definition at line 110 of file general_gpio.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ Sw_Port

    @@ -232,23 +244,15 @@ Public Attributes

    The documentation for this struct was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_gpio.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_gpio.h
    - - diff --git a/Doc/html/struct_h_f___stack_frame__t-members.html b/Doc/html/struct_h_f___stack_frame__t-members.html index dcf3ead..7641c7d 100644 --- a/Doc/html/struct_h_f___stack_frame__t-members.html +++ b/Doc/html/struct_h_f___stack_frame__t-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - diff --git a/Doc/html/struct_h_f___stack_frame__t.html b/Doc/html/struct_h_f___stack_frame__t.html index e7069f8..10afeb7 100644 --- a/Doc/html/struct_h_f___stack_frame__t.html +++ b/Doc/html/struct_h_f___stack_frame__t.html @@ -3,7 +3,7 @@ - + MyLibs: HF_StackFrame_t Struct Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    @@ -106,31 +112,39 @@ $(function(){initNavTree('struct_h_f___stack_frame__t.html','','struct_h_f___sta

    #include <trace.h>

    - + + + + + + + +

    +

    Public Attributes

    uint32_t r0
     Регистр R0.
     
    uint32_t r1
     Регистр R1.
     
    uint32_t r2
     Регистр R2.
     
    uint32_t r3
     Регистр R3.
     
    uint32_t r12
     Регистр R12.
     
    uint32_t lr
     Link Register.
     
    uint32_t pc
     Program Counter.
     
    uint32_t psr
     Program Status Register.
     
    -

    Detailed Description

    +

    Detailed Description

    Контекст стек-фрейма процессора при HardFault.

    Сохраняет регистры R0-R3, R12, LR, PC, PSR для последующего анализа.

    Definition at line 463 of file trace.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ r0

    @@ -276,23 +290,15 @@ Public Attributes

    The documentation for this struct was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/trace.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/trace.h
    - - diff --git a/Doc/html/struct_r_t_t___flash_header__t-members.html b/Doc/html/struct_r_t_t___flash_header__t-members.html index f48c46e..47d5610 100644 --- a/Doc/html/struct_r_t_t___flash_header__t-members.html +++ b/Doc/html/struct_r_t_t___flash_header__t-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - 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 6a18e98..cc17867 100644 --- a/Doc/html/struct_r_t_t___flash_header__t.html +++ b/Doc/html/struct_r_t_t___flash_header__t.html @@ -3,7 +3,7 @@ - + MyLibs: RTT_FlashHeader_t Struct Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    @@ -106,20 +112,23 @@ $(function(){initNavTree('struct_r_t_t___flash_header__t.html','','struct_r_t_t_

    #include <trace.h>

    - + + +

    +

    Public Attributes

    uint32_t tag
     Уникальный идентификатор буфера
     
    uint32_t size
     Размер данных
     
    char data [1024]
     Буфер RTT.
     
    -

    Detailed Description

    +

    Detailed Description

    Структура RTT, которая будет положена в Flash.

    Definition at line 180 of file trace.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ tag

    @@ -175,23 +184,15 @@ Public Attributes

    The documentation for this struct was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/trace.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/trace.h
    - - diff --git a/Doc/html/struct_s_p_i___settings_type_def-members.html b/Doc/html/struct_s_p_i___settings_type_def-members.html index efc46dd..dc63a06 100644 --- a/Doc/html/struct_s_p_i___settings_type_def-members.html +++ b/Doc/html/struct_s_p_i___settings_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - diff --git a/Doc/html/struct_s_p_i___settings_type_def.html b/Doc/html/struct_s_p_i___settings_type_def.html index d45765e..4499565 100644 --- a/Doc/html/struct_s_p_i___settings_type_def.html +++ b/Doc/html/struct_s_p_i___settings_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: SPI_SettingsTypeDef Struct Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    SPI_SettingsTypeDef Struct Reference
    - + + + + + + + + + +

    +

    Public Attributes

    SPI_HandleTypeDef hspi
     
    GPIO_TypeDef * CLK_GPIOx
     
    uint32_t CLK_PIN
     
    uint32_t CLK_GPIO_AlternageFunc
     
    GPIO_TypeDef * MISO_GPIOx
     
    uint32_t MISO_PIN
     
    uint32_t MISO_GPIO_AlternageFunc
     
    GPIO_TypeDef * MOSI_GPIOx
     
    uint32_t MOSI_PIN
     
    uint32_t MOSI_GPIO_AlternageFunc
     
    -

    Detailed Description

    +

    Detailed Description

    Definition at line 33 of file __general_spi.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ hspi

    @@ -279,23 +295,15 @@ Public Attributes

    The documentation for this struct was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_spi.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_spi.h
    - - diff --git a/Doc/html/struct_t_i_m___encoder_type_def-members.html b/Doc/html/struct_t_i_m___encoder_type_def-members.html index 0519215..430b6ed 100644 --- a/Doc/html/struct_t_i_m___encoder_type_def-members.html +++ b/Doc/html/struct_t_i_m___encoder_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - diff --git a/Doc/html/struct_t_i_m___encoder_type_def.html b/Doc/html/struct_t_i_m___encoder_type_def.html index 8404f92..68dc357 100644 --- a/Doc/html/struct_t_i_m___encoder_type_def.html +++ b/Doc/html/struct_t_i_m___encoder_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: TIM_EncoderTypeDef Struct Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    TIM_EncoderTypeDef Struct Reference
    @@ -105,40 +111,50 @@ $(function(){initNavTree('struct_t_i_m___encoder_type_def.html','','struct_t_i_m More...

    #include <general_tim.h>

    -
    Collaboration diagram for TIM_EncoderTypeDef:
    +
    + + Collaboration diagram for TIM_EncoderTypeDef:
    - + + + + + + + + +

    +

    Public Attributes

    int16_t Encoder_Diff
     Считанная разница
     
    uint16_t Encoder_Shdw
     Последние считанные тики
     
    TIM_HandleTypeDef * htim
     Указатель на HAL handle таймера
     
    TIM_Encoder_InitTypeDef sConfig
     Указатель на структуру настройки энкодера
     
    GPIO_TypeDef * GPIOx
     Порт, куда подключается энкодер
     
    uint32_t GPIO_PIN_TI1
     Пин, куда подключается канал TI1.
     
    uint32_t GPIO_PIN_TI2
     Пин, куда подключается канал TI2.
     
    uint32_t GPIO_PIN_SW
     Пин, куда кнопка энкодера (если есть)
     
    GPIO_SwitchTypeDef Sw
     Структура кнопки
     
    -

    Detailed Description

    +

    Detailed Description

    Структура инициализации енкодера


    Содержит все базовые структуры, которые нужны для инициализации таймера. Если структуры настроек не заданы, то они заполнятся сами дефолтными параметрами
    @@ -146,7 +162,7 @@ Public Attributes

    Также высокоуровневые настройки частоты работы таймера. Если какая-либо высокоуровневая настройка не задана, то по возможности берется низкоуровневая настройка из структур

    Definition at line 140 of file general_tim.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ Encoder_Diff

    @@ -310,23 +326,15 @@ Public Attributes

    The documentation for this struct was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h
    - - diff --git a/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.map b/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.map index 7e20fbf..23c67d8 100644 --- a/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.map +++ b/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.map @@ -1,5 +1,5 @@ - + - + diff --git a/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.md5 b/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.md5 index b7fa754..3bf5ef6 100644 --- a/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.md5 +++ b/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.md5 @@ -1 +1 @@ -2ea4c5426996fe33f0078eba5fb4ab62 \ No newline at end of file +941563dd38300d4589813f0d77aba757 \ No newline at end of file diff --git a/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.png b/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.png index 9ea81a6..c4f904c 100644 Binary files a/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.png and b/Doc/html/struct_t_i_m___encoder_type_def__coll__graph.png differ diff --git a/Doc/html/struct_t_i_m___settings_type_def-members.html b/Doc/html/struct_t_i_m___settings_type_def-members.html index d78d7ea..ccfa745 100644 --- a/Doc/html/struct_t_i_m___settings_type_def-members.html +++ b/Doc/html/struct_t_i_m___settings_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - diff --git a/Doc/html/struct_t_i_m___settings_type_def.html b/Doc/html/struct_t_i_m___settings_type_def.html index 954a378..32bf216 100644 --- a/Doc/html/struct_t_i_m___settings_type_def.html +++ b/Doc/html/struct_t_i_m___settings_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: TIM_SettingsTypeDef Struct Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    TIM_SettingsTypeDef Struct Reference
    @@ -106,30 +112,42 @@ $(function(){initNavTree('struct_t_i_m___settings_type_def.html','','struct_t_i_

    #include <general_tim.h>

    - + + + + + - + + - + + + + +

    +

    Public Attributes

    TIM_HandleTypeDef htim
     HAL handle таймера
     
    TIM_ClockConfigTypeDef sClockSourceConfig
     Настройки тактирования таймера
     
    TIM_SlaveConfigTypeDef sSlaveConfig
     Настройки слейв режима таймера
     
    TIM_MasterConfigTypeDef sMasterConfig
     Настройки мастер режима таймера
     
    TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig
     Настройки дедтаймов таймера
     
    TIM_ITModeTypeDef sTimMode
     Настройки прерывания таймера
     Настройки прерывания таймера
    +
     
    TIM_MHzTickBaseTypeDef sTickBaseUS
     Длительность одного тика
     Длительность одного тика
    +
     
    uint8_t sTickBasePrescaler
     Дополнительный делитель, для удобного деления sTickBaseUS.
     
    float sTimAHBFreqMHz
     Частота шины тактирования таймера
     
    float sTimFreqHz
     Желаемая частота таймера
     
    -

    Detailed Description

    +

    Detailed Description

    Структура инициализации таймера


    Содержит все базовые структуры, которые нужны для инициализации таймера. Если структуры настроек не заданы, то они заполнятся сами дефолтными параметрами
    @@ -137,7 +155,7 @@ Public Attributes

    Также высокоуровневые настройки частоты работы таймера. Если какая-либо высокоуровневая настройка не задана, то по возможности берется низкоуровневая настройка из структур

    Definition at line 112 of file general_tim.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ htim

    @@ -240,7 +258,8 @@ Public Attributes
    -

    Настройки прерывания таймера

    +

    Настройки прерывания таймера
    +

    Definition at line 120 of file general_tim.h.

    @@ -258,7 +277,8 @@ Public Attributes
    -

    Длительность одного тика

    +

    Длительность одного тика
    +

    Definition at line 121 of file general_tim.h.

    @@ -319,23 +339,15 @@ Public Attributes

    The documentation for this struct was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h
    - - diff --git a/Doc/html/struct_u_a_r_t___settings_type_def-members.html b/Doc/html/struct_u_a_r_t___settings_type_def-members.html index dc903a7..95a4d63 100644 --- a/Doc/html/struct_u_a_r_t___settings_type_def-members.html +++ b/Doc/html/struct_u_a_r_t___settings_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - diff --git a/Doc/html/struct_u_a_r_t___settings_type_def.html b/Doc/html/struct_u_a_r_t___settings_type_def.html index 6f127d1..43f2851 100644 --- a/Doc/html/struct_u_a_r_t___settings_type_def.html +++ b/Doc/html/struct_u_a_r_t___settings_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: UART_SettingsTypeDef Struct Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    UART_SettingsTypeDef Struct Reference
    - + + + + + +

    +

    Public Attributes

    UART_HandleTypeDef huart
     
    GPIO_TypeDef * GPIOx
     
    uint16_t GPIO_PIN_RX
     
    uint16_t GPIO_PIN_TX
     
    DMA_Stream_TypeDef * DMAChannel
     
    uint32_t DMA_CHANNEL_X
     
    -

    Detailed Description

    +

    Detailed Description

    Definition at line 45 of file __general_uart.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ huart

    @@ -211,23 +223,15 @@ Public Attributes

    The documentation for this struct was generated from the following file:
    - - diff --git a/Doc/html/sync_off.png b/Doc/html/sync_off.png new file mode 100644 index 0000000..3b443fc Binary files /dev/null and b/Doc/html/sync_off.png differ diff --git a/Doc/html/sync_on.png b/Doc/html/sync_on.png new file mode 100644 index 0000000..e08320f Binary files /dev/null and b/Doc/html/sync_on.png differ diff --git a/Doc/html/tab_a.png b/Doc/html/tab_a.png new file mode 100644 index 0000000..3b725c4 Binary files /dev/null and b/Doc/html/tab_a.png differ diff --git a/Doc/html/tab_ad.png b/Doc/html/tab_ad.png new file mode 100644 index 0000000..e34850a Binary files /dev/null and b/Doc/html/tab_ad.png differ diff --git a/Doc/html/tab_b.png b/Doc/html/tab_b.png new file mode 100644 index 0000000..e2b4a86 Binary files /dev/null and b/Doc/html/tab_b.png differ diff --git a/Doc/html/tab_bd.png b/Doc/html/tab_bd.png new file mode 100644 index 0000000..91c2524 Binary files /dev/null and b/Doc/html/tab_bd.png differ diff --git a/Doc/html/tab_h.png b/Doc/html/tab_h.png new file mode 100644 index 0000000..fd5cb70 Binary files /dev/null and b/Doc/html/tab_h.png differ diff --git a/Doc/html/tab_hd.png b/Doc/html/tab_hd.png new file mode 100644 index 0000000..2489273 Binary files /dev/null and b/Doc/html/tab_hd.png differ diff --git a/Doc/html/tab_s.png b/Doc/html/tab_s.png new file mode 100644 index 0000000..ab478c9 Binary files /dev/null and b/Doc/html/tab_s.png differ diff --git a/Doc/html/tab_sd.png b/Doc/html/tab_sd.png new file mode 100644 index 0000000..757a565 Binary files /dev/null and b/Doc/html/tab_sd.png differ diff --git a/Doc/html/tabs.css b/Doc/html/tabs.css index 84f33ae..fe4854a 100644 --- a/Doc/html/tabs.css +++ b/Doc/html/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-color:var(--nav-menu-background-color)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;line-height:36px;text-decoration:none;color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-color:var(--nav-menu-background-color);line-height:36px}.sm-dox a span.sub-arrow{top:15px;right:10px;box-sizing:content-box;padding:0;margin:0;display:inline-block;width:5px;height:5px;background-color:var(--nav-menu-background-color);border-right:2px solid var(--nav-arrow-color);border-bottom:2px solid var(--nav-arrow-color);transform:rotate(45deg);-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 6px}.sm-dox a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px !important}.sm-dox a:hover span.sub-arrow{background-color:var(--nav-menu-active-bg);border-right:2px solid var(--nav-arrow-selected-color);border-bottom:2px solid var(--nav-arrow-selected-color)}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0;padding:3px}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{transform:rotate(-45deg)}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:6px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:6px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/Doc/html/topics.html b/Doc/html/topics.html index 1361458..3bcb61d 100644 --- a/Doc/html/topics.html +++ b/Doc/html/topics.html @@ -3,7 +3,7 @@ - + MyLibs: Topics @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    Here is a list of all topics with brief descriptions:
    [detail level 12345]
    - - + + - + - + - - - + + + - + - +
     My LibsВсе используемые MyLibs библиотеки
     ConfigsКонфигурации для библиотек MyLibs
     My LibsВсе используемые MyLibs библиотеки
     ConfigsКонфигурации для библиотек MyLibs
     Trace configsКонфигурация трекеров и трассировки
     Evolve configsКонфигурация однослойного персептрона и алгоритма обучения
     Libraries configsПодключение различных модулей библиотеки
     General ToolsОбщие макросы и typedef'ы, используемые по всему проекту
     General ToolsОбщие макросы и typedef'ы, используемые по всему проекту
     Bit access definesМакросы и typedef'ы для работы с битами в unsigned типах
     Evolve optimizerБиблиотека для эволюционного подбора параметров
     Error Handler definesДефайны для обработки ошибок
     Delays definesМакросы и определения для работы с задержками в миллисекундах
     Utils definesОбщие вспомогательные макросы
     Trace 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
     PeripheralМодули для управления периферией
     GPIO ToolsФункции и макросы для удобной работы с GPIO
     General toolsОбщие функции/макросы для работы с GPIO
     Init definesНастройка состояний кнопок и количества тиков в периоде ШИМ
     Switch toolsФункции для работы с GPIO, как с кнопкой
     LED toolsФункции для работы с GPIO, для управления светодиодом
     TIM ToolsФункции и макросы для удобной работы с TIM
     TIM ToolsФункции и макросы для удобной работы с TIM
     PWM/OC Channels toolsФункции для инициализации базовых функций каналов таймера
     Encoder toolsФункции для считывания энкодера
     Delay toolsФункции для формирования задержек с помощью таймеров
     General toolsФункции для базовой инициализации таймеров
     General toolsФункции для базовой инициализации таймеров
     Init definesНастройка таймеров
    -
    diff --git a/Doc/html/trace_8h.html b/Doc/html/trace_8h.html index d8b254f..cb80436 100644 --- a/Doc/html/trace_8h.html +++ b/Doc/html/trace_8h.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/trace.h File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/trace.h File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    trace.h File Reference
    @@ -106,13 +113,14 @@ $(function(){initNavTree('trace_8h.html','',''); });
    #include "mylibs_defs.h"
    #include <string.h>
    #include "SEGGER_RTT.h"
    -
    Include dependency graph for trace.h:
    +
    + + Include dependency graph for trace.h:
    -
    This graph shows which files directly or indirectly include this file:
    +
    + + This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    - - + - + + +

    +

    Classes

    struct  RTT_FlashHeader_t
    struct  RTT_FlashHeader_t
     Структура RTT, которая будет положена в Flash. More...
    struct  HF_StackFrame_t
     
    struct  HF_StackFrame_t
     Контекст стек-фрейма процессора при HardFault. More...
     
    - - + + - + + - + + +

    +

    Macros

    #define my_printf(...)
    #define my_printf(...)   SEGGER_RTT_printf(0, __VA_ARGS__)
     Универсальный макрос для вывода трассировки
     
    #define log_printf(TAG, fmt, ...)
     Макрос логирования с поддержкой уровней LOG_LEVEL.
    #define TRACE_GPIO_SET(_gpio_, _pin_)
     
    #define TRACE_GPIO_SET(_gpio_, _pin_)   (_gpio_)->BSRR = (((_pin_)))
     Установить указанную ножку GPIO.
    #define TRACE_GPIO_RESET(_gpio_, _pin_)
     
    #define TRACE_GPIO_RESET(_gpio_, _pin_)   (_gpio_)->BSRR = ((_pin_)<<16)
     Сбросить указанную ножку GPIO.
     
    - + + + + + +

    +

    Functions

    __STATIC_FORCEINLINE void RTT_FlashPrepare (void)
     Подготовка Flash к записи
     
    __STATIC_FORCEINLINE int RTT_SaveToFlash (uint32_t tag, uint32_t tail_size)
     Сохраняет последние символы RTT-буфера в Flash по тегу
     
    __STATIC_FORCEINLINE int RTT_ReadFromFlash (uint32_t tag, char *Buffer, uint32_t tail_size, uint32_t *read_size)
     Читает последние символы RTT-буфера из Flash по тегу
     
    __STATIC_FORCEINLINE int RTT_EraseFlash (void)
     Стирание сектора Flash с RTT-буфером
     
    __STATIC_FORCEINLINE int HF_CheckRecovered (int erase)
     Проверка и вывод последнего HardFault-трейса из Flash.
     
    __STATIC_FORCEINLINE void HF_HandleFault (void)
     Обработчик HardFault.
     
    -

    Detailed Description

    +

    Detailed Description

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

    Definition in file trace.h.

    - -
    diff --git a/Doc/html/trace_8h__dep__incl.map b/Doc/html/trace_8h__dep__incl.map index 77208d6..a3f2a35 100644 --- a/Doc/html/trace_8h__dep__incl.map +++ b/Doc/html/trace_8h__dep__incl.map @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/Doc/html/trace_8h__dep__incl.md5 b/Doc/html/trace_8h__dep__incl.md5 index 92c640d..7cae4e3 100644 --- a/Doc/html/trace_8h__dep__incl.md5 +++ b/Doc/html/trace_8h__dep__incl.md5 @@ -1 +1 @@ -6db45c82fbfd5a7b1d1cecc0d0fad259 \ No newline at end of file +99f98c0a88d15e48ceee0c0796ad19d5 \ No newline at end of file diff --git a/Doc/html/trace_8h__dep__incl.png b/Doc/html/trace_8h__dep__incl.png index 085fac8..c8c439c 100644 Binary files a/Doc/html/trace_8h__dep__incl.png and b/Doc/html/trace_8h__dep__incl.png differ diff --git a/Doc/html/trace_8h__incl.map b/Doc/html/trace_8h__incl.map index ccf5247..01eafc0 100644 --- a/Doc/html/trace_8h__incl.map +++ b/Doc/html/trace_8h__incl.map @@ -1,5 +1,5 @@ - - + + diff --git a/Doc/html/trace_8h__incl.md5 b/Doc/html/trace_8h__incl.md5 index ebc32ea..7a1eeb2 100644 --- a/Doc/html/trace_8h__incl.md5 +++ b/Doc/html/trace_8h__incl.md5 @@ -1 +1 @@ -4051482c4be4cefdf69e8f83da6d912d \ No newline at end of file +3a6d24b597cc9be1714ca6f437269dfb \ No newline at end of file diff --git a/Doc/html/trace_8h__incl.png b/Doc/html/trace_8h__incl.png index 8ff10f6..bee5a08 100644 Binary files a/Doc/html/trace_8h__incl.png and b/Doc/html/trace_8h__incl.png differ diff --git a/Doc/html/trace_8h_source.html b/Doc/html/trace_8h_source.html index 668e926..d102564 100644 --- a/Doc/html/trace_8h_source.html +++ b/Doc/html/trace_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/trace.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/trace.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
    - + - +
    -
    180typedef struct {
    181 uint32_t tag; ///< Уникальный идентификатор буфера
    182 uint32_t size; ///< Размер данных
    -
    183 char data[RTT_FLASH_BUFFER_SIZE]; ///< Буфер RTT
    +
    183 char data[RTT_FLASH_BUFFER_SIZE]; ///< Буфер RTT
    185
    @@ -655,14 +663,14 @@ $(function(){initNavTree('trace_8h_source.html','',''); });
    536 );
    537
    538 my_printf("\n===== HardFault occurred! =====\n");
    -
    539 my_printf("R0 = 0x%08X\n", stack_frame->r0);
    -
    540 my_printf("R1 = 0x%08X\n", stack_frame->r1);
    -
    541 my_printf("R2 = 0x%08X\n", stack_frame->r2);
    -
    542 my_printf("R3 = 0x%08X\n", stack_frame->r3);
    -
    543 my_printf("R12 = 0x%08X\n", stack_frame->r12);
    -
    544 my_printf("LR = 0x%08X\n", stack_frame->lr);
    -
    545 my_printf("PC = 0x%08X\n", stack_frame->pc);
    -
    546 my_printf("PSR = 0x%08X\n", stack_frame->psr);
    +
    539 my_printf("R0 = 0x%08X\n", stack_frame->r0);
    +
    540 my_printf("R1 = 0x%08X\n", stack_frame->r1);
    +
    541 my_printf("R2 = 0x%08X\n", stack_frame->r2);
    +
    542 my_printf("R3 = 0x%08X\n", stack_frame->r3);
    +
    543 my_printf("R12 = 0x%08X\n", stack_frame->r12);
    +
    544 my_printf("LR = 0x%08X\n", stack_frame->lr);
    +
    545 my_printf("PC = 0x%08X\n", stack_frame->pc);
    +
    546 my_printf("PSR = 0x%08X\n", stack_frame->psr);
    547
    548 my_printf("CFSR = 0x%08X\n", SCB->CFSR);
    549 my_printf("HFSR = 0x%08X\n", SCB->HFSR);
    @@ -726,12 +734,11 @@ $(function(){initNavTree('trace_8h_source.html','',''); });
    uint32_t size
    Размер данных
    Definition trace.h:182
    - diff --git a/Doc/html/trackers_8h.html b/Doc/html/trackers_8h.html index ab445ec..84a684b 100644 --- a/Doc/html/trackers_8h.html +++ b/Doc/html/trackers_8h.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/trackers.h File Reference +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/trackers.h File Reference + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    trackers.h File Reference
    @@ -104,97 +109,111 @@ $(function(){initNavTree('trackers_8h.html','',''); });

    Заголочный файл для работы с трекерами Trackers defines. More...

    #include "mylibs_defs.h"
    -
    Include dependency graph for trackers.h:
    +
    + + Include dependency graph for trackers.h:
    -
    This graph shows which files directly or indirectly include this file:
    +
    + + This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    - - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + +

    +

    Macros

    #define TrackerTypeDef(num_user_vars)
     Структура для счетчиков отладки
    #define num_of_usercnts(_user_)
     
    #define num_of_usercnts(_user_)   (sizeof(_user_) / sizeof(uint32_t))
     Получить количетство пользовательских переменных
    #define assert_usertracker(_cntstruct_, _uservarnumb_)
     
    #define assert_usertracker(_cntstruct_, _uservarnumb_)   ((_uservarnumb_) < num_of_usercnts((_cntstruct_).user))
     Проверка существует ли указанная пользовательская переменная
    #define if_assert_usertracker(_cntstruct_, _uservarnumb_)
     
    #define if_assert_usertracker(_cntstruct_, _uservarnumb_)   if(assert_usertracker(_cntstruct_, _uservarnumb_))
     Условие для проверки существует ли указанная пользовательская переменная
    #define tern_assert_usertracker(_cntstruct_, _uservarnumb_)
     
    #define tern_assert_usertracker(_cntstruct_, _uservarnumb_)   (assert_usertracker(_cntstruct_, _uservarnumb_)) ? _uservarnumb_ : 0
     Тернарный оператор для проверки существует ли указанная пользовательская переменная
    #define TrackerGet_Ok(_cntstruct_)
     
    #define TrackerGet_Ok(_cntstruct_)   (_cntstruct_).cnt_ok
     Считать счетчик успешных событий
    #define TrackerGet_Err(_cntstruct_)
     
    #define TrackerGet_Err(_cntstruct_)   (_cntstruct_).cnt_err
     Считать счетчик ошибок
    #define TrackerGet_Warn(_cntstruct_)
     
    #define TrackerGet_Warn(_cntstruct_)   (_cntstruct_).cnt_warn
     Считать счетчик предупреждений
    #define TrackerGet_User(_cntstruct_, _uservarnumb_)
     
    #define TrackerGet_User(_cntstruct_, _uservarnumb_)   (_cntstruct_).user[tern_assert_usertracker(_cntstruct_, _uservarnumb_)]
     Считать пользовательскую переменную
    #define TrackerCnt_Ok(_cntstruct_)
     
    #define TrackerCnt_Ok(_cntstruct_)   (_cntstruct_).cnt_ok++
     Инкрементирование счетчика успешных событий
    #define TrackerCnt_Err(_cntstruct_)
     
    #define TrackerCnt_Err(_cntstruct_)   (_cntstruct_).cnt_err++
     Инкрементирование счетчика ошибок
    #define TrackerCnt_Warn(_cntstruct_)
     
    #define TrackerCnt_Warn(_cntstruct_)   (_cntstruct_).cnt_warn++
     Инкрементирование счетчика предупреждений
    #define TrackerCnt_User(_cntstruct_, _uservarnumb_)
     
    #define TrackerCnt_User(_cntstruct_, _uservarnumb_)   if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_]++;
     Инкрементирование пользовательской переменной
    #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)
     
    #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)   if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = (_val_)
     Запись числа в пользовательскую переменную
    #define TrackerClear_All(_cntstruct_)
     
    #define TrackerClear_All(_cntstruct_)   memset(&(_cntstruct_), 0, sizeof(_cntstruct_))
     Очистка всей структуры
    #define TrackerClear_Ok(_cntstruct_)
     
    #define TrackerClear_Ok(_cntstruct_)   (_cntstruct_).cnt_ok = 0
     Очистка счетчика успешных событий
    #define TrackerClear_Err(_cntstruct_)
     
    #define TrackerClear_Err(_cntstruct_)   (_cntstruct_).cnt_err = 0
     Очистка счетчика ошибок
    #define TrackerClear_Warn(_cntstruct_)
     
    #define TrackerClear_Warn(_cntstruct_)   (_cntstruct_).cnt_warn = 0
     Очистка счетчика предупреждений
    #define TrackerClear_User(_cntstruct_, _uservarnumb_)
     
    #define TrackerClear_User(_cntstruct_, _uservarnumb_)   if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = 0;
     Очистка пользовательской переменной
    #define TrackerClear_UserAll(_cntstruct_)
     
    #define TrackerClear_UserAll(_cntstruct_)   memset(&(_cntstruct_).user, 0, sizeof((_cntstruct_).user))
     Очистка всех пользовательских переменных
     
    -

    Detailed Description

    +

    Detailed Description

    Заголочный файл для работы с трекерами Trackers defines.

    Definition in file trackers.h.

    - -
    diff --git a/Doc/html/trackers_8h__dep__incl.map b/Doc/html/trackers_8h__dep__incl.map index 1b0fa3d..2d500d0 100644 --- a/Doc/html/trackers_8h__dep__incl.map +++ b/Doc/html/trackers_8h__dep__incl.map @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/Doc/html/trackers_8h__dep__incl.md5 b/Doc/html/trackers_8h__dep__incl.md5 index 90e66c4..f1a498d 100644 --- a/Doc/html/trackers_8h__dep__incl.md5 +++ b/Doc/html/trackers_8h__dep__incl.md5 @@ -1 +1 @@ -0e606a2ac14f204c2f3eb519136b3d25 \ No newline at end of file +33dbfd4ef039421a18fe436f2a444bd1 \ No newline at end of file diff --git a/Doc/html/trackers_8h__dep__incl.png b/Doc/html/trackers_8h__dep__incl.png index 3db1a10..5a4f162 100644 Binary files a/Doc/html/trackers_8h__dep__incl.png and b/Doc/html/trackers_8h__dep__incl.png differ diff --git a/Doc/html/trackers_8h__incl.map b/Doc/html/trackers_8h__incl.map index 3e6b58f..3efb504 100644 --- a/Doc/html/trackers_8h__incl.map +++ b/Doc/html/trackers_8h__incl.map @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/Doc/html/trackers_8h__incl.md5 b/Doc/html/trackers_8h__incl.md5 index b38f593..72c1e03 100644 --- a/Doc/html/trackers_8h__incl.md5 +++ b/Doc/html/trackers_8h__incl.md5 @@ -1 +1 @@ -efe05b63911c6edeb90de988b14c85fc \ No newline at end of file +727bb8e299b6891ca417cde17bb1a2f9 \ No newline at end of file diff --git a/Doc/html/trackers_8h__incl.png b/Doc/html/trackers_8h__incl.png index c95cf1a..a6d1423 100644 Binary files a/Doc/html/trackers_8h__incl.png and b/Doc/html/trackers_8h__incl.png differ diff --git a/Doc/html/trackers_8h_source.html b/Doc/html/trackers_8h_source.html index f618be6..f8587f1 100644 --- a/Doc/html/trackers_8h_source.html +++ b/Doc/html/trackers_8h_source.html @@ -3,14 +3,15 @@ - + -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/trackers.h Source File +MyLibs: F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/trackers.h Source File + @@ -43,22 +44,28 @@ MathJax.Hub.Config({
    - + - +
    -
    Заголочный файл для дефайнов библиотеки MyLibsGeneral.
    - diff --git a/Doc/html/unionuint16___bit_type_def-members.html b/Doc/html/unionuint16___bit_type_def-members.html index 50f13d1..3bae288 100644 --- a/Doc/html/unionuint16___bit_type_def-members.html +++ b/Doc/html/unionuint16___bit_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - diff --git a/Doc/html/unionuint16___bit_type_def.html b/Doc/html/unionuint16___bit_type_def.html index a6cc4cb..e290dc4 100644 --- a/Doc/html/unionuint16___bit_type_def.html +++ b/Doc/html/unionuint16___bit_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: uint16_BitTypeDef Union Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    uint16_BitTypeDef Union Reference
    - - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +

    Public Attributes

    uint16_t all
    +
     
    struct { 
       unsigned   bit0:1 
       unsigned   bit1:1 
       unsigned   bit2:1 
       unsigned   bit3:1 
       unsigned   bit4:1 
       unsigned   bit5:1 
       unsigned   bit6:1 
       unsigned   bit7:1 
       unsigned   bit8:1 
       unsigned   bit9:1 
       unsigned   bit10:1 
       unsigned   bit11:1 
       unsigned   bit12:1 
       unsigned   bit13:1 
       unsigned   bit14:1 
       unsigned   bit15:1 
    bit
     
       unsigned   bit0:1 
     
       unsigned   bit1:1 
     
       unsigned   bit2:1 
     
       unsigned   bit3:1 
     
       unsigned   bit4:1 
     
       unsigned   bit5:1 
     
       unsigned   bit6:1 
     
       unsigned   bit7:1 
     
       unsigned   bit8:1 
     
       unsigned   bit9:1 
     
       unsigned   bit10:1 
     
       unsigned   bit11:1 
     
       unsigned   bit12:1 
     
       unsigned   bit13:1 
     
       unsigned   bit14:1 
     
       unsigned   bit15:1 
     
    bit 
     
    -

    Detailed Description

    +

    Detailed Description

    Definition at line 55 of file bit_access.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ all

    @@ -401,23 +426,15 @@ struct { 

    The documentation for this union was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h
    - - diff --git a/Doc/html/unionuint32___bit_type_def-members.html b/Doc/html/unionuint32___bit_type_def-members.html index e728915..1ebc9db 100644 --- a/Doc/html/unionuint32___bit_type_def-members.html +++ b/Doc/html/unionuint32___bit_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - diff --git a/Doc/html/unionuint32___bit_type_def.html b/Doc/html/unionuint32___bit_type_def.html index 05761c6..fbb4745 100644 --- a/Doc/html/unionuint32___bit_type_def.html +++ b/Doc/html/unionuint32___bit_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: uint32_BitTypeDef Union Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    uint32_BitTypeDef Union Reference
    - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +

    Public Attributes

    uint32_t all
    +
     
    struct { 
       unsigned   bit0:1 
       unsigned   bit1:1 
       unsigned   bit2:1 
       unsigned   bit3:1 
       unsigned   bit4:1 
       unsigned   bit5:1 
       unsigned   bit6:1 
       unsigned   bit7:1 
       unsigned   bit8:1 
       unsigned   bit9:1 
       unsigned   bit10:1 
       unsigned   bit11:1 
       unsigned   bit12:1 
       unsigned   bit13:1 
       unsigned   bit14:1 
       unsigned   bit15:1 
       unsigned   bit16:1 
       unsigned   bit17:1 
       unsigned   bit18:1 
       unsigned   bit19:1 
       unsigned   bit20:1 
       unsigned   bit21:1 
       unsigned   bit22:1 
       unsigned   bit23:1 
       unsigned   bit24:1 
       unsigned   bit25:1 
       unsigned   bit26:1 
       unsigned   bit27:1 
       unsigned   bit28:1 
       unsigned   bit29:1 
       unsigned   bit30:1 
       unsigned   bit31:1 
    bit
     
       unsigned   bit0:1 
     
       unsigned   bit1:1 
     
       unsigned   bit2:1 
     
       unsigned   bit3:1 
     
       unsigned   bit4:1 
     
       unsigned   bit5:1 
     
       unsigned   bit6:1 
     
       unsigned   bit7:1 
     
       unsigned   bit8:1 
     
       unsigned   bit9:1 
     
       unsigned   bit10:1 
     
       unsigned   bit11:1 
     
       unsigned   bit12:1 
     
       unsigned   bit13:1 
     
       unsigned   bit14:1 
     
       unsigned   bit15:1 
     
       unsigned   bit16:1 
     
       unsigned   bit17:1 
     
       unsigned   bit18:1 
     
       unsigned   bit19:1 
     
       unsigned   bit20:1 
     
       unsigned   bit21:1 
     
       unsigned   bit22:1 
     
       unsigned   bit23:1 
     
       unsigned   bit24:1 
     
       unsigned   bit25:1 
     
       unsigned   bit26:1 
     
       unsigned   bit27:1 
     
       unsigned   bit28:1 
     
       unsigned   bit29:1 
     
       unsigned   bit30:1 
     
       unsigned   bit31:1 
     
    bit 
     
    -

    Detailed Description

    +

    Detailed Description

    Definition at line 80 of file bit_access.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ all

    @@ -673,23 +714,15 @@ struct { 

    The documentation for this union was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h
    - - diff --git a/Doc/html/unionuint64___bit_type_def-members.html b/Doc/html/unionuint64___bit_type_def-members.html index aa8f0ea..39f8418 100644 --- a/Doc/html/unionuint64___bit_type_def-members.html +++ b/Doc/html/unionuint64___bit_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - diff --git a/Doc/html/unionuint64___bit_type_def.html b/Doc/html/unionuint64___bit_type_def.html index d9aa7f7..7f31bd5 100644 --- a/Doc/html/unionuint64___bit_type_def.html +++ b/Doc/html/unionuint64___bit_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: uint64_BitTypeDef Union Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    uint64_BitTypeDef Union Reference
    - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +

    Public Attributes

    uint64_t all
    +
     
    struct { 
       unsigned   bit0:1 
       unsigned   bit1:1 
       unsigned   bit2:1 
       unsigned   bit3:1 
       unsigned   bit4:1 
       unsigned   bit5:1 
       unsigned   bit6:1 
       unsigned   bit7:1 
       unsigned   bit8:1 
       unsigned   bit9:1 
       unsigned   bit10:1 
       unsigned   bit11:1 
       unsigned   bit12:1 
       unsigned   bit13:1 
       unsigned   bit14:1 
       unsigned   bit15:1 
       unsigned   bit16:1 
       unsigned   bit17:1 
       unsigned   bit18:1 
       unsigned   bit19:1 
       unsigned   bit20:1 
       unsigned   bit21:1 
       unsigned   bit22:1 
       unsigned   bit23:1 
       unsigned   bit24:1 
       unsigned   bit25:1 
       unsigned   bit26:1 
       unsigned   bit27:1 
       unsigned   bit28:1 
       unsigned   bit29:1 
       unsigned   bit30:1 
       unsigned   bit31:1 
       unsigned   bit32:1 
       unsigned   bit33:1 
       unsigned   bit34:1 
       unsigned   bit35:1 
       unsigned   bit36:1 
       unsigned   bit37:1 
       unsigned   bit38:1 
       unsigned   bit39:1 
       unsigned   bit40:1 
       unsigned   bit41:1 
       unsigned   bit42:1 
       unsigned   bit43:1 
       unsigned   bit44:1 
       unsigned   bit45:1 
       unsigned   bit46:1 
       unsigned   bit47:1 
       unsigned   bit48:1 
       unsigned   bit49:1 
       unsigned   bit50:1 
       unsigned   bit51:1 
       unsigned   bit52:1 
       unsigned   bit53:1 
       unsigned   bit54:1 
       unsigned   bit55:1 
       unsigned   bit56:1 
       unsigned   bit57:1 
       unsigned   bit58:1 
       unsigned   bit59:1 
       unsigned   bit60:1 
       unsigned   bit61:1 
       unsigned   bit62:1 
       unsigned   bit63:1 
    bit
     
       unsigned   bit0:1 
     
       unsigned   bit1:1 
     
       unsigned   bit2:1 
     
       unsigned   bit3:1 
     
       unsigned   bit4:1 
     
       unsigned   bit5:1 
     
       unsigned   bit6:1 
     
       unsigned   bit7:1 
     
       unsigned   bit8:1 
     
       unsigned   bit9:1 
     
       unsigned   bit10:1 
     
       unsigned   bit11:1 
     
       unsigned   bit12:1 
     
       unsigned   bit13:1 
     
       unsigned   bit14:1 
     
       unsigned   bit15:1 
     
       unsigned   bit16:1 
     
       unsigned   bit17:1 
     
       unsigned   bit18:1 
     
       unsigned   bit19:1 
     
       unsigned   bit20:1 
     
       unsigned   bit21:1 
     
       unsigned   bit22:1 
     
       unsigned   bit23:1 
     
       unsigned   bit24:1 
     
       unsigned   bit25:1 
     
       unsigned   bit26:1 
     
       unsigned   bit27:1 
     
       unsigned   bit28:1 
     
       unsigned   bit29:1 
     
       unsigned   bit30:1 
     
       unsigned   bit31:1 
     
       unsigned   bit32:1 
     
       unsigned   bit33:1 
     
       unsigned   bit34:1 
     
       unsigned   bit35:1 
     
       unsigned   bit36:1 
     
       unsigned   bit37:1 
     
       unsigned   bit38:1 
     
       unsigned   bit39:1 
     
       unsigned   bit40:1 
     
       unsigned   bit41:1 
     
       unsigned   bit42:1 
     
       unsigned   bit43:1 
     
       unsigned   bit44:1 
     
       unsigned   bit45:1 
     
       unsigned   bit46:1 
     
       unsigned   bit47:1 
     
       unsigned   bit48:1 
     
       unsigned   bit49:1 
     
       unsigned   bit50:1 
     
       unsigned   bit51:1 
     
       unsigned   bit52:1 
     
       unsigned   bit53:1 
     
       unsigned   bit54:1 
     
       unsigned   bit55:1 
     
       unsigned   bit56:1 
     
       unsigned   bit57:1 
     
       unsigned   bit58:1 
     
       unsigned   bit59:1 
     
       unsigned   bit60:1 
     
       unsigned   bit61:1 
     
       unsigned   bit62:1 
     
       unsigned   bit63:1 
     
    bit 
     
    -

    Detailed Description

    +

    Detailed Description

    Definition at line 97 of file bit_access.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ all

    @@ -1217,23 +1290,15 @@ struct { 

    The documentation for this union was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h
    - - diff --git a/Doc/html/unionuint8___bit_type_def-members.html b/Doc/html/unionuint8___bit_type_def-members.html index d5c72bf..4e59f97 100644 --- a/Doc/html/unionuint8___bit_type_def-members.html +++ b/Doc/html/unionuint8___bit_type_def-members.html @@ -3,7 +3,7 @@ - + MyLibs: Member List @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { - diff --git a/Doc/html/unionuint8___bit_type_def.html b/Doc/html/unionuint8___bit_type_def.html index 53a402f..5f54a9c 100644 --- a/Doc/html/unionuint8___bit_type_def.html +++ b/Doc/html/unionuint8___bit_type_def.html @@ -3,7 +3,7 @@ - + MyLibs: uint8_BitTypeDef Union Reference @@ -11,6 +11,7 @@ + @@ -43,20 +44,21 @@ MathJax.Hub.Config({ - + - @@ -71,9 +73,10 @@ $(function() { -
    +
    uint8_BitTypeDef Union Reference
    - - + - - - - - - - - - + + + + + + + + + + + + + + + + + + +

    +

    Public Attributes

    uint8_t all
    +
     
    struct { 
       unsigned   bit0:1 
       unsigned   bit1:1 
       unsigned   bit2:1 
       unsigned   bit3:1 
       unsigned   bit4:1 
       unsigned   bit5:1 
       unsigned   bit6:1 
       unsigned   bit7:1 
    bit
     
       unsigned   bit0:1 
     
       unsigned   bit1:1 
     
       unsigned   bit2:1 
     
       unsigned   bit3:1 
     
       unsigned   bit4:1 
     
       unsigned   bit5:1 
     
       unsigned   bit6:1 
     
       unsigned   bit7:1 
     
    bit 
     
    -

    Detailed Description

    +

    Detailed Description

    Definition at line 39 of file bit_access.h.

    -

    Member Data Documentation

    +

    Member Data Documentation

    ◆ all

    @@ -265,23 +282,15 @@ struct { 

    The documentation for this union was generated from the following file:
      -
    • E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h
    • +
    • F:/Work/Projects/STM/.Elementary/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h
    - - diff --git a/Doc/latex/Makefile b/Doc/latex/Makefile index 8e14614..7f82972 100644 --- a/Doc/latex/Makefile +++ b/Doc/latex/Makefile @@ -9,34 +9,19 @@ all: $(MANUAL_FILE).pdf pdf: $(MANUAL_FILE).pdf $(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex - $(LATEX_CMD) $(MANUAL_FILE) || \ - if [ $$? != 0 ] ; then \ - \echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \ - false; \ - fi + $(LATEX_CMD) $(MANUAL_FILE) $(MKIDX_CMD) $(MANUAL_FILE).idx - $(LATEX_CMD) $(MANUAL_FILE) || \ - if [ $$? != 0 ] ; then \ - \echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \ - false; \ - fi + $(LATEX_CMD) $(MANUAL_FILE) latex_count=$(LATEX_COUNT) ; \ while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\ do \ echo "Rerunning latex...." ;\ - $(LATEX_CMD) $(MANUAL_FILE) || \ - if [ $$? != 0 ] ; then \ - \echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \ - false; \ - fi; \ + $(LATEX_CMD) $(MANUAL_FILE) ;\ latex_count=`expr $$latex_count - 1` ;\ done $(MKIDX_CMD) $(MANUAL_FILE).idx - $(LATEX_CMD) $(MANUAL_FILE) || \ - if [ $$? != 0 ] ; then \ - \echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \ - false; \ - fi + $(LATEX_CMD) $(MANUAL_FILE) + clean: rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf diff --git a/Doc/latex/____general__flash_8c_source.tex b/Doc/latex/____general__flash_8c_source.tex index 7aa9eb2..b82fafe 100644 --- a/Doc/latex/____general__flash_8c_source.tex +++ b/Doc/latex/____general__flash_8c_source.tex @@ -1,5 +1,5 @@ \doxysection{\+\_\+\+\_\+general\+\_\+flash.\+c} -\hypertarget{____general__flash_8c_source}{}\label{____general__flash_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_flash.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_flash.c}} +\hypertarget{____general__flash_8c_source}{}\label{____general__flash_8c_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_flash.c@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_flash.c}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{____general__flash_8c_source_l00001}00001\ \textcolor{preprocessor}{\#include\ "{}general\_flash.h"{}}} diff --git a/Doc/latex/____general__flash_8h_source.tex b/Doc/latex/____general__flash_8h_source.tex index 2922838..788727d 100644 --- a/Doc/latex/____general__flash_8h_source.tex +++ b/Doc/latex/____general__flash_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{\+\_\+\+\_\+general\+\_\+flash.\+h} -\hypertarget{____general__flash_8h_source}{}\label{____general__flash_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_flash.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_flash.h}} +\hypertarget{____general__flash_8h_source}{}\label{____general__flash_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_flash.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_flash.h}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00001}00001\ \textcolor{comment}{/**************************************************************************}} @@ -11,28 +11,28 @@ \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00007}00007\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00008}00008\ \textcolor{comment}{//////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00009}00009\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00010}00010\ } +\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00010}00010\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00011}00011\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00012}00012\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00013}00013\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}} +\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00013}00013\ \textcolor{comment}{}\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00014}00014\ } \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00015}00015\ } \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00016}00016\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00017}00017\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00018}00018\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00019}00019\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00019}00019\ \textcolor{comment}{}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00020}00020\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00021}00021\ } +\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00021}00021\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00022}00022\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00023}00023\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00024}00024\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00025}00025\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00025}00025\ \textcolor{comment}{}\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00026}00026\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00027}00027\ } +\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00027}00027\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00028}00028\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00029}00029\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00030}00030\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00031}00031\ } +\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00031}00031\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00032}00032\ HAL\_StatusTypeDef\ FLASH\_Enable\_DualBankMode(\textcolor{keywordtype}{void});} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00033}00033\ HAL\_StatusTypeDef\ FLASH\_WriteProtection(uint32\_t\ BankN,\ uint32\_t\ WriteProtection);} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00034}00034\ \textcolor{comment}{/*\ functions\ for\ reading\ bytes/halswords/words\ */}} @@ -44,7 +44,7 @@ \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00040}00040\ HAL\_StatusTypeDef\ FLASH\_Write\_HalfWord(uint32\_t\ Address,\ uint16\_t\ Data);} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00041}00041\ HAL\_StatusTypeDef\ FLASH\_Write\_Word(uint32\_t\ Address,\ uint32\_t\ Data);\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00042}00042\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00043}00043\ } +\DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00043}00043\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__flash_8h_source_l00044}00044\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_FLASH\_GENERAL\_H\_}} \end{DoxyCode} diff --git a/Doc/latex/____general__spi_8c_source.tex b/Doc/latex/____general__spi_8c_source.tex index b6fb659..04c94c0 100644 --- a/Doc/latex/____general__spi_8c_source.tex +++ b/Doc/latex/____general__spi_8c_source.tex @@ -1,5 +1,5 @@ \doxysection{\+\_\+\+\_\+general\+\_\+spi.\+c} -\hypertarget{____general__spi_8c_source}{}\label{____general__spi_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_spi.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_spi.c}} +\hypertarget{____general__spi_8c_source}{}\label{____general__spi_8c_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_spi.c@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_spi.c}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{____general__spi_8c_source_l00001}00001\ \textcolor{comment}{/**\ }} diff --git a/Doc/latex/____general__spi_8h_source.tex b/Doc/latex/____general__spi_8h_source.tex index eaad08f..5c91bf4 100644 --- a/Doc/latex/____general__spi_8h_source.tex +++ b/Doc/latex/____general__spi_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{\+\_\+\+\_\+general\+\_\+spi.\+h} -\hypertarget{____general__spi_8h_source}{}\label{____general__spi_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_spi.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_spi.h}} +\hypertarget{____general__spi_8h_source}{}\label{____general__spi_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_spi.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_spi.h}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} @@ -12,7 +12,7 @@ \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00008}00008\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00009}00009\ \textcolor{comment}{//////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00010}00010\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00011}00011\ \textcolor{preprocessor}{\#define\ HAL\_SPI\_MODULE\_ENABLED\ \ }\textcolor{comment}{//\ need\ to\ uncomment\ these\ defines\ in\ stm32f4xx\_hal\_conf.h}} +\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00011}00011\ \textcolor{comment}{}\textcolor{preprocessor}{\#define\ HAL\_SPI\_MODULE\_ENABLED\ \ }\textcolor{comment}{//\ need\ to\ uncomment\ these\ defines\ in\ stm32f4xx\_hal\_conf.h}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00012}00012\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ also\ need\ to\ add\ hal\_spi.c\ (source\ code)}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00013}00013\ } \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00014}00014\ \textcolor{preprocessor}{\#define\ USE\_SPI1}} @@ -20,21 +20,21 @@ \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00016}00016\ \textcolor{preprocessor}{\#define\ USE\_SPI3}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00017}00017\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00018}00018\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00019}00019\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}} +\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00019}00019\ \textcolor{comment}{}\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00020}00020\ } \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00021}00021\ } \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00022}00022\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00023}00023\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00024}00024\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00025}00025\ } +\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00025}00025\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00026}00026\ } \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00027}00027\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00028}00028\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00029}00029\ } +\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00029}00029\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00030}00030\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00031}00031\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00032}00032\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00033}\mbox{\hyperlink{struct_s_p_i___settings_type_def}{00033}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//\ struct\ with\ settings\ for\ custom\ function}} +\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00033}\mbox{\hyperlink{struct_s_p_i___settings_type_def}{00033}}\ \textcolor{comment}{}\textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//\ struct\ with\ settings\ for\ custom\ function}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00034}00034\ \{} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00035}00035\ \ \ SPI\_HandleTypeDef\ hspi;} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00036}00036\ \ \ } @@ -52,11 +52,11 @@ \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00048}00048\ \ \ } \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00049}00049\ \}\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\_SettingsTypeDef}};\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00050}00050\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00051}00051\ } +\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00051}00051\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00052}00052\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00053}00053\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00054}00054\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00055}00055\ \textcolor{comment}{/**\ \ }} +\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00055}00055\ \textcolor{comment}{}\textcolor{comment}{/**\ \ }} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00056}00056\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ SPI\ with\ SPI\_SettingsTypeDef\ structure.}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00057}00057\ \textcolor{comment}{\ \ *\ @param\ \ sspi\ -\/\ указатель\ на\ структуру\ с\ настройками\ SPI.}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00058}00058\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}} @@ -100,7 +100,7 @@ \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00096}00096\ \textcolor{comment}{\ \ */}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00097}00097\ HAL\_StatusTypeDef\ Check\_SPI\_Init\_Struct(\mbox{\hyperlink{struct_s_p_i___settings_type_def}{SPI\_SettingsTypeDef}}\ *sspi);\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00098}00098\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00099}00099\ } +\DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00099}00099\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__spi_8h_source_l00100}00100\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_SPI\_GENERAL\_H\_}} \end{DoxyCode} diff --git a/Doc/latex/____general__uart_8c_source.tex b/Doc/latex/____general__uart_8c_source.tex index c4a0d97..fc097fa 100644 --- a/Doc/latex/____general__uart_8c_source.tex +++ b/Doc/latex/____general__uart_8c_source.tex @@ -1,5 +1,5 @@ \doxysection{\+\_\+\+\_\+general\+\_\+uart.\+c} -\hypertarget{____general__uart_8c_source}{}\label{____general__uart_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_uart.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_uart.c}} +\hypertarget{____general__uart_8c_source}{}\label{____general__uart_8c_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_uart.c@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/\_\_general\_uart.c}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{____general__uart_8c_source_l00001}00001\ \textcolor{comment}{/**\ }} diff --git a/Doc/latex/____general__uart_8h_source.tex b/Doc/latex/____general__uart_8h_source.tex index 2605576..e60c22a 100644 --- a/Doc/latex/____general__uart_8h_source.tex +++ b/Doc/latex/____general__uart_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{\+\_\+\+\_\+general\+\_\+uart.\+h} -\hypertarget{____general__uart_8h_source}{}\label{____general__uart_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_uart.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_uart.h}} +\hypertarget{____general__uart_8h_source}{}\label{____general__uart_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_uart.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/\_\_general\_uart.h}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} @@ -12,7 +12,7 @@ \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00008}00008\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00009}00009\ \textcolor{comment}{//////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00010}00010\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00011}00011\ \textcolor{preprocessor}{\#define\ HAL\_UART\_MODULE\_ENABLED\ \ \ }\textcolor{comment}{//\ need\ to\ uncomment\ these\ defines\ in\ stm32f4xx\_hal\_conf.h}} +\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00011}00011\ \textcolor{comment}{}\textcolor{preprocessor}{\#define\ HAL\_UART\_MODULE\_ENABLED\ \ \ }\textcolor{comment}{//\ need\ to\ uncomment\ these\ defines\ in\ stm32f4xx\_hal\_conf.h}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00012}00012\ \textcolor{comment}{//\#define\ HAL\_USART\_MODULE\_ENABLED\ \ //\ maybe\ also\ need\ to\ add\ hal\_uart.h/.c\ (source\ code)}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00013}00013\ } \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00014}00014\ \textcolor{comment}{//\#define\ USE\_USART1}} @@ -24,13 +24,13 @@ \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00020}00020\ \textcolor{comment}{/*\ note:\ used\ uart\ defines\ in\ modbus.h\ */}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00021}00021\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00022}00022\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00023}00023\ \textcolor{preprocessor}{\#include\ "{}interface\_config.h"{}}\ \textcolor{comment}{/*\ used\ uart\ defines\ in\ modbus.h\ */}} +\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00023}00023\ \textcolor{comment}{}\textcolor{preprocessor}{\#include\ "{}interface\_config.h"{}}\ \textcolor{comment}{/*\ used\ uart\ defines\ in\ modbus.h\ */}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00024}00024\ } \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00025}00025\ } \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00026}00026\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00027}00027\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00028}00028\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00029}00029\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}\textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00029}00029\ \textcolor{comment}{}\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00030}00030\ \textcolor{comment}{/**\ \ }} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00031}00031\ \textcolor{comment}{\ \ *\ @brief\ \ Analog\ for\ HAL\ define.\ Remade\ with\ pointer\ to\ structure.}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00032}00032\ \textcolor{comment}{\ \ *\ @note\ \ \ @ref\ \_\_HAL\_LINKDMA.}} @@ -42,11 +42,11 @@ \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00038}00038\ } \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00039}00039\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00040}00040\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00041}00041\ } +\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00041}00041\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00042}00042\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00043}00043\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00044}00044\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00045}\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{00045}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//\ struct\ with\ settings\ for\ custom\ function}} +\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00045}\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{00045}}\ \textcolor{comment}{}\textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\textcolor{comment}{//\ struct\ with\ settings\ for\ custom\ function}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00046}00046\ \{} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00047}00047\ \ \ UART\_HandleTypeDef\ huart;} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00048}00048\ \ \ } @@ -60,11 +60,11 @@ \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00056}00056\ \ \ } \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00057}00057\ \}\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{UART\_SettingsTypeDef}};\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00058}00058\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00059}00059\ } +\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00059}00059\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00060}00060\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00061}00061\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00062}00062\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00063}00063\ \textcolor{comment}{/**\ \ }} +\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00063}00063\ \textcolor{comment}{}\textcolor{comment}{/**\ \ }} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00064}00064\ \textcolor{comment}{\ \ *\ @brief\ \ Initialize\ UART\ with\ UART\_SettingsTypeDef\ structure.}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00065}00065\ \textcolor{comment}{\ \ *\ @param\ \ suart\ -\/\ указатель\ на\ структуру\ с\ настройками\ UART.}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00066}00066\ \textcolor{comment}{\ \ *\ @return\ HAL\ status.}} @@ -108,7 +108,7 @@ \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00104}00104\ \textcolor{comment}{\ \ */}\ } \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00105}00105\ HAL\_StatusTypeDef\ Check\_UART\_Init\_Struct(\mbox{\hyperlink{struct_u_a_r_t___settings_type_def}{UART\_SettingsTypeDef}}\ *suart);\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00106}00106\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00107}00107\ } +\DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00107}00107\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{____general__uart_8h_source_l00108}00108\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_UART\_GENERAL\_H\_}} \end{DoxyCode} diff --git a/Doc/latex/bit__access_8h.tex b/Doc/latex/bit__access_8h.tex index 31e7227..03df7db 100644 --- a/Doc/latex/bit__access_8h.tex +++ b/Doc/latex/bit__access_8h.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/bit\+\_\+access.h File Reference} -\hypertarget{bit__access_8h}{}\label{bit__access_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/bit\+\_\+access.h File Reference} +\hypertarget{bit__access_8h}{}\label{bit__access_8h}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h}} Заголочный файл для дефайнов битового доступа. @@ -10,14 +10,14 @@ Include dependency graph for bit\+\_\+access.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{bit__access_8h__incl} +\includegraphics[width=233pt]{bit__access_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]{bit__access_8h__dep__incl} +\includegraphics[width=233pt]{bit__access_8h__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} @@ -34,13 +34,13 @@ union \mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def} \doxysubsubsection*{Macros} \begin{DoxyCompactItemize} \item -\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+) +\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+ \begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint8\+\_\+t. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{uint16\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+) +\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{uint16\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+ \begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint16\+\_\+t. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{uint32\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+) +\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{uint32\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+ \begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint32\+\_\+t. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{uint64\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+) +\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{uint64\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+ \begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint64\+\_\+t. \end{DoxyCompactList}\end{DoxyCompactItemize} diff --git a/Doc/latex/bit__access_8h__dep__incl.md5 b/Doc/latex/bit__access_8h__dep__incl.md5 index d668a32..9c52014 100644 --- a/Doc/latex/bit__access_8h__dep__incl.md5 +++ b/Doc/latex/bit__access_8h__dep__incl.md5 @@ -1 +1 @@ -a0db7c46e6c8e84aaed5bb4becf5bf9c \ No newline at end of file +f100d5df8d78acb2e79ae9c3faf7fd33 \ No newline at end of file diff --git a/Doc/latex/bit__access_8h__dep__incl.pdf b/Doc/latex/bit__access_8h__dep__incl.pdf index 3d0eaaf..43600f6 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.md5 b/Doc/latex/bit__access_8h__incl.md5 index 8982918..cb6e7b6 100644 --- a/Doc/latex/bit__access_8h__incl.md5 +++ b/Doc/latex/bit__access_8h__incl.md5 @@ -1 +1 @@ -04aae01d1a86d60c14b0ea57bbf11647 \ No newline at end of file +201ec235709cefdcc9370ba71d46f128 \ No newline at end of file diff --git a/Doc/latex/bit__access_8h__incl.pdf b/Doc/latex/bit__access_8h__incl.pdf index f48791a..4f94bcf 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/bit__access_8h_source.tex b/Doc/latex/bit__access_8h_source.tex index f5e2fec..53b023f 100644 --- a/Doc/latex/bit__access_8h_source.tex +++ b/Doc/latex/bit__access_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{bit\+\_\+access.\+h} -\hypertarget{bit__access_8h_source}{}\label{bit__access_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h}} +\hypertarget{bit__access_8h_source}{}\label{bit__access_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/bit\_access.h}} \mbox{\hyperlink{bit__access_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{bit__access_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} diff --git a/Doc/latex/doxygen.sty b/Doc/latex/doxygen.sty index 6d8fc7b..4bfc17f 100644 --- a/Doc/latex/doxygen.sty +++ b/Doc/latex/doxygen.sty @@ -122,7 +122,6 @@ % Used by @code ... @endcode \newenvironment{DoxyCode}[1]{% \par% - \vspace{2pt}% \scriptsize% \normalfont\ttfamily% \rightskip0pt plus 1fil% @@ -130,14 +129,14 @@ \settowidth{\CodeWidthChar}{?}% \settoheight{\CodeHeightChar}{?}% \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{\equal{#1}{0}}% - {% + \ifthenelse{\equal{#1}{0}} + { {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% - }% - {% + } + { {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% - }% - \vspace{2pt}% + } + }{% \normalfont% \normalsize% @@ -200,10 +199,6 @@ \setlist[DoxyItemize,3]{label=\textasteriskcentered} \setlist[DoxyItemize,4]{label=\textperiodcentered} -% Used for check boxes -\newcommand{\DoxyUnchecked}{$\square$} -\newcommand{\DoxyChecked}{\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\tiny \checkmark}}$\square$} - % Used by description lists (using
    ...
    ) \newenvironment{DoxyDescription}{% \description% @@ -241,13 +236,6 @@ \end{DoxyDesc}% } -% Used by @important -\newenvironment{DoxyImportant}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - % Used by @author and @authors \newenvironment{DoxyAuthor}[1]{% \begin{DoxyDesc}{#1}% @@ -384,16 +372,14 @@ } % Used for fields simple class style enums -\newenvironment{DoxyEnumFields}[2][]{% +\newenvironment{DoxyEnumFields}[1]{% \tabulinesep=1mm% \par% - \ifthenelse{\equal{#1}{2}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,r]|X[-1,l]|}}% with init value - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% \hline% \endhead% }{% @@ -403,7 +389,7 @@ % Used for parameters within a detailed function description \newenvironment{DoxyParamCaption}{% - \renewcommand{\item}[3][]{\\ \hspace*{2.0cm} ##1 {\em ##2}##3}% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% }{% } @@ -542,37 +528,6 @@ \mbox{\hyperlink{#1}{#2}}% } -% Used for the cite command -\newcommand{\DoxyCite}[3]{% - \ifthenelse{#3=1}% 1 with square parenthesis - { - \ifthenelse{\equal{#2}{number}}% - { \cite{#1} }% - {% - \ifthenelse{\equal{#2}{shortauthor}}% - { \citetext{\citeauthor{#1}} }% - {% - \ifthenelse{\equal{#2}{year}}% - { \citeyearpar{#1} }% - {}% - }% - }% - }% - {% - \ifthenelse{\equal{#2}{number}}% - { \citealp{#1} }% - {% - \ifthenelse{\equal{#2}{shortauthor}}% - { \citeauthor{#1} }% - {% - \ifthenelse{\equal{#2}{year}}% - { \citeyear{#1} }% - {}% - }% - }% - }% -} - % Used when hyperlinks are turned on % Third argument is the SectionType, see the doxygen internal % documentation for the values (relevant: Page ... Subsubsection). @@ -684,12 +639,12 @@ {1.5ex \@plus .2ex}% {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\l@subsubsubsection{\@dottedtocline{4}{10.0em}{7.8em}} -\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{13.0em}{9.4em}} -\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{15.0em}{11em}} -\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{18.0em}{12.6em}} -\renewcommand\l@paragraph{\@dottedtocline{8}{21.0em}{14.2em}} -\renewcommand\l@subparagraph{\@dottedtocline{9}{24.0em}{15.8em}} +\newcommand\l@subsubsubsection{\@dottedtocline{4}{6.1em}{7.8em}} +\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{6.1em}{9.4em}} +\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{6.1em}{11em}} +\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{6.1em}{12.6em}} +\renewcommand\l@paragraph{\@dottedtocline{8}{6.1em}{14.2em}} +\renewcommand\l@subparagraph{\@dottedtocline{9}{6.1em}{15.8em}} \makeatother % the sectsty doesn't look to be maintained but gives, in our case, some warning like: % LaTeX Warning: Command \underline has changed. @@ -722,16 +677,10 @@ \doxysubparagraphfont{#1}% \doxyminisecfont{#1}}% % Define caption that is also suitable in a table -% for usage with hyperlinks \makeatletter \def\doxyfigcaption{% \H@refstepcounter{figure}% \@dblarg{\@caption{figure}}} - -% for usage without hyperlinks -\def\doxyfigcaptionnolink{% -\refstepcounter{figure}% -\@dblarg{\@caption{figure}}} \makeatother % Define alpha enumarative names for counters > 26 diff --git a/Doc/latex/evolve__optimizer_8h.tex b/Doc/latex/evolve__optimizer_8h.tex index 3e7ba54..eca0dbc 100644 --- a/Doc/latex/evolve__optimizer_8h.tex +++ b/Doc/latex/evolve__optimizer_8h.tex @@ -1,5 +1,5 @@ -\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}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/evolve\+\_\+optimizer.h File Reference} +\hypertarget{evolve__optimizer_8h}{}\label{evolve__optimizer_8h}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/evolve\_optimizer.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/evolve\_optimizer.h}} Заголовочный файл для адаптивного подбора параметров @@ -19,7 +19,7 @@ This graph shows which files directly or indirectly include this file\+:\nopageb \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{evolve__optimizer_8h__dep__incl} +\includegraphics[width=233pt]{evolve__optimizer_8h__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} @@ -30,18 +30,24 @@ struct \mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \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}\item -\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time}}() -\begin{DoxyCompactList}\small\item\em Локальное время \end{DoxyCompactList}\end{DoxyCompactItemize} +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}{PARAM\+\_\+\+SCALE}}(x, min\+\_\+val, max\+\_\+val)~(((float)(x) -\/ (float)(min\+\_\+val)) / ((float)(max\+\_\+val) -\/ (float)(min\+\_\+val))) +\begin{DoxyCompactList}\small\item\em Линейное масштабирование x из диапазона \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]} в диапазон \mbox{[}0, 1) \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}{PARAM\+\_\+\+UNSCALE}}(val, min\+\_\+val, max\+\_\+val)~(((float)(val)) \texorpdfstring{$\ast$}{*} ((float)(max\+\_\+val) -\/ (float)(min\+\_\+val)) + (float)(min\+\_\+val)) +\begin{DoxyCompactList}\small\item\em Обратное линейное масштабирование значения из \mbox{[}0, 1) в диапазон \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]}. \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time}}()~HAL\+\_\+\+Get\+Tick() +\begin{DoxyCompactList}\small\item\em Локальное время \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga2f2b1be34ad4eb1bf3267237200cd6c6}{EVOLVE\+\_\+\+MUTATION\+\_\+\+MIN\+\_\+\+PCT}}~10 +\begin{DoxyCompactList}\small\item\em Минимальная мутация (в процентах от Loss) \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga861c1c6a503c21441abcec0d57b848bc}{EVOLVE\+\_\+\+MUTATION\+\_\+\+MAX\+\_\+\+PCT}}~100 +\begin{DoxyCompactList}\small\item\em Максимальная мутация (в процентах от Loss) \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga38607e23d9234524bc7de5869b15b8eb}{ELOVLE\+\_\+\+N\+\_\+\+ELITE\+\_\+\+CANDIDATE}}~2 +\begin{DoxyCompactList}\small\item\em Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2) \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item -\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gadaf3a90724197e1737d5c70c7bcc75e1}{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) +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga4e3ea118b5b9068619c57724a925ba21}{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, float mutation\+\_\+amp, float \texorpdfstring{$\ast$}{*}start\+\_\+params) \begin{DoxyCompactList}\small\item\em Инициализация эволюционного оптимизатора. \end{DoxyCompactList}\item -\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga75acd71c85d4e60dc0eb31bc5780086a}{Evolve\+Optimizer\+\_\+\+Step}} (\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}opt, int32\+\_\+t \texorpdfstring{$\ast$}{*}params, int32\+\_\+t loss) +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaef44a1f3298514569cc2b396a92101ef}{Evolve\+Optimizer\+\_\+\+Step}} (\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}opt, float \texorpdfstring{$\ast$}{*}params, float loss) \begin{DoxyCompactList}\small\item\em Один шаг эволюционного оптимизатора. \end{DoxyCompactList}\end{DoxyCompactItemize} diff --git a/Doc/latex/evolve__optimizer_8h__dep__incl.md5 b/Doc/latex/evolve__optimizer_8h__dep__incl.md5 index 17ac4cc..b0eb260 100644 --- a/Doc/latex/evolve__optimizer_8h__dep__incl.md5 +++ b/Doc/latex/evolve__optimizer_8h__dep__incl.md5 @@ -1 +1 @@ -a385857375106a9066dc97059b8e5f66 \ No newline at end of file +ef7ed390ff839d8a446957116f861503 \ 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 index 59395c0..3145452 100644 Binary files a/Doc/latex/evolve__optimizer_8h__dep__incl.pdf 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 index b0017bc..453cf70 100644 --- a/Doc/latex/evolve__optimizer_8h__incl.md5 +++ b/Doc/latex/evolve__optimizer_8h__incl.md5 @@ -1 +1 @@ -e567d0680734fcff06b08511863dc20f \ No newline at end of file +84a2c30c997cd3aae7d0053ac8a120d1 \ No newline at end of file diff --git a/Doc/latex/evolve__optimizer_8h__incl.pdf b/Doc/latex/evolve__optimizer_8h__incl.pdf index e9b6ca4..77ef99f 100644 Binary files a/Doc/latex/evolve__optimizer_8h__incl.pdf 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 index 37adfbd..9f5a03b 100644 --- a/Doc/latex/evolve__optimizer_8h_source.tex +++ b/Doc/latex/evolve__optimizer_8h_source.tex @@ -1,5 +1,5 @@ \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}} +\hypertarget{evolve__optimizer_8h_source}{}\label{evolve__optimizer_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/evolve\_optimizer.h@{F:/Work/Projects/STM/.Elementary/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}{/**}} @@ -24,269 +24,310 @@ \DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00020}00020\ \textcolor{comment}{\ \ заглушки,\ никак\ не\ влияющие\ на\ параметры\ и\ остальную\ программу}} \DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00021}00021\ \textcolor{comment}{-\/\ @ref\ EVOLVE\_MAX\_PARAMS\ \ \ \ \ \ \ \ \ \ -\/\ Максимальное\ количество\ параметров}} \DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00022}00022\ \textcolor{comment}{-\/\ @ref\ EVOLVE\_MAX\_CANDIDATES\ \ \ \ \ \ -\/\ Максимальное\ количество\ кандидатов\ для\ обучения}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00023}00023\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00024}00024\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00025}00025\ \textcolor{comment}{@par\ Пример\ использования:}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00026}00026\ \textcolor{comment}{@code}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00027}00027\ \textcolor{comment}{\#include\ "{}evolve\_optimizer.h"{}}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00028}00028\ \textcolor{comment}{\#define\ N\_PARAMS\ \ \ \ \ \ \ \ 4}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00029}00029\ \textcolor{comment}{\#define\ N\_CANDIDATES\ \ \ \ 100}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00030}00030\ \textcolor{comment}{\#define\ N\_BEST\ \ \ \ \ \ \ \ \ \ 10}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00031}00031\ \textcolor{comment}{\#define\ IQ\_MUTATION\ \ \ \ \ (PARAM\_SCALE\_Q16(0.1,\ 0,\ 1))}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00032}00032\ \textcolor{comment}{int32\_t\ params[N\_PARAMS];}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00033}00033\ \textcolor{comment}{EvolveOptimizer\_t\ optimizer;}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00034}00034\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00035}00035\ \textcolor{comment}{//\ Формирование\ параметров}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00036}00036\ \textcolor{comment}{uint16\_t\ \ param\_u16\ =\ 800;}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00037}00037\ \textcolor{comment}{float\ \ \ \ \ param\_f\ \ \ =\ 0.01f;}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00038}00038\ \textcolor{comment}{uint8\_t\ \ \ param\_u8\ \ =\ 40;}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00039}00039\ \textcolor{comment}{int16\_t\ \ \ param\_i16\ =\ 1600;}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00040}00040\ \textcolor{comment}{params[0]\ =\ PARAM\_SCALE\_Q16(param\_u16,\ \ 0,\ \ \ \ \ \ 1000);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00041}00041\ \textcolor{comment}{params[1]\ =\ PARAM\_SCALE\_Q16(param\_f,\ \ \ \ 0.001f,\ 0.1f);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00042}00042\ \textcolor{comment}{params[2]\ =\ PARAM\_SCALE\_Q16(param\_u8,\ \ \ 10,\ \ \ \ \ 100);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00043}00043\ \textcolor{comment}{params[3]\ =\ PARAM\_SCALE\_Q16(param\_i16,\ \ 500,\ \ \ \ 5000);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00044}00044\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00045}00045\ \textcolor{comment}{//\ Инициалиазция}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00046}00046\ \textcolor{comment}{EvolveOptimizer\_Init(\&optimizer,\ N\_PARAMS,\ N\_CANDIDATES,\ N\_BEST,\ IQ\_MUTATION,\ params);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00047}00047\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00048}00048\ \textcolor{comment}{//\ Шаг\ эволюции}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00049}00049\ \textcolor{comment}{int32\_t\ loss\ =\ calc\_iq\_loss();\ //\ расчет\ эффективности\ параметров}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00050}00050\ \textcolor{comment}{EvolveOptimizer\_Step(\&optimizer,\ params,\ loss);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00051}00051\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00052}00052\ \textcolor{comment}{//\ Взятие\ следующих\ для\ эволюции\ параметров}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00053}00053\ \textcolor{comment}{param\_u16\ =\ PARAM\_UNSCALE\_Q16(params[0],\ \ 0,\ \ \ \ \ \ 1000);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00054}00054\ \textcolor{comment}{param\_f\ \ \ =\ PARAM\_UNSCALE\_Q16(params[1],\ \ 0.001f,\ 0.1f);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00055}00055\ \textcolor{comment}{param\_u8\ \ =\ PARAM\_UNSCALE\_Q16(params[2],\ \ 10,\ \ \ \ \ 100);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00056}00056\ \textcolor{comment}{param\_i16\ =\ PARAM\_UNSCALE\_Q16(params[3],\ \ 500,\ \ \ \ 5000);}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00057}00057\ \textcolor{comment}{@endcode}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00058}00058\ \textcolor{comment}{*\ @\{\ \ }} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00059}00059\ \textcolor{comment}{*****************************************************************************/}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00060}00060\ \textcolor{preprocessor}{\#ifndef\ \_\_EVOLVE\_OPTIMIZER\_H\_}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00061}00061\ \textcolor{preprocessor}{\#define\ \_\_EVOLVE\_OPTIMIZER\_H\_}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00062}00062\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00063}00063\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00064}00064\ \textcolor{preprocessor}{\#include\ }} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00065}00065\ \textcolor{preprocessor}{\#include\ }} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00066}00066\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00067}00067\ \textcolor{preprocessor}{\#ifdef\ ENABLE\_EVOLVE\_OPTIMIZATION}\textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00068}00068\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00069}00069\ \textcolor{comment}{\ \ *\ @brief\ Линейное\ масштабирование\ x\ из\ диапазона\ [min\_val,\ max\_val]\ в\ Q16.16\ [0,\ 65536)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00070}00070\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00071}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaff223481fcffea77394a331afde29fdc}{00071}}\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE\_Q16(x,\ min\_val,\ max\_val)\ \(\backslash\)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00072}00072\ \textcolor{preprocessor}{((int32\_t)((((float)(x)\ -\/\ (float)(min\_val))\ /\ ((float)(max\_val)\ -\/\ (float)(min\_val)))\ *\ 65536.0f))}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00073}00073\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00074}00074\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00075}00075\ \textcolor{comment}{\ \ *\ @brief\ Обратное\ линейное\ масштабирование\ Q16.16\ значения\ в\ диапазон\ [min\_val,\ max\_val]}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00076}00076\ \textcolor{comment}{\ */}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00077}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga71a0c240c667e976d9caef391ab767ba}{00077}}\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE\_Q16(q16\_val,\ min\_val,\ max\_val)\ \(\backslash\)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00078}00078\ \textcolor{preprocessor}{(((float)(q16\_val)\ /\ 65536.0f)\ *\ ((float)(max\_val)\ -\/\ (float)(min\_val))\ +\ (float)(min\_val))}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00079}00079\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00080}00080\ \textcolor{preprocessor}{\#ifndef\ local\_time}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00081}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653}{00081}}\ \textcolor{preprocessor}{\#define\ local\_time()\ \ HAL\_GetTick()\ }\textcolor{comment}{///<\ Локальное\ время}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00082}00082\ \textcolor{preprocessor}{\#endif}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00083}00083\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00084}00084\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00085}00085\ \textcolor{comment}{\ \ *\ @brief\ Структура\ эволюционного\ оптимизатора}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00086}00086\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00087}\mbox{\hyperlink{struct_evolve_optimizer__t}{00087}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00088}\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{00088}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ параметров}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00089}\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{00089}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ кандидатов}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00090}\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{00090}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ лучших,\ усредняемых}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00091}\mbox{\hyperlink{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}{00091}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}{iq\_mutation}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Амплитуда\ мутации\ в\ Q16.16}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00092}\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{00092}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Индекс\ кандидата\ для\ обработки}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00093}\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{00093}}\ \ \ 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_l00094}\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{00094}}\ \ \ 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_l00095}\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{00095}}\ \ \ uint16\_t\ \mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}}[\mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}}];\ \textcolor{comment}{///<\ Индексы\ отсортированных\ кандидатов}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00096}00096\ \}\ \mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00023}00023\ \textcolor{comment}{-\/\ (опционально)\ @ref\ EVOLVE\_MUTATION\_MIN\_PCT\ \ \ \ -\/\ Минимальная\ мутация\ в\ процентах\ от\ Loss\ (по\ умолчанию\ 10\%)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00024}00024\ \textcolor{comment}{-\/\ (опционально)\ @ref\ EVOLVE\_MUTATION\_MAX\_PCT\ \ \ \ -\/\ Максимальная\ мутация\ в\ процентах\ от\ Loss\ (по\ умолчанию\ 100\%)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00025}00025\ \textcolor{comment}{-\/\ (опционально)\ @ref\ ELOVLE\_N\_ELITE\_CANDIDATE\ \ \ -\/\ Количество\ кандидатов,\ которые\ проходят\ в\ поколение\ без\ изменений}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00026}00026\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00027}00027\ \textcolor{comment}{@par\ Пример\ использования:}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00028}00028\ \textcolor{comment}{@code}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00029}00029\ \textcolor{comment}{\#include\ "{}evolve\_optimizer.h"{}}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00030}00030\ \textcolor{comment}{\#define\ N\_PARAMS\ \ \ \ \ \ \ \ 4}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00031}00031\ \textcolor{comment}{\#define\ N\_CANDIDATES\ \ \ \ 100}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00032}00032\ \textcolor{comment}{\#define\ N\_BEST\ \ \ \ \ \ \ \ \ \ 10}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00033}00033\ \textcolor{comment}{\#define\ MUTATION\ \ \ \ \ \ \ \ 0.1f}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00034}00034\ \textcolor{comment}{float\ params[N\_PARAMS];}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00035}00035\ \textcolor{comment}{EvolveOptimizer\_t\ optimizer;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00036}00036\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00037}00037\ \textcolor{comment}{//\ Формирование\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00038}00038\ \textcolor{comment}{uint16\_t\ \ param\_u16\ =\ 800;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00039}00039\ \textcolor{comment}{float\ \ \ \ \ param\_f\ \ \ =\ 0.01f;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00040}00040\ \textcolor{comment}{uint8\_t\ \ \ param\_u8\ \ =\ 40;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00041}00041\ \textcolor{comment}{int16\_t\ \ \ param\_i16\ =\ 1600;}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00042}00042\ \textcolor{comment}{params[0]\ =\ PARAM\_SCALE(param\_u16,\ \ 0.0f,\ \ \ 1000.0f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00043}00043\ \textcolor{comment}{params[1]\ =\ PARAM\_SCALE(param\_f,\ \ \ \ 0.001f,\ 0.1f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00044}00044\ \textcolor{comment}{params[2]\ =\ PARAM\_SCALE(param\_u8,\ \ \ 10.0f,\ \ 100.0f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00045}00045\ \textcolor{comment}{params[3]\ =\ PARAM\_SCALE(param\_i16,\ \ 500.0f,\ 5000.0f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00046}00046\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00047}00047\ \textcolor{comment}{//\ Инициалиазция}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00048}00048\ \textcolor{comment}{EvolveOptimizer\_Init(\&optimizer,\ N\_PARAMS,\ N\_CANDIDATES,\ N\_BEST,\ MUTATION,\ params);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00049}00049\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00050}00050\ \textcolor{comment}{//\ Шаг\ эволюции}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00051}00051\ \textcolor{comment}{float\ loss\ =\ calc\_loss();\ //\ расчет\ эффективности\ параметров\ (от\ 0\ до\ 1)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00052}00052\ \textcolor{comment}{EvolveOptimizer\_Step(\&optimizer,\ params,\ loss);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00053}00053\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00054}00054\ \textcolor{comment}{//\ Взятие\ следующих\ для\ эволюции\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00055}00055\ \textcolor{comment}{param\_u16\ =\ PARAM\_UNSCALE(params[0],\ \ 0.0f,\ \ \ 1000.0f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00056}00056\ \textcolor{comment}{param\_f\ \ \ =\ PARAM\_UNSCALE(params[1],\ \ 0.001f,\ 0.1f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00057}00057\ \textcolor{comment}{param\_u8\ \ =\ PARAM\_UNSCALE(params[2],\ \ 10.0f,\ \ 100.0f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00058}00058\ \textcolor{comment}{param\_i16\ =\ PARAM\_UNSCALE(params[3],\ \ 500.0f,\ 5000.0f);}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00059}00059\ \textcolor{comment}{@endcode}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00060}00060\ \textcolor{comment}{*\ @\{\ \ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00061}00061\ \textcolor{comment}{*****************************************************************************/}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00062}00062\ \textcolor{preprocessor}{\#ifndef\ \_\_EVOLVE\_OPTIMIZER\_H\_}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00063}00063\ \textcolor{preprocessor}{\#define\ \_\_EVOLVE\_OPTIMIZER\_H\_}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00064}00064\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00065}00065\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00066}00066\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00067}00067\ \textcolor{preprocessor}{\#include\ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00068}00068\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00069}00069\ \textcolor{preprocessor}{\#ifdef\ ENABLE\_EVOLVE\_OPTIMIZATION}\textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00070}00070\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00071}00071\ \textcolor{comment}{\ \ *\ @brief\ Линейное\ масштабирование\ x\ из\ диапазона\ [min\_val,\ max\_val]\ в\ диапазон\ [0,\ 1)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00072}00072\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00073}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}{00073}}\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE(x,\ min\_val,\ max\_val)\ \(\backslash\)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00074}00074\ \textcolor{preprocessor}{(((float)(x)\ -\/\ (float)(min\_val))\ /\ ((float)(max\_val)\ -\/\ (float)(min\_val)))}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00075}00075\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00076}00076\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00077}00077\ \textcolor{comment}{\ \ *\ @brief\ Обратное\ линейное\ масштабирование\ значения\ из\ [0,\ 1)\ в\ диапазон\ [min\_val,\ max\_val]}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00078}00078\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00079}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}{00079}}\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE(val,\ min\_val,\ max\_val)\ \(\backslash\)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00080}00080\ \textcolor{preprocessor}{(((float)(val))\ *\ ((float)(max\_val)\ -\/\ (float)(min\_val))\ +\ (float)(min\_val))}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00081}00081\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00082}00082\ \textcolor{preprocessor}{\#ifndef\ local\_time}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00083}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653}{00083}}\ \textcolor{preprocessor}{\#define\ local\_time()\ \ HAL\_GetTick()\ }\textcolor{comment}{///<\ Локальное\ время}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00084}00084\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00085}00085\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00086}00086\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00087}00087\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00088}00088\ \textcolor{preprocessor}{\#ifndef\ EVOLVE\_MUTATION\_MIN\_PCT}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00089}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga2f2b1be34ad4eb1bf3267237200cd6c6}{00089}}\ \textcolor{preprocessor}{\#define\ EVOLVE\_MUTATION\_MIN\_PCT\ \ \ 10\ \ \ \ }\textcolor{comment}{///<\ Минимальная\ мутация\ (в\ процентах\ от\ Loss)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00090}00090\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00091}00091\ \textcolor{preprocessor}{\#ifndef\ EVOLVE\_MUTATION\_MAX\_PCT}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00092}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga861c1c6a503c21441abcec0d57b848bc}{00092}}\ \textcolor{preprocessor}{\#define\ EVOLVE\_MUTATION\_MAX\_PCT\ \ \ 100\ \ \ }\textcolor{comment}{///<\ Максимальная\ мутация\ (в\ процентах\ от\ Loss)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00093}00093\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00094}00094\ \textcolor{preprocessor}{\#ifndef\ ELOVLE\_N\_ELITE\_CANDIDATE}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00095}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga38607e23d9234524bc7de5869b15b8eb}{00095}}\ \textcolor{preprocessor}{\#define\ ELOVLE\_N\_ELITE\_CANDIDATE\ \ 2\ \ \ \ \ }\textcolor{comment}{///<\ Количество\ кандидатов,\ которые\ проходят\ в\ поколение\ без\ изменений\ (по\ умолчанию\ 2)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00096}00096\ \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00097}00097\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00098}00098\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00099}00099\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00100}00100\ \textcolor{comment}{/**\ }} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00101}00101\ \textcolor{comment}{\ *\ @cond\ EVOLVE\_INTERNAL}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00102}00102\ \textcolor{comment}{\ */}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00103}00103\ \textcolor{preprocessor}{\#define\ Q16\_MUL(a,b)\ ((int32\_t)(((int64\_t)(a)\ *\ (int64\_t)(b))\ >>\ 16))}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00104}00104\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00105}00105\ \textcolor{comment}{//\ Вспомогательный\ указатель\ для\ сортировки}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00106}00106\ \textcolor{keyword}{static}\ \mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}\ *g\_sort\_opt;\ \textcolor{comment}{//\ глобальный\ указатель\ на\ текущий\ оптимизатор}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00107}00107\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00108}00108\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ cmp\_idx(\textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *a,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *b)\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00109}00109\ \ \ \textcolor{keywordflow}{if}\ (g\_sort\_opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[*(\textcolor{keyword}{const}\ uint16\_t*)a]\ <\ g\_sort\_opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[*(\textcolor{keyword}{const}\ uint16\_t*)b])\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00110}00110\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00111}00111\ \ \ \textcolor{keywordflow}{if}\ (g\_sort\_opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[*(\textcolor{keyword}{const}\ uint16\_t*)a]\ >\ g\_sort\_opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[*(\textcolor{keyword}{const}\ uint16\_t*)b])\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00112}00112\ \ \ \ \ \textcolor{keywordflow}{return}\ 1;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00113}00113\ \ \ \textcolor{keywordflow}{return}\ 0;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00114}00114\ \}\textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00115}00115\ \textcolor{comment}{/**\ @endcond\ */}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00116}00116\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00117}00117\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00118}00118\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00098}00098\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00099}00099\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00100}00100\ \textcolor{comment}{\ \ *\ @brief\ Структура\ эволюционного\ оптимизатора}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00101}00101\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00102}\mbox{\hyperlink{struct_evolve_optimizer__t}{00102}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00103}\mbox{\hyperlink{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c}{00103}}\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ \mbox{\hyperlink{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c}{stability}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Коэффициент\ насколько\ стабильная\ популяция\ (0..1)(@ref\ n\_cand)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00104}\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{00104}}\ \ \ uint16\_t\ \ \mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ параметров}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00105}\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{00105}}\ \ \ uint16\_t\ \ \mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ кандидатов\ в\ популяции}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00106}\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{00106}}\ \ \ uint16\_t\ \ \mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Количество\ лучших,\ усредняемых}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00107}\mbox{\hyperlink{struct_evolve_optimizer__t_af779c7aeba0053e36cee7aade160f1c8}{00107}}\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ \mbox{\hyperlink{struct_evolve_optimizer__t_af779c7aeba0053e36cee7aade160f1c8}{mutation\_amp}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Амплитуда\ мутации\ (0..1)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00108}\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{00108}}\ \ \ uint16\_t\ \ \mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Индекс\ кандидата\ для\ обработки}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00109}\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{00109}}\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ 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_l00110}\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{00110}}\ \ \ \textcolor{keywordtype}{float}\ \ \ \ \ 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_l00111}\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{00111}}\ \ \ uint16\_t\ \ sorted\_idx[\mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}}];\ \textcolor{comment}{///<\ Индексы\ отсортированных\ кандидатов}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00112}00112\ \}\ \mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00113}00113\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00114}00114\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00115}00115\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00116}00116\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00117}00117\ \textcolor{comment}{\ *\ @cond\ EVOLVE\_INTERNAL}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00118}00118\ \textcolor{comment}{\ */}} \DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00119}00119\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00120}00120\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00121}00121\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00122}00122\ \textcolor{comment}{\ \ *\ @brief\ Инициализация\ эволюционного\ оптимизатора.}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00123}00123\ \textcolor{comment}{\ \ *\ @param\ opt\ \ \ \ \ \ \ \ \ \ Указатель\ на\ структуру\ оптимизатора}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00124}00124\ \textcolor{comment}{\ \ *\ @param\ n\_params\ \ \ \ \ Количество\ параметров\ в\ одном\ кандидате}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00125}00125\ \textcolor{comment}{\ \ *\ @param\ n\_cand\ \ \ \ \ \ \ Количество\ кандидатов}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00126}00126\ \textcolor{comment}{\ \ *\ @param\ n\_best\ \ \ \ \ \ \ Количество\ лучших,\ усредняемых}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00127}00127\ \textcolor{comment}{\ \ *\ @param\ iq\_mutation\ \ Амплитуда\ мутации\ в\ Q16.16}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00128}00128\ \textcolor{comment}{\ \ *\ @param\ start\_params\ Начальные\ параметры\ (Q16.16)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00129}00129\ \textcolor{comment}{\ \ *\ @return\ 0\ \ \ —\ если\ окей,\ }} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00130}00130\ \textcolor{comment}{\ \ *\ \ \ \ \ \ \ \ \ -\/1\ \ —\ если\ ошибка}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00131}00131\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00132}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gadaf3a90724197e1737d5c70c7bcc75e1}{00132}}\ \_\_STATIC\_INLINE\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gadaf3a90724197e1737d5c70c7bcc75e1}{EvolveOptimizer\_Init}}(\mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}*\ opt,} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00133}00133\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_params,} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00134}00134\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_cand,} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00135}00135\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_best,} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00136}00136\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ iq\_mutation,} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00137}00137\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ int32\_t*\ start\_params)} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00138}00138\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00139}00139\ \ \ \textcolor{keywordflow}{if}((opt\ =\ NULL)\ ||\ (start\_params\ ==\ NULL))} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00140}00140\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00141}00141\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00142}00142\ \ \ \textcolor{keywordflow}{if}(n\_params\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}{EVOLVE\_MAX\_PARAMS}})} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00143}00143\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00144}00144\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}}\ \ \ \ \ =\ n\_params;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00145}00145\ \ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00146}00146\ \ \ \textcolor{keywordflow}{if}(n\_cand\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}})} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00147}00147\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00148}00148\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}}\ \ \ \ \ \ \ =\ n\_cand;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00149}00149\ \ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00150}00150\ \ \ \textcolor{keywordflow}{if}(n\_best\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}}/2)} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00151}00151\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00152}00152\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}}\ \ \ \ \ \ \ =\ n\_best;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00153}00153\ \ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00154}00154\ \ \ \textcolor{keywordflow}{if}(iq\_mutation\ >\ 32768)} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00155}00155\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00156}00156\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}{iq\_mutation}}\ \ =\ iq\_mutation;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00120}00120\ \textcolor{comment}{//\ Вспомогательный\ указатель\ для\ сортировки}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00121}00121\ \textcolor{keyword}{static}\ \mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}\ *g\_sort\_opt;\ \textcolor{comment}{//\ глобальный\ указатель\ на\ текущий\ оптимизатор}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00122}00122\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00123}00123\ \textcolor{comment}{//\ функция\ условия\ сортировки}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00124}00124\ \textcolor{keyword}{static}\ \textcolor{keywordtype}{int}\ cmp\_idx(\textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *a,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *b)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00125}00125\ \ \ \textcolor{keywordflow}{if}\ (g\_sort\_opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[*(\textcolor{keyword}{const}\ uint16\_t*)a]\ <\ g\_sort\_opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[*(\textcolor{keyword}{const}\ uint16\_t*)b])\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00126}00126\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00127}00127\ \ \ \textcolor{keywordflow}{if}\ (g\_sort\_opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[*(\textcolor{keyword}{const}\ uint16\_t*)a]\ >\ g\_sort\_opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[*(\textcolor{keyword}{const}\ uint16\_t*)b])\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00128}00128\ \ \ \ \ \textcolor{keywordflow}{return}\ 1;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00129}00129\ \ \ \textcolor{keywordflow}{return}\ 0;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00130}00130\ \}\textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00131}00131\ \textcolor{comment}{/**\ @endcond\ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00132}00132\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00133}00133\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00134}00134\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00135}00135\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00136}00136\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00137}00137\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00138}00138\ \textcolor{comment}{\ \ *\ @brief\ Инициализация\ эволюционного\ оптимизатора.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00139}00139\ \textcolor{comment}{\ \ *\ @param\ opt\ \ \ \ \ \ \ \ \ \ Указатель\ на\ структуру\ оптимизатора}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00140}00140\ \textcolor{comment}{\ \ *\ @param\ n\_params\ \ \ \ \ Количество\ параметров\ в\ одном\ кандидате}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00141}00141\ \textcolor{comment}{\ \ *\ @param\ n\_cand\ \ \ \ \ \ \ Количество\ кандидатов}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00142}00142\ \textcolor{comment}{\ \ *\ @param\ n\_best\ \ \ \ \ \ \ Количество\ лучших,\ усредняемых}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00143}00143\ \textcolor{comment}{\ \ *\ @param\ mutation\_amp\ Амплитуда\ мутации\ (в\ диапазоне\ 0.0–1.0)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00144}00144\ \textcolor{comment}{\ \ *\ @param\ start\_params\ Начальные\ параметры\ (в\ диапазоне\ 0.0–1.0)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00145}00145\ \textcolor{comment}{\ \ *\ @return\ 0\ \ \ —\ если\ окей,\ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00146}00146\ \textcolor{comment}{\ \ *\ \ \ \ \ \ \ \ \ -\/1\ \ —\ если\ ошибка}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00147}00147\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00148}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga4e3ea118b5b9068619c57724a925ba21}{00148}}\ \_\_STATIC\_INLINE\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga4e3ea118b5b9068619c57724a925ba21}{EvolveOptimizer\_Init}}(\mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}*\ opt,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00149}00149\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_params,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00150}00150\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_cand,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00151}00151\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ n\_best,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00152}00152\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ mutation\_amp,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00153}00153\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}*\ start\_params)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00154}00154\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00155}00155\ \ \ \textcolor{keywordflow}{if}((opt\ ==\ NULL)\ ||\ (start\_params\ ==\ NULL))} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00156}00156\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;} \DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00157}00157\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00158}00158\ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_cand;\ i++)\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00159}00159\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ j\ =\ 0;\ j\ <\ n\_params;\ j++)\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00160}00160\ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[i][j]\ =\ start\_params[j];} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00161}00161\ \ \ \ \ \}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00162}00162\ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[i]\ =\ 0;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00163}00163\ \ \ \}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00164}00164\ \ \ uint32\_t\ seed\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}()\ +\ (ADC1-\/>DR\ \&\ 0xFF);} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00165}00165\ \ \ srand(seed);} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00166}00166\ \ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00167}00167\ \ \ \textcolor{keywordflow}{return}\ 0;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00168}00168\ \}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00169}00169\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00170}00170\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00171}00171\ \textcolor{comment}{/**}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00172}00172\ \textcolor{comment}{\ \ *\ @brief\ Один\ шаг\ эволюционного\ оптимизатора.}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00173}00173\ \textcolor{comment}{\ \ *\ @param\ opt\ \ \ \ Указатель\ на\ структуру\ оптимизатора}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00174}00174\ \textcolor{comment}{\ \ *\ @param\ params\ Массив\ параметров,\ которые\ будут\ обновлены\ (на\ выходе\ —\ новые\ параметры)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00175}00175\ \textcolor{comment}{\ \ *\ @param\ loss\ \ \ Loss\ текущего\ кандидата\ (Q16.16)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00176}00176\ \textcolor{comment}{\ \ *\ @return\ 0\ \ \ —\ если\ окей,\ }} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00177}00177\ \textcolor{comment}{\ \ *\ \ \ \ \ \ \ \ \ -\/1\ \ —\ если\ ошибка}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00178}00178\ \textcolor{comment}{\ \ *\ @details}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00179}00179\ \textcolor{comment}{\ \ *\ Сохраняет\ loss\ текущего\ кандидата\ и\ формирует\ параметры\ следующего\ кандидата.}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00180}00180\ \textcolor{comment}{\ \ *\ Если\ накоплено\ n\_cand\ кандидатов,\ генерируется\ новое\ поколение.}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00181}00181\ \textcolor{comment}{\ \ *\ Новое\ поколение\ формируется\ случайным\ выбором\ из\ n\_best\ лучших\ с\ добавлением\ мутации.}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00182}00182\ \textcolor{comment}{\ \ *}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00183}00183\ \textcolor{comment}{\ \ *\ На\ выходе\ params\ содержит\ параметры\ следующего\ кандидата\ для\ измерений.}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00184}00184\ \textcolor{comment}{\ \ *\ @note\ Функция\ использует\ глобальную\ внутреннюю\ переменную\ для\ сортировки.}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00185}00185\ \textcolor{comment}{\ \ *\ Надо\ убедится\ что\ только\ один\ экземпляр\ функции\ запущен\ в\ момент\ времени}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00186}00186\ \textcolor{comment}{\ \ */}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00187}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga75acd71c85d4e60dc0eb31bc5780086a}{00187}}\ \_\_STATIC\_INLINE\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga75acd71c85d4e60dc0eb31bc5780086a}{EvolveOptimizer\_Step}}(\mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}*\ opt,} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00188}00188\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ int32\_t*\ params,} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00189}00189\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ int32\_t\ \ \ loss)} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00190}00190\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00191}00191\ \ \ \textcolor{keywordflow}{if}((opt\ =\ NULL)\ ||\ (params\ ==\ NULL))} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00192}00192\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00193}00193\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00194}00194\ \ \ uint16\_t\ n\_params\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}};\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00195}00195\ \ \ \textcolor{keywordflow}{if}(n\_params\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}{EVOLVE\_MAX\_PARAMS}})} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00196}00196\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00197}00197\ \ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00198}00198\ \ \ uint16\_t\ n\_cand\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}};\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00199}00199\ \ \ \textcolor{keywordflow}{if}(n\_cand\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}})} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00200}00200\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00201}00201\ \ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00202}00202\ \ \ uint16\_t\ n\_best\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}};\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00203}00203\ \ \ \textcolor{keywordflow}{if}(n\_best\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}}/2)} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00204}00204\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00205}00205\ \ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00206}00206\ \ \ uint16\_t\ mut\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a5391277564b54e2271856a2466033df5}{iq\_mutation}};} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00207}00207\ \ \ \textcolor{keywordflow}{if}(mut\ >\ 32768)} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00208}00208\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00209}00209\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00210}00210\ \ \ \textcolor{comment}{//\ 1.\ Сохраняем\ loss\ текущего\ кандидата}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00211}00211\ \ \ 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_l00212}00212\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}++;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00213}00213\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00214}00214\ \ \ \textcolor{keywordflow}{if}\ (opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}\ >=\ n\_cand)\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00215}00215\ \ \ \ \ \textcolor{comment}{//\ 2.\ Сортируем\ текущее\ поколение\ по\ loss}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00216}00216\ \ \ \ \ \textcolor{keywordflow}{for}(uint16\_t\ i\ =\ 0;\ i\ <\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}};\ i++)} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00217}00217\ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}}[i]\ =\ i;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00218}00218\ \ \ \ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00219}00219\ \ \ \ \ g\_sort\_opt\ =\ opt;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00220}00220\ \ \ \ \ qsort(opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}},\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}},\ \textcolor{keyword}{sizeof}(uint16\_t),\ cmp\_idx);} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00221}00221\ \ \ \ \ g\_sort\_opt\ =\ NULL;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00222}00222\ \textcolor{comment}{//\ \ \ \ for\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_cand\ -\/\ 1;\ i++)\ \{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00223}00223\ \textcolor{comment}{//\ \ \ \ \ \ for\ (uint16\_t\ j\ =\ i\ +\ 1;\ j\ <\ n\_cand;\ j++)\ \{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00224}00224\ \textcolor{comment}{//\ \ \ \ \ \ \ \ if\ (opt-\/>loss[j]\ <\ opt-\/>loss[i])\ \{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00225}00225\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ int32\_t\ tmp\_loss\ =\ opt-\/>loss[i];}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00226}00226\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ opt-\/>loss[i]\ =\ opt-\/>loss[j];}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00227}00227\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ opt-\/>loss[j]\ =\ tmp\_loss;}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00228}00228\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00229}00229\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ for\ (uint16\_t\ k\ =\ 0;\ k\ <\ n\_params;\ k++)\ \{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00230}00230\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ int32\_t\ tmp\ =\ opt-\/>candidates[i][k];}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00231}00231\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ opt-\/>candidates[i][k]\ =\ opt-\/>candidates[j][k];}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00232}00232\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \ \ opt-\/>candidates[j][k]\ =\ tmp;}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00233}00233\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \ \ \}}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00234}00234\ \textcolor{comment}{//\ \ \ \ \ \ \ \ \}}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00235}00235\ \textcolor{comment}{//\ \ \ \ \ \ \}}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00236}00236\ \textcolor{comment}{//\ \ \ \ \}}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00237}00237\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00238}00238\ \ \ \ \ \textcolor{comment}{//\ 3.\ Генерируем\ новое\ поколение:\ каждый\ кандидат\ берется\ случайно\ из\ лучших\ с\ мутацией}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00239}00239\ \ \ \ \ uint16\_t\ n\_elite\ =\ 2;\ \textcolor{comment}{//\ количество\ элитных\ кандидатов,\ которые\ сохраняем\ без\ изменений}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00240}00240\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ c\ =\ 0;\ c\ <\ n\_cand;\ c++)\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00241}00241\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ <\ n\_elite)\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00242}00242\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Копируем\ лучших\ кандидатов\ напрямую\ без\ мутации}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00243}00243\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_params;\ i++)\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00244}00244\ \ \ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[c][i]\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}{candidates}}[opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}}[c]][i];\ \textcolor{comment}{//\ просто\ сохраняем\ параметры}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00245}00245\ \ \ \ \ \ \ \ \ \}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00246}00246\ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[c]\ =\ 0;\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00247}00247\ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00248}00248\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Остальные\ кандидаты\ формируются\ с\ кроссовером\ и\ мутацией}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00249}00249\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_params;\ i++)\ \{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00250}00250\ \ \ \ \ \ \ \ \ \ \ int32\_t\ noise\ =\ (rand()\ \%\ (2\ *\ mut))\ -\/\ mut;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00251}00251\ \ \ \ \ \ \ \ \ \ \ uint16\_t\ parent\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}}[rand()\ \%\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}}];\ \textcolor{comment}{//\ каждый\ параметр\ из\ случайного\ лучшего}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00252}00252\ \ \ \ \ \ \ \ \ \ \ 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_l00253}00253\ \ \ \ \ \ \ \ \ \}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00254}00254\ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}{loss}}[c]\ =\ 0;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00255}00255\ \ \ \ \ \ \ \}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00256}00256\ \ \ \ \ \}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00257}00257\ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}\ =\ 0;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00258}00258\ \ \ \}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00259}00259\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00260}00260\ \ \ \textcolor{comment}{//\ 4.\ Возвращаем\ параметры\ следующего\ кандидата}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00261}00261\ \ \ \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_l00262}00262\ \ \ \ \ 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_l00263}00263\ \ \ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00264}00264\ \ \ \textcolor{keywordflow}{return}\ 0;} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00265}00265\ \}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00266}00266\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{//\ ENABLE\_EVOLVE\_OPTIMIZATION}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00267}00267\ \textcolor{comment}{//заглушки}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00268}00268\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00269}00269\ \ \ uint16\_t\ n\_params;\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00270}00270\ \ \ uint16\_t\ n\_cand;\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00271}00271\ \ \ uint16\_t\ n\_best;\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00272}00272\ \ \ uint16\_t\ iq\_mutation;\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00273}00273\ \ \ int32\_t\ loss[0];\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00274}00274\ \ \ int32\_t\ candidates[0][0];\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00275}00275\ \}\ \mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}};} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00276}00276\ \textcolor{preprocessor}{\#define\ EvolveOptimizer\_Init(opt,\ n\_params,\ n\_cand,\ n\_best,\ iq\_mutation,\ start\_params)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00277}00277\ \textcolor{preprocessor}{\#define\ EvolveOptimizer\_Step(opt,\ params,\ LossFunc)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00278}00278\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE\_Q16(x,\ min\_val,\ max\_val)\ \ \ \ \ \ \ \ \ \ \ \ (x)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00279}00279\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE\_Q16(q16\_val,\ min\_val,\ max\_val)\ \ \ \ (q16\_val)}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00280}00280\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ ENABLE\_EVOLVE\_OPTIMIZATION}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00281}00281\ } -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00282}00282\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_EVOLVE\_OPTIMIZER\_H\_}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00283}00283\ \textcolor{comment}{}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00284}00284\ \textcolor{comment}{/**\ EVOLVE\_OPTIMIZER}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00285}00285\ \textcolor{comment}{\ \ *\ @\}}} -\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00286}00286\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00158}00158\ \ \ \textcolor{keywordflow}{if}(n\_params\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}{EVOLVE\_MAX\_PARAMS}})} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00159}00159\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00160}00160\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}}\ \ \ \ \ =\ n\_params;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00161}00161\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00162}00162\ \ \ \textcolor{keywordflow}{if}(n\_cand\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}})} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00163}00163\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00164}00164\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}}\ \ \ \ \ \ \ =\ n\_cand;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00165}00165\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00166}00166\ \ \ \textcolor{keywordflow}{if}(n\_best\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}}/2)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00167}00167\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00168}00168\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}}\ \ \ \ \ \ \ =\ n\_best;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00169}00169\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00170}00170\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00171}00171\ \ \ \textcolor{keywordflow}{if}((mutation\_amp\ >\ 1)\ ||\ (mutation\_amp\ <\ 0))} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00172}00172\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00173}00173\ \ \ \textcolor{keywordflow}{if}(mutation\_amp\ <=\ 0.001f)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00174}00174\ \ \ \ \ mutation\_amp\ =\ 0.001f;\ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00175}00175\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_af779c7aeba0053e36cee7aade160f1c8}{mutation\_amp}}\ \ =\ mutation\_amp;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00176}00176\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00177}00177\ \ \ uint32\_t\ seed\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653}{local\_time}}();} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00178}00178\ \textcolor{preprocessor}{\#ifdef\ ADC1}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00179}00179\ \ \ seed\ +=\ (ADC1-\/>DR\ \&\ 0xFF);} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00180}00180\ \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00181}00181\ \ \ srand(seed);} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00182}00182\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00183}00183\ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_cand;\ i++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00184}00184\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ j\ =\ 0;\ j\ <\ n\_params;\ j++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00185}00185\ \ \ \ \ \ \ \textcolor{comment}{//\ Добавляем\ случайную\ мутацию\ вокруг\ стартового\ параметра}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00186}00186\ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ base\ =\ start\_params[j];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00187}00187\ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ inv\_randmax\ =\ 1.0f\ /\ (float)RAND\_MAX;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00188}00188\ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ noise\ =\ ((float)rand()\ *\ inv\_randmax\ *\ 2.0f\ -\/\ 1.0f)\ *\ mutation\_amp;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00189}00189\ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[i][j]\ =\ base\ +\ noise;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00190}00190\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[i][j]\ <\ 0.0f)\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[i][j]\ =\ 0.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00191}00191\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[i][j]\ >\ 1.0f)\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[i][j]\ =\ 1.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00192}00192\ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00193}00193\ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[i]\ =\ 0.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00194}00194\ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00195}00195\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00196}00196\ \ \ \textcolor{keywordflow}{return}\ 0;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00197}00197\ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00198}00198\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00199}00199\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00200}00200\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00201}00201\ \textcolor{comment}{\ \ *\ @brief\ Один\ шаг\ эволюционного\ оптимизатора.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00202}00202\ \textcolor{comment}{\ \ *\ @param\ opt\ \ \ \ Указатель\ на\ структуру\ оптимизатора}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00203}00203\ \textcolor{comment}{\ \ *\ @param\ params\ Массив\ параметров,\ которые\ будут\ обновлены\ (на\ выходе\ —\ новые\ параметры)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00204}00204\ \textcolor{comment}{\ \ *\ @param\ loss\ \ \ Loss\ текущего\ кандидата}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00205}00205\ \textcolor{comment}{\ \ *\ @return\ 0\ \ \ —\ если\ окей,\ }} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00206}00206\ \textcolor{comment}{\ \ *\ \ \ \ \ \ \ \ \ -\/1\ \ —\ если\ ошибка}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00207}00207\ \textcolor{comment}{\ \ *\ @details}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00208}00208\ \textcolor{comment}{\ \ *\ Сохраняет\ loss\ текущего\ кандидата\ и\ формирует\ параметры\ следующего\ кандидата.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00209}00209\ \textcolor{comment}{\ \ *\ Если\ накоплено\ n\_cand\ кандидатов,\ генерируется\ новое\ поколение.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00210}00210\ \textcolor{comment}{\ \ *\ Новое\ поколение\ формируется\ случайным\ выбором\ из\ n\_best\ лучших\ с\ добавлением\ мутации.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00211}00211\ \textcolor{comment}{\ \ *}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00212}00212\ \textcolor{comment}{\ \ *\ На\ выходе\ params\ содержит\ параметры\ следующего\ кандидата\ для\ измерений.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00213}00213\ \textcolor{comment}{\ \ *\ @note\ Функция\ использует\ глобальную\ внутреннюю\ переменную\ для\ сортировки.}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00214}00214\ \textcolor{comment}{\ \ *\ Надо\ убедится\ что\ только\ один\ экземпляр\ функции\ запущен\ в\ момент\ времени}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00215}00215\ \textcolor{comment}{\ \ */}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00216}\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaef44a1f3298514569cc2b396a92101ef}{00216}}\ \_\_STATIC\_INLINE\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaef44a1f3298514569cc2b396a92101ef}{EvolveOptimizer\_Step}}(\mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}*\ opt,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00217}00217\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}*\ params,} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00218}00218\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ loss)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00219}00219\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00220}00220\ \ \ \textcolor{keywordflow}{if}((opt\ ==\ NULL)\ ||\ (params\ ==\ NULL))} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00221}00221\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00222}00222\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00223}00223\ \ \ uint16\_t\ n\_params\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}{n\_params}};\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00224}00224\ \ \ \textcolor{keywordflow}{if}(n\_params\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}{EVOLVE\_MAX\_PARAMS}})} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00225}00225\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00226}00226\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00227}00227\ \ \ uint16\_t\ n\_cand\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}};\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00228}00228\ \ \ \textcolor{keywordflow}{if}(n\_cand\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}})} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00229}00229\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;\ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00230}00230\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00231}00231\ \ \ uint16\_t\ n\_best\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}};\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00232}00232\ \ \ \textcolor{keywordflow}{if}(n\_best\ >\ \mbox{\hyperlink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\_MAX\_CANDIDATES}}/2)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00233}00233\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00234}00234\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00235}00235\ \ \ \textcolor{keywordtype}{float}\ \ \ \ mut\ \ \ \ \ \ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_af779c7aeba0053e36cee7aade160f1c8}{mutation\_amp}};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00236}00236\ \ \ \textcolor{keywordflow}{if}((mut\ >\ 1)\ ||(mut\ <\ 0))} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00237}00237\ \ \ \ \ \textcolor{keywordflow}{return}\ -\/1;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00238}00238\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00239}00239\ \ \ \textcolor{comment}{//\ 1.\ Сохраняем\ loss\ текущего\ кандидата}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00240}00240\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}]\ =\ loss;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00241}00241\ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}++;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00242}00242\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00243}00243\ \ \ \textcolor{keywordflow}{if}\ (opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}\ >=\ n\_cand)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00244}00244\ \ \ \ \ \textcolor{comment}{//\ 2.\ Сортируем\ текущее\ поколение\ по\ loss}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00245}00245\ \ \ \ \ \textcolor{keywordflow}{for}(uint16\_t\ i\ =\ 0;\ i\ <\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}};\ i++)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00246}00246\ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}}[i]\ =\ i;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00247}00247\ \ \ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00248}00248\ \ \ \ \ g\_sort\_opt\ =\ opt;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00249}00249\ \ \ \ \ qsort(opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}},\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}},\ \textcolor{keyword}{sizeof}(uint16\_t),\ cmp\_idx);} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00250}00250\ \ \ \ \ g\_sort\_opt\ =\ NULL;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00251}00251\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00252}00252\ \ \ \ \ \textcolor{comment}{//\ -\/-\/-\/\ Адаптивная\ мутация\ в\ зависимости\ от\ Loss\ -\/-\/-\/}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00253}00253\ \ \ \ \ \textcolor{keywordtype}{float}\ best\_loss\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}}[0]];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00254}00254\ \ \ \ \ \textcolor{keywordtype}{float}\ worst\_loss\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}}[opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\_cand}}\ -\/\ 1]];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00255}00255\ \ \ \ \ \textcolor{keywordtype}{float}\ diff\ =\ worst\_loss\ -\/\ best\_loss;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00256}00256\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00257}00257\ \ \ \ \ \textcolor{keywordtype}{float}\ sum\_loss\ =\ 0.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00258}00258\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_cand;\ i++)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00259}00259\ \ \ \ \ \ \ sum\_loss\ +=\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[i];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00260}00260\ \ \ \ \ \textcolor{keywordtype}{float}\ avg\_loss\ =\ sum\_loss\ /\ (float)n\_cand;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00261}00261\ \ \ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00262}00262\ \ \ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00263}00263\ \ \ \ \ \textcolor{keywordtype}{float}\ loss\_ratio\ =\ (diff\ >\ 0.0f)\ ?\ ((avg\_loss\ -\/\ best\_loss)\ /\ diff)\ :\ 0.5f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00264}00264\ \ \ \ \ \textcolor{keywordflow}{if}\ (loss\_ratio\ <\ 0.0f)\ loss\_ratio\ =\ 0.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00265}00265\ \ \ \ \ \textcolor{keywordflow}{if}\ (loss\_ratio\ >\ 1.0f)\ loss\_ratio\ =\ 1.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00266}00266\ \ \ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00267}00267\ \ \ \ \ \textcolor{comment}{//\ Записываем\ стабильность\ популяции\ в\ структуру}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00268}00268\ \ \ \ \ \textcolor{keywordflow}{if}(diff\ <\ 0.0f)\ diff\ =\ 0.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00269}00269\ \ \ \ \ \textcolor{keywordflow}{if}(diff\ >\ 1.0f)\ diff\ =\ 1.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00270}00270\ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c}{stability}}\ =\ (1.0f\ -\/\ worst\_loss)\ *\ (1.0f\ -\/\ (worst\_loss\ -\/\ best\_loss));} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00271}00271\ \ \ \ \ \textcolor{keywordflow}{if}(opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c}{stability}}\ <\ 0.0f)\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c}{stability}}\ =\ 0.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00272}00272\ \ \ \ \ \textcolor{keywordflow}{if}(opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c}{stability}}\ >\ 1.0f)\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c}{stability}}\ =\ 1.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00273}00273\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00274}00274\ \ \ \ \ \textcolor{keywordtype}{float}\ mut\_pct\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga2f2b1be34ad4eb1bf3267237200cd6c6}{EVOLVE\_MUTATION\_MIN\_PCT}}\ +} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00275}00275\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga861c1c6a503c21441abcec0d57b848bc}{EVOLVE\_MUTATION\_MAX\_PCT}}\ -\/\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga2f2b1be34ad4eb1bf3267237200cd6c6}{EVOLVE\_MUTATION\_MIN\_PCT}})\ *\ loss\_ratio;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00276}00276\ \ \ \ \ \textcolor{keywordtype}{float}\ adaptive\_mut\ =\ mut\ *\ (mut\_pct\ /\ 100.0f);} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00277}00277\ \ \ \ \ \textcolor{keywordflow}{if}\ (adaptive\_mut\ <\ 0.0001f)\ adaptive\_mut\ =\ 0.0001f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00278}00278\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00279}00279\ \ \ \ \ \textcolor{comment}{//\ 3.\ Генерируем\ новое\ поколение}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00280}00280\ \ \ \ \ uint16\_t\ n\_elite\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga38607e23d9234524bc7de5869b15b8eb}{ELOVLE\_N\_ELITE\_CANDIDATE}};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00281}00281\ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ c\ =\ 0;\ c\ <\ n\_cand;\ c++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00282}00282\ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\ <\ n\_elite)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00283}00283\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_params;\ i++)} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00284}00284\ \ \ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[c][i]\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}}[c]][i];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00285}00285\ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[c]\ =\ 0.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00286}00286\ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00287}00287\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (uint16\_t\ i\ =\ 0;\ i\ <\ n\_params;\ i++)\ \{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00288}00288\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ inv\_randmax\ =\ 1.0f\ /\ (float)RAND\_MAX;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00289}00289\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{float}\ noise\ =\ ((float)rand()\ *\ inv\_randmax\ *\ 2.0f\ -\/\ 1.0f)\ *\ adaptive\_mut;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00290}00290\ \ \ \ \ \ \ \ \ \ \ uint16\_t\ parent\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\_idx}}[rand()\ \%\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}{n\_best}}];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00291}00291\ \ \ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[c][i]\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[parent][i]\ +\ noise;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00292}00292\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[c][i]\ <\ 0.0f)\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[c][i]\ =\ 0.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00293}00293\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[c][i]\ >\ 1.0f)\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[c][i]\ =\ 1.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00294}00294\ \ \ \ \ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00295}00295\ \ \ \ \ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{loss}}[c]\ =\ 0.0f;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00296}00296\ \ \ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00297}00297\ \ \ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00298}00298\ \ \ \ \ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}\ =\ 0;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00299}00299\ \ \ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00300}00300\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00301}00301\ \ \ \textcolor{comment}{//\ 4.\ Возвращаем\ параметры\ следующего\ кандидата}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00302}00302\ \ \ \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_l00303}00303\ \ \ \ \ params[i]\ =\ opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}}[opt-\/>\mbox{\hyperlink{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}{cand\_index}}][i];} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00304}00304\ \ \ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00305}00305\ \ \ \textcolor{keywordflow}{return}\ 0;} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00306}00306\ \}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00307}00307\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{//\ ENABLE\_EVOLVE\_OPTIMIZATION}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00308}00308\ \textcolor{comment}{//заглушки}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00309}00309\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00310}00310\ \ \ uint16\_t\ n\_params;\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00311}00311\ \ \ uint16\_t\ n\_cand;\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00312}00312\ \ \ uint16\_t\ n\_best;\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00313}00313\ \ \ \textcolor{keywordtype}{float}\ mutation\_amp;\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00314}00314\ \ \ \textcolor{keywordtype}{float}\ loss[0];\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00315}00315\ \ \ \textcolor{keywordtype}{float}\ candidates[0][0];\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00316}00316\ \}\ \mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}};} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00317}00317\ \textcolor{preprocessor}{\#define\ EvolveOptimizer\_Init(opt,\ n\_params,\ n\_cand,\ n\_best,\ mutation\_amp,\ start\_params)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00318}00318\ \textcolor{preprocessor}{\#define\ EvolveOptimizer\_Step(opt,\ params,\ LossFunc)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00319}00319\ \textcolor{preprocessor}{\#define\ PARAM\_SCALE(x,\ min\_val,\ max\_val)\ \ \ \ \ \ \ \ \ (x)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00320}00320\ \textcolor{preprocessor}{\#define\ PARAM\_UNSCALE(val,\ min\_val,\ max\_val)\ \ \ \ \ (val)}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00321}00321\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ ENABLE\_EVOLVE\_OPTIMIZATION}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00322}00322\ } +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00323}00323\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_EVOLVE\_OPTIMIZER\_H\_}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00324}00324\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00325}00325\ \textcolor{comment}{/**\ EVOLVE\_OPTIMIZER}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00326}00326\ \textcolor{comment}{\ \ *\ @\}}} +\DoxyCodeLine{\Hypertarget{evolve__optimizer_8h_source_l00327}00327\ \textcolor{comment}{\ \ */}} \end{DoxyCode} diff --git a/Doc/latex/files.tex b/Doc/latex/files.tex index 009943f..5ca56a4 100644 --- a/Doc/latex/files.tex +++ b/Doc/latex/files.tex @@ -1,21 +1,21 @@ \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}}{} -\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__defs_8h}{mylibs\+\_\+defs.\+h}} \\*Заголочный файл для дефайнов библиотеки My\+Libs\+General }{\pageref{mylibs__defs_8h}}{} -\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__include_8h}{mylibs\+\_\+include.\+h}} \\*Заголочный файл для всех библиотек }{\pageref{mylibs__include_8h}}{} -\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{trace_8h}{trace.\+h}} \\*Заголочный файл для работы с трассировкой }{\pageref{trace_8h}}{} -\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{trackers_8h}{trackers.\+h}} \\*Заголочный файл для работы с трекерами \doxylink{group___t_r_a_c_k_e_r_s}{Trackers defines} }{\pageref{trackers_8h}}{} -\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__flash_8c_source}{\+\_\+\+\_\+general\+\_\+flash.\+c}} }{\pageref{____general__flash_8c_source}}{} -\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__spi_8c_source}{\+\_\+\+\_\+general\+\_\+spi.\+c}} }{\pageref{____general__spi_8c_source}}{} -\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__uart_8c_source}{\+\_\+\+\_\+general\+\_\+uart.\+c}} }{\pageref{____general__uart_8c_source}}{} -\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{general__gpio_8c}{general\+\_\+gpio.\+c}} \\*Модуль для инициализации портов и работы с ними }{\pageref{general__gpio_8c}}{} -\item\contentsline{section}{E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{general__tim_8c}{general\+\_\+tim.\+c}} \\*Модуль для инициализации таймеров и работы с ними }{\pageref{general__tim_8c}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\mbox{\hyperlink{mainpage_8h_source}{mainpage.\+h}} }{\pageref{mainpage_8h_source}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__flash_8h_source}{\+\_\+\+\_\+general\+\_\+flash.\+h}} }{\pageref{____general__flash_8h_source}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}} }{\pageref{____general__spi_8h_source}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{____general__uart_8h_source}{\+\_\+\+\_\+general\+\_\+uart.\+h}} }{\pageref{____general__uart_8h_source}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}} \\*Заголочный файл для дефайнов битового доступа }{\pageref{bit__access_8h}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{evolve__optimizer_8h}{evolve\+\_\+optimizer.\+h}} \\*Заголовочный файл для адаптивного подбора параметров }{\pageref{evolve__optimizer_8h}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{general__gpio_8h}{general\+\_\+gpio.\+h}} \\*Заголовочный файл для модуля инициализации портов и работы с ними }{\pageref{general__gpio_8h}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{general__tim_8h}{general\+\_\+tim.\+h}} \\*Заголовочный файл для модуля инициализации таймеров и работы с ними }{\pageref{general__tim_8h}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__config_8h}{mylibs\+\_\+config.\+h}} \\*Конфигурации для библиотек My\+Libs }{\pageref{mylibs__config_8h}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__defs_8h}{mylibs\+\_\+defs.\+h}} \\*Заголочный файл для дефайнов библиотеки My\+Libs\+General }{\pageref{mylibs__defs_8h}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{mylibs__include_8h}{mylibs\+\_\+include.\+h}} \\*Заголочный файл для всех библиотек }{\pageref{mylibs__include_8h}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{trace_8h}{trace.\+h}} \\*Заголочный файл для работы с трассировкой }{\pageref{trace_8h}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{trackers_8h}{trackers.\+h}} \\*Заголочный файл для работы с трекерами \doxylink{group___t_r_a_c_k_e_r_s}{Trackers defines} }{\pageref{trackers_8h}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__flash_8c_source}{\+\_\+\+\_\+general\+\_\+flash.\+c}} }{\pageref{____general__flash_8c_source}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__spi_8c_source}{\+\_\+\+\_\+general\+\_\+spi.\+c}} }{\pageref{____general__spi_8c_source}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{____general__uart_8c_source}{\+\_\+\+\_\+general\+\_\+uart.\+c}} }{\pageref{____general__uart_8c_source}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{general__gpio_8c}{general\+\_\+gpio.\+c}} \\*Модуль для инициализации портов и работы с ними }{\pageref{general__gpio_8c}}{} +\item\contentsline{section}{F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/\mbox{\hyperlink{general__tim_8c}{general\+\_\+tim.\+c}} \\*Модуль для инициализации таймеров и работы с ними }{\pageref{general__tim_8c}}{} \end{DoxyCompactList} diff --git a/Doc/latex/general__gpio_8c.tex b/Doc/latex/general__gpio_8c.tex index af9a192..46422d9 100644 --- a/Doc/latex/general__gpio_8c.tex +++ b/Doc/latex/general__gpio_8c.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/general\+\_\+gpio.c File Reference} -\hypertarget{general__gpio_8c}{}\label{general__gpio_8c}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/general\+\_\+gpio.c File Reference} +\hypertarget{general__gpio_8c}{}\label{general__gpio_8c}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c}} Модуль для инициализации портов и работы с ними. @@ -10,7 +10,7 @@ Include dependency graph for general\+\_\+gpio.\+c\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{general__gpio_8c__incl} +\includegraphics[width=266pt]{general__gpio_8c__incl} \end{center} \end{figure} \doxysubsubsection*{Functions} diff --git a/Doc/latex/general__gpio_8c__incl.md5 b/Doc/latex/general__gpio_8c__incl.md5 index e665dcd..68c4ba4 100644 --- a/Doc/latex/general__gpio_8c__incl.md5 +++ b/Doc/latex/general__gpio_8c__incl.md5 @@ -1 +1 @@ -06087ea6fdcbd10af4ee99fd98be927c \ No newline at end of file +d6b4b5162b176a9d1f8fd88ea3e36d44 \ No newline at end of file diff --git a/Doc/latex/general__gpio_8c__incl.pdf b/Doc/latex/general__gpio_8c__incl.pdf index fd06f3c..f259800 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_8c_source.tex b/Doc/latex/general__gpio_8c_source.tex index 82049f2..97bdc9c 100644 --- a/Doc/latex/general__gpio_8c_source.tex +++ b/Doc/latex/general__gpio_8c_source.tex @@ -1,5 +1,5 @@ \doxysection{general\+\_\+gpio.\+c} -\hypertarget{general__gpio_8c_source}{}\label{general__gpio_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c}} +\hypertarget{general__gpio_8c_source}{}\label{general__gpio_8c_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_gpio.c}} \mbox{\hyperlink{general__gpio_8c}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{general__gpio_8c_source_l00001}00001\ \textcolor{comment}{/**\ }} diff --git a/Doc/latex/general__gpio_8h.tex b/Doc/latex/general__gpio_8h.tex index 59de573..2748149 100644 --- a/Doc/latex/general__gpio_8h.tex +++ b/Doc/latex/general__gpio_8h.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/general\+\_\+gpio.h File Reference} -\hypertarget{general__gpio_8h}{}\label{general__gpio_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/general\+\_\+gpio.h File Reference} +\hypertarget{general__gpio_8h}{}\label{general__gpio_8h}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h}} Заголовочный файл для модуля инициализации портов и работы с ними. @@ -10,7 +10,7 @@ Include dependency graph for general\+\_\+gpio.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{general__gpio_8h__incl} +\includegraphics[width=265pt]{general__gpio_8h__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+:\nopagebreak @@ -41,7 +41,7 @@ struct \mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Ty \#define \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067}{SW\+\_\+\+OFF}}~0 \begin{DoxyCompactList}\small\item\em Состояние пина при отжатой кнопке \end{DoxyCompactList}\item \#define \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga580b842096340b066c28b24d6b315be6}{GPIO\+\_\+\+TIM\+\_\+\+Alternate\+\_\+\+Mapping}}(INSTANCE) -\begin{DoxyCompactList}\small\item\em Маппинг альтернативной функции SPI между GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize} +\begin{DoxyCompactList}\small\item\em Маппинг альтернативной функции TIM между GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Enumerations} \begin{DoxyCompactItemize} \item diff --git a/Doc/latex/general__gpio_8h__dep__incl.md5 b/Doc/latex/general__gpio_8h__dep__incl.md5 index 0ee7ed1..56ec0dc 100644 --- a/Doc/latex/general__gpio_8h__dep__incl.md5 +++ b/Doc/latex/general__gpio_8h__dep__incl.md5 @@ -1 +1 @@ -cc9fcf511dcbb9aee8b46990f6151fda \ No newline at end of file +ad2bfd356854f9f0812ccb26fdf5c988 \ No newline at end of file diff --git a/Doc/latex/general__gpio_8h__dep__incl.pdf b/Doc/latex/general__gpio_8h__dep__incl.pdf index 23e831f..6b3454f 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.md5 b/Doc/latex/general__gpio_8h__incl.md5 index 4ec2cb9..e609b83 100644 --- a/Doc/latex/general__gpio_8h__incl.md5 +++ b/Doc/latex/general__gpio_8h__incl.md5 @@ -1 +1 @@ -c4bc3b9676509254c26d2cac446951d4 \ No newline at end of file +6f17442ee0a3e2ee4f9dbda2a2e7f4a9 \ No newline at end of file diff --git a/Doc/latex/general__gpio_8h__incl.pdf b/Doc/latex/general__gpio_8h__incl.pdf index ae0be16..f9043ee 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__gpio_8h_source.tex b/Doc/latex/general__gpio_8h_source.tex index b80d55a..70a6234 100644 --- a/Doc/latex/general__gpio_8h_source.tex +++ b/Doc/latex/general__gpio_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{general\+\_\+gpio.\+h} -\hypertarget{general__gpio_8h_source}{}\label{general__gpio_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h}} +\hypertarget{general__gpio_8h_source}{}\label{general__gpio_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_gpio.h}} \mbox{\hyperlink{general__gpio_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} @@ -126,7 +126,7 @@ \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00122}00122\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00123}00123\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00124}00124\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00125}00125\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00125}00125\ \textcolor{comment}{}\textcolor{comment}{/**\ }} \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00126}00126\ \textcolor{comment}{\ \ *\ @addtogroup\ MYLIBS\_GPIO\_GENERAL\ \ General\ tools}} \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00127}00127\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MY\_LIBS\_GPIO}} \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00128}00128\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Общие\ функции/макросы\ для\ работы\ с\ GPIO}} @@ -182,7 +182,7 @@ \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00178}00178\ \textcolor{comment}{\ \ *\ @\}}} \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00179}00179\ \textcolor{comment}{\ \ */}\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00180}00180\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00181}00181\ } +\DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00181}00181\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00182}00182\ } \DoxyCodeLine{\Hypertarget{general__gpio_8h_source_l00183}00183\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_GPIO\_GENERAL\_H\_}} diff --git a/Doc/latex/general__tim_8c.tex b/Doc/latex/general__tim_8c.tex index 3cdafc0..6127350 100644 --- a/Doc/latex/general__tim_8c.tex +++ b/Doc/latex/general__tim_8c.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/general\+\_\+tim.c File Reference} -\hypertarget{general__tim_8c}{}\label{general__tim_8c}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_tim.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_tim.c}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Src/general\+\_\+tim.c File Reference} +\hypertarget{general__tim_8c}{}\label{general__tim_8c}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_tim.c@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_tim.c}} Модуль для инициализации таймеров и работы с ними. @@ -10,7 +10,7 @@ Include dependency graph for general\+\_\+tim.\+c\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{general__tim_8c__incl} +\includegraphics[width=262pt]{general__tim_8c__incl} \end{center} \end{figure} \doxysubsubsection*{Functions} diff --git a/Doc/latex/general__tim_8c__incl.md5 b/Doc/latex/general__tim_8c__incl.md5 index 8497f91..696c0fd 100644 --- a/Doc/latex/general__tim_8c__incl.md5 +++ b/Doc/latex/general__tim_8c__incl.md5 @@ -1 +1 @@ -018b6018bdcb384d431e75597bba52d4 \ No newline at end of file +72a5e02c33b34ceb71e8065b44df034a \ No newline at end of file diff --git a/Doc/latex/general__tim_8c__incl.pdf b/Doc/latex/general__tim_8c__incl.pdf index bacd041..130e172 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_8c_source.tex b/Doc/latex/general__tim_8c_source.tex index 282ba62..06906f9 100644 --- a/Doc/latex/general__tim_8c_source.tex +++ b/Doc/latex/general__tim_8c_source.tex @@ -1,5 +1,5 @@ \doxysection{general\+\_\+tim.\+c} -\hypertarget{general__tim_8c_source}{}\label{general__tim_8c_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_tim.c@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_tim.c}} +\hypertarget{general__tim_8c_source}{}\label{general__tim_8c_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_tim.c@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Src/general\_tim.c}} \mbox{\hyperlink{general__tim_8c}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{general__tim_8c_source_l00001}00001\ \textcolor{comment}{/**\ }} diff --git a/Doc/latex/general__tim_8h.tex b/Doc/latex/general__tim_8h.tex index a7508f1..5e69f8f 100644 --- a/Doc/latex/general__tim_8h.tex +++ b/Doc/latex/general__tim_8h.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/general\+\_\+tim.h File Reference} -\hypertarget{general__tim_8h}{}\label{general__tim_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_tim.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_tim.h}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/general\+\_\+tim.h File Reference} +\hypertarget{general__tim_8h}{}\label{general__tim_8h}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_tim.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_tim.h}} Заголовочный файл для модуля инициализации таймеров и работы с ними. @@ -11,7 +11,7 @@ Include dependency graph for general\+\_\+tim.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{general__tim_8h__incl} +\includegraphics[width=260pt]{general__tim_8h__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+:\nopagebreak @@ -119,24 +119,22 @@ Definition in file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h -\label{doc-define-members} -\Hypertarget{general__tim_8h_doc-define-members} \doxysubsection{Macro Definition Documentation} -\Hypertarget{general__tim_8h_a867308f75c1be4f2090bcda3bcd900c9}\index{general\_tim.h@{general\_tim.h}!TIM\_IT\_CONF\_Pos@{TIM\_IT\_CONF\_Pos}} +\Hypertarget{general__tim_8h_a867308f75c1be4f2090bcda3bcd900c9}\label{general__tim_8h_a867308f75c1be4f2090bcda3bcd900c9} +\index{general\_tim.h@{general\_tim.h}!TIM\_IT\_CONF\_Pos@{TIM\_IT\_CONF\_Pos}} \index{TIM\_IT\_CONF\_Pos@{TIM\_IT\_CONF\_Pos}!general\_tim.h@{general\_tim.h}} \doxysubsubsection{\texorpdfstring{TIM\_IT\_CONF\_Pos}{TIM\_IT\_CONF\_Pos}} -{\footnotesize\ttfamily \label{general__tim_8h_a867308f75c1be4f2090bcda3bcd900c9} -\#define TIM\+\_\+\+IT\+\_\+\+CONF\+\_\+\+Pos~0} +{\footnotesize\ttfamily \#define TIM\+\_\+\+IT\+\_\+\+CONF\+\_\+\+Pos~0} Definition at line \mbox{\hyperlink{general__tim_8h_source_l00056}{56}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{general__tim_8h_a8c43257cbfd6ac70b6eb0839e47bbd07}\index{general\_tim.h@{general\_tim.h}!TIM\_IT\_CONF@{TIM\_IT\_CONF}} +\Hypertarget{general__tim_8h_a8c43257cbfd6ac70b6eb0839e47bbd07}\label{general__tim_8h_a8c43257cbfd6ac70b6eb0839e47bbd07} +\index{general\_tim.h@{general\_tim.h}!TIM\_IT\_CONF@{TIM\_IT\_CONF}} \index{TIM\_IT\_CONF@{TIM\_IT\_CONF}!general\_tim.h@{general\_tim.h}} \doxysubsubsection{\texorpdfstring{TIM\_IT\_CONF}{TIM\_IT\_CONF}} -{\footnotesize\ttfamily \label{general__tim_8h_a8c43257cbfd6ac70b6eb0839e47bbd07} -\#define TIM\+\_\+\+IT\+\_\+\+CONF~(1$<$$<$(TIM\+\_\+\+IT\+\_\+\+CONF\+\_\+\+Pos))} +{\footnotesize\ttfamily \#define TIM\+\_\+\+IT\+\_\+\+CONF~(1$<$$<$(TIM\+\_\+\+IT\+\_\+\+CONF\+\_\+\+Pos))} diff --git a/Doc/latex/general__tim_8h__dep__incl.md5 b/Doc/latex/general__tim_8h__dep__incl.md5 index 85cb58d..7a3703b 100644 --- a/Doc/latex/general__tim_8h__dep__incl.md5 +++ b/Doc/latex/general__tim_8h__dep__incl.md5 @@ -1 +1 @@ -48912ae69413105687efed9fcdd23d2d \ No newline at end of file +a485be779e2e5c082a1deb15eb121995 \ No newline at end of file diff --git a/Doc/latex/general__tim_8h__dep__incl.pdf b/Doc/latex/general__tim_8h__dep__incl.pdf index 7984a6b..e465df7 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.md5 b/Doc/latex/general__tim_8h__incl.md5 index e11dc17..7522afe 100644 --- a/Doc/latex/general__tim_8h__incl.md5 +++ b/Doc/latex/general__tim_8h__incl.md5 @@ -1 +1 @@ -72b7b62252ba432b33a3132214cb26dd \ No newline at end of file +7a5e6f29199b63105a7df21ee26a08f8 \ No newline at end of file diff --git a/Doc/latex/general__tim_8h__incl.pdf b/Doc/latex/general__tim_8h__incl.pdf index 99a1fb4..c44349e 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/general__tim_8h_source.tex b/Doc/latex/general__tim_8h_source.tex index 392329f..9e69885 100644 --- a/Doc/latex/general__tim_8h_source.tex +++ b/Doc/latex/general__tim_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{general\+\_\+tim.\+h} -\hypertarget{general__tim_8h_source}{}\label{general__tim_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_tim.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_tim.h}} +\hypertarget{general__tim_8h_source}{}\label{general__tim_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_tim.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/general\_tim.h}} \mbox{\hyperlink{general__tim_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} @@ -26,7 +26,7 @@ \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00022}00022\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00023}00023\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00024}00024\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00025}00025\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00025}00025\ \textcolor{comment}{}\textcolor{comment}{/**\ }} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00026}00026\ \textcolor{comment}{\ \ *\ @addtogroup\ TIM\_INIT\ Init\ defines}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00027}00027\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MYLIBS\_TIM\_GENERAL}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00028}00028\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Настройка\ таймеров}} @@ -52,12 +52,12 @@ \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00048}00048\ \textcolor{comment}{\ \ *\ @\}}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00049}00049\ \textcolor{comment}{\ \ */}\textcolor{preprocessor}{}\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00050}00050\ \textcolor{comment}{/////////////////////////-\/-\/-\/USER\ SETTINGS-\/-\/-\//////////////////////////}} -\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00051}00051\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}} +\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00051}00051\ \textcolor{comment}{}\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__defs_8h}{mylibs\_defs.h}}"{}}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00052}00052\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{general__gpio_8h}{general\_gpio.h}}"{}}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00053}00053\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00054}00054\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00055}00055\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////}} -\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00056}00056\ \textcolor{preprocessor}{\#define\ TIM\_IT\_CONF\_Pos\ \ \ \ \ \ \ \ \ \ \ 0}} +\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00056}00056\ \textcolor{comment}{}\textcolor{preprocessor}{\#define\ TIM\_IT\_CONF\_Pos\ \ \ \ \ \ \ \ \ \ \ 0}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00057}00057\ \textcolor{comment}{//\#define\ TIM\_PWM\_CONF\_Pos\ \ \ \ \ \ \ \ \ \ 1}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00058}00058\ \textcolor{comment}{//\#define\ TIM\_CLCK\_SRC\_CONF\_Pos\ \ \ \ \ 2}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00059}00059\ \textcolor{comment}{//\#define\ TIM\_SLAVE\_CONF\_Pos\ \ \ \ \ \ \ \ 3}} @@ -68,12 +68,12 @@ \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00064}00064\ \textcolor{comment}{//\#define\ TIM\_PWM\_CONF\ \ \ \ \ \ (1<<(TIM\_PWM\_Pos))}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00065}00065\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00066}00066\ \textcolor{comment}{////////////////////////////-\/-\/-\/DEFINES-\/-\/-\/////////////////////////////]}} -\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00067}00067\ } +\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00067}00067\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00068}00068\ } \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00069}00069\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00070}00070\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00071}00071\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}} -\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00072}00072\ \textcolor{comment}{/**}} +\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00072}00072\ \textcolor{comment}{}\textcolor{comment}{/**}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00073}00073\ \textcolor{comment}{\ \ *\ @brief\ Режим\ прерываний\ таймера}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00074}00074\ \textcolor{comment}{\ \ *\ @ingroup\ \ MYLIBS\_TIM\_GENERAL}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00075}00075\ \textcolor{comment}{\ \ */}} @@ -158,10 +158,10 @@ \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00154}00154\ \ \ } \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00155}00155\ \}\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\_EncoderTypeDef}};\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00156}00156\ \textcolor{comment}{///////////////////////-\/-\/-\/STRUCTURES\ \&\ ENUMS-\/-\/-\///////////////////////}} -\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00157}00157\ \textcolor{comment}{}} +\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00157}00157\ \textcolor{comment}{}\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00158}00158\ \textcolor{comment}{/////////////////////////////////////////////////////////////////////}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00159}00159\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00160}00160\ \textcolor{comment}{/**\ }} +\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00160}00160\ \textcolor{comment}{}\textcolor{comment}{/**\ }} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00161}00161\ \textcolor{comment}{\ \ *\ @addtogroup\ MYLIBS\_TIM\_OC\ PWM/OC\ Channels\ tools}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00162}00162\ \textcolor{comment}{\ \ *\ @ingroup\ \ \ \ MY\_LIBS\_TIM}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00163}00163\ \textcolor{comment}{\ \ *\ @brief\ \ \ \ \ \ Функции\ для\ инициализации\ базовых\ функций\ каналов\ таймера}} @@ -223,7 +223,7 @@ \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00219}00219\ \textcolor{comment}{\ \ *\ @\}}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00220}00220\ \textcolor{comment}{\ \ */}\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00221}00221\ \textcolor{comment}{///////////////////////////-\/-\/-\/FUNCTIONS-\/-\/-\////////////////////////////}} -\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00222}00222\ } +\DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00222}00222\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00223}00223\ } \DoxyCodeLine{\Hypertarget{general__tim_8h_source_l00224}00224\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_TIM\_GENERAL\_H\_}} 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 4038bb6..d4a1132 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{Bit access defines } +\doxysubsubsection{Bit access defines} \hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}{}\label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s}\index{Bit access defines@{Bit access defines}} @@ -26,13 +26,13 @@ union \mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def} \doxysubsubsubsubsection*{Macros} \begin{DoxyCompactItemize} \item -\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+) +\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}{uint8\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+ \begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint8\+\_\+t. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{uint16\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+) +\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}{uint16\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+ \begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint16\+\_\+t. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{uint32\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+) +\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}{uint32\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+ \begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint32\+\_\+t. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{uint64\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+) +\#define \mbox{\hyperlink{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}{uint64\+\_\+bit}}(\+\_\+uint8\+\_\+, \+\_\+bit\+\_\+)~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+ \begin{DoxyCompactList}\small\item\em Получить n-\/й бит из uint64\+\_\+t. \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -68,20 +68,13 @@ union \mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def} \item Доступ реализован через приведение к {\ttfamily union} с битовыми полями, поэтому это безопасный способ работы с отдельными битами без ручного сдвига и маскирования. \end{DoxyItemize} -\label{doc-define-members} -\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_doc-define-members} \doxysubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}\index{Bit access defines@{Bit access defines}!uint8\_bit@{uint8\_bit}} +\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396}\label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396} +\index{Bit access defines@{Bit access defines}!uint8\_bit@{uint8\_bit}} \index{uint8\_bit@{uint8\_bit}!Bit access defines@{Bit access defines}} \doxysubsubsubsubsection{\texorpdfstring{uint8\_bit}{uint8\_bit}} -{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga57dc3bb3472a66fc92312f89d42d2396} -\#define uint8\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define uint8\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+, }\item[{}]{\+\_\+bit\+\_\+ }\end{DoxyParamCaption})~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint8___bit_type_def}{uint8\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_} - -\end{DoxyCode} Получить n-\/й бит из uint8\+\_\+t. @@ -103,17 +96,12 @@ union \mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00129}{129}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}\index{Bit access defines@{Bit access defines}!uint16\_bit@{uint16\_bit}} +\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086}\label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086} +\index{Bit access defines@{Bit access defines}!uint16\_bit@{uint16\_bit}} \index{uint16\_bit@{uint16\_bit}!Bit access defines@{Bit access defines}} \doxysubsubsubsubsection{\texorpdfstring{uint16\_bit}{uint16\_bit}} -{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga6a122b536ad99ae611c8cf01437af086} -\#define uint16\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define uint16\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+, }\item[{}]{\+\_\+bit\+\_\+ }\end{DoxyParamCaption})~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint16___bit_type_def}{uint16\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_} - -\end{DoxyCode} Получить n-\/й бит из uint16\+\_\+t. @@ -135,17 +123,12 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00129}{129}} of file Definition at line \mbox{\hyperlink{bit__access_8h_source_l00137}{137}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}\index{Bit access defines@{Bit access defines}!uint32\_bit@{uint32\_bit}} +\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1}\label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1} +\index{Bit access defines@{Bit access defines}!uint32\_bit@{uint32\_bit}} \index{uint32\_bit@{uint32\_bit}!Bit access defines@{Bit access defines}} \doxysubsubsubsubsection{\texorpdfstring{uint32\_bit}{uint32\_bit}} -{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_gafaa2080168b1b6f7281e8bfabab022d1} -\#define uint32\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define uint32\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+, }\item[{}]{\+\_\+bit\+\_\+ }\end{DoxyParamCaption})~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint32___bit_type_def}{uint32\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_} - -\end{DoxyCode} Получить n-\/й бит из uint32\+\_\+t. @@ -167,17 +150,12 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00137}{137}} of file Definition at line \mbox{\hyperlink{bit__access_8h_source_l00145}{145}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}\index{Bit access defines@{Bit access defines}!uint64\_bit@{uint64\_bit}} +\Hypertarget{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a}\label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a} +\index{Bit access defines@{Bit access defines}!uint64\_bit@{uint64\_bit}} \index{uint64\_bit@{uint64\_bit}!Bit access defines@{Bit access defines}} \doxysubsubsubsubsection{\texorpdfstring{uint64\_bit}{uint64\_bit}} -{\footnotesize\ttfamily \label{group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s_ga47eb69ce9330a1c73fe8031240f02f0a} -\#define uint64\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+}{, }\item[{}]{\+\_\+bit\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define uint64\+\_\+bit(\begin{DoxyParamCaption}\item[{}]{\+\_\+uint8\+\_\+, }\item[{}]{\+\_\+bit\+\_\+ }\end{DoxyParamCaption})~(\texorpdfstring{$\ast$}{*}(\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\+\_\+\+Bit\+Type\+Def}} \texorpdfstring{$\ast$}{*})(\&(\+\_\+uint8\+\_\+))).bit.\+bit\#\#\+\_\+bit\+\_\+} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(*(\mbox{\hyperlink{unionuint64___bit_type_def}{uint64\_BitTypeDef}}\ *)(\&(\_uint8\_))).bit.bit\#\#\_bit\_} - -\end{DoxyCode} Получить n-\/й бит из uint64\+\_\+t. 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 fce705b..e127538 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{Delays defines } +\doxysubsubsection{Delays defines} \hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s}{}\label{group___d_e_l_a_y_s___d_e_f_i_n_e_s}\index{Delays defines@{Delays defines}} @@ -15,13 +15,13 @@ Collaboration diagram for Delays defines\+:\nopagebreak \doxysubsubsubsubsection*{Macros} \begin{DoxyCompactItemize} \item -\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{ms\+Delay}}(\+\_\+ms\+\_\+) +\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{ms\+Delay}}(\+\_\+ms\+\_\+)~HAL\+\_\+\+Delay(\+\_\+ms\+\_\+) \begin{DoxyCompactList}\small\item\em Задержка на указанное количество миллисекунд. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start}}(\+\_\+pvar\+\_\+) +\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start}}(\+\_\+pvar\+\_\+)~\texorpdfstring{$\ast$}{*}(\+\_\+pvar\+\_\+) = HAL\+\_\+\+Get\+Tick() \begin{DoxyCompactList}\small\item\em Начать отсчет задержки. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{ms\+Delay\+While\+Active}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+) +\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{ms\+Delay\+While\+Active}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+)~(HAL\+\_\+\+Get\+Tick() -\/ \texorpdfstring{$\ast$}{*}(\+\_\+pvar\+\_\+) $<$ \+\_\+ms\+\_\+) \begin{DoxyCompactList}\small\item\em Проверяет, активна ли задержка. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+) +\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+)~(HAL\+\_\+\+Get\+Tick() -\/ \texorpdfstring{$\ast$}{*}(\+\_\+pvar\+\_\+) $>$= \+\_\+ms\+\_\+) \begin{DoxyCompactList}\small\item\em Проверяет, завершилась ли задержка. \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -36,20 +36,13 @@ Collaboration diagram for Delays defines\+:\nopagebreak \item \doxylink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done} — проверка, завершена ли задержка. Эти макросы удобны для реализации неблокирующих задержек. \end{DoxyItemize} -\label{doc-define-members} -\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_doc-define-members} \doxysubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}\index{Delays defines@{Delays defines}!msDelay@{msDelay}} +\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}\label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479} +\index{Delays defines@{Delays defines}!msDelay@{msDelay}} \index{msDelay@{msDelay}!Delays defines@{Delays defines}} \doxysubsubsubsubsection{\texorpdfstring{msDelay}{msDelay}} -{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479} -\#define ms\+Delay(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define ms\+Delay(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+ }\end{DoxyParamCaption})~HAL\+\_\+\+Delay(\+\_\+ms\+\_\+)} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{HAL\_Delay(\_ms\_)} - -\end{DoxyCode} Задержка на указанное количество миллисекунд. @@ -66,17 +59,12 @@ Collaboration diagram for Delays defines\+:\nopagebreak 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}} +\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}\label{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}} \doxysubsubsubsubsection{\texorpdfstring{msDelayStart}{msDelayStart}} -{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25} -\#define ms\+Delay\+Start(\begin{DoxyParamCaption}\item[{}]{\+\_\+pvar\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define ms\+Delay\+Start(\begin{DoxyParamCaption}\item[{}]{\+\_\+pvar\+\_\+ }\end{DoxyParamCaption})~\texorpdfstring{$\ast$}{*}(\+\_\+pvar\+\_\+) = HAL\+\_\+\+Get\+Tick()} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{*(\_pvar\_)\ =\ HAL\_GetTick()} - -\end{DoxyCode} Начать отсчет задержки. @@ -92,17 +80,12 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00082}{82}} of file 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}} +\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}\label{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}} \doxysubsubsubsubsection{\texorpdfstring{msDelayWhileActive}{msDelayWhileActive}} -{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85} -\#define ms\+Delay\+While\+Active(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+}{, }\item[{}]{\+\_\+pvar\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define ms\+Delay\+While\+Active(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+, }\item[{}]{\+\_\+pvar\+\_\+ }\end{DoxyParamCaption})~(HAL\+\_\+\+Get\+Tick() -\/ \texorpdfstring{$\ast$}{*}(\+\_\+pvar\+\_\+) $<$ \+\_\+ms\+\_\+)} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(HAL\_GetTick()\ -\/\ *(\_pvar\_)\ <\ \_ms\_)} - -\end{DoxyCode} Проверяет, активна ли задержка. @@ -132,17 +115,12 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00094}{94}} of file 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}} +\Hypertarget{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}\label{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}} \doxysubsubsubsubsection{\texorpdfstring{msDelayWaitDone}{msDelayWaitDone}} -{\footnotesize\ttfamily \label{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518} -\#define ms\+Delay\+Wait\+Done(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+}{, }\item[{}]{\+\_\+pvar\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define ms\+Delay\+Wait\+Done(\begin{DoxyParamCaption}\item[{}]{\+\_\+ms\+\_\+, }\item[{}]{\+\_\+pvar\+\_\+ }\end{DoxyParamCaption})~(HAL\+\_\+\+Get\+Tick() -\/ \texorpdfstring{$\ast$}{*}(\+\_\+pvar\+\_\+) $>$= \+\_\+ms\+\_\+)} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(HAL\_GetTick()\ -\/\ *(\_pvar\_)\ >=\ \_ms\_)} - -\end{DoxyCode} Проверяет, завершилась ли задержка. 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 c4cbba2..54906b7 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{Error Handler defines } +\doxysubsubsection{Error Handler defines} \hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}{}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s}\index{Error Handler defines@{Error Handler defines}} @@ -15,17 +15,17 @@ Collaboration diagram for Error Handler defines\+:\nopagebreak \doxysubsubsubsubsection*{Macros} \begin{DoxyCompactItemize} \item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{My\+Libs\+\_\+\+Error\+\_\+\+Handler}}(params) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{My\+Libs\+\_\+\+Error\+\_\+\+Handler}}(params)~Error\+\_\+\+Handler(params) \begin{DoxyCompactList}\small\item\em Error\+\_\+\+Handler который будет вызыватся в библиотеке \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}{check\+\_\+null\+\_\+ptr\+\_\+1}}(p1) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}{check\+\_\+null\+\_\+ptr\+\_\+1}}(p1)~(p1 == NULL) \begin{DoxyCompactList}\small\item\em Проверить один указатель на NULL. \end{DoxyCompactList}\item -\#define \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}}(p1, p2) +\#define \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}}(p1, p2)~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& p2 == NULL)) \begin{DoxyCompactList}\small\item\em Проверить два указателя на NULL. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}{check\+\_\+null\+\_\+ptr\+\_\+3}}(p1, p2, p3) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}{check\+\_\+null\+\_\+ptr\+\_\+3}}(p1, p2, p3)~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& ((p2 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p2 != NULL \&\& p3 == NULL)))) \begin{DoxyCompactList}\small\item\em Проверить три указателя на NULL. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}{check\+\_\+null\+\_\+ptr\+\_\+4}}(p1, p2, p3, p4) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}{check\+\_\+null\+\_\+ptr\+\_\+4}}(p1, p2, p3, p4)~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& ((p2 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p2 != NULL \&\& ((p3 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p3 != NULL \&\& p4 == NULL)))))) \begin{DoxyCompactList}\small\item\em Проверить четыре указателя на NULL. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}{check\+\_\+null\+\_\+ptr\+\_\+5}}(p1, p2, p3, p4, p5) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}{check\+\_\+null\+\_\+ptr\+\_\+5}}(p1, p2, p3, p4, p5)~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& ((p2 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p2 != NULL \&\& ((p3 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p3 != NULL \&\& ((p4 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p4 != NULL \&\& p5 == NULL)))))))) \begin{DoxyCompactList}\small\item\em Проверить пять указателей на NULL. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsubsubsection*{Functions} \begin{DoxyCompactItemize} @@ -40,20 +40,13 @@ void {\bfseries Error\+\_\+\+Handler} (void) -\label{doc-define-members} -\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_doc-define-members} \doxysubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}\index{Error Handler defines@{Error Handler defines}!MyLibs\_Error\_Handler@{MyLibs\_Error\_Handler}} +\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f} +\index{Error Handler defines@{Error Handler defines}!MyLibs\_Error\_Handler@{MyLibs\_Error\_Handler}} \index{MyLibs\_Error\_Handler@{MyLibs\_Error\_Handler}!Error Handler defines@{Error Handler defines}} \doxysubsubsubsubsection{\texorpdfstring{MyLibs\_Error\_Handler}{MyLibs\_Error\_Handler}} -{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f} -\#define My\+Libs\+\_\+\+Error\+\_\+\+Handler(\begin{DoxyParamCaption}\item[{}]{params}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define My\+Libs\+\_\+\+Error\+\_\+\+Handler(\begin{DoxyParamCaption}\item[{}]{params }\end{DoxyParamCaption})~Error\+\_\+\+Handler(params)} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{Error\_Handler(params)} - -\end{DoxyCode} Error\+\_\+\+Handler который будет вызыватся в библиотеке @@ -62,17 +55,12 @@ Error\+\_\+\+Handler который будет вызыватся в библи Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00031}{31}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. -\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_1@{check\_null\_ptr\_1}} +\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9} +\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_1@{check\_null\_ptr\_1}} \index{check\_null\_ptr\_1@{check\_null\_ptr\_1}!Error Handler defines@{Error Handler defines}} \doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_1}{check\_null\_ptr\_1}} -{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9} -\#define check\+\_\+null\+\_\+ptr\+\_\+1(\begin{DoxyParamCaption}\item[{}]{p1}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define check\+\_\+null\+\_\+ptr\+\_\+1(\begin{DoxyParamCaption}\item[{}]{p1 }\end{DoxyParamCaption})~(p1 == NULL)} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(p1\ ==\ NULL)} - -\end{DoxyCode} Проверить один указатель на NULL. @@ -81,17 +69,12 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00031}{31}} of file Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00038}{38}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. -\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_2@{check\_null\_ptr\_2}} +\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3} +\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_2@{check\_null\_ptr\_2}} \index{check\_null\_ptr\_2@{check\_null\_ptr\_2}!Error Handler defines@{Error Handler defines}} \doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_2}{check\_null\_ptr\_2}} -{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga27b363f333cacdccc15f5174e096b5b3} -\#define check\+\_\+null\+\_\+ptr\+\_\+2(\begin{DoxyParamCaption}\item[{}]{p1}{, }\item[{}]{p2}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define check\+\_\+null\+\_\+ptr\+\_\+2(\begin{DoxyParamCaption}\item[{}]{p1, }\item[{}]{p2 }\end{DoxyParamCaption})~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& p2 == NULL))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ p2\ ==\ NULL))} - -\end{DoxyCode} Проверить два указателя на NULL. @@ -100,17 +83,12 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00038}{38}} of file Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00041}{41}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. -\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_3@{check\_null\_ptr\_3}} +\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2} +\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_3@{check\_null\_ptr\_3}} \index{check\_null\_ptr\_3@{check\_null\_ptr\_3}!Error Handler defines@{Error Handler defines}} \doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_3}{check\_null\_ptr\_3}} -{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2} -\#define check\+\_\+null\+\_\+ptr\+\_\+3(\begin{DoxyParamCaption}\item[{}]{p1}{, }\item[{}]{p2}{, }\item[{}]{p3}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define check\+\_\+null\+\_\+ptr\+\_\+3(\begin{DoxyParamCaption}\item[{}]{p1, }\item[{}]{p2, }\item[{}]{p3 }\end{DoxyParamCaption})~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& ((p2 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p2 != NULL \&\& p3 == NULL))))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ ((p2\ ==\ NULL)\ ||\ (p2\ !=\ NULL\ \&\&\ p3\ ==\ NULL))))} - -\end{DoxyCode} Проверить три указателя на NULL. @@ -119,17 +97,12 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00041}{41}} of file Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00044}{44}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. -\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_4@{check\_null\_ptr\_4}} +\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254} +\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_4@{check\_null\_ptr\_4}} \index{check\_null\_ptr\_4@{check\_null\_ptr\_4}!Error Handler defines@{Error Handler defines}} \doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_4}{check\_null\_ptr\_4}} -{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254} -\#define check\+\_\+null\+\_\+ptr\+\_\+4(\begin{DoxyParamCaption}\item[{}]{p1}{, }\item[{}]{p2}{, }\item[{}]{p3}{, }\item[{}]{p4}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define check\+\_\+null\+\_\+ptr\+\_\+4(\begin{DoxyParamCaption}\item[{}]{p1, }\item[{}]{p2, }\item[{}]{p3, }\item[{}]{p4 }\end{DoxyParamCaption})~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& ((p2 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p2 != NULL \&\& ((p3 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p3 != NULL \&\& p4 == NULL))))))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ ((p2\ ==\ NULL)\ ||\ (p2\ !=\ NULL\ \&\&\ ((p3\ ==\ NULL)\ ||\ (p3\ !=\ NULL\ \&\&\ p4\ ==\ NULL))))))} - -\end{DoxyCode} Проверить четыре указателя на NULL. @@ -138,17 +111,12 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00044}{44}} of file Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00047}{47}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}. -\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_5@{check\_null\_ptr\_5}} +\Hypertarget{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}\label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490} +\index{Error Handler defines@{Error Handler defines}!check\_null\_ptr\_5@{check\_null\_ptr\_5}} \index{check\_null\_ptr\_5@{check\_null\_ptr\_5}!Error Handler defines@{Error Handler defines}} \doxysubsubsubsubsection{\texorpdfstring{check\_null\_ptr\_5}{check\_null\_ptr\_5}} -{\footnotesize\ttfamily \label{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490} -\#define check\+\_\+null\+\_\+ptr\+\_\+5(\begin{DoxyParamCaption}\item[{}]{p1}{, }\item[{}]{p2}{, }\item[{}]{p3}{, }\item[{}]{p4}{, }\item[{}]{p5}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define check\+\_\+null\+\_\+ptr\+\_\+5(\begin{DoxyParamCaption}\item[{}]{p1, }\item[{}]{p2, }\item[{}]{p3, }\item[{}]{p4, }\item[{}]{p5 }\end{DoxyParamCaption})~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& ((p2 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p2 != NULL \&\& ((p3 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p3 != NULL \&\& ((p4 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p4 != NULL \&\& p5 == NULL))))))))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{((p1\ ==\ NULL)\ ||\ (p1\ !=\ NULL\ \&\&\ ((p2\ ==\ NULL)\ ||\ (p2\ !=\ NULL\ \&\&\ ((p3\ ==\ NULL)\ ||\ (p3\ !=\ NULL\ \&\&\ ((p4\ ==\ NULL)\ ||\ (p4\ !=\ NULL\ \&\&\ p5\ ==\ NULL))))))))} - -\end{DoxyCode} Проверить пять указателей на NULL. 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 index e26da1c..82a20c6 100644 --- 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{Evolve configs } +\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}} @@ -28,14 +28,12 @@ Collaboration diagram for Evolve configs\+:\nopagebreak -\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}} +\Hypertarget{group___e_v_o_l_v_e___c_o_n_f_i_g_ga2cac097081444a7a9b040f4b11550e47}\label{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} +{\footnotesize\ttfamily \#define ENABLE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZATION} @@ -45,11 +43,11 @@ Collaboration diagram for Evolve configs\+:\nopagebreak 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}} +\Hypertarget{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}\label{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} +{\footnotesize\ttfamily \#define EVOLVE\+\_\+\+MAX\+\_\+\+PARAMS~20} @@ -59,11 +57,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00064}{64}} of fil 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}} +\Hypertarget{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}\label{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} +{\footnotesize\ttfamily \#define EVOLVE\+\_\+\+MAX\+\_\+\+CANDIDATES~100} 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 index 0ca1115..5d69cd9 100644 --- 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{Evolve optimizer } +\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}} @@ -20,18 +20,24 @@ struct \mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \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}\item -\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time}}() -\begin{DoxyCompactList}\small\item\em Локальное время \end{DoxyCompactList}\end{DoxyCompactItemize} +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}{PARAM\+\_\+\+SCALE}}(x, min\+\_\+val, max\+\_\+val)~(((float)(x) -\/ (float)(min\+\_\+val)) / ((float)(max\+\_\+val) -\/ (float)(min\+\_\+val))) +\begin{DoxyCompactList}\small\item\em Линейное масштабирование x из диапазона \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]} в диапазон \mbox{[}0, 1) \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}{PARAM\+\_\+\+UNSCALE}}(val, min\+\_\+val, max\+\_\+val)~(((float)(val)) \texorpdfstring{$\ast$}{*} ((float)(max\+\_\+val) -\/ (float)(min\+\_\+val)) + (float)(min\+\_\+val)) +\begin{DoxyCompactList}\small\item\em Обратное линейное масштабирование значения из \mbox{[}0, 1) в диапазон \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]}. \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653}{local\+\_\+time}}()~HAL\+\_\+\+Get\+Tick() +\begin{DoxyCompactList}\small\item\em Локальное время \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga2f2b1be34ad4eb1bf3267237200cd6c6}{EVOLVE\+\_\+\+MUTATION\+\_\+\+MIN\+\_\+\+PCT}}~10 +\begin{DoxyCompactList}\small\item\em Минимальная мутация (в процентах от Loss) \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga861c1c6a503c21441abcec0d57b848bc}{EVOLVE\+\_\+\+MUTATION\+\_\+\+MAX\+\_\+\+PCT}}~100 +\begin{DoxyCompactList}\small\item\em Максимальная мутация (в процентах от Loss) \end{DoxyCompactList}\item +\#define \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga38607e23d9234524bc7de5869b15b8eb}{ELOVLE\+\_\+\+N\+\_\+\+ELITE\+\_\+\+CANDIDATE}}~2 +\begin{DoxyCompactList}\small\item\em Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2) \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsubsubsection*{Functions} \begin{DoxyCompactItemize} \item -\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gadaf3a90724197e1737d5c70c7bcc75e1}{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) +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga4e3ea118b5b9068619c57724a925ba21}{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, float mutation\+\_\+amp, float \texorpdfstring{$\ast$}{*}start\+\_\+params) \begin{DoxyCompactList}\small\item\em Инициализация эволюционного оптимизатора. \end{DoxyCompactList}\item -\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga75acd71c85d4e60dc0eb31bc5780086a}{Evolve\+Optimizer\+\_\+\+Step}} (\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}opt, int32\+\_\+t \texorpdfstring{$\ast$}{*}params, int32\+\_\+t loss) +\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaef44a1f3298514569cc2b396a92101ef}{Evolve\+Optimizer\+\_\+\+Step}} (\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}opt, float \texorpdfstring{$\ast$}{*}params, float loss) \begin{DoxyCompactList}\small\item\em Один шаг эволюционного оптимизатора. \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -51,6 +57,9 @@ struct \mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \item \doxylink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga2cac097081444a7a9b040f4b11550e47}{ENABLE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZATION} -\/ Включить оптимизацию параметров Если библиотека отключена \doxylink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga2cac097081444a7a9b040f4b11550e47}{ENABLE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZATION}, то вставляются заглушки, никак не влияющие на параметры и остальную программу \item \doxylink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga80d6162495fc3776d8902610657d4fee}{EVOLVE\+\_\+\+MAX\+\_\+\+PARAMS} -\/ Максимальное количество параметров \item \doxylink{group___e_v_o_l_v_e___c_o_n_f_i_g_ga7c1396e5c95c766afccdb45cbfcf5971}{EVOLVE\+\_\+\+MAX\+\_\+\+CANDIDATES} -\/ Максимальное количество кандидатов для обучения +\item (опционально) \doxylink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga2f2b1be34ad4eb1bf3267237200cd6c6}{EVOLVE\+\_\+\+MUTATION\+\_\+\+MIN\+\_\+\+PCT} -\/ Минимальная мутация в процентах от Loss (по умолчанию 10\%) +\item (опционально) \doxylink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga861c1c6a503c21441abcec0d57b848bc}{EVOLVE\+\_\+\+MUTATION\+\_\+\+MAX\+\_\+\+PCT} -\/ Максимальная мутация в процентах от Loss (по умолчанию 100\%) +\item (опционально) \doxylink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga38607e23d9234524bc7de5869b15b8eb}{ELOVLE\+\_\+\+N\+\_\+\+ELITE\+\_\+\+CANDIDATE} -\/ Количество кандидатов, которые проходят в поколение без изменений \end{DoxyItemize} \begin{DoxyParagraph}{Пример использования\+:} @@ -60,8 +69,8 @@ struct \mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \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\ \ \ \ \ (PARAM\_SCALE\_Q16(0.1,\ 0,\ 1))}} -\DoxyCodeLine{int32\_t\ params[N\_PARAMS];} +\DoxyCodeLine{\textcolor{preprocessor}{\#define\ MUTATION\ \ \ \ \ \ \ \ 0.1f}} +\DoxyCodeLine{\textcolor{keywordtype}{float}\ params[N\_PARAMS];} \DoxyCodeLine{\mbox{\hyperlink{struct_evolve_optimizer__t}{EvolveOptimizer\_t}}\ optimizer;} \DoxyCodeLine{} \DoxyCodeLine{\textcolor{comment}{//\ Формирование\ параметров}} @@ -69,99 +78,123 @@ struct \mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \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{params[0]\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}{PARAM\_SCALE}}(param\_u16,\ \ 0.0f,\ \ \ 1000.0f);} +\DoxyCodeLine{params[1]\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}{PARAM\_SCALE}}(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_ga83abbcabaff9111c03ae2475ee72ea3e}{PARAM\_SCALE}}(param\_u8,\ \ \ 10.0f,\ \ 100.0f);} +\DoxyCodeLine{params[3]\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}{PARAM\_SCALE}}(param\_i16,\ \ 500.0f,\ 5000.0f);} \DoxyCodeLine{} \DoxyCodeLine{\textcolor{comment}{//\ Инициалиазция}} -\DoxyCodeLine{\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gadaf3a90724197e1737d5c70c7bcc75e1}{EvolveOptimizer\_Init}}(\&optimizer,\ N\_PARAMS,\ N\_CANDIDATES,\ N\_BEST,\ IQ\_MUTATION,\ params);} +\DoxyCodeLine{\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga4e3ea118b5b9068619c57724a925ba21}{EvolveOptimizer\_Init}}(\&optimizer,\ N\_PARAMS,\ N\_CANDIDATES,\ N\_BEST,\ 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_ga75acd71c85d4e60dc0eb31bc5780086a}{EvolveOptimizer\_Step}}(\&optimizer,\ params,\ loss);} +\DoxyCodeLine{\textcolor{keywordtype}{float}\ loss\ =\ calc\_loss();\ \textcolor{comment}{//\ расчет\ эффективности\ параметров\ (от\ 0\ до\ 1)}} +\DoxyCodeLine{\mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaef44a1f3298514569cc2b396a92101ef}{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);} +\DoxyCodeLine{param\_u16\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}{PARAM\_UNSCALE}}(params[0],\ \ 0.0f,\ \ \ 1000.0f);} +\DoxyCodeLine{param\_f\ \ \ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}{PARAM\_UNSCALE}}(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_gaa1d5510fe5f0bd989473f3ebe324bde3}{PARAM\_UNSCALE}}(params[2],\ \ 10.0f,\ \ 100.0f);} +\DoxyCodeLine{param\_i16\ =\ \mbox{\hyperlink{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}{PARAM\_UNSCALE}}(params[3],\ \ 500.0f,\ 5000.0f);} \end{DoxyCode} + ~\newline \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) +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e}\label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga83abbcabaff9111c03ae2475ee72ea3e} +\index{Evolve optimizer@{Evolve optimizer}!PARAM\_SCALE@{PARAM\_SCALE}} +\index{PARAM\_SCALE@{PARAM\_SCALE}!Evolve optimizer@{Evolve optimizer}} +\doxysubsubsubsubsection{\texorpdfstring{PARAM\_SCALE}{PARAM\_SCALE}} +{\footnotesize\ttfamily \#define PARAM\+\_\+\+SCALE(\begin{DoxyParamCaption}\item[{}]{x, }\item[{}]{min\+\_\+val, }\item[{}]{max\+\_\+val }\end{DoxyParamCaption})~(((float)(x) -\/ (float)(min\+\_\+val)) / ((float)(max\+\_\+val) -\/ (float)(min\+\_\+val)))} -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00071}{71}} 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{]}. +Линейное масштабирование x из диапазона \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]} в диапазон \mbox{[}0, 1) -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00077}{77}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00073}{73}} 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_ga9c853b02c22f26023c34d1d404b6d653}\index{Evolve optimizer@{Evolve optimizer}!local\_time@{local\_time}} +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3}\label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaa1d5510fe5f0bd989473f3ebe324bde3} +\index{Evolve optimizer@{Evolve optimizer}!PARAM\_UNSCALE@{PARAM\_UNSCALE}} +\index{PARAM\_UNSCALE@{PARAM\_UNSCALE}!Evolve optimizer@{Evolve optimizer}} +\doxysubsubsubsubsection{\texorpdfstring{PARAM\_UNSCALE}{PARAM\_UNSCALE}} +{\footnotesize\ttfamily \#define PARAM\+\_\+\+UNSCALE(\begin{DoxyParamCaption}\item[{}]{val, }\item[{}]{min\+\_\+val, }\item[{}]{max\+\_\+val }\end{DoxyParamCaption})~(((float)(val)) \texorpdfstring{$\ast$}{*} ((float)(max\+\_\+val) -\/ (float)(min\+\_\+val)) + (float)(min\+\_\+val))} + + + +Обратное линейное масштабирование значения из \mbox{[}0, 1) в диапазон \mbox{[}min\+\_\+val, max\+\_\+val\mbox{]}. + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00079}{79}} 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_ga9c853b02c22f26023c34d1d404b6d653}\label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653} +\index{Evolve optimizer@{Evolve optimizer}!local\_time@{local\_time}} \index{local\_time@{local\_time}!Evolve optimizer@{Evolve optimizer}} \doxysubsubsubsubsection{\texorpdfstring{local\_time}{local\_time}} -{\footnotesize\ttfamily \label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga9c853b02c22f26023c34d1d404b6d653} -\#define local\+\_\+time(\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define local\+\_\+time(\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})~HAL\+\_\+\+Get\+Tick()} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{HAL\_GetTick()} - -\end{DoxyCode} Локальное время -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00081}{81}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00083}{83}} 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_ga2f2b1be34ad4eb1bf3267237200cd6c6}\label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga2f2b1be34ad4eb1bf3267237200cd6c6} +\index{Evolve optimizer@{Evolve optimizer}!EVOLVE\_MUTATION\_MIN\_PCT@{EVOLVE\_MUTATION\_MIN\_PCT}} +\index{EVOLVE\_MUTATION\_MIN\_PCT@{EVOLVE\_MUTATION\_MIN\_PCT}!Evolve optimizer@{Evolve optimizer}} +\doxysubsubsubsubsection{\texorpdfstring{EVOLVE\_MUTATION\_MIN\_PCT}{EVOLVE\_MUTATION\_MIN\_PCT}} +{\footnotesize\ttfamily \#define EVOLVE\+\_\+\+MUTATION\+\_\+\+MIN\+\_\+\+PCT~10} + + + +Минимальная мутация (в процентах от Loss) + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00089}{89}} 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_ga861c1c6a503c21441abcec0d57b848bc}\label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga861c1c6a503c21441abcec0d57b848bc} +\index{Evolve optimizer@{Evolve optimizer}!EVOLVE\_MUTATION\_MAX\_PCT@{EVOLVE\_MUTATION\_MAX\_PCT}} +\index{EVOLVE\_MUTATION\_MAX\_PCT@{EVOLVE\_MUTATION\_MAX\_PCT}!Evolve optimizer@{Evolve optimizer}} +\doxysubsubsubsubsection{\texorpdfstring{EVOLVE\_MUTATION\_MAX\_PCT}{EVOLVE\_MUTATION\_MAX\_PCT}} +{\footnotesize\ttfamily \#define EVOLVE\+\_\+\+MUTATION\+\_\+\+MAX\+\_\+\+PCT~100} + + + +Максимальная мутация (в процентах от Loss) + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00092}{92}} 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_ga38607e23d9234524bc7de5869b15b8eb}\label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga38607e23d9234524bc7de5869b15b8eb} +\index{Evolve optimizer@{Evolve optimizer}!ELOVLE\_N\_ELITE\_CANDIDATE@{ELOVLE\_N\_ELITE\_CANDIDATE}} +\index{ELOVLE\_N\_ELITE\_CANDIDATE@{ELOVLE\_N\_ELITE\_CANDIDATE}!Evolve optimizer@{Evolve optimizer}} +\doxysubsubsubsubsection{\texorpdfstring{ELOVLE\_N\_ELITE\_CANDIDATE}{ELOVLE\_N\_ELITE\_CANDIDATE}} +{\footnotesize\ttfamily \#define ELOVLE\+\_\+\+N\+\_\+\+ELITE\+\_\+\+CANDIDATE~2} + + + +Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2) + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00095}{95}} 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_gadaf3a90724197e1737d5c70c7bcc75e1}\index{Evolve optimizer@{Evolve optimizer}!EvolveOptimizer\_Init@{EvolveOptimizer\_Init}} +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga4e3ea118b5b9068619c57724a925ba21}\label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_ga4e3ea118b5b9068619c57724a925ba21} +\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_gadaf3a90724197e1737d5c70c7bcc75e1} -\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int 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})} +{\footnotesize\ttfamily \+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int 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[{float}]{mutation\+\_\+amp, }\item[{float \texorpdfstring{$\ast$}{*}}]{start\+\_\+params }\end{DoxyParamCaption})} @@ -177,9 +210,9 @@ Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00081}{81}} of \hline {\em n\+\_\+best} & Количество лучших, усредняемых \\ \hline -{\em iq\+\_\+mutation} & Амплитуда мутации в Q16.\+16 \\ +{\em mutation\+\_\+amp} & Амплитуда мутации (в диапазоне 0.\+0–1.0) \\ \hline -{\em start\+\_\+params} & Начальные параметры (Q16.\+16) \\ +{\em start\+\_\+params} & Начальные параметры (в диапазоне 0.\+0–1.0) \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} @@ -187,13 +220,13 @@ Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00081}{81}} of \end{DoxyReturn} -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00132}{132}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00148}{148}} 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_ga75acd71c85d4e60dc0eb31bc5780086a}\index{Evolve optimizer@{Evolve optimizer}!EvolveOptimizer\_Step@{EvolveOptimizer\_Step}} +\Hypertarget{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaef44a1f3298514569cc2b396a92101ef}\label{group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r_gaef44a1f3298514569cc2b396a92101ef} +\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_ga75acd71c85d4e60dc0eb31bc5780086a} -\+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int 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})} +{\footnotesize\ttfamily \+\_\+\+\_\+\+STATIC\+\_\+\+INLINE int Evolve\+Optimizer\+\_\+\+Step (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_evolve_optimizer__t}{Evolve\+Optimizer\+\_\+t}} \texorpdfstring{$\ast$}{*}}]{opt, }\item[{float \texorpdfstring{$\ast$}{*}}]{params, }\item[{float}]{loss }\end{DoxyParamCaption})} @@ -205,7 +238,7 @@ Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00132}{132}} of \hline {\em params} & Массив параметров, которые будут обновлены (на выходе — новые параметры) \\ \hline -{\em loss} & Loss текущего кандидата (Q16.\+16) \\ +{\em loss} & Loss текущего кандидата \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} @@ -218,5 +251,5 @@ Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00132}{132}} of \end{DoxyNote} -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00187}{187}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00216}{216}} 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.tex b/Doc/latex/group___g_p_i_o___i_n_i_t.tex index e399d87..860c2ce 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsubsection{Init defines } +\doxysubsubsubsubsection{Init defines} \hypertarget{group___g_p_i_o___i_n_i_t}{}\label{group___g_p_i_o___i_n_i_t}\index{Init defines@{Init defines}} @@ -32,14 +32,12 @@ Collaboration diagram for Init defines\+:\nopagebreak -\label{doc-define-members} -\Hypertarget{group___g_p_i_o___i_n_i_t_doc-define-members} \doxysubsubsubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___g_p_i_o___i_n_i_t_ga1d42e219765ec526d99e306638ac0023}\index{Init defines@{Init defines}!LED\_PWM\_TICKS@{LED\_PWM\_TICKS}} +\Hypertarget{group___g_p_i_o___i_n_i_t_ga1d42e219765ec526d99e306638ac0023}\label{group___g_p_i_o___i_n_i_t_ga1d42e219765ec526d99e306638ac0023} +\index{Init defines@{Init defines}!LED\_PWM\_TICKS@{LED\_PWM\_TICKS}} \index{LED\_PWM\_TICKS@{LED\_PWM\_TICKS}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{LED\_PWM\_TICKS}{LED\_PWM\_TICKS}} -{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_ga1d42e219765ec526d99e306638ac0023} -\#define LED\+\_\+\+PWM\+\_\+\+TICKS~15} +{\footnotesize\ttfamily \#define LED\+\_\+\+PWM\+\_\+\+TICKS~15} @@ -49,11 +47,11 @@ Collaboration diagram for Init defines\+:\nopagebreak Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00031}{31}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25}\index{Init defines@{Init defines}!LED\_ON@{LED\_ON}} +\Hypertarget{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25}\label{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25} +\index{Init defines@{Init defines}!LED\_ON@{LED\_ON}} \index{LED\_ON@{LED\_ON}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{LED\_ON}{LED\_ON}} -{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25} -\#define LED\+\_\+\+ON~1} +{\footnotesize\ttfamily \#define LED\+\_\+\+ON~1} @@ -63,11 +61,11 @@ Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00031}{31}} of file Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00035}{35}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29}\index{Init defines@{Init defines}!LED\_OFF@{LED\_OFF}} +\Hypertarget{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29}\label{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29} +\index{Init defines@{Init defines}!LED\_OFF@{LED\_OFF}} \index{LED\_OFF@{LED\_OFF}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{LED\_OFF}{LED\_OFF}} -{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29} -\#define LED\+\_\+\+OFF~0} +{\footnotesize\ttfamily \#define LED\+\_\+\+OFF~0} @@ -77,11 +75,11 @@ Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00035}{35}} of file Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00038}{38}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{group___g_p_i_o___i_n_i_t_ga19d9e3aced311179a2914e0c9b13d0f9}\index{Init defines@{Init defines}!SW\_ON@{SW\_ON}} +\Hypertarget{group___g_p_i_o___i_n_i_t_ga19d9e3aced311179a2914e0c9b13d0f9}\label{group___g_p_i_o___i_n_i_t_ga19d9e3aced311179a2914e0c9b13d0f9} +\index{Init defines@{Init defines}!SW\_ON@{SW\_ON}} \index{SW\_ON@{SW\_ON}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{SW\_ON}{SW\_ON}} -{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_ga19d9e3aced311179a2914e0c9b13d0f9} -\#define SW\+\_\+\+ON~1} +{\footnotesize\ttfamily \#define SW\+\_\+\+ON~1} @@ -91,11 +89,11 @@ Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00038}{38}} of file Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00042}{42}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067}\index{Init defines@{Init defines}!SW\_OFF@{SW\_OFF}} +\Hypertarget{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067}\label{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067} +\index{Init defines@{Init defines}!SW\_OFF@{SW\_OFF}} \index{SW\_OFF@{SW\_OFF}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{SW\_OFF}{SW\_OFF}} -{\footnotesize\ttfamily \label{group___g_p_i_o___i_n_i_t_gacd8900c9ec0efde1da3253b718574067} -\#define SW\+\_\+\+OFF~0} +{\footnotesize\ttfamily \#define SW\+\_\+\+OFF~0} 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 c974e48..07a864c 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{Libraries configs } +\doxysubsubsection{Libraries configs} \hypertarget{group___l_i_b_s___c_o_n_f_i_g}{}\label{group___l_i_b_s___c_o_n_f_i_g}\index{Libraries configs@{Libraries configs}} @@ -32,14 +32,12 @@ Collaboration diagram for Libraries configs\+:\nopagebreak -\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}} +\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga66560656d080d6551627a19dfb847c66}\label{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} +{\footnotesize\ttfamily \#define INCLUDE\+\_\+\+EVOLVE\+\_\+\+OPTIMIZER} @@ -49,11 +47,11 @@ Collaboration diagram for Libraries configs\+:\nopagebreak 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}} +\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be}\label{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}} -{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_gaf4ddb2a71ec0d05c2480e197cd17c0be} -\#define INCLUDE\+\_\+\+BIT\+\_\+\+ACCESS\+\_\+\+LIB} +{\footnotesize\ttfamily \#define INCLUDE\+\_\+\+BIT\+\_\+\+ACCESS\+\_\+\+LIB} @@ -63,11 +61,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00080}{80}} of fil 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}} +\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32}\label{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}} \doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_TRACKERS\_LIB}{INCLUDE\_TRACKERS\_LIB}} -{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga4403055986b70bb02b8d37073a122e32} -\#define INCLUDE\+\_\+\+TRACKERS\+\_\+\+LIB} +{\footnotesize\ttfamily \#define INCLUDE\+\_\+\+TRACKERS\+\_\+\+LIB} @@ -77,11 +75,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00081}{81}} of fil 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}} +\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7}\label{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}} \doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_TRACE\_LIB}{INCLUDE\_TRACE\_LIB}} -{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga0a3ca94b616997069dd53e2c6c2687d7} -\#define INCLUDE\+\_\+\+TRACE\+\_\+\+LIB} +{\footnotesize\ttfamily \#define INCLUDE\+\_\+\+TRACE\+\_\+\+LIB} @@ -91,11 +89,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00082}{82}} of fil 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}} +\Hypertarget{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281}\label{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}} \doxysubsubsubsubsection{\texorpdfstring{INCLUDE\_GENERAL\_PERIPH\_LIBS}{INCLUDE\_GENERAL\_PERIPH\_LIBS}} -{\footnotesize\ttfamily \label{group___l_i_b_s___c_o_n_f_i_g_ga181a46326e46b60afb160190832c7281} -\#define INCLUDE\+\_\+\+GENERAL\+\_\+\+PERIPH\+\_\+\+LIBS} +{\footnotesize\ttfamily \#define INCLUDE\+\_\+\+GENERAL\+\_\+\+PERIPH\+\_\+\+LIBS} 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 775dad4..9604806 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{GPIO Tools } +\doxysubsubsection{GPIO Tools} \hypertarget{group___m_y___l_i_b_s___g_p_i_o}{}\label{group___m_y___l_i_b_s___g_p_i_o}\index{GPIO Tools@{GPIO Tools}} 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 f539f3f..6b4ceeb 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{TIM Tools } +\doxysubsubsection{TIM Tools} \hypertarget{group___m_y___l_i_b_s___t_i_m}{}\label{group___m_y___l_i_b_s___t_i_m}\index{TIM Tools@{TIM Tools}} 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 cd0caf7..6be6234 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 @@ -1,4 +1,4 @@ -\doxysection{My Libs } +\doxysection{My Libs} \hypertarget{group___m_y_l_i_b_s___a_l_l}{}\label{group___m_y_l_i_b_s___a_l_l}\index{My Libs@{My Libs}} 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 94de885..1ccb529 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 @@ -1,4 +1,4 @@ -\doxysubsection{Configs } +\doxysubsection{Configs} \hypertarget{group___m_y_l_i_b_s___c_o_n_f_i_g}{}\label{group___m_y_l_i_b_s___c_o_n_f_i_g}\index{Configs@{Configs}} 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 2216629..a144e29 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,4 +1,4 @@ -\doxysubsection{General Tools } +\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}} 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 ca64b35..dfa5778 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{General tools } +\doxysubsubsubsection{General tools} \hypertarget{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l}{}\label{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l}\index{General tools@{General tools}} @@ -21,7 +21,7 @@ Collaboration diagram for General tools\+:\nopagebreak \begin{DoxyCompactItemize} \item \#define \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga580b842096340b066c28b24d6b315be6}{GPIO\+\_\+\+TIM\+\_\+\+Alternate\+\_\+\+Mapping}}(INSTANCE) -\begin{DoxyCompactList}\small\item\em Маппинг альтернативной функции SPI между GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize} +\begin{DoxyCompactList}\small\item\em Маппинг альтернативной функции TIM между GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsubsubsubsection*{Functions} \begin{DoxyCompactItemize} \item @@ -34,14 +34,12 @@ HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___g_ -\label{doc-define-members} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_doc-define-members} \doxysubsubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga580b842096340b066c28b24d6b315be6}\index{General tools@{General tools}!GPIO\_TIM\_Alternate\_Mapping@{GPIO\_TIM\_Alternate\_Mapping}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga580b842096340b066c28b24d6b315be6}\label{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga580b842096340b066c28b24d6b315be6} +\index{General tools@{General tools}!GPIO\_TIM\_Alternate\_Mapping@{GPIO\_TIM\_Alternate\_Mapping}} \index{GPIO\_TIM\_Alternate\_Mapping@{GPIO\_TIM\_Alternate\_Mapping}!General tools@{General tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_TIM\_Alternate\_Mapping}{GPIO\_TIM\_Alternate\_Mapping}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga580b842096340b066c28b24d6b315be6} -\#define GPIO\+\_\+\+TIM\+\_\+\+Alternate\+\_\+\+Mapping(\begin{DoxyParamCaption}\item[{}]{INSTANCE}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define GPIO\+\_\+\+TIM\+\_\+\+Alternate\+\_\+\+Mapping(\begin{DoxyParamCaption}\item[{}]{INSTANCE }\end{DoxyParamCaption})} {\bfseries Value\+:} \begin{DoxyCode}{0} @@ -54,22 +52,20 @@ HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___g_ \end{DoxyCode} -Маппинг альтернативной функции SPI между GPIO. +Маппинг альтернативной функции TIM между GPIO. + -Маппинг альтернативной функции TIM между GPIO Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00069}{69}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\label{doc-func-members} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_doc-func-members} \doxysubsubsubsubsection{Function Documentation} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}\index{General tools@{General tools}!GPIO\_Clock\_Enable@{GPIO\_Clock\_Enable}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6}\label{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6} +\index{General tools@{General tools}!GPIO\_Clock\_Enable@{GPIO\_Clock\_Enable}} \index{GPIO\_Clock\_Enable@{GPIO\_Clock\_Enable}!General tools@{General tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_Clock\_Enable()}{GPIO\_Clock\_Enable()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_ga962f010f783b81fcdd27eb6b53db28e6} -HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+Clock\+\_\+\+Enable (\begin{DoxyParamCaption}\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+Clock\+\_\+\+Enable (\begin{DoxyParamCaption}\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx }\end{DoxyParamCaption})} 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 4dbc044..78a19ef 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{LED tools } +\doxysubsubsubsection{LED tools} \hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s}{}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s}\index{LED tools@{LED tools}} @@ -50,20 +50,18 @@ void \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gad6e6189824406c4d -\label{doc-enum-members} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_doc-enum-members} \doxysubsubsubsubsection{Enumeration Type Documentation} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}\index{LED tools@{LED tools}!GPIO\_LEDStateTypeDef@{GPIO\_LEDStateTypeDef}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1} +\index{LED tools@{LED tools}!GPIO\_LEDStateTypeDef@{GPIO\_LEDStateTypeDef}} \index{GPIO\_LEDStateTypeDef@{GPIO\_LEDStateTypeDef}!LED tools@{LED tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LEDStateTypeDef}{GPIO\_LEDStateTypeDef}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1} -enum \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{GPIO\+\_\+\+LEDState\+Type\+Def}}} +{\footnotesize\ttfamily enum \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{GPIO\+\_\+\+LEDState\+Type\+Def}}} Режимы работы светодиода -\begin{DoxyEnumFields}[2]{Enumerator} +\begin{DoxyEnumFields}{Enumerator} \raisebox{\heightof{T}}[0pt][0pt]{\index{LED\_IS\_OFF@{LED\_IS\_OFF}!LED tools@{LED tools}}\index{LED tools@{LED tools}!LED\_IS\_OFF@{LED\_IS\_OFF}}}\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae} LED\+\_\+\+IS\+\_\+\+OFF&Светодиод выключен \\ \hline @@ -87,14 +85,12 @@ Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00081}{81}} of file -\label{doc-func-members} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_doc-func-members} \doxysubsubsubsubsection{Function Documentation} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}\index{LED tools@{LED tools}!GPIO\_LED\_Init@{GPIO\_LED\_Init}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084} +\index{LED tools@{LED tools}!GPIO\_LED\_Init@{GPIO\_LED\_Init}} \index{GPIO\_LED\_Init@{GPIO\_LED\_Init}!LED tools@{LED tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Init()}{GPIO\_LED\_Init()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084} -HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{, }\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx}{, }\item[{uint32\+\_\+t}]{GPIO\+\_\+\+PIN\+\_\+X}{, }\item[{uint8\+\_\+t}]{LED\+\_\+\+Active\+Level}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led, }\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx, }\item[{uint32\+\_\+t}]{GPIO\+\_\+\+PIN\+\_\+X, }\item[{uint8\+\_\+t}]{LED\+\_\+\+Active\+Level }\end{DoxyParamCaption})} @@ -115,11 +111,11 @@ HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Init (\begin{DoxyParamCaptio Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00073}{73}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}\index{LED tools@{LED tools}!GPIO\_LED\_On@{GPIO\_LED\_On}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c} +\index{LED tools@{LED tools}!GPIO\_LED\_On@{GPIO\_LED\_On}} \index{GPIO\_LED\_On@{GPIO\_LED\_On}!LED tools@{LED tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_On()}{GPIO\_LED\_On()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c} -HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+On (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+On (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led }\end{DoxyParamCaption})} @@ -137,11 +133,11 @@ HAL Status Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00091}{91}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}\index{LED tools@{LED tools}!GPIO\_LED\_Off@{GPIO\_LED\_Off}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357} +\index{LED tools@{LED tools}!GPIO\_LED\_Off@{GPIO\_LED\_Off}} \index{GPIO\_LED\_Off@{GPIO\_LED\_Off}!LED tools@{LED tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Off()}{GPIO\_LED\_Off()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaadda2d4f021390a4e392210a5ace5357} -HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Off (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Off (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led }\end{DoxyParamCaption})} @@ -159,11 +155,11 @@ HAL Status Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00107}{107}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}\index{LED tools@{LED tools}!GPIO\_LED\_Set@{GPIO\_LED\_Set}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2} +\index{LED tools@{LED tools}!GPIO\_LED\_Set@{GPIO\_LED\_Set}} \index{GPIO\_LED\_Set@{GPIO\_LED\_Set}!LED tools@{LED tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Set()}{GPIO\_LED\_Set()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gae78b570447d55a462a679a89dbaa8ea2} -HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{, }\item[{uint8\+\_\+t}]{led\+\_\+state}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led, }\item[{uint8\+\_\+t}]{led\+\_\+state }\end{DoxyParamCaption})} @@ -183,11 +179,11 @@ HAL Status Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00125}{125}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}\index{LED tools@{LED tools}!GPIO\_LED\_Blink\_Start@{GPIO\_LED\_Blink\_Start}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9} +\index{LED tools@{LED tools}!GPIO\_LED\_Blink\_Start@{GPIO\_LED\_Blink\_Start}} \index{GPIO\_LED\_Blink\_Start@{GPIO\_LED\_Blink\_Start}!LED tools@{LED tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Blink\_Start()}{GPIO\_LED\_Blink\_Start()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9} -HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Blink\+\_\+\+Start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{, }\item[{uint32\+\_\+t}]{period}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Blink\+\_\+\+Start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led, }\item[{uint32\+\_\+t}]{period }\end{DoxyParamCaption})} @@ -207,11 +203,11 @@ HAL Status Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00146}{146}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}\index{LED tools@{LED tools}!GPIO\_LED\_Fading\_Start@{GPIO\_LED\_Fading\_Start}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a} +\index{LED tools@{LED tools}!GPIO\_LED\_Fading\_Start@{GPIO\_LED\_Fading\_Start}} \index{GPIO\_LED\_Fading\_Start@{GPIO\_LED\_Fading\_Start}!LED tools@{LED tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Fading\_Start()}{GPIO\_LED\_Fading\_Start()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaa00f20021781464af3dfe74aa3e59a0a} -HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Fading\+\_\+\+Start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{, }\item[{uint32\+\_\+t}]{period}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+LED\+\_\+\+Fading\+\_\+\+Start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led, }\item[{uint32\+\_\+t}]{period }\end{DoxyParamCaption})} @@ -231,11 +227,11 @@ HAL Status Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00164}{164}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}\index{LED tools@{LED tools}!GPIO\_LED\_Dynamic\_Handle@{GPIO\_LED\_Dynamic\_Handle}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}\label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2} +\index{LED tools@{LED tools}!GPIO\_LED\_Dynamic\_Handle@{GPIO\_LED\_Dynamic\_Handle}} \index{GPIO\_LED\_Dynamic\_Handle@{GPIO\_LED\_Dynamic\_Handle}!LED tools@{LED tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_LED\_Dynamic\_Handle()}{GPIO\_LED\_Dynamic\_Handle()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2} -void GPIO\+\_\+\+LED\+\_\+\+Dynamic\+\_\+\+Handle (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily void GPIO\+\_\+\+LED\+\_\+\+Dynamic\+\_\+\+Handle (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\+\_\+\+LEDType\+Def}} \texorpdfstring{$\ast$}{*}}]{led }\end{DoxyParamCaption})} 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 d57e257..52e0bdf 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{Switch tools } +\doxysubsubsubsection{Switch tools} \hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h}{}\label{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h}\index{Switch tools@{Switch tools}} @@ -31,14 +31,12 @@ int \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_ga960b24335b202 -\label{doc-func-members} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_doc-func-members} \doxysubsubsubsubsection{Function Documentation} -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}\index{Switch tools@{Switch tools}!GPIO\_Switch\_Init@{GPIO\_Switch\_Init}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}\label{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7} +\index{Switch tools@{Switch tools}!GPIO\_Switch\_Init@{GPIO\_Switch\_Init}} \index{GPIO\_Switch\_Init@{GPIO\_Switch\_Init}!Switch tools@{Switch tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_Switch\_Init()}{GPIO\_Switch\_Init()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7} -HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+Switch\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{sw}{, }\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx}{, }\item[{uint32\+\_\+t}]{GPIO\+\_\+\+PIN\+\_\+X}{, }\item[{uint8\+\_\+t}]{SW\+\_\+\+Active\+Level}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+Switch\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{sw, }\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx, }\item[{uint32\+\_\+t}]{GPIO\+\_\+\+PIN\+\_\+X, }\item[{uint8\+\_\+t}]{SW\+\_\+\+Active\+Level }\end{DoxyParamCaption})} @@ -62,11 +60,11 @@ HAL Status Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00258}{258}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_ga960b24335b2026abcad126ab8c422d70}\index{Switch tools@{Switch tools}!GPIO\_Read\_Switch@{GPIO\_Read\_Switch}} +\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_ga960b24335b2026abcad126ab8c422d70}\label{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_ga960b24335b2026abcad126ab8c422d70} +\index{Switch tools@{Switch tools}!GPIO\_Read\_Switch@{GPIO\_Read\_Switch}} \index{GPIO\_Read\_Switch@{GPIO\_Read\_Switch}!Switch tools@{Switch tools}} \doxysubsubsubsubsubsection{\texorpdfstring{GPIO\_Read\_Switch()}{GPIO\_Read\_Switch()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_ga960b24335b2026abcad126ab8c422d70} -int GPIO\+\_\+\+Read\+\_\+\+Switch (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{sw}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily int GPIO\+\_\+\+Read\+\_\+\+Switch (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{sw }\end{DoxyParamCaption})} 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 2dd9286..34a3794 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 @@ -1,4 +1,4 @@ -\doxysubsection{Peripheral } +\doxysubsection{Peripheral} \hypertarget{group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l}{}\label{group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l}\index{Peripheral@{Peripheral}} 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 240a0fb..36b886e 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{Delay tools } +\doxysubsubsubsection{Delay tools} \hypertarget{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y}{}\label{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y}\index{Delay tools@{Delay tools}} @@ -28,14 +28,12 @@ HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___d_e_ -\label{doc-func-members} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_doc-func-members} \doxysubsubsubsubsection{Function Documentation} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga4c0dfde4e15f677600605348b4e97834}\index{Delay tools@{Delay tools}!TIM\_Delay\_Start@{TIM\_Delay\_Start}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga4c0dfde4e15f677600605348b4e97834}\label{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga4c0dfde4e15f677600605348b4e97834} +\index{Delay tools@{Delay tools}!TIM\_Delay\_Start@{TIM\_Delay\_Start}} \index{TIM\_Delay\_Start@{TIM\_Delay\_Start}!Delay tools@{Delay tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Delay\_Start()}{TIM\_Delay\_Start()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga4c0dfde4e15f677600605348b4e97834} -HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Delay\+\_\+\+Start (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Delay\+\_\+\+Start (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim }\end{DoxyParamCaption})} @@ -53,11 +51,11 @@ HAL status. Definition at line \mbox{\hyperlink{general__tim_8c_source_l00363}{363}} of file \mbox{\hyperlink{general__tim_8c_source}{general\+\_\+tim.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga88c552a133cb6e3015453cccab74c07e}\index{Delay tools@{Delay tools}!TIM\_Delay@{TIM\_Delay}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga88c552a133cb6e3015453cccab74c07e}\label{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga88c552a133cb6e3015453cccab74c07e} +\index{Delay tools@{Delay tools}!TIM\_Delay@{TIM\_Delay}} \index{TIM\_Delay@{TIM\_Delay}!Delay tools@{Delay tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Delay()}{TIM\_Delay()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga88c552a133cb6e3015453cccab74c07e} -HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Delay (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim}{, }\item[{uint16\+\_\+t}]{delay}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Delay (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim, }\item[{uint16\+\_\+t}]{delay }\end{DoxyParamCaption})} @@ -77,11 +75,11 @@ HAL status. Definition at line \mbox{\hyperlink{general__tim_8c_source_l00337}{337}} of file \mbox{\hyperlink{general__tim_8c_source}{general\+\_\+tim.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga108637af414bff3373059273b815ce9b}\index{Delay tools@{Delay tools}!TIM\_Delay\_NonBlocking@{TIM\_Delay\_NonBlocking}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga108637af414bff3373059273b815ce9b}\label{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga108637af414bff3373059273b815ce9b} +\index{Delay tools@{Delay tools}!TIM\_Delay\_NonBlocking@{TIM\_Delay\_NonBlocking}} \index{TIM\_Delay\_NonBlocking@{TIM\_Delay\_NonBlocking}!Delay tools@{Delay tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Delay\_NonBlocking()}{TIM\_Delay\_NonBlocking()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___d_e_l_a_y_ga108637af414bff3373059273b815ce9b} -HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Delay\+\_\+\+Non\+Blocking (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim}{, }\item[{uint16\+\_\+t}]{delay}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Delay\+\_\+\+Non\+Blocking (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim, }\item[{uint16\+\_\+t}]{delay }\end{DoxyParamCaption})} 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 76a4df1..8654cc5 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{Encoder tools } +\doxysubsubsubsection{Encoder tools} \hypertarget{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r}{}\label{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r}\index{Encoder tools@{Encoder tools}} @@ -33,14 +33,12 @@ int \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_ga117b795017e9e -\label{doc-func-members} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_doc-func-members} \doxysubsubsubsubsection{Function Documentation} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc}\index{Encoder tools@{Encoder tools}!TIM\_Encoder\_Init@{TIM\_Encoder\_Init}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc}\label{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc} +\index{Encoder tools@{Encoder tools}!TIM\_Encoder\_Init@{TIM\_Encoder\_Init}} \index{TIM\_Encoder\_Init@{TIM\_Encoder\_Init}!Encoder tools@{Encoder tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Encoder\_Init()}{TIM\_Encoder\_Init()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc} -HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Encoder\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\+\_\+\+Encoder\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{henc}{, }\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Encoder\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\+\_\+\+Encoder\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{henc, }\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim }\end{DoxyParamCaption})} @@ -63,11 +61,11 @@ HAL status. Definition at line \mbox{\hyperlink{general__tim_8c_source_l00168}{168}} of file \mbox{\hyperlink{general__tim_8c_source}{general\+\_\+tim.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_gac3bc6525f88c275e47eb864e6d567501}\index{Encoder tools@{Encoder tools}!TIM\_Encoder\_Read@{TIM\_Encoder\_Read}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_gac3bc6525f88c275e47eb864e6d567501}\label{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_gac3bc6525f88c275e47eb864e6d567501} +\index{Encoder tools@{Encoder tools}!TIM\_Encoder\_Read@{TIM\_Encoder\_Read}} \index{TIM\_Encoder\_Read@{TIM\_Encoder\_Read}!Encoder tools@{Encoder tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Encoder\_Read()}{TIM\_Encoder\_Read()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_gac3bc6525f88c275e47eb864e6d567501} -HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Encoder\+\_\+\+Read (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\+\_\+\+Encoder\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{henc}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Encoder\+\_\+\+Read (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\+\_\+\+Encoder\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{henc }\end{DoxyParamCaption})} @@ -85,11 +83,11 @@ HAL status. Definition at line \mbox{\hyperlink{general__tim_8c_source_l00303}{303}} of file \mbox{\hyperlink{general__tim_8c_source}{general\+\_\+tim.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_ga117b795017e9e3a357ddefe323412761}\index{Encoder tools@{Encoder tools}!TIM\_Encoder\_ReadSwitch@{TIM\_Encoder\_ReadSwitch}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_ga117b795017e9e3a357ddefe323412761}\label{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_ga117b795017e9e3a357ddefe323412761} +\index{Encoder tools@{Encoder tools}!TIM\_Encoder\_ReadSwitch@{TIM\_Encoder\_ReadSwitch}} \index{TIM\_Encoder\_ReadSwitch@{TIM\_Encoder\_ReadSwitch}!Encoder tools@{Encoder tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Encoder\_ReadSwitch()}{TIM\_Encoder\_ReadSwitch()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_ga117b795017e9e3a357ddefe323412761} -int TIM\+\_\+\+Encoder\+\_\+\+Read\+Switch (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\+\_\+\+Encoder\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{henc}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily int TIM\+\_\+\+Encoder\+\_\+\+Read\+Switch (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_t_i_m___encoder_type_def}{TIM\+\_\+\+Encoder\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{henc }\end{DoxyParamCaption})} 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 2726bd5..345eb21 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{General tools } +\doxysubsubsubsection{General tools} \hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l}{}\label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l}\index{General tools@{General tools}} @@ -56,20 +56,18 @@ void \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga879e3f1c919c -\label{doc-enum-members} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_doc-enum-members} \doxysubsubsubsubsection{Enumeration Type Documentation} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787}\index{General tools@{General tools}!TIM\_ITModeTypeDef@{TIM\_ITModeTypeDef}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787}\label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787} +\index{General tools@{General tools}!TIM\_ITModeTypeDef@{TIM\_ITModeTypeDef}} \index{TIM\_ITModeTypeDef@{TIM\_ITModeTypeDef}!General tools@{General tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_ITModeTypeDef}{TIM\_ITModeTypeDef}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787} -enum \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787}{TIM\+\_\+\+ITMode\+Type\+Def}}} +{\footnotesize\ttfamily enum \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787}{TIM\+\_\+\+ITMode\+Type\+Def}}} Режим прерываний таймера -\begin{DoxyEnumFields}[2]{Enumerator} +\begin{DoxyEnumFields}{Enumerator} \raisebox{\heightof{T}}[0pt][0pt]{\index{TIM\_DEFAULT@{TIM\_DEFAULT}!General tools@{General tools}}\index{General tools@{General tools}!TIM\_DEFAULT@{TIM\_DEFAULT}}}\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8}\label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8} TIM\+\_\+\+DEFAULT&Прерываний отключены \\ \hline @@ -83,17 +81,17 @@ TIM\+\_\+\+IT\+\_\+\+MODE&Прерываний включены \\ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00076}{76}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaa0a51c870325217ac099881f09dd0800}\index{General tools@{General tools}!TIM\_MHzTickBaseTypeDef@{TIM\_MHzTickBaseTypeDef}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaa0a51c870325217ac099881f09dd0800}\label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaa0a51c870325217ac099881f09dd0800} +\index{General tools@{General tools}!TIM\_MHzTickBaseTypeDef@{TIM\_MHzTickBaseTypeDef}} \index{TIM\_MHzTickBaseTypeDef@{TIM\_MHzTickBaseTypeDef}!General tools@{General tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_MHzTickBaseTypeDef}{TIM\_MHzTickBaseTypeDef}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaa0a51c870325217ac099881f09dd0800} -enum \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaa0a51c870325217ac099881f09dd0800}{TIM\+\_\+\+MHz\+Tick\+Base\+Type\+Def}}} +{\footnotesize\ttfamily enum \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaa0a51c870325217ac099881f09dd0800}{TIM\+\_\+\+MHz\+Tick\+Base\+Type\+Def}}} Длительность тика таймера (частота тактирования таймера) -enum дает базовые длительности, но можно выставить другие (напр 500 -\/ 0.\+5 мс) \begin{DoxyEnumFields}[2]{Enumerator} +enum дает базовые длительности, но можно выставить другие (напр 500 -\/ 0.\+5 мс) \begin{DoxyEnumFields}{Enumerator} \raisebox{\heightof{T}}[0pt][0pt]{\index{TIM\_Base\_Disable@{TIM\_Base\_Disable}!General tools@{General tools}}\index{General tools@{General tools}!TIM\_Base\_Disable@{TIM\_Base\_Disable}}}\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5}\label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5} TIM\+\_\+\+Base\+\_\+\+Disable&Таймер отключен \\ \hline @@ -129,14 +127,12 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00090}{90}} of file -\label{doc-func-members} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_doc-func-members} \doxysubsubsubsubsection{Function Documentation} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga7044214f24a9868ba7e1650b55e639ec}\index{General tools@{General tools}!TIM\_Base\_Init@{TIM\_Base\_Init}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga7044214f24a9868ba7e1650b55e639ec}\label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga7044214f24a9868ba7e1650b55e639ec} +\index{General tools@{General tools}!TIM\_Base\_Init@{TIM\_Base\_Init}} \index{TIM\_Base\_Init@{TIM\_Base\_Init}!General tools@{General tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Base\_Init()}{TIM\_Base\_Init()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga7044214f24a9868ba7e1650b55e639ec} -HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Base\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_t_i_m___settings_type_def}{TIM\+\_\+\+Settings\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{stim}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Base\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_t_i_m___settings_type_def}{TIM\+\_\+\+Settings\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{stim }\end{DoxyParamCaption})} @@ -166,11 +162,11 @@ HAL status. Definition at line \mbox{\hyperlink{general__tim_8c_source_l00034}{34}} of file \mbox{\hyperlink{general__tim_8c_source}{general\+\_\+tim.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaad47337be7ba2f6c0777c40d7278c931}\index{General tools@{General tools}!TIM\_Base\_MspInit@{TIM\_Base\_MspInit}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaad47337be7ba2f6c0777c40d7278c931}\label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaad47337be7ba2f6c0777c40d7278c931} +\index{General tools@{General tools}!TIM\_Base\_MspInit@{TIM\_Base\_MspInit}} \index{TIM\_Base\_MspInit@{TIM\_Base\_MspInit}!General tools@{General tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Base\_MspInit()}{TIM\_Base\_MspInit()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaad47337be7ba2f6c0777c40d7278c931} -void TIM\+\_\+\+Base\+\_\+\+Msp\+Init (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim}{, }\item[{\mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787}{TIM\+\_\+\+ITMode\+Type\+Def}}}]{it\+\_\+mode}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily void TIM\+\_\+\+Base\+\_\+\+Msp\+Init (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim, }\item[{\mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787}{TIM\+\_\+\+ITMode\+Type\+Def}}}]{it\+\_\+mode }\end{DoxyParamCaption})} @@ -188,11 +184,11 @@ void TIM\+\_\+\+Base\+\_\+\+Msp\+Init (\begin{DoxyParamCaption}\item[{TIM\+\_\+\ Definition at line \mbox{\hyperlink{general__tim_8c_source_l00408}{408}} of file \mbox{\hyperlink{general__tim_8c_source}{general\+\_\+tim.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga879e3f1c919c02990736730275367115}\index{General tools@{General tools}!TIM\_Base\_MspDeInit@{TIM\_Base\_MspDeInit}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga879e3f1c919c02990736730275367115}\label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga879e3f1c919c02990736730275367115} +\index{General tools@{General tools}!TIM\_Base\_MspDeInit@{TIM\_Base\_MspDeInit}} \index{TIM\_Base\_MspDeInit@{TIM\_Base\_MspDeInit}!General tools@{General tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Base\_MspDeInit()}{TIM\_Base\_MspDeInit()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga879e3f1c919c02990736730275367115} -void TIM\+\_\+\+Base\+\_\+\+Msp\+De\+Init (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily void TIM\+\_\+\+Base\+\_\+\+Msp\+De\+Init (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim }\end{DoxyParamCaption})} 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 0498d91..b760e6e 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{PWM/\+OC Channels tools } +\doxysubsubsubsection{PWM/\+OC Channels tools} \hypertarget{group___m_y_l_i_b_s___t_i_m___o_c}{}\label{group___m_y_l_i_b_s___t_i_m___o_c}\index{PWM/OC Channels tools@{PWM/OC Channels tools}} @@ -26,14 +26,12 @@ HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___o_c_ -\label{doc-func-members} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___o_c_doc-func-members} \doxysubsubsubsubsection{Function Documentation} -\Hypertarget{group___m_y_l_i_b_s___t_i_m___o_c_gadb2f465d89f609e035867e980c3a29c6}\index{PWM/OC Channels tools@{PWM/OC Channels tools}!TIM\_Output\_PWM\_Init@{TIM\_Output\_PWM\_Init}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___o_c_gadb2f465d89f609e035867e980c3a29c6}\label{group___m_y_l_i_b_s___t_i_m___o_c_gadb2f465d89f609e035867e980c3a29c6} +\index{PWM/OC Channels tools@{PWM/OC Channels tools}!TIM\_Output\_PWM\_Init@{TIM\_Output\_PWM\_Init}} \index{TIM\_Output\_PWM\_Init@{TIM\_Output\_PWM\_Init}!PWM/OC Channels tools@{PWM/OC Channels tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_Output\_PWM\_Init()}{TIM\_Output\_PWM\_Init()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___o_c_gadb2f465d89f609e035867e980c3a29c6} -HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Output\+\_\+\+PWM\+\_\+\+Init (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim}{, }\item[{TIM\+\_\+\+OC\+\_\+\+Init\+Type\+Def \texorpdfstring{$\ast$}{*}}]{s\+Config\+OC}{, }\item[{uint32\+\_\+t}]{TIM\+\_\+\+CHANNEL}{, }\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx}{, }\item[{uint32\+\_\+t}]{GPIO\+\_\+\+PIN}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+Output\+\_\+\+PWM\+\_\+\+Init (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim, }\item[{TIM\+\_\+\+OC\+\_\+\+Init\+Type\+Def \texorpdfstring{$\ast$}{*}}]{s\+Config\+OC, }\item[{uint32\+\_\+t}]{TIM\+\_\+\+CHANNEL, }\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx, }\item[{uint32\+\_\+t}]{GPIO\+\_\+\+PIN }\end{DoxyParamCaption})} @@ -62,11 +60,11 @@ HAL status. Definition at line \mbox{\hyperlink{general__tim_8c_source_l00226}{226}} of file \mbox{\hyperlink{general__tim_8c_source}{general\+\_\+tim.\+c}}. -\Hypertarget{group___m_y_l_i_b_s___t_i_m___o_c_gae2608ca8023e9a0713af0b4fbfbc1889}\index{PWM/OC Channels tools@{PWM/OC Channels tools}!TIM\_OC\_Comparator\_Init@{TIM\_OC\_Comparator\_Init}} +\Hypertarget{group___m_y_l_i_b_s___t_i_m___o_c_gae2608ca8023e9a0713af0b4fbfbc1889}\label{group___m_y_l_i_b_s___t_i_m___o_c_gae2608ca8023e9a0713af0b4fbfbc1889} +\index{PWM/OC Channels tools@{PWM/OC Channels tools}!TIM\_OC\_Comparator\_Init@{TIM\_OC\_Comparator\_Init}} \index{TIM\_OC\_Comparator\_Init@{TIM\_OC\_Comparator\_Init}!PWM/OC Channels tools@{PWM/OC Channels tools}} \doxysubsubsubsubsubsection{\texorpdfstring{TIM\_OC\_Comparator\_Init()}{TIM\_OC\_Comparator\_Init()}} -{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___t_i_m___o_c_gae2608ca8023e9a0713af0b4fbfbc1889} -HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+OC\+\_\+\+Comparator\+\_\+\+Init (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim}{, }\item[{uint32\+\_\+t}]{TIM\+\_\+\+CHANNEL}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily HAL\+\_\+\+Status\+Type\+Def TIM\+\_\+\+OC\+\_\+\+Comparator\+\_\+\+Init (\begin{DoxyParamCaption}\item[{TIM\+\_\+\+Handle\+Type\+Def \texorpdfstring{$\ast$}{*}}]{htim, }\item[{uint32\+\_\+t}]{TIM\+\_\+\+CHANNEL }\end{DoxyParamCaption})} 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 f8a6cfe..cce8c68 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsubsection{Init defines } +\doxysubsubsubsubsection{Init defines} \hypertarget{group___t_i_m___i_n_i_t}{}\label{group___t_i_m___i_n_i_t}\index{Init defines@{Init defines}} @@ -52,24 +52,22 @@ Collaboration diagram for Init defines\+:\nopagebreak -\label{doc-define-members} -\Hypertarget{group___t_i_m___i_n_i_t_doc-define-members} \doxysubsubsubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___t_i_m___i_n_i_t_ga23382b8f04b3e6db2c59dfa1ef5ea4a2}\index{Init defines@{Init defines}!HAL\_TIM\_MODULE\_ENABLED@{HAL\_TIM\_MODULE\_ENABLED}} +\Hypertarget{group___t_i_m___i_n_i_t_ga23382b8f04b3e6db2c59dfa1ef5ea4a2}\label{group___t_i_m___i_n_i_t_ga23382b8f04b3e6db2c59dfa1ef5ea4a2} +\index{Init defines@{Init defines}!HAL\_TIM\_MODULE\_ENABLED@{HAL\_TIM\_MODULE\_ENABLED}} \index{HAL\_TIM\_MODULE\_ENABLED@{HAL\_TIM\_MODULE\_ENABLED}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{HAL\_TIM\_MODULE\_ENABLED}{HAL\_TIM\_MODULE\_ENABLED}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga23382b8f04b3e6db2c59dfa1ef5ea4a2} -\#define HAL\+\_\+\+TIM\+\_\+\+MODULE\+\_\+\+ENABLED} +{\footnotesize\ttfamily \#define HAL\+\_\+\+TIM\+\_\+\+MODULE\+\_\+\+ENABLED} Definition at line \mbox{\hyperlink{general__tim_8h_source_l00031}{31}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga54a98c21365e0bc45b81555d2b101f2b}\index{Init defines@{Init defines}!USE\_TIM1@{USE\_TIM1}} +\Hypertarget{group___t_i_m___i_n_i_t_ga54a98c21365e0bc45b81555d2b101f2b}\label{group___t_i_m___i_n_i_t_ga54a98c21365e0bc45b81555d2b101f2b} +\index{Init defines@{Init defines}!USE\_TIM1@{USE\_TIM1}} \index{USE\_TIM1@{USE\_TIM1}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM1}{USE\_TIM1}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga54a98c21365e0bc45b81555d2b101f2b} -\#define USE\+\_\+\+TIM1} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM1} @@ -79,11 +77,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00031}{31}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00033}{33}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga72535a44955b43cbcd56e25039ab32eb}\index{Init defines@{Init defines}!USE\_TIM2@{USE\_TIM2}} +\Hypertarget{group___t_i_m___i_n_i_t_ga72535a44955b43cbcd56e25039ab32eb}\label{group___t_i_m___i_n_i_t_ga72535a44955b43cbcd56e25039ab32eb} +\index{Init defines@{Init defines}!USE\_TIM2@{USE\_TIM2}} \index{USE\_TIM2@{USE\_TIM2}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM2}{USE\_TIM2}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga72535a44955b43cbcd56e25039ab32eb} -\#define USE\+\_\+\+TIM2} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM2} @@ -93,11 +91,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00033}{33}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00034}{34}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga5b5685a43273b6e37242a4aba3ee0617}\index{Init defines@{Init defines}!USE\_TIM3@{USE\_TIM3}} +\Hypertarget{group___t_i_m___i_n_i_t_ga5b5685a43273b6e37242a4aba3ee0617}\label{group___t_i_m___i_n_i_t_ga5b5685a43273b6e37242a4aba3ee0617} +\index{Init defines@{Init defines}!USE\_TIM3@{USE\_TIM3}} \index{USE\_TIM3@{USE\_TIM3}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM3}{USE\_TIM3}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga5b5685a43273b6e37242a4aba3ee0617} -\#define USE\+\_\+\+TIM3} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM3} @@ -107,11 +105,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00034}{34}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00035}{35}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga1493b39c9214501180b81b4c892f9be0}\index{Init defines@{Init defines}!USE\_TIM4@{USE\_TIM4}} +\Hypertarget{group___t_i_m___i_n_i_t_ga1493b39c9214501180b81b4c892f9be0}\label{group___t_i_m___i_n_i_t_ga1493b39c9214501180b81b4c892f9be0} +\index{Init defines@{Init defines}!USE\_TIM4@{USE\_TIM4}} \index{USE\_TIM4@{USE\_TIM4}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM4}{USE\_TIM4}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga1493b39c9214501180b81b4c892f9be0} -\#define USE\+\_\+\+TIM4} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM4} @@ -121,11 +119,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00035}{35}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00036}{36}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga252f4fba93fc265110e83760e0590af3}\index{Init defines@{Init defines}!USE\_TIM5@{USE\_TIM5}} +\Hypertarget{group___t_i_m___i_n_i_t_ga252f4fba93fc265110e83760e0590af3}\label{group___t_i_m___i_n_i_t_ga252f4fba93fc265110e83760e0590af3} +\index{Init defines@{Init defines}!USE\_TIM5@{USE\_TIM5}} \index{USE\_TIM5@{USE\_TIM5}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM5}{USE\_TIM5}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga252f4fba93fc265110e83760e0590af3} -\#define USE\+\_\+\+TIM5} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM5} @@ -135,11 +133,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00036}{36}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00037}{37}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga8fe31b98160627d19038222910be3f46}\index{Init defines@{Init defines}!USE\_TIM6@{USE\_TIM6}} +\Hypertarget{group___t_i_m___i_n_i_t_ga8fe31b98160627d19038222910be3f46}\label{group___t_i_m___i_n_i_t_ga8fe31b98160627d19038222910be3f46} +\index{Init defines@{Init defines}!USE\_TIM6@{USE\_TIM6}} \index{USE\_TIM6@{USE\_TIM6}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM6}{USE\_TIM6}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga8fe31b98160627d19038222910be3f46} -\#define USE\+\_\+\+TIM6} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM6} @@ -149,11 +147,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00037}{37}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00038}{38}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga7cdc54cc8cbbb6e9f60001f1e3e6ec67}\index{Init defines@{Init defines}!USE\_TIM7@{USE\_TIM7}} +\Hypertarget{group___t_i_m___i_n_i_t_ga7cdc54cc8cbbb6e9f60001f1e3e6ec67}\label{group___t_i_m___i_n_i_t_ga7cdc54cc8cbbb6e9f60001f1e3e6ec67} +\index{Init defines@{Init defines}!USE\_TIM7@{USE\_TIM7}} \index{USE\_TIM7@{USE\_TIM7}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM7}{USE\_TIM7}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga7cdc54cc8cbbb6e9f60001f1e3e6ec67} -\#define USE\+\_\+\+TIM7} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM7} @@ -163,11 +161,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00038}{38}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00039}{39}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga28ba33d7c6bf22821dafa5bcee4854be}\index{Init defines@{Init defines}!USE\_TIM8@{USE\_TIM8}} +\Hypertarget{group___t_i_m___i_n_i_t_ga28ba33d7c6bf22821dafa5bcee4854be}\label{group___t_i_m___i_n_i_t_ga28ba33d7c6bf22821dafa5bcee4854be} +\index{Init defines@{Init defines}!USE\_TIM8@{USE\_TIM8}} \index{USE\_TIM8@{USE\_TIM8}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM8}{USE\_TIM8}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga28ba33d7c6bf22821dafa5bcee4854be} -\#define USE\+\_\+\+TIM8} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM8} @@ -177,11 +175,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00039}{39}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00040}{40}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_gaac627c0e98c9594cc41b1b46eb39e44a}\index{Init defines@{Init defines}!USE\_TIM9@{USE\_TIM9}} +\Hypertarget{group___t_i_m___i_n_i_t_gaac627c0e98c9594cc41b1b46eb39e44a}\label{group___t_i_m___i_n_i_t_gaac627c0e98c9594cc41b1b46eb39e44a} +\index{Init defines@{Init defines}!USE\_TIM9@{USE\_TIM9}} \index{USE\_TIM9@{USE\_TIM9}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM9}{USE\_TIM9}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_gaac627c0e98c9594cc41b1b46eb39e44a} -\#define USE\+\_\+\+TIM9} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM9} @@ -191,11 +189,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00040}{40}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00041}{41}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga98c0691052d1da2c4053dd3586ff7ce9}\index{Init defines@{Init defines}!USE\_TIM10@{USE\_TIM10}} +\Hypertarget{group___t_i_m___i_n_i_t_ga98c0691052d1da2c4053dd3586ff7ce9}\label{group___t_i_m___i_n_i_t_ga98c0691052d1da2c4053dd3586ff7ce9} +\index{Init defines@{Init defines}!USE\_TIM10@{USE\_TIM10}} \index{USE\_TIM10@{USE\_TIM10}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM10}{USE\_TIM10}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga98c0691052d1da2c4053dd3586ff7ce9} -\#define USE\+\_\+\+TIM10} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM10} @@ -205,11 +203,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00041}{41}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00042}{42}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga176c97f06ebcf14e06e5c5bdbfac44c2}\index{Init defines@{Init defines}!USE\_TIM11@{USE\_TIM11}} +\Hypertarget{group___t_i_m___i_n_i_t_ga176c97f06ebcf14e06e5c5bdbfac44c2}\label{group___t_i_m___i_n_i_t_ga176c97f06ebcf14e06e5c5bdbfac44c2} +\index{Init defines@{Init defines}!USE\_TIM11@{USE\_TIM11}} \index{USE\_TIM11@{USE\_TIM11}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM11}{USE\_TIM11}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga176c97f06ebcf14e06e5c5bdbfac44c2} -\#define USE\+\_\+\+TIM11} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM11} @@ -219,11 +217,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00042}{42}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00043}{43}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga4e2b0e6cdf9eed74581b575c3fd9516b}\index{Init defines@{Init defines}!USE\_TIM12@{USE\_TIM12}} +\Hypertarget{group___t_i_m___i_n_i_t_ga4e2b0e6cdf9eed74581b575c3fd9516b}\label{group___t_i_m___i_n_i_t_ga4e2b0e6cdf9eed74581b575c3fd9516b} +\index{Init defines@{Init defines}!USE\_TIM12@{USE\_TIM12}} \index{USE\_TIM12@{USE\_TIM12}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM12}{USE\_TIM12}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga4e2b0e6cdf9eed74581b575c3fd9516b} -\#define USE\+\_\+\+TIM12} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM12} @@ -233,11 +231,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00043}{43}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00044}{44}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_gaf48ef87650517652ddec039a189507ac}\index{Init defines@{Init defines}!USE\_TIM13@{USE\_TIM13}} +\Hypertarget{group___t_i_m___i_n_i_t_gaf48ef87650517652ddec039a189507ac}\label{group___t_i_m___i_n_i_t_gaf48ef87650517652ddec039a189507ac} +\index{Init defines@{Init defines}!USE\_TIM13@{USE\_TIM13}} \index{USE\_TIM13@{USE\_TIM13}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM13}{USE\_TIM13}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_gaf48ef87650517652ddec039a189507ac} -\#define USE\+\_\+\+TIM13} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM13} @@ -247,11 +245,11 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00044}{44}} of file Definition at line \mbox{\hyperlink{general__tim_8h_source_l00045}{45}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{group___t_i_m___i_n_i_t_ga9ae40be31d5271abe3e49f896d916d5c}\index{Init defines@{Init defines}!USE\_TIM14@{USE\_TIM14}} +\Hypertarget{group___t_i_m___i_n_i_t_ga9ae40be31d5271abe3e49f896d916d5c}\label{group___t_i_m___i_n_i_t_ga9ae40be31d5271abe3e49f896d916d5c} +\index{Init defines@{Init defines}!USE\_TIM14@{USE\_TIM14}} \index{USE\_TIM14@{USE\_TIM14}!Init defines@{Init defines}} \doxysubsubsubsubsubsubsection{\texorpdfstring{USE\_TIM14}{USE\_TIM14}} -{\footnotesize\ttfamily \label{group___t_i_m___i_n_i_t_ga9ae40be31d5271abe3e49f896d916d5c} -\#define USE\+\_\+\+TIM14} +{\footnotesize\ttfamily \#define USE\+\_\+\+TIM14} diff --git a/Doc/latex/group___t_r_a_c_e.tex b/Doc/latex/group___t_r_a_c_e.tex index 3dbdd57..96c475c 100644 --- a/Doc/latex/group___t_r_a_c_e.tex +++ b/Doc/latex/group___t_r_a_c_e.tex @@ -1,4 +1,4 @@ -\doxysubsubsection{Trace defines } +\doxysubsubsection{Trace defines} \hypertarget{group___t_r_a_c_e}{}\label{group___t_r_a_c_e}\index{Trace defines@{Trace defines}} 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 cf8e2ac..500562a 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{Trace configs } +\doxysubsubsection{Trace configs} \hypertarget{group___t_r_a_c_e___c_o_n_f_i_g}{}\label{group___t_r_a_c_e___c_o_n_f_i_g}\index{Trace configs@{Trace configs}} @@ -54,14 +54,12 @@ Collaboration diagram for Trace configs\+:\nopagebreak -\label{doc-define-members} -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_doc-define-members} \doxysubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}\index{Trace configs@{Trace configs}!TRACKERS\_ENABLE@{TRACKERS\_ENABLE}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}\label{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496} +\index{Trace configs@{Trace configs}!TRACKERS\_ENABLE@{TRACKERS\_ENABLE}} \index{TRACKERS\_ENABLE@{TRACKERS\_ENABLE}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{TRACKERS\_ENABLE}{TRACKERS\_ENABLE}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496} -\#define TRACKERS\+\_\+\+ENABLE} +{\footnotesize\ttfamily \#define TRACKERS\+\_\+\+ENABLE} @@ -71,11 +69,11 @@ Collaboration diagram for Trace configs\+:\nopagebreak Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00025}{25}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}\index{Trace configs@{Trace configs}!SERIAL\_TRACE\_ENABLE@{SERIAL\_TRACE\_ENABLE}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6} +\index{Trace configs@{Trace configs}!SERIAL\_TRACE\_ENABLE@{SERIAL\_TRACE\_ENABLE}} \index{SERIAL\_TRACE\_ENABLE@{SERIAL\_TRACE\_ENABLE}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{SERIAL\_TRACE\_ENABLE}{SERIAL\_TRACE\_ENABLE}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga76936505ca200d2e61226b7ba68f27c6} -\#define SERIAL\+\_\+\+TRACE\+\_\+\+ENABLE} +{\footnotesize\ttfamily \#define SERIAL\+\_\+\+TRACE\+\_\+\+ENABLE} @@ -85,11 +83,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00025}{25}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00026}{26}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}\index{Trace configs@{Trace configs}!RTT\_TRACE\_ENABLE@{RTT\_TRACE\_ENABLE}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8} +\index{Trace configs@{Trace configs}!RTT\_TRACE\_ENABLE@{RTT\_TRACE\_ENABLE}} \index{RTT\_TRACE\_ENABLE@{RTT\_TRACE\_ENABLE}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{RTT\_TRACE\_ENABLE}{RTT\_TRACE\_ENABLE}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga00ff2175bdc1fb11c8ec970ea3010dd8} -\#define RTT\+\_\+\+TRACE\+\_\+\+ENABLE} +{\footnotesize\ttfamily \#define RTT\+\_\+\+TRACE\+\_\+\+ENABLE} @@ -99,11 +97,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00026}{26}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00027}{27}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}\index{Trace configs@{Trace configs}!SWO\_TRACE\_ENABLE@{SWO\_TRACE\_ENABLE}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336}\label{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336} +\index{Trace configs@{Trace configs}!SWO\_TRACE\_ENABLE@{SWO\_TRACE\_ENABLE}} \index{SWO\_TRACE\_ENABLE@{SWO\_TRACE\_ENABLE}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{SWO\_TRACE\_ENABLE}{SWO\_TRACE\_ENABLE}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gab8db9704b5d11858aa879689b9d36336} -\#define SWO\+\_\+\+TRACE\+\_\+\+ENABLE} +{\footnotesize\ttfamily \#define SWO\+\_\+\+TRACE\+\_\+\+ENABLE} @@ -113,11 +111,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00027}{27}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00028}{28}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}\index{Trace configs@{Trace configs}!LOG\_LEVEL@{LOG\_LEVEL}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05} +\index{Trace configs@{Trace configs}!LOG\_LEVEL@{LOG\_LEVEL}} \index{LOG\_LEVEL@{LOG\_LEVEL}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{LOG\_LEVEL}{LOG\_LEVEL}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga0b87e0d3bf5853bcbb0b66a7c48fdc05} -\#define LOG\+\_\+\+LEVEL~1} +{\footnotesize\ttfamily \#define LOG\+\_\+\+LEVEL~1} @@ -132,11 +130,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00028}{28}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00035}{35}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}\index{Trace configs@{Trace configs}!RTT\_FLASH\_BUFFER\_SIZE@{RTT\_FLASH\_BUFFER\_SIZE}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3} +\index{Trace configs@{Trace configs}!RTT\_FLASH\_BUFFER\_SIZE@{RTT\_FLASH\_BUFFER\_SIZE}} \index{RTT\_FLASH\_BUFFER\_SIZE@{RTT\_FLASH\_BUFFER\_SIZE}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_BUFFER\_SIZE}{RTT\_FLASH\_BUFFER\_SIZE}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3} -\#define RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE~1024} +{\footnotesize\ttfamily \#define RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE~1024} @@ -146,11 +144,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00035}{35}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00037}{37}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR@{RTT\_FLASH\_SECTOR}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724} +\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR@{RTT\_FLASH\_SECTOR}} \index{RTT\_FLASH\_SECTOR@{RTT\_FLASH\_SECTOR}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_SECTOR}{RTT\_FLASH\_SECTOR}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga3bc1b76864e1d32cbdd174d4caae7724} -\#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR~FLASH\+\_\+\+SECTOR\+\_\+11} +{\footnotesize\ttfamily \#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR~FLASH\+\_\+\+SECTOR\+\_\+11} @@ -160,11 +158,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00037}{37}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00038}{38}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR\_START@{RTT\_FLASH\_SECTOR\_START}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297} +\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR\_START@{RTT\_FLASH\_SECTOR\_START}} \index{RTT\_FLASH\_SECTOR\_START@{RTT\_FLASH\_SECTOR\_START}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_SECTOR\_START}{RTT\_FLASH\_SECTOR\_START}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga8e56f75d3ab8a89ddde1404ae23c3297} -\#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+START~0x080\+E0000} +{\footnotesize\ttfamily \#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+START~0x080\+E0000} @@ -174,11 +172,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00038}{38}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00039}{39}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR\_END@{RTT\_FLASH\_SECTOR\_END}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}\label{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d} +\index{Trace configs@{Trace configs}!RTT\_FLASH\_SECTOR\_END@{RTT\_FLASH\_SECTOR\_END}} \index{RTT\_FLASH\_SECTOR\_END@{RTT\_FLASH\_SECTOR\_END}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{RTT\_FLASH\_SECTOR\_END}{RTT\_FLASH\_SECTOR\_END}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d} -\#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+END~0x080\+FFFFF} +{\footnotesize\ttfamily \#define RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+END~0x080\+FFFFF} @@ -188,11 +186,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00039}{39}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00040}{40}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}\index{Trace configs@{Trace configs}!HARDFAULT\_SERIAL\_TRACE@{HARDFAULT\_SERIAL\_TRACE}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6} +\index{Trace configs@{Trace configs}!HARDFAULT\_SERIAL\_TRACE@{HARDFAULT\_SERIAL\_TRACE}} \index{HARDFAULT\_SERIAL\_TRACE@{HARDFAULT\_SERIAL\_TRACE}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{HARDFAULT\_SERIAL\_TRACE}{HARDFAULT\_SERIAL\_TRACE}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga47f454f804b4dbc26cae079e8d8641e6} -\#define HARDFAULT\+\_\+\+SERIAL\+\_\+\+TRACE} +{\footnotesize\ttfamily \#define HARDFAULT\+\_\+\+SERIAL\+\_\+\+TRACE} @@ -202,11 +200,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00040}{40}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00043}{43}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}\index{Trace configs@{Trace configs}!HF\_RTT\_TAG\_BASE@{HF\_RTT\_TAG\_BASE}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313}\label{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313} +\index{Trace configs@{Trace configs}!HF\_RTT\_TAG\_BASE@{HF\_RTT\_TAG\_BASE}} \index{HF\_RTT\_TAG\_BASE@{HF\_RTT\_TAG\_BASE}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{HF\_RTT\_TAG\_BASE}{HF\_RTT\_TAG\_BASE}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gadc960255719c7eff4bdfaa850be9b313} -\#define HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE~0x\+DEAD0000} +{\footnotesize\ttfamily \#define HF\+\_\+\+RTT\+\_\+\+TAG\+\_\+\+BASE~0x\+DEAD0000} @@ -216,11 +214,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00043}{43}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00044}{44}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}\index{Trace configs@{Trace configs}!HF\_RTT\_TAIL\_SIZE@{HF\_RTT\_TAIL\_SIZE}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca}\label{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca} +\index{Trace configs@{Trace configs}!HF\_RTT\_TAIL\_SIZE@{HF\_RTT\_TAIL\_SIZE}} \index{HF\_RTT\_TAIL\_SIZE@{HF\_RTT\_TAIL\_SIZE}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{HF\_RTT\_TAIL\_SIZE}{HF\_RTT\_TAIL\_SIZE}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gafcc7ea03d4df8f1909e580b519a7f3ca} -\#define HF\+\_\+\+RTT\+\_\+\+TAIL\+\_\+\+SIZE~\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}} +{\footnotesize\ttfamily \#define HF\+\_\+\+RTT\+\_\+\+TAIL\+\_\+\+SIZE~\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\+\_\+\+FLASH\+\_\+\+BUFFER\+\_\+\+SIZE}}} @@ -230,11 +228,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00044}{44}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00045}{45}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}\index{Trace configs@{Trace configs}!HF\_STACK\_DUMP\_WORDS@{HF\_STACK\_DUMP\_WORDS}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b}\label{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b} +\index{Trace configs@{Trace configs}!HF\_STACK\_DUMP\_WORDS@{HF\_STACK\_DUMP\_WORDS}} \index{HF\_STACK\_DUMP\_WORDS@{HF\_STACK\_DUMP\_WORDS}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{HF\_STACK\_DUMP\_WORDS}{HF\_STACK\_DUMP\_WORDS}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_gaa31234688b333a505aaa57b8ecdedf5b} -\#define HF\+\_\+\+STACK\+\_\+\+DUMP\+\_\+\+WORDS~32} +{\footnotesize\ttfamily \#define HF\+\_\+\+STACK\+\_\+\+DUMP\+\_\+\+WORDS~32} @@ -244,11 +242,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00045}{45}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00046}{46}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}\index{Trace configs@{Trace configs}!HF\_FLASH\_ADDR@{HF\_FLASH\_ADDR}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63} +\index{Trace configs@{Trace configs}!HF\_FLASH\_ADDR@{HF\_FLASH\_ADDR}} \index{HF\_FLASH\_ADDR@{HF\_FLASH\_ADDR}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{HF\_FLASH\_ADDR}{HF\_FLASH\_ADDR}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga0c602733a4a359bf8c095d71cd4d0f63} -\#define HF\+\_\+\+FLASH\+\_\+\+ADDR~((uint32\+\_\+t)0x080\+FF000)} +{\footnotesize\ttfamily \#define HF\+\_\+\+FLASH\+\_\+\+ADDR~((uint32\+\_\+t)0x080\+FF000)} @@ -258,11 +256,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00046}{46}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00047}{47}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}\index{Trace configs@{Trace configs}!HF\_RAM\_END@{HF\_RAM\_END}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051} +\index{Trace configs@{Trace configs}!HF\_RAM\_END@{HF\_RAM\_END}} \index{HF\_RAM\_END@{HF\_RAM\_END}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{HF\_RAM\_END}{HF\_RAM\_END}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga92d0d14732edb7dfa21d483304bdb051} -\#define HF\+\_\+\+RAM\+\_\+\+END~0x20030000} +{\footnotesize\ttfamily \#define HF\+\_\+\+RAM\+\_\+\+END~0x20030000} @@ -272,11 +270,11 @@ Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00047}{47}} of fil Definition at line \mbox{\hyperlink{mylibs__config_8h_source_l00048}{48}} of file \mbox{\hyperlink{mylibs__config_8h_source}{mylibs\+\_\+config.\+h}}. -\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}\index{Trace configs@{Trace configs}!GPIO\_TRACE\_ENABLE@{GPIO\_TRACE\_ENABLE}} +\Hypertarget{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}\label{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b} +\index{Trace configs@{Trace configs}!GPIO\_TRACE\_ENABLE@{GPIO\_TRACE\_ENABLE}} \index{GPIO\_TRACE\_ENABLE@{GPIO\_TRACE\_ENABLE}!Trace configs@{Trace configs}} \doxysubsubsubsubsection{\texorpdfstring{GPIO\_TRACE\_ENABLE}{GPIO\_TRACE\_ENABLE}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b} -\#define GPIO\+\_\+\+TRACE\+\_\+\+ENABLE} +{\footnotesize\ttfamily \#define GPIO\+\_\+\+TRACE\+\_\+\+ENABLE} 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 7672e01..1b2279c 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{GPIO trace defines } +\doxysubsubsubsection{GPIO trace defines} \hypertarget{group___t_r_a_c_e___g_p_i_o}{}\label{group___t_r_a_c_e___g_p_i_o}\index{GPIO trace defines@{GPIO trace defines}} @@ -15,9 +15,9 @@ Collaboration diagram for GPIO trace defines\+:\nopagebreak \doxysubsubsubsubsubsection*{Macros} \begin{DoxyCompactItemize} \item -\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}{TRACE\+\_\+\+GPIO\+\_\+\+RESET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}{TRACE\+\_\+\+GPIO\+\_\+\+RESET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+)~(\+\_\+gpio\+\_\+)-\/$>$BSRR = ((\+\_\+pin\+\_\+)$<$$<$16) \begin{DoxyCompactList}\small\item\em Сбросить указанную ножку GPIO. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}{TRACE\+\_\+\+GPIO\+\_\+\+SET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}{TRACE\+\_\+\+GPIO\+\_\+\+SET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+)~(\+\_\+gpio\+\_\+)-\/$>$BSRR = (((\+\_\+pin\+\_\+))) \begin{DoxyCompactList}\small\item\em Установить указанную ножку GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -28,23 +28,17 @@ Collaboration diagram for GPIO trace defines\+:\nopagebreak \begin{DoxyItemize} \item \doxylink{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}{TRACE\+\_\+\+GPIO\+\_\+\+RESET()} -\/ для сброса ножки GPIO (через BSRR) \item \doxylink{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}{TRACE\+\_\+\+GPIO\+\_\+\+SET()} -\/ для выставления ножки GPIO (через BSRR) -\item Если трассировка \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{GPIO\+\_\+\+TRACE\+\_\+\+ENABLE} отключена, то все дефайны определяются как \textquotesingle{}ничего\textquotesingle{} и на производительность кода не влияют +\item Если трассировка \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_ga4222e0e400ad81737cefcabeb03fd23b}{GPIO\+\_\+\+TRACE\+\_\+\+ENABLE} отключена, то все дефайны определяются как \textquotesingle{}ничего\textquotesingle{} и на производительность кода не влияют ~\newline + \end{DoxyItemize} -\label{doc-define-members} -\Hypertarget{group___t_r_a_c_e___g_p_i_o_doc-define-members} \doxysubsubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}\index{GPIO trace defines@{GPIO trace defines}!TRACE\_GPIO\_RESET@{TRACE\_GPIO\_RESET}} +\Hypertarget{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}\label{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a} +\index{GPIO trace defines@{GPIO trace defines}!TRACE\_GPIO\_RESET@{TRACE\_GPIO\_RESET}} \index{TRACE\_GPIO\_RESET@{TRACE\_GPIO\_RESET}!GPIO trace defines@{GPIO trace defines}} \doxysubsubsubsubsubsection{\texorpdfstring{TRACE\_GPIO\_RESET}{TRACE\_GPIO\_RESET}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a} -\#define TRACE\+\_\+\+GPIO\+\_\+\+RESET(\begin{DoxyParamCaption}\item[{}]{\+\_\+gpio\+\_\+}{, }\item[{}]{\+\_\+pin\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define TRACE\+\_\+\+GPIO\+\_\+\+RESET(\begin{DoxyParamCaption}\item[{}]{\+\_\+gpio\+\_\+, }\item[{}]{\+\_\+pin\+\_\+ }\end{DoxyParamCaption})~(\+\_\+gpio\+\_\+)-\/$>$BSRR = ((\+\_\+pin\+\_\+)$<$$<$16)} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_gpio\_)-\/>BSRR\ =\ ((\_pin\_)<<16)} - -\end{DoxyCode} Сбросить указанную ножку GPIO. @@ -64,17 +58,12 @@ Collaboration diagram for GPIO trace defines\+:\nopagebreak Definition at line \mbox{\hyperlink{trace_8h_source_l00142}{142}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}\index{GPIO trace defines@{GPIO trace defines}!TRACE\_GPIO\_SET@{TRACE\_GPIO\_SET}} +\Hypertarget{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}\label{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb} +\index{GPIO trace defines@{GPIO trace defines}!TRACE\_GPIO\_SET@{TRACE\_GPIO\_SET}} \index{TRACE\_GPIO\_SET@{TRACE\_GPIO\_SET}!GPIO trace defines@{GPIO trace defines}} \doxysubsubsubsubsubsection{\texorpdfstring{TRACE\_GPIO\_SET}{TRACE\_GPIO\_SET}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb} -\#define TRACE\+\_\+\+GPIO\+\_\+\+SET(\begin{DoxyParamCaption}\item[{}]{\+\_\+gpio\+\_\+}{, }\item[{}]{\+\_\+pin\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define TRACE\+\_\+\+GPIO\+\_\+\+SET(\begin{DoxyParamCaption}\item[{}]{\+\_\+gpio\+\_\+, }\item[{}]{\+\_\+pin\+\_\+ }\end{DoxyParamCaption})~(\+\_\+gpio\+\_\+)-\/$>$BSRR = (((\+\_\+pin\+\_\+)))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_gpio\_)-\/>BSRR\ =\ (((\_pin\_)))} - -\end{DoxyCode} Установить указанную ножку GPIO. 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 768442a..612592f 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{Hardfault trace defines } +\doxysubsubsubsection{Hardfault trace defines} \hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}{}\label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t}\index{Hardfault trace defines@{Hardfault trace defines}} @@ -78,14 +78,12 @@ struct \mbox{\hyperlink{struct_h_f___stack_frame__t}{HF\+\_\+\+Stack\+Frame\+\_\ \end{DoxyCode} -\label{doc-func-members} -\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_doc-func-members} \doxysubsubsubsubsection{Function Documentation} -\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga03f8b6f3b537ee1c8e91065c60db504f}\index{Hardfault trace defines@{Hardfault trace defines}!HF\_CheckRecovered@{HF\_CheckRecovered}} +\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga03f8b6f3b537ee1c8e91065c60db504f}\label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga03f8b6f3b537ee1c8e91065c60db504f} +\index{Hardfault trace defines@{Hardfault trace defines}!HF\_CheckRecovered@{HF\_CheckRecovered}} \index{HF\_CheckRecovered@{HF\_CheckRecovered}!Hardfault trace defines@{Hardfault trace defines}} \doxysubsubsubsubsubsection{\texorpdfstring{HF\_CheckRecovered()}{HF\_CheckRecovered()}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_ga03f8b6f3b537ee1c8e91065c60db504f} -\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int HF\+\_\+\+Check\+Recovered (\begin{DoxyParamCaption}\item[{int}]{erase}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int HF\+\_\+\+Check\+Recovered (\begin{DoxyParamCaption}\item[{int}]{erase }\end{DoxyParamCaption})} @@ -107,11 +105,11 @@ int Definition at line \mbox{\hyperlink{trace_8h_source_l00486}{486}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_gadd8e10e7ec3b0204f7f92062ecd452f7}\index{Hardfault trace defines@{Hardfault trace defines}!HF\_HandleFault@{HF\_HandleFault}} +\Hypertarget{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_gadd8e10e7ec3b0204f7f92062ecd452f7}\label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_gadd8e10e7ec3b0204f7f92062ecd452f7} +\index{Hardfault trace defines@{Hardfault trace defines}!HF\_HandleFault@{HF\_HandleFault}} \index{HF\_HandleFault@{HF\_HandleFault}!Hardfault trace defines@{Hardfault trace defines}} \doxysubsubsubsubsubsection{\texorpdfstring{HF\_HandleFault()}{HF\_HandleFault()}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___h_a_r_d_f_a_u_l_t_gadd8e10e7ec3b0204f7f92062ecd452f7} -\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void HF\+\_\+\+Handle\+Fault (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void HF\+\_\+\+Handle\+Fault (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} 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 68a1594..67d4bf1 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{Flash RTT Buffer } +\doxysubsubsubsection{Flash RTT Buffer} \hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h}{}\label{group___t_r_a_c_e___r_t_t___f_l_a_s_h}\index{Flash RTT Buffer@{Flash RTT Buffer}} @@ -56,14 +56,12 @@ struct \mbox{\hyperlink{struct_r_t_t___flash_header__t}{RTT\+\_\+\+Flash\+Header \item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gafeca0be3688dea07ff443f894668003d}{RTT\+\_\+\+FLASH\+\_\+\+SECTOR\+\_\+\+END} -\/ Конец сектора RTT\+\_\+\+FLASH\+\_\+\+SECTOR \end{DoxyItemize} -\label{doc-func-members} -\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_doc-func-members} \doxysubsubsubsubsection{Function Documentation} -\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_FlashPrepare@{RTT\_FlashPrepare}} +\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6}\label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6} +\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_FlashPrepare@{RTT\_FlashPrepare}} \index{RTT\_FlashPrepare@{RTT\_FlashPrepare}!Flash RTT Buffer@{Flash RTT Buffer}} \doxysubsubsubsubsubsection{\texorpdfstring{RTT\_FlashPrepare()}{RTT\_FlashPrepare()}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga21353cb4f5af666237739e62ce019cd6} -\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void RTT\+\_\+\+Flash\+Prepare (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE void RTT\+\_\+\+Flash\+Prepare (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} @@ -73,11 +71,11 @@ struct \mbox{\hyperlink{struct_r_t_t___flash_header__t}{RTT\+\_\+\+Flash\+Header Definition at line \mbox{\hyperlink{trace_8h_source_l00190}{190}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_SaveToFlash@{RTT\_SaveToFlash}} +\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63}\label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63} +\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_SaveToFlash@{RTT\_SaveToFlash}} \index{RTT\_SaveToFlash@{RTT\_SaveToFlash}!Flash RTT Buffer@{Flash RTT Buffer}} \doxysubsubsubsubsubsection{\texorpdfstring{RTT\_SaveToFlash()}{RTT\_SaveToFlash()}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga79f222c8ab644de4d47f07528d1edd63} -\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Save\+To\+Flash (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag}{, }\item[{uint32\+\_\+t}]{tail\+\_\+size}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Save\+To\+Flash (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag, }\item[{uint32\+\_\+t}]{tail\+\_\+size }\end{DoxyParamCaption})} @@ -103,11 +101,11 @@ Definition at line \mbox{\hyperlink{trace_8h_source_l00190}{190}} of file \mbox{ Definition at line \mbox{\hyperlink{trace_8h_source_l00214}{214}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_ReadFromFlash@{RTT\_ReadFromFlash}} +\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146}\label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146} +\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_ReadFromFlash@{RTT\_ReadFromFlash}} \index{RTT\_ReadFromFlash@{RTT\_ReadFromFlash}!Flash RTT Buffer@{Flash RTT Buffer}} \doxysubsubsubsubsubsection{\texorpdfstring{RTT\_ReadFromFlash()}{RTT\_ReadFromFlash()}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga734b2ebbf0c77699b739013878cfd146} -\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Read\+From\+Flash (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag}{, }\item[{char \texorpdfstring{$\ast$}{*}}]{Buffer}{, }\item[{uint32\+\_\+t}]{tail\+\_\+size}{, }\item[{uint32\+\_\+t \texorpdfstring{$\ast$}{*}}]{read\+\_\+size}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Read\+From\+Flash (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{tag, }\item[{char \texorpdfstring{$\ast$}{*}}]{Buffer, }\item[{uint32\+\_\+t}]{tail\+\_\+size, }\item[{uint32\+\_\+t \texorpdfstring{$\ast$}{*}}]{read\+\_\+size }\end{DoxyParamCaption})} @@ -135,11 +133,11 @@ Definition at line \mbox{\hyperlink{trace_8h_source_l00214}{214}} of file \mbox{ Definition at line \mbox{\hyperlink{trace_8h_source_l00311}{311}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_EraseFlash@{RTT\_EraseFlash}} +\Hypertarget{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1}\label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1} +\index{Flash RTT Buffer@{Flash RTT Buffer}!RTT\_EraseFlash@{RTT\_EraseFlash}} \index{RTT\_EraseFlash@{RTT\_EraseFlash}!Flash RTT Buffer@{Flash RTT Buffer}} \doxysubsubsubsubsubsection{\texorpdfstring{RTT\_EraseFlash()}{RTT\_EraseFlash()}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___r_t_t___f_l_a_s_h_ga8d8c6850e32b42871faefce3352012d1} -\+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Erase\+Flash (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \+\_\+\+\_\+\+STATIC\+\_\+\+FORCEINLINE int RTT\+\_\+\+Erase\+Flash (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} 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 82ada06..be600cd 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 @@ -1,4 +1,4 @@ -\doxysubsubsubsection{Serial trace defines } +\doxysubsubsubsection{Serial trace defines} \hypertarget{group___t_r_a_c_e___s_e_r_i_a_l}{}\label{group___t_r_a_c_e___s_e_r_i_a_l}\index{Serial trace defines@{Serial trace defines}} @@ -15,7 +15,7 @@ Collaboration diagram for Serial trace defines\+:\nopagebreak \doxysubsubsubsubsubsection*{Macros} \begin{DoxyCompactItemize} \item -\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\+\_\+printf}}(...) +\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\+\_\+printf}}(...)~SEGGER\+\_\+\+RTT\+\_\+printf(0, \+\_\+\+\_\+\+VA\+\_\+\+ARGS\+\_\+\+\_\+) \begin{DoxyCompactList}\small\item\em Универсальный макрос для вывода трассировки \end{DoxyCompactList}\item \#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf}}(TAG, fmt, ...) \begin{DoxyCompactList}\small\item\em Макрос логирования с поддержкой уровней LOG\+\_\+\+LEVEL. \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -32,15 +32,13 @@ Collaboration diagram for Serial trace defines\+:\nopagebreak Но библиотеку STDOUT надо подключить самостоятельно\+: -\begin{DoxyVerb} Manage Run-Time Environment -> Compiler -> I/O -> STDOUT -\end{DoxyVerb} +\begin{DoxyVerb} Manage Run-Time Environment -> Compiler -> I/O -> STDOUT \end{DoxyVerb} Для SWO также надо включить трассировку\+: ~\newline -\begin{DoxyVerb} Options For Target -> Debug -> Debugger Settings -\end{DoxyVerb} +\begin{DoxyVerb} Options For Target -> Debug -> Debugger Settings\end{DoxyVerb} В вкладке Debug\+: @@ -48,24 +46,18 @@ Collaboration diagram for Serial trace defines\+:\nopagebreak \item Port = SW В вкладке Trace\+: \item Указать Core Clock \item Выставить Trace Port = SWO -\item ITM -\/ выбрать нужный порт (для Keil нулевой порт) +\item ITM -\/ выбрать нужный порт (для Keil нулевой порт) ~\newline + \end{DoxyItemize} \end{DoxyItemize} -\label{doc-define-members} -\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_doc-define-members} \doxysubsubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}\index{Serial trace defines@{Serial trace defines}!my\_printf@{my\_printf}} +\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}\label{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa} +\index{Serial trace defines@{Serial trace defines}!my\_printf@{my\_printf}} \index{my\_printf@{my\_printf}!Serial trace defines@{Serial trace defines}} \doxysubsubsubsubsubsection{\texorpdfstring{my\_printf}{my\_printf}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa} -\#define my\+\_\+printf(\begin{DoxyParamCaption}\item[{}]{}...{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define my\+\_\+printf(\begin{DoxyParamCaption}\item[{}]{... }\end{DoxyParamCaption})~SEGGER\+\_\+\+RTT\+\_\+printf(0, \+\_\+\+\_\+\+VA\+\_\+\+ARGS\+\_\+\+\_\+)} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{SEGGER\_RTT\_printf(0,\ \_\_VA\_ARGS\_\_)} - -\end{DoxyCode} Универсальный макрос для вывода трассировки @@ -79,11 +71,11 @@ Collaboration diagram for Serial trace defines\+:\nopagebreak Definition at line \mbox{\hyperlink{trace_8h_source_l00071}{71}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}\index{Serial trace defines@{Serial trace defines}!log\_printf@{log\_printf}} +\Hypertarget{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}\label{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26} +\index{Serial trace defines@{Serial trace defines}!log\_printf@{log\_printf}} \index{log\_printf@{log\_printf}!Serial trace defines@{Serial trace defines}} \doxysubsubsubsubsubsection{\texorpdfstring{log\_printf}{log\_printf}} -{\footnotesize\ttfamily \label{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26} -\#define log\+\_\+printf(\begin{DoxyParamCaption}\item[{}]{TAG}{, }\item[{}]{fmt}{, }\item[{}]{}...{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define log\+\_\+printf(\begin{DoxyParamCaption}\item[{}]{TAG, }\item[{}]{fmt, }\item[{}]{... }\end{DoxyParamCaption})} {\bfseries Value\+:} \begin{DoxyCode}{0} 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 9f4c6e3..8d342a4 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{Trackers defines } +\doxysubsubsection{Trackers defines} \hypertarget{group___t_r_a_c_k_e_r_s}{}\label{group___t_r_a_c_k_e_r_s}\index{Trackers defines@{Trackers defines}} @@ -17,43 +17,43 @@ Collaboration diagram for Trackers defines\+:\nopagebreak \item \#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{Tracker\+Type\+Def}}(num\+\_\+user\+\_\+vars) \begin{DoxyCompactList}\small\item\em Структура для счетчиков отладки \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}(\+\_\+user\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}(\+\_\+user\+\_\+)~(sizeof(\+\_\+user\+\_\+) / sizeof(uint32\+\_\+t)) \begin{DoxyCompactList}\small\item\em Получить количетство пользовательских переменных \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~((\+\_\+uservarnumb\+\_\+) $<$ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}((\+\_\+cntstruct\+\_\+).user)) \begin{DoxyCompactList}\small\item\em Проверка существует ли указанная пользовательская переменная \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~if(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)) \begin{DoxyCompactList}\small\item\em Условие для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)) ? \+\_\+uservarnumb\+\_\+ \+: 0 \begin{DoxyCompactList}\small\item\em Тернарный оператор для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+ok \begin{DoxyCompactList}\small\item\em Считать счетчик успешных событий \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+err \begin{DoxyCompactList}\small\item\em Считать счетчик ошибок \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+warn \begin{DoxyCompactList}\small\item\em Считать счетчик предупреждений \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~(\+\_\+cntstruct\+\_\+).user\mbox{[}\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)\mbox{]} \begin{DoxyCompactList}\small\item\em Считать пользовательскую переменную \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+ok++ \begin{DoxyCompactList}\small\item\em Инкрементирование счетчика успешных событий \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+err++ \begin{DoxyCompactList}\small\item\em Инкрементирование счетчика ошибок \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+warn++ \begin{DoxyCompactList}\small\item\em Инкрементирование счетчика предупреждений \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) (\+\_\+cntstruct\+\_\+).user\mbox{[}\+\_\+uservarnumb\+\_\+\mbox{]}++; \begin{DoxyCompactList}\small\item\em Инкрементирование пользовательской переменной \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+, \+\_\+val\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+, \+\_\+val\+\_\+)~\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) (\+\_\+cntstruct\+\_\+).user\mbox{[}\+\_\+uservarnumb\+\_\+\mbox{]} = (\+\_\+val\+\_\+) \begin{DoxyCompactList}\small\item\em Запись числа в пользовательскую переменную \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All}}(\+\_\+cntstruct\+\_\+)~memset(\&(\+\_\+cntstruct\+\_\+), 0, sizeof(\+\_\+cntstruct\+\_\+)) \begin{DoxyCompactList}\small\item\em Очистка всей структуры \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+ok = 0 \begin{DoxyCompactList}\small\item\em Очистка счетчика успешных событий \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+err = 0 \begin{DoxyCompactList}\small\item\em Очистка счетчика ошибок \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+warn = 0 \begin{DoxyCompactList}\small\item\em Очистка счетчика предупреждений \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) (\+\_\+cntstruct\+\_\+).user\mbox{[}\+\_\+uservarnumb\+\_\+\mbox{]} = 0; \begin{DoxyCompactList}\small\item\em Очистка пользовательской переменной \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All}}(\+\_\+cntstruct\+\_\+)~memset(\&(\+\_\+cntstruct\+\_\+).user, 0, sizeof((\+\_\+cntstruct\+\_\+).user)) \begin{DoxyCompactList}\small\item\em Очистка всех пользовательских переменных \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -111,18 +111,17 @@ Collaboration diagram for Trackers defines\+:\nopagebreak \item \doxylink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err()} \item \doxylink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn()} \item \doxylink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User(n)} -\item \doxylink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All()} +\item \doxylink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All()} ~\newline + \end{DoxyItemize} \end{DoxyItemize} -\label{doc-define-members} -\Hypertarget{group___t_r_a_c_k_e_r_s_doc-define-members} \doxysubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}\index{Trackers defines@{Trackers defines}!TrackerTypeDef@{TrackerTypeDef}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}\label{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4} +\index{Trackers defines@{Trackers defines}!TrackerTypeDef@{TrackerTypeDef}} \index{TrackerTypeDef@{TrackerTypeDef}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerTypeDef}{TrackerTypeDef}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4} -\#define Tracker\+Type\+Def(\begin{DoxyParamCaption}\item[{}]{num\+\_\+user\+\_\+vars}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Type\+Def(\begin{DoxyParamCaption}\item[{}]{num\+\_\+user\+\_\+vars }\end{DoxyParamCaption})} {\bfseries Value\+:} \begin{DoxyCode}{0} @@ -150,17 +149,12 @@ Collaboration diagram for Trackers defines\+:\nopagebreak Definition at line \mbox{\hyperlink{trackers_8h_source_l00070}{70}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}\index{Trackers defines@{Trackers defines}!num\_of\_usercnts@{num\_of\_usercnts}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}\label{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc} +\index{Trackers defines@{Trackers defines}!num\_of\_usercnts@{num\_of\_usercnts}} \index{num\_of\_usercnts@{num\_of\_usercnts}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{num\_of\_usercnts}{num\_of\_usercnts}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc} -\#define num\+\_\+of\+\_\+usercnts(\begin{DoxyParamCaption}\item[{}]{\+\_\+user\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define num\+\_\+of\+\_\+usercnts(\begin{DoxyParamCaption}\item[{}]{\+\_\+user\+\_\+ }\end{DoxyParamCaption})~(sizeof(\+\_\+user\+\_\+) / sizeof(uint32\+\_\+t))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\textcolor{keyword}{sizeof}(\_user\_)\ /\ \textcolor{keyword}{sizeof}(uint32\_t))} - -\end{DoxyCode} Получить количетство пользовательских переменных @@ -169,17 +163,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00070}{70}} of file \mbo Definition at line \mbox{\hyperlink{trackers_8h_source_l00080}{80}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}\index{Trackers defines@{Trackers defines}!assert\_usertracker@{assert\_usertracker}} +\Hypertarget{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}\label{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e} +\index{Trackers defines@{Trackers defines}!assert\_usertracker@{assert\_usertracker}} \index{assert\_usertracker@{assert\_usertracker}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{assert\_usertracker}{assert\_usertracker}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e} -\#define assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+, }\item[{}]{\+\_\+uservarnumb\+\_\+ }\end{DoxyParamCaption})~((\+\_\+uservarnumb\+\_\+) $<$ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}((\+\_\+cntstruct\+\_\+).user))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{((\_uservarnumb\_)\ <\ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\_of\_usercnts}}((\_cntstruct\_).user))} - -\end{DoxyCode} Проверка существует ли указанная пользовательская переменная @@ -188,17 +177,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00080}{80}} of file \mbo Definition at line \mbox{\hyperlink{trackers_8h_source_l00082}{82}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}\index{Trackers defines@{Trackers defines}!if\_assert\_usertracker@{if\_assert\_usertracker}} +\Hypertarget{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}\label{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07} +\index{Trackers defines@{Trackers defines}!if\_assert\_usertracker@{if\_assert\_usertracker}} \index{if\_assert\_usertracker@{if\_assert\_usertracker}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{if\_assert\_usertracker}{if\_assert\_usertracker}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07} -\#define if\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define if\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+, }\item[{}]{\+\_\+uservarnumb\+\_\+ }\end{DoxyParamCaption})~if(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{\textcolor{keywordflow}{if}(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_))} - -\end{DoxyCode} Условие для проверки существует ли указанная пользовательская переменная @@ -207,17 +191,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00082}{82}} of file \mbo Definition at line \mbox{\hyperlink{trackers_8h_source_l00084}{84}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}\index{Trackers defines@{Trackers defines}!tern\_assert\_usertracker@{tern\_assert\_usertracker}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}\label{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30} +\index{Trackers defines@{Trackers defines}!tern\_assert\_usertracker@{tern\_assert\_usertracker}} \index{tern\_assert\_usertracker@{tern\_assert\_usertracker}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{tern\_assert\_usertracker}{tern\_assert\_usertracker}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30} -\#define tern\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define tern\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+, }\item[{}]{\+\_\+uservarnumb\+\_\+ }\end{DoxyParamCaption})~(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)) ? \+\_\+uservarnumb\+\_\+ \+: 0} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_))\ ?\ \_uservarnumb\_\ :\ 0} - -\end{DoxyCode} Тернарный оператор для проверки существует ли указанная пользовательская переменная @@ -226,17 +205,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00084}{84}} of file \mbo Definition at line \mbox{\hyperlink{trackers_8h_source_l00086}{86}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}\index{Trackers defines@{Trackers defines}!TrackerGet\_Ok@{TrackerGet\_Ok}} +\Hypertarget{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}\label{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169} +\index{Trackers defines@{Trackers defines}!TrackerGet\_Ok@{TrackerGet\_Ok}} \index{TrackerGet\_Ok@{TrackerGet\_Ok}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Ok}{TrackerGet\_Ok}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169} -\#define Tracker\+Get\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Get\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).cnt\+\_\+ok} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).cnt\_ok} - -\end{DoxyCode} Считать счетчик успешных событий @@ -245,17 +219,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00086}{86}} of file \mbo Definition at line \mbox{\hyperlink{trackers_8h_source_l00090}{90}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}\index{Trackers defines@{Trackers defines}!TrackerGet\_Err@{TrackerGet\_Err}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}\label{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e} +\index{Trackers defines@{Trackers defines}!TrackerGet\_Err@{TrackerGet\_Err}} \index{TrackerGet\_Err@{TrackerGet\_Err}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Err}{TrackerGet\_Err}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e} -\#define Tracker\+Get\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Get\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).cnt\+\_\+err} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).cnt\_err} - -\end{DoxyCode} Считать счетчик ошибок @@ -264,17 +233,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00090}{90}} of file \mbo Definition at line \mbox{\hyperlink{trackers_8h_source_l00092}{92}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}\index{Trackers defines@{Trackers defines}!TrackerGet\_Warn@{TrackerGet\_Warn}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}\label{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758} +\index{Trackers defines@{Trackers defines}!TrackerGet\_Warn@{TrackerGet\_Warn}} \index{TrackerGet\_Warn@{TrackerGet\_Warn}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Warn}{TrackerGet\_Warn}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758} -\#define Tracker\+Get\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Get\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).cnt\+\_\+warn} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).cnt\_warn} - -\end{DoxyCode} Считать счетчик предупреждений @@ -283,17 +247,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00092}{92}} of file \mbo Definition at line \mbox{\hyperlink{trackers_8h_source_l00094}{94}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}\index{Trackers defines@{Trackers defines}!TrackerGet\_User@{TrackerGet\_User}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}\label{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb} +\index{Trackers defines@{Trackers defines}!TrackerGet\_User@{TrackerGet\_User}} \index{TrackerGet\_User@{TrackerGet\_User}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_User}{TrackerGet\_User}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb} -\#define Tracker\+Get\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Get\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+, }\item[{}]{\+\_\+uservarnumb\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).user\mbox{[}\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)\mbox{]}} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).user[\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)]} - -\end{DoxyCode} Считать пользовательскую переменную @@ -309,17 +268,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00094}{94}} of file \mbo Definition at line \mbox{\hyperlink{trackers_8h_source_l00106}{106}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Ok@{TrackerCnt\_Ok}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}\label{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1} +\index{Trackers defines@{Trackers defines}!TrackerCnt\_Ok@{TrackerCnt\_Ok}} \index{TrackerCnt\_Ok@{TrackerCnt\_Ok}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Ok}{TrackerCnt\_Ok}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1} -\#define Tracker\+Cnt\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Cnt\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).cnt\+\_\+ok++} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).cnt\_ok++} - -\end{DoxyCode} Инкрементирование счетчика успешных событий @@ -328,17 +282,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00106}{106}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00111}{111}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Err@{TrackerCnt\_Err}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}\label{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9} +\index{Trackers defines@{Trackers defines}!TrackerCnt\_Err@{TrackerCnt\_Err}} \index{TrackerCnt\_Err@{TrackerCnt\_Err}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Err}{TrackerCnt\_Err}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9} -\#define Tracker\+Cnt\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Cnt\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).cnt\+\_\+err++} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).cnt\_err++} - -\end{DoxyCode} Инкрементирование счетчика ошибок @@ -347,17 +296,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00111}{111}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00113}{113}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Warn@{TrackerCnt\_Warn}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}\label{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57} +\index{Trackers defines@{Trackers defines}!TrackerCnt\_Warn@{TrackerCnt\_Warn}} \index{TrackerCnt\_Warn@{TrackerCnt\_Warn}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Warn}{TrackerCnt\_Warn}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57} -\#define Tracker\+Cnt\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Cnt\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).cnt\+\_\+warn++} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).cnt\_warn++} - -\end{DoxyCode} Инкрементирование счетчика предупреждений @@ -366,17 +310,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00113}{113}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00115}{115}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}\index{Trackers defines@{Trackers defines}!TrackerCnt\_User@{TrackerCnt\_User}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}\label{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e} +\index{Trackers defines@{Trackers defines}!TrackerCnt\_User@{TrackerCnt\_User}} \index{TrackerCnt\_User@{TrackerCnt\_User}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_User}{TrackerCnt\_User}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e} -\#define Tracker\+Cnt\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Cnt\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+, }\item[{}]{\+\_\+uservarnumb\+\_\+ }\end{DoxyParamCaption})~\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) (\+\_\+cntstruct\+\_\+).user\mbox{[}\+\_\+uservarnumb\+\_\+\mbox{]}++;} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]++;} - -\end{DoxyCode} Инкрементирование пользовательской переменной @@ -385,17 +324,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00115}{115}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00117}{117}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}\index{Trackers defines@{Trackers defines}!TrackerWrite\_User@{TrackerWrite\_User}} +\Hypertarget{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}\label{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51} +\index{Trackers defines@{Trackers defines}!TrackerWrite\_User@{TrackerWrite\_User}} \index{TrackerWrite\_User@{TrackerWrite\_User}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerWrite\_User}{TrackerWrite\_User}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51} -\#define Tracker\+Write\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{, }\item[{}]{\+\_\+val\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Write\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+, }\item[{}]{\+\_\+uservarnumb\+\_\+, }\item[{}]{\+\_\+val\+\_\+ }\end{DoxyParamCaption})~\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) (\+\_\+cntstruct\+\_\+).user\mbox{[}\+\_\+uservarnumb\+\_\+\mbox{]} = (\+\_\+val\+\_\+)} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]\ =\ (\_val\_)} - -\end{DoxyCode} Запись числа в пользовательскую переменную @@ -404,17 +338,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00117}{117}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00119}{119}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}\index{Trackers defines@{Trackers defines}!TrackerClear\_All@{TrackerClear\_All}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}\label{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b} +\index{Trackers defines@{Trackers defines}!TrackerClear\_All@{TrackerClear\_All}} \index{TrackerClear\_All@{TrackerClear\_All}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_All}{TrackerClear\_All}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b} -\#define Tracker\+Clear\+\_\+\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Clear\+\_\+\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~memset(\&(\+\_\+cntstruct\+\_\+), 0, sizeof(\+\_\+cntstruct\+\_\+))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{memset(\&(\_cntstruct\_),\ 0,\ \textcolor{keyword}{sizeof}(\_cntstruct\_))} - -\end{DoxyCode} Очистка всей структуры @@ -423,17 +352,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00119}{119}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00122}{122}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}\index{Trackers defines@{Trackers defines}!TrackerClear\_Ok@{TrackerClear\_Ok}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}\label{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9} +\index{Trackers defines@{Trackers defines}!TrackerClear\_Ok@{TrackerClear\_Ok}} \index{TrackerClear\_Ok@{TrackerClear\_Ok}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Ok}{TrackerClear\_Ok}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9} -\#define Tracker\+Clear\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Clear\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).cnt\+\_\+ok = 0} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).cnt\_ok\ =\ 0} - -\end{DoxyCode} Очистка счетчика успешных событий @@ -442,17 +366,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00122}{122}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00124}{124}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}\index{Trackers defines@{Trackers defines}!TrackerClear\_Err@{TrackerClear\_Err}} +\Hypertarget{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}\label{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74} +\index{Trackers defines@{Trackers defines}!TrackerClear\_Err@{TrackerClear\_Err}} \index{TrackerClear\_Err@{TrackerClear\_Err}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Err}{TrackerClear\_Err}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74} -\#define Tracker\+Clear\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Clear\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).cnt\+\_\+err = 0} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).cnt\_err\ =\ 0} - -\end{DoxyCode} Очистка счетчика ошибок @@ -461,17 +380,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00124}{124}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00126}{126}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}\index{Trackers defines@{Trackers defines}!TrackerClear\_Warn@{TrackerClear\_Warn}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}\label{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead} +\index{Trackers defines@{Trackers defines}!TrackerClear\_Warn@{TrackerClear\_Warn}} \index{TrackerClear\_Warn@{TrackerClear\_Warn}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Warn}{TrackerClear\_Warn}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead} -\#define Tracker\+Clear\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Clear\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~(\+\_\+cntstruct\+\_\+).cnt\+\_\+warn = 0} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\_cntstruct\_).cnt\_warn\ =\ 0} - -\end{DoxyCode} Очистка счетчика предупреждений @@ -480,17 +394,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00126}{126}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00128}{128}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}\index{Trackers defines@{Trackers defines}!TrackerClear\_User@{TrackerClear\_User}} +\Hypertarget{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}\label{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d} +\index{Trackers defines@{Trackers defines}!TrackerClear\_User@{TrackerClear\_User}} \index{TrackerClear\_User@{TrackerClear\_User}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_User}{TrackerClear\_User}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d} -\#define Tracker\+Clear\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Clear\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+, }\item[{}]{\+\_\+uservarnumb\+\_\+ }\end{DoxyParamCaption})~\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) (\+\_\+cntstruct\+\_\+).user\mbox{[}\+\_\+uservarnumb\+\_\+\mbox{]} = 0;} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]\ =\ 0;} - -\end{DoxyCode} Очистка пользовательской переменной @@ -499,17 +408,12 @@ Definition at line \mbox{\hyperlink{trackers_8h_source_l00128}{128}} of file \mb Definition at line \mbox{\hyperlink{trackers_8h_source_l00130}{130}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}. -\Hypertarget{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}\index{Trackers defines@{Trackers defines}!TrackerClear\_UserAll@{TrackerClear\_UserAll}} +\Hypertarget{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}\label{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5} +\index{Trackers defines@{Trackers defines}!TrackerClear\_UserAll@{TrackerClear\_UserAll}} \index{TrackerClear\_UserAll@{TrackerClear\_UserAll}!Trackers defines@{Trackers defines}} \doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_UserAll}{TrackerClear\_UserAll}} -{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5} -\#define Tracker\+Clear\+\_\+\+User\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Tracker\+Clear\+\_\+\+User\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+ }\end{DoxyParamCaption})~memset(\&(\+\_\+cntstruct\+\_\+).user, 0, sizeof((\+\_\+cntstruct\+\_\+).user))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{memset(\&(\_cntstruct\_).user,\ 0,\ \textcolor{keyword}{sizeof}((\_cntstruct\_).user))} - -\end{DoxyCode} Очистка всех пользовательских переменных 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 8d43b86..58c3c5a 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 @@ -1,4 +1,4 @@ -\doxysubsubsection{Utils defines } +\doxysubsubsection{Utils defines} \hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s}{}\label{group___u_t_i_l_s___d_e_f_i_n_e_s}\index{Utils defines@{Utils defines}} @@ -15,13 +15,13 @@ Collaboration diagram for Utils defines\+:\nopagebreak \doxysubsubsubsubsection*{Macros} \begin{DoxyCompactItemize} \item -\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{Clear\+Struct}}(\+\_\+struct\+\_\+) +\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{Clear\+Struct}}(\+\_\+struct\+\_\+)~memset(\&(\+\_\+struct\+\_\+), 0, sizeof(\+\_\+struct\+\_\+)) \begin{DoxyCompactList}\small\item\em Обнуление структуры. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{Divide\+\_\+\+Up}}(\+\_\+val\+\_\+, \+\_\+div\+\_\+) +\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{Divide\+\_\+\+Up}}(\+\_\+val\+\_\+, \+\_\+div\+\_\+)~((\+\_\+val\+\_\+ -\/ 1) / \+\_\+div\+\_\+) + 1 /\texorpdfstring{$\ast$}{*} через мат выражение \texorpdfstring{$\ast$}{*}/ \begin{DoxyCompactList}\small\item\em Деление с округлением вверх \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{Byte\+Swap16}}(v) +\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{Byte\+Swap16}}(v)~(((v\&0x\+FF00) $>$$>$ (8)) \texorpdfstring{$\vert$}{|} ((v\&0x00\+FF) $<$$<$ (8))) \begin{DoxyCompactList}\small\item\em Swap between Little Endian and Big Endian. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{ABS}}(x) +\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{ABS}}(x)~( ((x) $>$ 0)? (x) \+: -\/(x)) \begin{DoxyCompactList}\small\item\em Абсолютное значение числа \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -30,20 +30,13 @@ Collaboration diagram for Utils defines\+:\nopagebreak -\label{doc-define-members} -\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_doc-define-members} \doxysubsubsubsection{Macro Definition Documentation} -\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}\index{Utils defines@{Utils defines}!ClearStruct@{ClearStruct}} +\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}\label{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be} +\index{Utils defines@{Utils defines}!ClearStruct@{ClearStruct}} \index{ClearStruct@{ClearStruct}!Utils defines@{Utils defines}} \doxysubsubsubsubsection{\texorpdfstring{ClearStruct}{ClearStruct}} -{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be} -\#define Clear\+Struct(\begin{DoxyParamCaption}\item[{}]{\+\_\+struct\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Clear\+Struct(\begin{DoxyParamCaption}\item[{}]{\+\_\+struct\+\_\+ }\end{DoxyParamCaption})~memset(\&(\+\_\+struct\+\_\+), 0, sizeof(\+\_\+struct\+\_\+))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{memset(\&(\_struct\_),\ 0,\ \textcolor{keyword}{sizeof}(\_struct\_))} - -\end{DoxyCode} Обнуление структуры. @@ -57,17 +50,12 @@ Collaboration diagram for Utils defines\+:\nopagebreak 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}} +\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}\label{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}} \doxysubsubsubsubsection{\texorpdfstring{Divide\_Up}{Divide\_Up}} -{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e} -\#define Divide\+\_\+\+Up(\begin{DoxyParamCaption}\item[{}]{\+\_\+val\+\_\+}{, }\item[{}]{\+\_\+div\+\_\+}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Divide\+\_\+\+Up(\begin{DoxyParamCaption}\item[{}]{\+\_\+val\+\_\+, }\item[{}]{\+\_\+div\+\_\+ }\end{DoxyParamCaption})~((\+\_\+val\+\_\+ -\/ 1) / \+\_\+div\+\_\+) + 1 /\texorpdfstring{$\ast$}{*} через мат выражение \texorpdfstring{$\ast$}{*}/} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{((\_val\_\ -\/\ 1)\ /\ \_div\_)\ +\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ через\ мат\ выражение\ */}} - -\end{DoxyCode} Деление с округлением вверх @@ -86,17 +74,12 @@ Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00151}{151}} of file 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}} +\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}\label{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}} \doxysubsubsubsubsection{\texorpdfstring{ByteSwap16}{ByteSwap16}} -{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291} -\#define Byte\+Swap16(\begin{DoxyParamCaption}\item[{}]{v}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define Byte\+Swap16(\begin{DoxyParamCaption}\item[{}]{v }\end{DoxyParamCaption})~(((v\&0x\+FF00) $>$$>$ (8)) \texorpdfstring{$\vert$}{|} ((v\&0x00\+FF) $<$$<$ (8)))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(((v\&0xFF00)\ >>\ (8))\ |\ ((v\&0x00FF)\ <<\ (8)))} - -\end{DoxyCode} Swap between Little Endian and Big Endian. @@ -113,17 +96,12 @@ Swap between Little Endian and Big Endian. 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}} +\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}\label{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}} \doxysubsubsubsubsection{\texorpdfstring{ABS}{ABS}} -{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759} -\#define ABS(\begin{DoxyParamCaption}\item[{}]{x}{}\end{DoxyParamCaption})} +{\footnotesize\ttfamily \#define ABS(\begin{DoxyParamCaption}\item[{}]{x }\end{DoxyParamCaption})~( ((x) $>$ 0)? (x) \+: -\/(x))} -{\bfseries Value\+:} -\begin{DoxyCode}{0} -\DoxyCodeLine{(\ ((x)\ >\ 0)?\ (x)\ :\ -\/(x))} - -\end{DoxyCode} Абсолютное значение числа diff --git a/Doc/latex/index.tex b/Doc/latex/index.tex index cf39486..87fb315 100644 --- a/Doc/latex/index.tex +++ b/Doc/latex/index.tex @@ -1,28 +1,28 @@ -\chapter{My\+Libs } +\chapter{My\+Libs} \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 Tools})}{Общие утилиты ({General Tools})}}\label{index_utils_module} +\hypertarget{index_utils_module}{}\doxysubsubsection{\texorpdfstring{Общие утилиты (\doxylink{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{General Tools})}{Общие утилиты (\doxylink{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{General Tools})}}\label{index_utils_module} \begin{DoxyItemize} \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} +\end{DoxyItemize}\hypertarget{index_trace_module}{}\doxysubsubsection{\texorpdfstring{Трассировка \doxylink{group___t_r_a_c_e}{Trace defines}}{Трассировка \doxylink{group___t_r_a_c_e}{Trace defines}}}\label{index_trace_module} \begin{DoxyItemize} \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} +\end{DoxyItemize}\hypertarget{index_gpio_module}{}\doxysubsubsection{\texorpdfstring{Модуль GPIO \doxylink{group___m_y___l_i_b_s___g_p_i_o}{GPIO Tools}}{Модуль GPIO \doxylink{group___m_y___l_i_b_s___g_p_i_o}{GPIO Tools}}}\label{index_gpio_module} \begin{DoxyItemize} \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} +\end{DoxyItemize}\hypertarget{index_tim_module}{}\doxysubsubsection{\texorpdfstring{Модуль таймеров \doxylink{group___m_y___l_i_b_s___t_i_m}{TIM Tools}}{Модуль таймеров \doxylink{group___m_y___l_i_b_s___t_i_m}{TIM Tools}}}\label{index_tim_module} \begin{DoxyItemize} \item Базовая инициализация таймеров (\doxylink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l}{General tools}) diff --git a/Doc/latex/longtable_doxygen.sty b/Doc/latex/longtable_doxygen.sty index 39a44b8..e94b78b 100644 --- a/Doc/latex/longtable_doxygen.sty +++ b/Doc/latex/longtable_doxygen.sty @@ -164,7 +164,7 @@ \ifdim \dimen@>\z@\vfil\break\fi \global\@colroom\@colht \ifvoid\LT@foot\else - \global\advance\vsize-\ht\LT@foot + \advance\vsize-\ht\LT@foot \global\advance\@colroom-\ht\LT@foot \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ \maxdepth\z@ @@ -193,13 +193,9 @@ \LT@final@warn \fi \endgraf\penalty -\LT@end@pen - \ifvoid\LT@foot\else - \global\advance\vsize\ht\LT@foot - \global\advance\@colroom\ht\LT@foot - \dimen@\pagegoal\advance\dimen@\ht\LT@foot\pagegoal\dimen@ - \fi \endgroup \global\@mparbottom\z@ + \pagegoal\vsize \endgraf\penalty\z@\addvspace\LTpost \ifvoid\footins\else\insert\footins{}\fi} \def\LT@nofcols#1&{% @@ -396,17 +392,18 @@ \setbox\z@\vbox{\unvbox\@cclv}% \ifdim \ht\LT@lastfoot>\ht\LT@foot \dimen@\pagegoal - \advance\dimen@\ht\LT@foot \advance\dimen@-\ht\LT@lastfoot \ifdim\dimen@<\ht\z@ \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% \@makecol \@outputpage - \global\vsize\@colroom \setbox\z@\vbox{\box\LT@head}% \fi \fi - \unvbox\z@\ifvoid\LT@lastfoot\copy\LT@foot\else\box\LT@lastfoot\fi + \global\@colroom\@colht + \global\vsize\@colht + \vbox + {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% \fi \else \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% diff --git a/Doc/latex/mainpage_8h_source.tex b/Doc/latex/mainpage_8h_source.tex index 3b60fb4..7067a67 100644 --- a/Doc/latex/mainpage_8h_source.tex +++ b/Doc/latex/mainpage_8h_source.tex @@ -1,5 +1,5 @@ \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}} +\hypertarget{mainpage_8h_source}{}\label{mainpage_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/mainpage.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/mainpage.h}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{mainpage_8h_source_l00001}00001\ \textcolor{comment}{}} diff --git a/Doc/latex/make.bat b/Doc/latex/make.bat index ccd0c1b..96da1c8 100644 --- a/Doc/latex/make.bat +++ b/Doc/latex/make.bat @@ -1,5 +1,5 @@ pushd %~dp0 -if not %errorlevel% == 0 goto :end1 +if not %errorlevel% == 0 goto :end set ORG_LATEX_CMD=%LATEX_CMD% set ORG_MKIDX_CMD=%MKIDX_CMD% @@ -16,12 +16,10 @@ del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl %LATEX_CMD% %MANUAL_FILE% -@if ERRORLEVEL 1 goto :error echo ---- %MKIDX_CMD% %MANUAL_FILE%.idx echo ---- %LATEX_CMD% %MANUAL_FILE% -@if ERRORLEVEL 1 goto :error setlocal enabledelayedexpansion set count=%LATEX_COUNT% @@ -36,21 +34,12 @@ if !count! EQU 0 goto :skip echo ---- %LATEX_CMD% %MANUAL_FILE% -@if ERRORLEVEL 1 goto :error goto :repeat :skip endlocal %MKIDX_CMD% %MANUAL_FILE%.idx %LATEX_CMD% %MANUAL_FILE% -@if ERRORLEVEL 1 goto :error -goto :end -:error -@echo =============== -@echo Please consult %MANUAL_FILE%.log to see the error messages -@echo =============== - -:end @REM reset environment popd set LATEX_CMD=%ORG_LATEX_CMD% @@ -64,4 +53,4 @@ set ORG_MANUAL_FILE= set LATEX_COUNT=%ORG_LATEX_COUNT% set ORG_LATEX_COUNT= -:end1 +:end diff --git a/Doc/latex/mylibs__config_8h.tex b/Doc/latex/mylibs__config_8h.tex index 0764916..a5b9c86 100644 --- a/Doc/latex/mylibs__config_8h.tex +++ b/Doc/latex/mylibs__config_8h.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/mylibs\+\_\+config.h File Reference} -\hypertarget{mylibs__config_8h}{}\label{mylibs__config_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/mylibs\+\_\+config.h File Reference} +\hypertarget{mylibs__config_8h}{}\label{mylibs__config_8h}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h}} Конфигурации для библиотек My\+Libs. @@ -10,7 +10,7 @@ Include dependency graph for mylibs\+\_\+config.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{mylibs__config_8h__incl} +\includegraphics[width=233pt]{mylibs__config_8h__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+:\nopagebreak diff --git a/Doc/latex/mylibs__config_8h__dep__incl.md5 b/Doc/latex/mylibs__config_8h__dep__incl.md5 index 92c2562..1bc1f47 100644 --- a/Doc/latex/mylibs__config_8h__dep__incl.md5 +++ b/Doc/latex/mylibs__config_8h__dep__incl.md5 @@ -1 +1 @@ -4caffed778a6832d18365a032a821f0e \ No newline at end of file +dfdd61dc82258e402e33665df3248b95 \ 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 a1d76bb..220546e 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.md5 b/Doc/latex/mylibs__config_8h__incl.md5 index 05972e8..7d171f1 100644 --- a/Doc/latex/mylibs__config_8h__incl.md5 +++ b/Doc/latex/mylibs__config_8h__incl.md5 @@ -1 +1 @@ -7f343940c93fbed727067d075d8fdd8d \ No newline at end of file +427d243444c5f0fad6dcdd2d1fe989d2 \ No newline at end of file diff --git a/Doc/latex/mylibs__config_8h__incl.pdf b/Doc/latex/mylibs__config_8h__incl.pdf index 99357c2..7e62295 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 e4c369b..9e84b10 100644 --- a/Doc/latex/mylibs__config_8h_source.tex +++ b/Doc/latex/mylibs__config_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{mylibs\+\_\+config.\+h} -\hypertarget{mylibs__config_8h_source}{}\label{mylibs__config_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h}} +\hypertarget{mylibs__config_8h_source}{}\label{mylibs__config_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_config.h}} \mbox{\hyperlink{mylibs__config_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{mylibs__config_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} diff --git a/Doc/latex/mylibs__defs_8h.tex b/Doc/latex/mylibs__defs_8h.tex index a0cc00b..0dd64aa 100644 --- a/Doc/latex/mylibs__defs_8h.tex +++ b/Doc/latex/mylibs__defs_8h.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/mylibs\+\_\+defs.h File Reference} -\hypertarget{mylibs__defs_8h}{}\label{mylibs__defs_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/mylibs\+\_\+defs.h File Reference} +\hypertarget{mylibs__defs_8h}{}\label{mylibs__defs_8h}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h}} Заголочный файл для дефайнов библиотеки My\+Libs\+General. @@ -10,7 +10,7 @@ Include dependency graph for mylibs\+\_\+defs.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{mylibs__defs_8h__incl} +\includegraphics[width=263pt]{mylibs__defs_8h__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+:\nopagebreak @@ -23,33 +23,33 @@ This graph shows which files directly or indirectly include this file\+:\nopageb \doxysubsubsection*{Macros} \begin{DoxyCompactItemize} \item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{My\+Libs\+\_\+\+Error\+\_\+\+Handler}}(params) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gae110df81afd885a390bbeb152d7b709f}{My\+Libs\+\_\+\+Error\+\_\+\+Handler}}(params)~Error\+\_\+\+Handler(params) \begin{DoxyCompactList}\small\item\em Error\+\_\+\+Handler который будет вызыватся в библиотеке \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}{check\+\_\+null\+\_\+ptr\+\_\+1}}(p1) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga5d066a5b9781f9437e75d98677489eb9}{check\+\_\+null\+\_\+ptr\+\_\+1}}(p1)~(p1 == NULL) \begin{DoxyCompactList}\small\item\em Проверить один указатель на NULL. \end{DoxyCompactList}\item -\#define \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}}(p1, p2) +\#define \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}}(p1, p2)~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& p2 == NULL)) \begin{DoxyCompactList}\small\item\em Проверить два указателя на NULL. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}{check\+\_\+null\+\_\+ptr\+\_\+3}}(p1, p2, p3) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga838b40542faa9aa273d18f921b21fda2}{check\+\_\+null\+\_\+ptr\+\_\+3}}(p1, p2, p3)~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& ((p2 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p2 != NULL \&\& p3 == NULL)))) \begin{DoxyCompactList}\small\item\em Проверить три указателя на NULL. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}{check\+\_\+null\+\_\+ptr\+\_\+4}}(p1, p2, p3, p4) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_ga590973be111afc3f9ba15e6939530254}{check\+\_\+null\+\_\+ptr\+\_\+4}}(p1, p2, p3, p4)~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& ((p2 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p2 != NULL \&\& ((p3 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p3 != NULL \&\& p4 == NULL)))))) \begin{DoxyCompactList}\small\item\em Проверить четыре указателя на NULL. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}{check\+\_\+null\+\_\+ptr\+\_\+5}}(p1, p2, p3, p4, p5) +\#define \mbox{\hyperlink{group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_gaab0aafd7a4a21ec4f338b19269f65490}{check\+\_\+null\+\_\+ptr\+\_\+5}}(p1, p2, p3, p4, p5)~((p1 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p1 != NULL \&\& ((p2 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p2 != NULL \&\& ((p3 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p3 != NULL \&\& ((p4 == NULL) \texorpdfstring{$\vert$}{|}\texorpdfstring{$\vert$}{|} (p4 != NULL \&\& p5 == NULL)))))))) \begin{DoxyCompactList}\small\item\em Проверить пять указателей на NULL. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{ms\+Delay}}(\+\_\+ms\+\_\+) +\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gabeb97579daeb622c6651ed03c4a27479}{ms\+Delay}}(\+\_\+ms\+\_\+)~HAL\+\_\+\+Delay(\+\_\+ms\+\_\+) \begin{DoxyCompactList}\small\item\em Задержка на указанное количество миллисекунд. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start}}(\+\_\+pvar\+\_\+) +\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga8a5051b1292d1019fe8dd3fc5521ab25}{ms\+Delay\+Start}}(\+\_\+pvar\+\_\+)~\texorpdfstring{$\ast$}{*}(\+\_\+pvar\+\_\+) = HAL\+\_\+\+Get\+Tick() \begin{DoxyCompactList}\small\item\em Начать отсчет задержки. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{ms\+Delay\+While\+Active}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+) +\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_ga0b97e172659a59ee4fa56f851643ae85}{ms\+Delay\+While\+Active}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+)~(HAL\+\_\+\+Get\+Tick() -\/ \texorpdfstring{$\ast$}{*}(\+\_\+pvar\+\_\+) $<$ \+\_\+ms\+\_\+) \begin{DoxyCompactList}\small\item\em Проверяет, активна ли задержка. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+) +\#define \mbox{\hyperlink{group___d_e_l_a_y_s___d_e_f_i_n_e_s_gaed082c07b9fc4d1894330d885b9b5518}{ms\+Delay\+Wait\+Done}}(\+\_\+ms\+\_\+, \+\_\+pvar\+\_\+)~(HAL\+\_\+\+Get\+Tick() -\/ \texorpdfstring{$\ast$}{*}(\+\_\+pvar\+\_\+) $>$= \+\_\+ms\+\_\+) \begin{DoxyCompactList}\small\item\em Проверяет, завершилась ли задержка. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{Clear\+Struct}}(\+\_\+struct\+\_\+) +\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{Clear\+Struct}}(\+\_\+struct\+\_\+)~memset(\&(\+\_\+struct\+\_\+), 0, sizeof(\+\_\+struct\+\_\+)) \begin{DoxyCompactList}\small\item\em Обнуление структуры. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{Divide\+\_\+\+Up}}(\+\_\+val\+\_\+, \+\_\+div\+\_\+) +\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{Divide\+\_\+\+Up}}(\+\_\+val\+\_\+, \+\_\+div\+\_\+)~((\+\_\+val\+\_\+ -\/ 1) / \+\_\+div\+\_\+) + 1 /\texorpdfstring{$\ast$}{*} через мат выражение \texorpdfstring{$\ast$}{*}/ \begin{DoxyCompactList}\small\item\em Деление с округлением вверх \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{Byte\+Swap16}}(v) +\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{Byte\+Swap16}}(v)~(((v\&0x\+FF00) $>$$>$ (8)) \texorpdfstring{$\vert$}{|} ((v\&0x00\+FF) $<$$<$ (8))) \begin{DoxyCompactList}\small\item\em Swap between Little Endian and Big Endian. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{ABS}}(x) +\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{ABS}}(x)~( ((x) $>$ 0)? (x) \+: -\/(x)) \begin{DoxyCompactList}\small\item\em Абсолютное значение числа \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} diff --git a/Doc/latex/mylibs__defs_8h__dep__incl.md5 b/Doc/latex/mylibs__defs_8h__dep__incl.md5 index 4546d80..5c2d1b7 100644 --- a/Doc/latex/mylibs__defs_8h__dep__incl.md5 +++ b/Doc/latex/mylibs__defs_8h__dep__incl.md5 @@ -1 +1 @@ -609390e8ed268a2e3acd045e0d24f78d \ No newline at end of file +a0add19dd86a580c165837823a871204 \ 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 cd6d71f..65f15a3 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.md5 b/Doc/latex/mylibs__defs_8h__incl.md5 index 836cb7e..ef4b4a9 100644 --- a/Doc/latex/mylibs__defs_8h__incl.md5 +++ b/Doc/latex/mylibs__defs_8h__incl.md5 @@ -1 +1 @@ -b5e99873d7ab78385a101e5850699d2c \ No newline at end of file +b0594a81c6dada4780f453ea023ebb76 \ No newline at end of file diff --git a/Doc/latex/mylibs__defs_8h__incl.pdf b/Doc/latex/mylibs__defs_8h__incl.pdf index 884406e..5b23485 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 01eb3ff..366b229 100644 --- a/Doc/latex/mylibs__defs_8h_source.tex +++ b/Doc/latex/mylibs__defs_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{mylibs\+\_\+defs.\+h} -\hypertarget{mylibs__defs_8h_source}{}\label{mylibs__defs_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h}} +\hypertarget{mylibs__defs_8h_source}{}\label{mylibs__defs_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_defs.h}} \mbox{\hyperlink{mylibs__defs_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{mylibs__defs_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} diff --git a/Doc/latex/mylibs__include_8h.tex b/Doc/latex/mylibs__include_8h.tex index 7e1d759..76892b9 100644 --- a/Doc/latex/mylibs__include_8h.tex +++ b/Doc/latex/mylibs__include_8h.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/mylibs\+\_\+include.h File Reference} -\hypertarget{mylibs__include_8h}{}\label{mylibs__include_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/mylibs\+\_\+include.h File Reference} +\hypertarget{mylibs__include_8h}{}\label{mylibs__include_8h}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h}} Заголочный файл для всех библиотек diff --git a/Doc/latex/mylibs__include_8h__incl.md5 b/Doc/latex/mylibs__include_8h__incl.md5 index 4d9f480..f52fb61 100644 --- a/Doc/latex/mylibs__include_8h__incl.md5 +++ b/Doc/latex/mylibs__include_8h__incl.md5 @@ -1 +1 @@ -e8a6536a4a1a8e7b4caa7211e99459a4 \ No newline at end of file +8121715bde1cc32481a3a48c6e1c486d \ 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 4da492e..882ee8f 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 031799d..46d0545 100644 --- a/Doc/latex/mylibs__include_8h_source.tex +++ b/Doc/latex/mylibs__include_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{mylibs\+\_\+include.\+h} -\hypertarget{mylibs__include_8h_source}{}\label{mylibs__include_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h}} +\hypertarget{mylibs__include_8h_source}{}\label{mylibs__include_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/mylibs\_include.h}} \mbox{\hyperlink{mylibs__include_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} @@ -120,11 +120,11 @@ \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_l00119}00119\ \textcolor{comment}{}\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_l00123}00123\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00124}00124\ } \DoxyCodeLine{\Hypertarget{mylibs__include_8h_source_l00125}00125\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ \_\_MYLIBS\_INCLUDE\_H\_}} diff --git a/Doc/latex/refman.tex b/Doc/latex/refman.tex index 31821a5..1555761 100644 --- a/Doc/latex/refman.tex +++ b/Doc/latex/refman.tex @@ -1,16 +1,7 @@ % Handle batch mode % to overcome problems with too many open files \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage} - \RequirePackage{iftex} - \ifLuaTeX - \directlua{pdf.setminorversion(7)} - \fi - \ifXeTeX - \special{pdf:minorversion 7} - \fi - \ifPDFTeX - \pdfminorversion=7 - \fi + \pdfminorversion=7 % Set document class depending on configuration \documentclass[twoside]{book} %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package @@ -31,18 +22,10 @@ \let\protected@wlog\@@protected@wlog \makeatother \IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript - \ifPDFTeX - \IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{} - \fi + \IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{} \usepackage{doxygen} \usepackage{graphicx} - \iftutex - \usepackage{fontspec} - \defaultfontfeatures{Ligatures={TeX}} - \usepackage{unicode-math} - \else - \usepackage[utf8]{inputenc} - \fi + \usepackage[utf8]{inputenc} \usepackage{makeidx} \PassOptionsToPackage{warn}{textcomp} \usepackage{textcomp} @@ -51,10 +34,7 @@ % NLS support packages % Define default fonts % Font selection - \iftutex - \else - \usepackage[T1]{fontenc} - \fi + \usepackage[T1]{fontenc} % set main and monospaced font \usepackage[scaled=.90]{helvet} \usepackage{courier} @@ -135,14 +115,13 @@ } % ToC, LoF, LoT, bibliography, and index % Indices & bibliography - \usepackage[numbers]{natbib} + \usepackage{natbib} \usepackage[titles]{tocloft} \setcounter{tocdepth}{3} \setcounter{secnumdepth}{5} % creating indexes \makeindex - \ifPDFTeX -\usepackage{newunicodechar} + \usepackage{newunicodechar} \makeatletter \def\doxynewunicodechar#1#2{% \@tempswafalse @@ -161,20 +140,15 @@ \doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus \doxynewunicodechar{²}{${}^{2}$}% Superscript two \doxynewunicodechar{³}{${}^{3}$}% Superscript three -\fi % Hyperlinks % Hyperlinks (required, but should be loaded last) - \ifPDFTeX + \ifpdf \usepackage[pdftex,pagebackref=true]{hyperref} \else - \ifXeTeX - \usepackage[xetex,pagebackref=true]{hyperref} + \ifxetex + \usepackage[pagebackref=true]{hyperref} \else - \ifLuaTeX - \usepackage[luatex,pagebackref=true]{hyperref} - \else - \usepackage[ps2pdf,pagebackref=true]{hyperref} - \fi + \usepackage[ps2pdf,pagebackref=true]{hyperref} \fi \fi \hypersetup{% @@ -222,7 +196,7 @@ {\Large My\+Libs}\\ [1ex]\large 1.\+0 \\ \vspace*{1cm} - {\large Generated by Doxygen 1.14.0}\\ + {\large Generated by Doxygen 1.10.0}\\ \end{center} \end{titlepage} \clearemptydoublepage diff --git a/Doc/latex/struct_evolve_optimizer__t.tex b/Doc/latex/struct_evolve_optimizer__t.tex index 5f573db..3cfe9cd 100644 --- a/Doc/latex/struct_evolve_optimizer__t.tex +++ b/Doc/latex/struct_evolve_optimizer__t.tex @@ -12,19 +12,21 @@ \doxysubsubsection*{Public Attributes} \begin{DoxyCompactItemize} \item +float \mbox{\hyperlink{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c}{stability}} +\begin{DoxyCompactList}\small\item\em Коэффициент насколько стабильная популяция (0..1)(\doxylink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\+\_\+cand}) \end{DoxyCompactList}\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 +\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 +float \mbox{\hyperlink{struct_evolve_optimizer__t_af779c7aeba0053e36cee7aade160f1c8}{mutation\+\_\+amp}} +\begin{DoxyCompactList}\small\item\em Амплитуда мутации (0..1) \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{]} +float \mbox{\hyperlink{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}{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{]} +float \mbox{\hyperlink{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}{candidates}} \mbox{[}100\mbox{]}\mbox{[}20\mbox{]} \begin{DoxyCompactList}\small\item\em Параметры кандидатов \end{DoxyCompactList}\item uint16\+\_\+t \mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}{sorted\+\_\+idx}} \mbox{[}100\mbox{]} \begin{DoxyCompactList}\small\item\em Индексы отсортированных кандидатов \end{DoxyCompactList}\end{DoxyCompactItemize} @@ -33,18 +35,30 @@ uint16\+\_\+t \mbox{\hyperlink{struct_evolve_optimizer__t_a74b81df1c298c99162310 \doxysubsection{Detailed Description} Структура эволюционного оптимизатора -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00087}{87}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00102}{102}} 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}} +\Hypertarget{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c}\label{struct_evolve_optimizer__t_a80eb0b8525b6bb838484f5922b9d8f7c} +\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!stability@{stability}} +\index{stability@{stability}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} +\doxysubsubsection{\texorpdfstring{stability}{stability}} +{\footnotesize\ttfamily float Evolve\+Optimizer\+\_\+t\+::stability} + + + +Коэффициент насколько стабильная популяция (0..1)(\doxylink{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}{n\+\_\+cand}) + + + +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00103}{103}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. + +\Hypertarget{struct_evolve_optimizer__t_a1c270fce82e0c97e6c88fd0971c1eed8}\label{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} +{\footnotesize\ttfamily uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::n\+\_\+params} @@ -52,27 +66,27 @@ uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::n\+\_\+params} -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00088}{88}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00104}{104}} 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}} +\Hypertarget{struct_evolve_optimizer__t_ac35c7ca8cede4ab9c53a2845a91cd1b1}\label{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} +{\footnotesize\ttfamily uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::n\+\_\+cand} -Количество кандидатов +Количество кандидатов в популяции -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00089}{89}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00105}{105}} 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}} +\Hypertarget{struct_evolve_optimizer__t_a950cd70cb6bff33b78ad35ee58c729a6}\label{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} +{\footnotesize\ttfamily uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::n\+\_\+best} @@ -80,27 +94,27 @@ uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::n\+\_\+best} -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00090}{90}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00106}{106}} 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} +\Hypertarget{struct_evolve_optimizer__t_af779c7aeba0053e36cee7aade160f1c8}\label{struct_evolve_optimizer__t_af779c7aeba0053e36cee7aade160f1c8} +\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!mutation\_amp@{mutation\_amp}} +\index{mutation\_amp@{mutation\_amp}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} +\doxysubsubsection{\texorpdfstring{mutation\_amp}{mutation\_amp}} +{\footnotesize\ttfamily float Evolve\+Optimizer\+\_\+t\+::mutation\+\_\+amp} -Амплитуда мутации в Q16.\+16. +Амплитуда мутации (0..1) -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00091}{91}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00107}{107}} 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}} +\Hypertarget{struct_evolve_optimizer__t_a0ae0e63ba351335d4445d927991c64ae}\label{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} +{\footnotesize\ttfamily uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::cand\+\_\+index} @@ -108,13 +122,13 @@ uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::cand\+\_\+index} -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00092}{92}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00108}{108}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. -\Hypertarget{struct_evolve_optimizer__t_ac723b265a3d43b754489f14310314f0d}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!loss@{loss}} +\Hypertarget{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df}\label{struct_evolve_optimizer__t_a93f628397c2f8d4027f2906752b650df} +\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{]}} +{\footnotesize\ttfamily float Evolve\+Optimizer\+\_\+t\+::loss\mbox{[}100\mbox{]}} @@ -122,13 +136,13 @@ Loss для каждого кандидата -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00093}{93}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00109}{109}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. -\Hypertarget{struct_evolve_optimizer__t_a61bd0c8ae322a79936ba1f2ae22e0e0d}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!candidates@{candidates}} +\Hypertarget{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4}\label{struct_evolve_optimizer__t_aec67667fd1f1533e693e41c79bc28da4} +\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{]}} +{\footnotesize\ttfamily float Evolve\+Optimizer\+\_\+t\+::candidates\mbox{[}100\mbox{]}\mbox{[}20\mbox{]}} @@ -136,13 +150,13 @@ int32\+\_\+t Evolve\+Optimizer\+\_\+t\+::candidates\mbox{[}100\mbox{]}\mbox{[}20 -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00094}{94}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00110}{110}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. -\Hypertarget{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!sorted\_idx@{sorted\_idx}} +\Hypertarget{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a}\label{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a} +\index{EvolveOptimizer\_t@{EvolveOptimizer\_t}!sorted\_idx@{sorted\_idx}} \index{sorted\_idx@{sorted\_idx}!EvolveOptimizer\_t@{EvolveOptimizer\_t}} \doxysubsubsection{\texorpdfstring{sorted\_idx}{sorted\_idx}} -{\footnotesize\ttfamily \label{struct_evolve_optimizer__t_a74b81df1c298c99162310f3f7d91735a} -uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::sorted\+\_\+idx\mbox{[}100\mbox{]}} +{\footnotesize\ttfamily uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::sorted\+\_\+idx\mbox{[}100\mbox{]}} @@ -150,10 +164,10 @@ uint16\+\_\+t Evolve\+Optimizer\+\_\+t\+::sorted\+\_\+idx\mbox{[}100\mbox{]}} -Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00095}{95}} of file \mbox{\hyperlink{evolve__optimizer_8h_source}{evolve\+\_\+optimizer.\+h}}. +Definition at line \mbox{\hyperlink{evolve__optimizer_8h_source_l00111}{111}} 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} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{evolve__optimizer_8h}{evolve\+\_\+optimizer.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/struct_g_p_i_o___l_e_d_type_def.tex b/Doc/latex/struct_g_p_i_o___l_e_d_type_def.tex index 64fb03d..3ea2200 100644 --- a/Doc/latex/struct_g_p_i_o___l_e_d_type_def.tex +++ b/Doc/latex/struct_g_p_i_o___l_e_d_type_def.tex @@ -33,14 +33,12 @@ Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00093}{93}} of file -\label{doc-variable-members} -\Hypertarget{struct_g_p_i_o___l_e_d_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!state@{state}} +\Hypertarget{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435}\label{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435} +\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!state@{state}} \index{state@{state}!GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}} \doxysubsubsection{\texorpdfstring{state}{state}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___l_e_d_type_def_ad28d93023a00e3c5669bd3deda122435} -\mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{GPIO\+\_\+\+LEDState\+Type\+Def}} GPIO\+\_\+\+LEDType\+Def\+::state} +{\footnotesize\ttfamily \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1}{GPIO\+\_\+\+LEDState\+Type\+Def}} GPIO\+\_\+\+LEDType\+Def\+::state} @@ -50,11 +48,11 @@ Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00093}{93}} of file Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00095}{95}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!LED\_Port@{LED\_Port}} +\Hypertarget{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf}\label{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf} +\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!LED\_Port@{LED\_Port}} \index{LED\_Port@{LED\_Port}!GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}} \doxysubsubsection{\texorpdfstring{LED\_Port}{LED\_Port}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___l_e_d_type_def_a831923d4d157267ecc2f1add1c49adcf} -GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Port} +{\footnotesize\ttfamily GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Port} @@ -64,11 +62,11 @@ GPIO порт ножки светодиода Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00097}{97}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!LED\_Pin@{LED\_Pin}} +\Hypertarget{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978}\label{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978} +\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!LED\_Pin@{LED\_Pin}} \index{LED\_Pin@{LED\_Pin}!GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}} \doxysubsubsection{\texorpdfstring{LED\_Pin}{LED\_Pin}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___l_e_d_type_def_a684ff60e4c94daf2221524cdc6fcc978} -uint32\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Pin} +{\footnotesize\ttfamily uint32\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Pin} @@ -78,11 +76,11 @@ GPIO пин ножки светодиода Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00098}{98}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816}\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!LED\_ActiveLvl@{LED\_ActiveLvl}} +\Hypertarget{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816}\label{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816} +\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!LED\_ActiveLvl@{LED\_ActiveLvl}} \index{LED\_ActiveLvl@{LED\_ActiveLvl}!GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}} \doxysubsubsection{\texorpdfstring{LED\_ActiveLvl}{LED\_ActiveLvl}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___l_e_d_type_def_abe9aadc0b28d042267f7155e187a1816} -uint8\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Active\+Lvl} +{\footnotesize\ttfamily uint8\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Active\+Lvl} @@ -92,11 +90,11 @@ uint8\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Active\+Lvl} Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00100}{100}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec}\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!LED\_Period@{LED\_Period}} +\Hypertarget{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec}\label{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec} +\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!LED\_Period@{LED\_Period}} \index{LED\_Period@{LED\_Period}!GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}} \doxysubsubsection{\texorpdfstring{LED\_Period}{LED\_Period}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___l_e_d_type_def_a6cc026931a4681732f9a329ae03098ec} -uint32\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Period} +{\footnotesize\ttfamily uint32\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Period} @@ -106,11 +104,11 @@ uint32\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::\+LED\+\_\+\+Period} Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00101}{101}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68}\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!tickprev@{tickprev}} +\Hypertarget{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68}\label{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68} +\index{GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}!tickprev@{tickprev}} \index{tickprev@{tickprev}!GPIO\_LEDTypeDef@{GPIO\_LEDTypeDef}} \doxysubsubsection{\texorpdfstring{tickprev}{tickprev}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___l_e_d_type_def_a8c43c12787f4a89f4a785f91a979ba68} -uint32\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::tickprev} +{\footnotesize\ttfamily uint32\+\_\+t GPIO\+\_\+\+LEDType\+Def\+::tickprev} @@ -120,4 +118,4 @@ Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00103}{103}} of fil 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{general__gpio_8h}{general\+\_\+gpio.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{general__gpio_8h}{general\+\_\+gpio.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/struct_g_p_i_o___switch_type_def.tex b/Doc/latex/struct_g_p_i_o___switch_type_def.tex index e259d3d..336ccdb 100644 --- a/Doc/latex/struct_g_p_i_o___switch_type_def.tex +++ b/Doc/latex/struct_g_p_i_o___switch_type_def.tex @@ -33,14 +33,12 @@ Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00110}{110}} of fil -\label{doc-variable-members} -\Hypertarget{struct_g_p_i_o___switch_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a}\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_Port@{Sw\_Port}} +\Hypertarget{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a}\label{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a} +\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_Port@{Sw\_Port}} \index{Sw\_Port@{Sw\_Port}!GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}} \doxysubsubsection{\texorpdfstring{Sw\_Port}{Sw\_Port}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___switch_type_def_afb369df75a6065fd89ac4ba97d98ab1a} -GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Port} +{\footnotesize\ttfamily GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Port} @@ -50,11 +48,11 @@ GPIO порт ножки кнопки Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00112}{112}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032}\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_Pin@{Sw\_Pin}} +\Hypertarget{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032}\label{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032} +\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_Pin@{Sw\_Pin}} \index{Sw\_Pin@{Sw\_Pin}!GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}} \doxysubsubsection{\texorpdfstring{Sw\_Pin}{Sw\_Pin}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___switch_type_def_a63d58d9cba49a5823175585ef2996032} -uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Pin} +{\footnotesize\ttfamily uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Pin} @@ -64,11 +62,11 @@ GPIO пин ножки кнопки Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00113}{113}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405}\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_ActiveLvl@{Sw\_ActiveLvl}} +\Hypertarget{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405}\label{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405} +\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_ActiveLvl@{Sw\_ActiveLvl}} \index{Sw\_ActiveLvl@{Sw\_ActiveLvl}!GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}} \doxysubsubsection{\texorpdfstring{Sw\_ActiveLvl}{Sw\_ActiveLvl}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___switch_type_def_a4fadf5ead3ebccad521a52c064eeb405} -uint8\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Active\+Lvl} +{\footnotesize\ttfamily uint8\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Active\+Lvl} @@ -78,11 +76,11 @@ uint8\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Active\+Lvl} Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00115}{115}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___switch_type_def_a245f1dc811279ce5d4598582db979a89}\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_PrevState@{Sw\_PrevState}} +\Hypertarget{struct_g_p_i_o___switch_type_def_a245f1dc811279ce5d4598582db979a89}\label{struct_g_p_i_o___switch_type_def_a245f1dc811279ce5d4598582db979a89} +\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_PrevState@{Sw\_PrevState}} \index{Sw\_PrevState@{Sw\_PrevState}!GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}} \doxysubsubsection{\texorpdfstring{Sw\_PrevState}{Sw\_PrevState}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___switch_type_def_a245f1dc811279ce5d4598582db979a89} -uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Prev\+State} +{\footnotesize\ttfamily uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Prev\+State} @@ -92,11 +90,11 @@ uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Prev\+State} Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00116}{116}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___switch_type_def_a2600e599a961af2e280c721894df4c06}\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_FilterDelay@{Sw\_FilterDelay}} +\Hypertarget{struct_g_p_i_o___switch_type_def_a2600e599a961af2e280c721894df4c06}\label{struct_g_p_i_o___switch_type_def_a2600e599a961af2e280c721894df4c06} +\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!Sw\_FilterDelay@{Sw\_FilterDelay}} \index{Sw\_FilterDelay@{Sw\_FilterDelay}!GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}} \doxysubsubsection{\texorpdfstring{Sw\_FilterDelay}{Sw\_FilterDelay}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___switch_type_def_a2600e599a961af2e280c721894df4c06} -uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Filter\+Delay} +{\footnotesize\ttfamily uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Filter\+Delay} @@ -106,11 +104,11 @@ uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::\+Sw\+\_\+\+Filter\+Delay} Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00117}{117}} of file \mbox{\hyperlink{general__gpio_8h_source}{general\+\_\+gpio.\+h}}. -\Hypertarget{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6}\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!tickprev@{tickprev}} +\Hypertarget{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6}\label{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6} +\index{GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}!tickprev@{tickprev}} \index{tickprev@{tickprev}!GPIO\_SwitchTypeDef@{GPIO\_SwitchTypeDef}} \doxysubsubsection{\texorpdfstring{tickprev}{tickprev}} -{\footnotesize\ttfamily \label{struct_g_p_i_o___switch_type_def_a13f97b867ff1a77ef182c9b13d964ca6} -uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::tickprev} +{\footnotesize\ttfamily uint32\+\_\+t GPIO\+\_\+\+Switch\+Type\+Def\+::tickprev} @@ -120,4 +118,4 @@ Definition at line \mbox{\hyperlink{general__gpio_8h_source_l00119}{119}} of fil 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{general__gpio_8h}{general\+\_\+gpio.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{general__gpio_8h}{general\+\_\+gpio.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/struct_h_f___stack_frame__t.tex b/Doc/latex/struct_h_f___stack_frame__t.tex index 4643782..a5f99ad 100644 --- a/Doc/latex/struct_h_f___stack_frame__t.tex +++ b/Doc/latex/struct_h_f___stack_frame__t.tex @@ -39,14 +39,12 @@ Definition at line \mbox{\hyperlink{trace_8h_source_l00463}{463}} of file \mbox{ -\label{doc-variable-members} -\Hypertarget{struct_h_f___stack_frame__t_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{struct_h_f___stack_frame__t_a4146ed28926b5f234132b7112119a413}\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r0@{r0}} +\Hypertarget{struct_h_f___stack_frame__t_a4146ed28926b5f234132b7112119a413}\label{struct_h_f___stack_frame__t_a4146ed28926b5f234132b7112119a413} +\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r0@{r0}} \index{r0@{r0}!HF\_StackFrame\_t@{HF\_StackFrame\_t}} \doxysubsubsection{\texorpdfstring{r0}{r0}} -{\footnotesize\ttfamily \label{struct_h_f___stack_frame__t_a4146ed28926b5f234132b7112119a413} -uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r0} +{\footnotesize\ttfamily uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r0} @@ -56,11 +54,11 @@ uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r0} Definition at line \mbox{\hyperlink{trace_8h_source_l00464}{464}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{struct_h_f___stack_frame__t_a286104d19185714940645a9df814ddea}\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r1@{r1}} +\Hypertarget{struct_h_f___stack_frame__t_a286104d19185714940645a9df814ddea}\label{struct_h_f___stack_frame__t_a286104d19185714940645a9df814ddea} +\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r1@{r1}} \index{r1@{r1}!HF\_StackFrame\_t@{HF\_StackFrame\_t}} \doxysubsubsection{\texorpdfstring{r1}{r1}} -{\footnotesize\ttfamily \label{struct_h_f___stack_frame__t_a286104d19185714940645a9df814ddea} -uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r1} +{\footnotesize\ttfamily uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r1} @@ -70,11 +68,11 @@ uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r1} Definition at line \mbox{\hyperlink{trace_8h_source_l00465}{465}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{struct_h_f___stack_frame__t_a5a52e5006dabcf68c0fa4cfb0e03335b}\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r2@{r2}} +\Hypertarget{struct_h_f___stack_frame__t_a5a52e5006dabcf68c0fa4cfb0e03335b}\label{struct_h_f___stack_frame__t_a5a52e5006dabcf68c0fa4cfb0e03335b} +\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r2@{r2}} \index{r2@{r2}!HF\_StackFrame\_t@{HF\_StackFrame\_t}} \doxysubsubsection{\texorpdfstring{r2}{r2}} -{\footnotesize\ttfamily \label{struct_h_f___stack_frame__t_a5a52e5006dabcf68c0fa4cfb0e03335b} -uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r2} +{\footnotesize\ttfamily uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r2} @@ -84,11 +82,11 @@ uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r2} Definition at line \mbox{\hyperlink{trace_8h_source_l00466}{466}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{struct_h_f___stack_frame__t_a453c7af42b6928a693af422e17c981d3}\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r3@{r3}} +\Hypertarget{struct_h_f___stack_frame__t_a453c7af42b6928a693af422e17c981d3}\label{struct_h_f___stack_frame__t_a453c7af42b6928a693af422e17c981d3} +\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r3@{r3}} \index{r3@{r3}!HF\_StackFrame\_t@{HF\_StackFrame\_t}} \doxysubsubsection{\texorpdfstring{r3}{r3}} -{\footnotesize\ttfamily \label{struct_h_f___stack_frame__t_a453c7af42b6928a693af422e17c981d3} -uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r3} +{\footnotesize\ttfamily uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r3} @@ -98,11 +96,11 @@ uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r3} Definition at line \mbox{\hyperlink{trace_8h_source_l00467}{467}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{struct_h_f___stack_frame__t_a819ee3bc518c460ece1b7c4079f8f80b}\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r12@{r12}} +\Hypertarget{struct_h_f___stack_frame__t_a819ee3bc518c460ece1b7c4079f8f80b}\label{struct_h_f___stack_frame__t_a819ee3bc518c460ece1b7c4079f8f80b} +\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!r12@{r12}} \index{r12@{r12}!HF\_StackFrame\_t@{HF\_StackFrame\_t}} \doxysubsubsection{\texorpdfstring{r12}{r12}} -{\footnotesize\ttfamily \label{struct_h_f___stack_frame__t_a819ee3bc518c460ece1b7c4079f8f80b} -uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r12} +{\footnotesize\ttfamily uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r12} @@ -112,11 +110,11 @@ uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::r12} Definition at line \mbox{\hyperlink{trace_8h_source_l00468}{468}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{struct_h_f___stack_frame__t_a6e51904297f7725e96d5b5fb291ef577}\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!lr@{lr}} +\Hypertarget{struct_h_f___stack_frame__t_a6e51904297f7725e96d5b5fb291ef577}\label{struct_h_f___stack_frame__t_a6e51904297f7725e96d5b5fb291ef577} +\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!lr@{lr}} \index{lr@{lr}!HF\_StackFrame\_t@{HF\_StackFrame\_t}} \doxysubsubsection{\texorpdfstring{lr}{lr}} -{\footnotesize\ttfamily \label{struct_h_f___stack_frame__t_a6e51904297f7725e96d5b5fb291ef577} -uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::lr} +{\footnotesize\ttfamily uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::lr} @@ -126,11 +124,11 @@ Link Register. Definition at line \mbox{\hyperlink{trace_8h_source_l00469}{469}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{struct_h_f___stack_frame__t_a16563896004751c90e41c81ae4570732}\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!pc@{pc}} +\Hypertarget{struct_h_f___stack_frame__t_a16563896004751c90e41c81ae4570732}\label{struct_h_f___stack_frame__t_a16563896004751c90e41c81ae4570732} +\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!pc@{pc}} \index{pc@{pc}!HF\_StackFrame\_t@{HF\_StackFrame\_t}} \doxysubsubsection{\texorpdfstring{pc}{pc}} -{\footnotesize\ttfamily \label{struct_h_f___stack_frame__t_a16563896004751c90e41c81ae4570732} -uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::pc} +{\footnotesize\ttfamily uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::pc} @@ -140,11 +138,11 @@ Program Counter. Definition at line \mbox{\hyperlink{trace_8h_source_l00470}{470}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{struct_h_f___stack_frame__t_ae47cb051ee3c94471bfd4fe7e49c55f9}\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!psr@{psr}} +\Hypertarget{struct_h_f___stack_frame__t_ae47cb051ee3c94471bfd4fe7e49c55f9}\label{struct_h_f___stack_frame__t_ae47cb051ee3c94471bfd4fe7e49c55f9} +\index{HF\_StackFrame\_t@{HF\_StackFrame\_t}!psr@{psr}} \index{psr@{psr}!HF\_StackFrame\_t@{HF\_StackFrame\_t}} \doxysubsubsection{\texorpdfstring{psr}{psr}} -{\footnotesize\ttfamily \label{struct_h_f___stack_frame__t_ae47cb051ee3c94471bfd4fe7e49c55f9} -uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::psr} +{\footnotesize\ttfamily uint32\+\_\+t HF\+\_\+\+Stack\+Frame\+\_\+t\+::psr} @@ -158,4 +156,4 @@ Definition at line \mbox{\hyperlink{trace_8h_source_l00471}{471}} of file \mbox{ 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{trace_8h}{trace.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{trace_8h}{trace.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/struct_r_t_t___flash_header__t.tex b/Doc/latex/struct_r_t_t___flash_header__t.tex index ee0c1c9..67dbed1 100644 --- a/Doc/latex/struct_r_t_t___flash_header__t.tex +++ b/Doc/latex/struct_r_t_t___flash_header__t.tex @@ -27,14 +27,12 @@ Definition at line \mbox{\hyperlink{trace_8h_source_l00180}{180}} of file \mbox{ -\label{doc-variable-members} -\Hypertarget{struct_r_t_t___flash_header__t_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{struct_r_t_t___flash_header__t_a844ee5470a323a749856cbb7a682dc57}\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}!tag@{tag}} +\Hypertarget{struct_r_t_t___flash_header__t_a844ee5470a323a749856cbb7a682dc57}\label{struct_r_t_t___flash_header__t_a844ee5470a323a749856cbb7a682dc57} +\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}!tag@{tag}} \index{tag@{tag}!RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}} \doxysubsubsection{\texorpdfstring{tag}{tag}} -{\footnotesize\ttfamily \label{struct_r_t_t___flash_header__t_a844ee5470a323a749856cbb7a682dc57} -uint32\+\_\+t RTT\+\_\+\+Flash\+Header\+\_\+t\+::tag} +{\footnotesize\ttfamily uint32\+\_\+t RTT\+\_\+\+Flash\+Header\+\_\+t\+::tag} @@ -44,11 +42,11 @@ uint32\+\_\+t RTT\+\_\+\+Flash\+Header\+\_\+t\+::tag} Definition at line \mbox{\hyperlink{trace_8h_source_l00181}{181}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{struct_r_t_t___flash_header__t_afd1a5c51af6f97d170c2ccbbe3e34699}\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}!size@{size}} +\Hypertarget{struct_r_t_t___flash_header__t_afd1a5c51af6f97d170c2ccbbe3e34699}\label{struct_r_t_t___flash_header__t_afd1a5c51af6f97d170c2ccbbe3e34699} +\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}!size@{size}} \index{size@{size}!RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}} \doxysubsubsection{\texorpdfstring{size}{size}} -{\footnotesize\ttfamily \label{struct_r_t_t___flash_header__t_afd1a5c51af6f97d170c2ccbbe3e34699} -uint32\+\_\+t RTT\+\_\+\+Flash\+Header\+\_\+t\+::size} +{\footnotesize\ttfamily uint32\+\_\+t RTT\+\_\+\+Flash\+Header\+\_\+t\+::size} @@ -58,11 +56,11 @@ uint32\+\_\+t RTT\+\_\+\+Flash\+Header\+\_\+t\+::size} Definition at line \mbox{\hyperlink{trace_8h_source_l00182}{182}} of file \mbox{\hyperlink{trace_8h_source}{trace.\+h}}. -\Hypertarget{struct_r_t_t___flash_header__t_ae7276198385c8d6f6508f433d042d52a}\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}!data@{data}} +\Hypertarget{struct_r_t_t___flash_header__t_ae7276198385c8d6f6508f433d042d52a}\label{struct_r_t_t___flash_header__t_ae7276198385c8d6f6508f433d042d52a} +\index{RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}!data@{data}} \index{data@{data}!RTT\_FlashHeader\_t@{RTT\_FlashHeader\_t}} \doxysubsubsection{\texorpdfstring{data}{data}} -{\footnotesize\ttfamily \label{struct_r_t_t___flash_header__t_ae7276198385c8d6f6508f433d042d52a} -char RTT\+\_\+\+Flash\+Header\+\_\+t\+::data\mbox{[}1024\mbox{]}} +{\footnotesize\ttfamily char RTT\+\_\+\+Flash\+Header\+\_\+t\+::data\mbox{[}1024\mbox{]}} @@ -76,4 +74,4 @@ Definition at line \mbox{\hyperlink{trace_8h_source_l00183}{183}} of file \mbox{ 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{trace_8h}{trace.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{trace_8h}{trace.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/struct_s_p_i___settings_type_def.tex b/Doc/latex/struct_s_p_i___settings_type_def.tex index 4b23ea8..d337f11 100644 --- a/Doc/latex/struct_s_p_i___settings_type_def.tex +++ b/Doc/latex/struct_s_p_i___settings_type_def.tex @@ -32,104 +32,102 @@ Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00033}{33}} of f -\label{doc-variable-members} -\Hypertarget{struct_s_p_i___settings_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{struct_s_p_i___settings_type_def_ad203d8b8d67e4f477d002d15b03ba422}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!hspi@{hspi}} +\Hypertarget{struct_s_p_i___settings_type_def_ad203d8b8d67e4f477d002d15b03ba422}\label{struct_s_p_i___settings_type_def_ad203d8b8d67e4f477d002d15b03ba422} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!hspi@{hspi}} \index{hspi@{hspi}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{hspi}{hspi}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_ad203d8b8d67e4f477d002d15b03ba422} -SPI\+\_\+\+Handle\+Type\+Def SPI\+\_\+\+Settings\+Type\+Def\+::hspi} +{\footnotesize\ttfamily SPI\+\_\+\+Handle\+Type\+Def SPI\+\_\+\+Settings\+Type\+Def\+::hspi} Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00035}{35}} of file \mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}}. -\Hypertarget{struct_s_p_i___settings_type_def_a6a15d48eccf92959de3a086031fdc979}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!CLK\_GPIOx@{CLK\_GPIOx}} +\Hypertarget{struct_s_p_i___settings_type_def_a6a15d48eccf92959de3a086031fdc979}\label{struct_s_p_i___settings_type_def_a6a15d48eccf92959de3a086031fdc979} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!CLK\_GPIOx@{CLK\_GPIOx}} \index{CLK\_GPIOx@{CLK\_GPIOx}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{CLK\_GPIOx}{CLK\_GPIOx}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_a6a15d48eccf92959de3a086031fdc979} -GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} SPI\+\_\+\+Settings\+Type\+Def\+::\+CLK\+\_\+\+GPIOx} +{\footnotesize\ttfamily GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} SPI\+\_\+\+Settings\+Type\+Def\+::\+CLK\+\_\+\+GPIOx} Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00037}{37}} of file \mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}}. -\Hypertarget{struct_s_p_i___settings_type_def_a3bcb1ed12da3544e02e6d36493669bdc}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!CLK\_PIN@{CLK\_PIN}} +\Hypertarget{struct_s_p_i___settings_type_def_a3bcb1ed12da3544e02e6d36493669bdc}\label{struct_s_p_i___settings_type_def_a3bcb1ed12da3544e02e6d36493669bdc} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!CLK\_PIN@{CLK\_PIN}} \index{CLK\_PIN@{CLK\_PIN}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{CLK\_PIN}{CLK\_PIN}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_a3bcb1ed12da3544e02e6d36493669bdc} -uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+CLK\+\_\+\+PIN} +{\footnotesize\ttfamily uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+CLK\+\_\+\+PIN} Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00038}{38}} of file \mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}}. -\Hypertarget{struct_s_p_i___settings_type_def_a3f3748103a0b7861f6700042fd691ba1}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!CLK\_GPIO\_AlternageFunc@{CLK\_GPIO\_AlternageFunc}} +\Hypertarget{struct_s_p_i___settings_type_def_a3f3748103a0b7861f6700042fd691ba1}\label{struct_s_p_i___settings_type_def_a3f3748103a0b7861f6700042fd691ba1} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!CLK\_GPIO\_AlternageFunc@{CLK\_GPIO\_AlternageFunc}} \index{CLK\_GPIO\_AlternageFunc@{CLK\_GPIO\_AlternageFunc}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{CLK\_GPIO\_AlternageFunc}{CLK\_GPIO\_AlternageFunc}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_a3f3748103a0b7861f6700042fd691ba1} -uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+CLK\+\_\+\+GPIO\+\_\+\+Alternage\+Func} +{\footnotesize\ttfamily uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+CLK\+\_\+\+GPIO\+\_\+\+Alternage\+Func} Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00039}{39}} of file \mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}}. -\Hypertarget{struct_s_p_i___settings_type_def_a0d55a2941854f61934487f3d209cfa95}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MISO\_GPIOx@{MISO\_GPIOx}} +\Hypertarget{struct_s_p_i___settings_type_def_a0d55a2941854f61934487f3d209cfa95}\label{struct_s_p_i___settings_type_def_a0d55a2941854f61934487f3d209cfa95} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MISO\_GPIOx@{MISO\_GPIOx}} \index{MISO\_GPIOx@{MISO\_GPIOx}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{MISO\_GPIOx}{MISO\_GPIOx}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_a0d55a2941854f61934487f3d209cfa95} -GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} SPI\+\_\+\+Settings\+Type\+Def\+::\+MISO\+\_\+\+GPIOx} +{\footnotesize\ttfamily GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} SPI\+\_\+\+Settings\+Type\+Def\+::\+MISO\+\_\+\+GPIOx} Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00041}{41}} of file \mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}}. -\Hypertarget{struct_s_p_i___settings_type_def_a3366c654d7ec6dd41c6a0b504dc8509a}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MISO\_PIN@{MISO\_PIN}} +\Hypertarget{struct_s_p_i___settings_type_def_a3366c654d7ec6dd41c6a0b504dc8509a}\label{struct_s_p_i___settings_type_def_a3366c654d7ec6dd41c6a0b504dc8509a} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MISO\_PIN@{MISO\_PIN}} \index{MISO\_PIN@{MISO\_PIN}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{MISO\_PIN}{MISO\_PIN}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_a3366c654d7ec6dd41c6a0b504dc8509a} -uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+MISO\+\_\+\+PIN} +{\footnotesize\ttfamily uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+MISO\+\_\+\+PIN} Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00042}{42}} of file \mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}}. -\Hypertarget{struct_s_p_i___settings_type_def_aecd7a5c6e205335b8ed229d74cd35d14}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MISO\_GPIO\_AlternageFunc@{MISO\_GPIO\_AlternageFunc}} +\Hypertarget{struct_s_p_i___settings_type_def_aecd7a5c6e205335b8ed229d74cd35d14}\label{struct_s_p_i___settings_type_def_aecd7a5c6e205335b8ed229d74cd35d14} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MISO\_GPIO\_AlternageFunc@{MISO\_GPIO\_AlternageFunc}} \index{MISO\_GPIO\_AlternageFunc@{MISO\_GPIO\_AlternageFunc}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{MISO\_GPIO\_AlternageFunc}{MISO\_GPIO\_AlternageFunc}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_aecd7a5c6e205335b8ed229d74cd35d14} -uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+MISO\+\_\+\+GPIO\+\_\+\+Alternage\+Func} +{\footnotesize\ttfamily uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+MISO\+\_\+\+GPIO\+\_\+\+Alternage\+Func} Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00043}{43}} of file \mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}}. -\Hypertarget{struct_s_p_i___settings_type_def_a0af3bdb273818ff97eb4ff3cff918820}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MOSI\_GPIOx@{MOSI\_GPIOx}} +\Hypertarget{struct_s_p_i___settings_type_def_a0af3bdb273818ff97eb4ff3cff918820}\label{struct_s_p_i___settings_type_def_a0af3bdb273818ff97eb4ff3cff918820} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MOSI\_GPIOx@{MOSI\_GPIOx}} \index{MOSI\_GPIOx@{MOSI\_GPIOx}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{MOSI\_GPIOx}{MOSI\_GPIOx}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_a0af3bdb273818ff97eb4ff3cff918820} -GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} SPI\+\_\+\+Settings\+Type\+Def\+::\+MOSI\+\_\+\+GPIOx} +{\footnotesize\ttfamily GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} SPI\+\_\+\+Settings\+Type\+Def\+::\+MOSI\+\_\+\+GPIOx} Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00045}{45}} of file \mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}}. -\Hypertarget{struct_s_p_i___settings_type_def_a961208869faf4a7369aaf4edde75f176}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MOSI\_PIN@{MOSI\_PIN}} +\Hypertarget{struct_s_p_i___settings_type_def_a961208869faf4a7369aaf4edde75f176}\label{struct_s_p_i___settings_type_def_a961208869faf4a7369aaf4edde75f176} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MOSI\_PIN@{MOSI\_PIN}} \index{MOSI\_PIN@{MOSI\_PIN}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{MOSI\_PIN}{MOSI\_PIN}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_a961208869faf4a7369aaf4edde75f176} -uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+MOSI\+\_\+\+PIN} +{\footnotesize\ttfamily uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+MOSI\+\_\+\+PIN} Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00046}{46}} of file \mbox{\hyperlink{____general__spi_8h_source}{\+\_\+\+\_\+general\+\_\+spi.\+h}}. -\Hypertarget{struct_s_p_i___settings_type_def_afbe75a1c36650a4a9b41fa706a4c7eab}\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MOSI\_GPIO\_AlternageFunc@{MOSI\_GPIO\_AlternageFunc}} +\Hypertarget{struct_s_p_i___settings_type_def_afbe75a1c36650a4a9b41fa706a4c7eab}\label{struct_s_p_i___settings_type_def_afbe75a1c36650a4a9b41fa706a4c7eab} +\index{SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}!MOSI\_GPIO\_AlternageFunc@{MOSI\_GPIO\_AlternageFunc}} \index{MOSI\_GPIO\_AlternageFunc@{MOSI\_GPIO\_AlternageFunc}!SPI\_SettingsTypeDef@{SPI\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{MOSI\_GPIO\_AlternageFunc}{MOSI\_GPIO\_AlternageFunc}} -{\footnotesize\ttfamily \label{struct_s_p_i___settings_type_def_afbe75a1c36650a4a9b41fa706a4c7eab} -uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+MOSI\+\_\+\+GPIO\+\_\+\+Alternage\+Func} +{\footnotesize\ttfamily uint32\+\_\+t SPI\+\_\+\+Settings\+Type\+Def\+::\+MOSI\+\_\+\+GPIO\+\_\+\+Alternage\+Func} @@ -139,4 +137,4 @@ Definition at line \mbox{\hyperlink{____general__spi_8h_source_l00047}{47}} of f The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} \item -E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\+\_\+\+\_\+general\+\_\+spi.\+h\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\+\_\+\+\_\+general\+\_\+spi.\+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 8249b12..d67e813 100644 --- a/Doc/latex/struct_t_i_m___encoder_type_def.tex +++ b/Doc/latex/struct_t_i_m___encoder_type_def.tex @@ -54,14 +54,12 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00140}{140}} of file -\label{doc-variable-members} -\Hypertarget{struct_t_i_m___encoder_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{struct_t_i_m___encoder_type_def_a6f769f027b760a4b496e2b2b77bf54a3}\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!Encoder\_Diff@{Encoder\_Diff}} +\Hypertarget{struct_t_i_m___encoder_type_def_a6f769f027b760a4b496e2b2b77bf54a3}\label{struct_t_i_m___encoder_type_def_a6f769f027b760a4b496e2b2b77bf54a3} +\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!Encoder\_Diff@{Encoder\_Diff}} \index{Encoder\_Diff@{Encoder\_Diff}!TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}} \doxysubsubsection{\texorpdfstring{Encoder\_Diff}{Encoder\_Diff}} -{\footnotesize\ttfamily \label{struct_t_i_m___encoder_type_def_a6f769f027b760a4b496e2b2b77bf54a3} -int16\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+Encoder\+\_\+\+Diff} +{\footnotesize\ttfamily int16\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+Encoder\+\_\+\+Diff} @@ -71,11 +69,11 @@ int16\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+Encoder\+\_\+\+Diff} Definition at line \mbox{\hyperlink{general__tim_8h_source_l00142}{142}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___encoder_type_def_a0dacce3dde7df3122583869d96a372a2}\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!Encoder\_Shdw@{Encoder\_Shdw}} +\Hypertarget{struct_t_i_m___encoder_type_def_a0dacce3dde7df3122583869d96a372a2}\label{struct_t_i_m___encoder_type_def_a0dacce3dde7df3122583869d96a372a2} +\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!Encoder\_Shdw@{Encoder\_Shdw}} \index{Encoder\_Shdw@{Encoder\_Shdw}!TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}} \doxysubsubsection{\texorpdfstring{Encoder\_Shdw}{Encoder\_Shdw}} -{\footnotesize\ttfamily \label{struct_t_i_m___encoder_type_def_a0dacce3dde7df3122583869d96a372a2} -uint16\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+Encoder\+\_\+\+Shdw} +{\footnotesize\ttfamily uint16\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+Encoder\+\_\+\+Shdw} @@ -85,11 +83,11 @@ uint16\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+Encoder\+\_\+\+Shdw} Definition at line \mbox{\hyperlink{general__tim_8h_source_l00143}{143}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___encoder_type_def_adc80bd5a90444c31d84157f35c59b95c}\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!htim@{htim}} +\Hypertarget{struct_t_i_m___encoder_type_def_adc80bd5a90444c31d84157f35c59b95c}\label{struct_t_i_m___encoder_type_def_adc80bd5a90444c31d84157f35c59b95c} +\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!htim@{htim}} \index{htim@{htim}!TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}} \doxysubsubsection{\texorpdfstring{htim}{htim}} -{\footnotesize\ttfamily \label{struct_t_i_m___encoder_type_def_adc80bd5a90444c31d84157f35c59b95c} -TIM\+\_\+\+Handle\+Type\+Def\texorpdfstring{$\ast$}{*} TIM\+\_\+\+Encoder\+Type\+Def\+::htim} +{\footnotesize\ttfamily TIM\+\_\+\+Handle\+Type\+Def\texorpdfstring{$\ast$}{*} TIM\+\_\+\+Encoder\+Type\+Def\+::htim} @@ -99,11 +97,11 @@ TIM\+\_\+\+Handle\+Type\+Def\texorpdfstring{$\ast$}{*} TIM\+\_\+\+Encoder\+Type\ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00145}{145}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___encoder_type_def_a021f0c585e9e62d68a4b09f630d8b6e5}\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!sConfig@{sConfig}} +\Hypertarget{struct_t_i_m___encoder_type_def_a021f0c585e9e62d68a4b09f630d8b6e5}\label{struct_t_i_m___encoder_type_def_a021f0c585e9e62d68a4b09f630d8b6e5} +\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!sConfig@{sConfig}} \index{sConfig@{sConfig}!TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}} \doxysubsubsection{\texorpdfstring{sConfig}{sConfig}} -{\footnotesize\ttfamily \label{struct_t_i_m___encoder_type_def_a021f0c585e9e62d68a4b09f630d8b6e5} -TIM\+\_\+\+Encoder\+\_\+\+Init\+Type\+Def TIM\+\_\+\+Encoder\+Type\+Def\+::s\+Config} +{\footnotesize\ttfamily TIM\+\_\+\+Encoder\+\_\+\+Init\+Type\+Def TIM\+\_\+\+Encoder\+Type\+Def\+::s\+Config} @@ -113,11 +111,11 @@ TIM\+\_\+\+Encoder\+\_\+\+Init\+Type\+Def TIM\+\_\+\+Encoder\+Type\+Def\+::s\+Co Definition at line \mbox{\hyperlink{general__tim_8h_source_l00146}{146}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___encoder_type_def_ad29873fc8cdc71462e6d8744621120e9}\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!GPIOx@{GPIOx}} +\Hypertarget{struct_t_i_m___encoder_type_def_ad29873fc8cdc71462e6d8744621120e9}\label{struct_t_i_m___encoder_type_def_ad29873fc8cdc71462e6d8744621120e9} +\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!GPIOx@{GPIOx}} \index{GPIOx@{GPIOx}!TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}} \doxysubsubsection{\texorpdfstring{GPIOx}{GPIOx}} -{\footnotesize\ttfamily \label{struct_t_i_m___encoder_type_def_ad29873fc8cdc71462e6d8744621120e9} -GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIOx} +{\footnotesize\ttfamily GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIOx} @@ -127,11 +125,11 @@ GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} TIM\+\_\+\+Encoder\+Type\+Def\+: Definition at line \mbox{\hyperlink{general__tim_8h_source_l00148}{148}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___encoder_type_def_a4fc05ef011205a6702cb3d006bab677e}\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!GPIO\_PIN\_TI1@{GPIO\_PIN\_TI1}} +\Hypertarget{struct_t_i_m___encoder_type_def_a4fc05ef011205a6702cb3d006bab677e}\label{struct_t_i_m___encoder_type_def_a4fc05ef011205a6702cb3d006bab677e} +\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!GPIO\_PIN\_TI1@{GPIO\_PIN\_TI1}} \index{GPIO\_PIN\_TI1@{GPIO\_PIN\_TI1}!TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}} \doxysubsubsection{\texorpdfstring{GPIO\_PIN\_TI1}{GPIO\_PIN\_TI1}} -{\footnotesize\ttfamily \label{struct_t_i_m___encoder_type_def_a4fc05ef011205a6702cb3d006bab677e} -uint32\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+TI1} +{\footnotesize\ttfamily uint32\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+TI1} @@ -141,11 +139,11 @@ uint32\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+TI1} Definition at line \mbox{\hyperlink{general__tim_8h_source_l00149}{149}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___encoder_type_def_a67ad037b92162546763fc9c425b5e3c5}\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!GPIO\_PIN\_TI2@{GPIO\_PIN\_TI2}} +\Hypertarget{struct_t_i_m___encoder_type_def_a67ad037b92162546763fc9c425b5e3c5}\label{struct_t_i_m___encoder_type_def_a67ad037b92162546763fc9c425b5e3c5} +\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!GPIO\_PIN\_TI2@{GPIO\_PIN\_TI2}} \index{GPIO\_PIN\_TI2@{GPIO\_PIN\_TI2}!TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}} \doxysubsubsection{\texorpdfstring{GPIO\_PIN\_TI2}{GPIO\_PIN\_TI2}} -{\footnotesize\ttfamily \label{struct_t_i_m___encoder_type_def_a67ad037b92162546763fc9c425b5e3c5} -uint32\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+TI2} +{\footnotesize\ttfamily uint32\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+TI2} @@ -155,11 +153,11 @@ uint32\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+TI2} Definition at line \mbox{\hyperlink{general__tim_8h_source_l00150}{150}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___encoder_type_def_a6973108a83d2a3ea4fc3e0e8a501af80}\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!GPIO\_PIN\_SW@{GPIO\_PIN\_SW}} +\Hypertarget{struct_t_i_m___encoder_type_def_a6973108a83d2a3ea4fc3e0e8a501af80}\label{struct_t_i_m___encoder_type_def_a6973108a83d2a3ea4fc3e0e8a501af80} +\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!GPIO\_PIN\_SW@{GPIO\_PIN\_SW}} \index{GPIO\_PIN\_SW@{GPIO\_PIN\_SW}!TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}} \doxysubsubsection{\texorpdfstring{GPIO\_PIN\_SW}{GPIO\_PIN\_SW}} -{\footnotesize\ttfamily \label{struct_t_i_m___encoder_type_def_a6973108a83d2a3ea4fc3e0e8a501af80} -uint32\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+SW} +{\footnotesize\ttfamily uint32\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+SW} @@ -169,11 +167,11 @@ uint32\+\_\+t TIM\+\_\+\+Encoder\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+SW} Definition at line \mbox{\hyperlink{general__tim_8h_source_l00151}{151}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___encoder_type_def_a99295760ff8b27d1e6f1710f29383a45}\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!Sw@{Sw}} +\Hypertarget{struct_t_i_m___encoder_type_def_a99295760ff8b27d1e6f1710f29383a45}\label{struct_t_i_m___encoder_type_def_a99295760ff8b27d1e6f1710f29383a45} +\index{TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}!Sw@{Sw}} \index{Sw@{Sw}!TIM\_EncoderTypeDef@{TIM\_EncoderTypeDef}} \doxysubsubsection{\texorpdfstring{Sw}{Sw}} -{\footnotesize\ttfamily \label{struct_t_i_m___encoder_type_def_a99295760ff8b27d1e6f1710f29383a45} -\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} TIM\+\_\+\+Encoder\+Type\+Def\+::\+Sw} +{\footnotesize\ttfamily \mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} TIM\+\_\+\+Encoder\+Type\+Def\+::\+Sw} @@ -187,4 +185,4 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00153}{153}} of file 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{general__tim_8h}{general\+\_\+tim.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{general__tim_8h}{general\+\_\+tim.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/struct_t_i_m___encoder_type_def__coll__graph.md5 b/Doc/latex/struct_t_i_m___encoder_type_def__coll__graph.md5 index 89dacb9..e513bf2 100644 --- a/Doc/latex/struct_t_i_m___encoder_type_def__coll__graph.md5 +++ b/Doc/latex/struct_t_i_m___encoder_type_def__coll__graph.md5 @@ -1 +1 @@ -7ad33b5006a3bba719adf0e8727fd280 \ No newline at end of file +ea7ef1dc3c0c867000fb2dc7a8519e34 \ No newline at end of file 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 516acf7..cbfcb96 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/struct_t_i_m___settings_type_def.tex b/Doc/latex/struct_t_i_m___settings_type_def.tex index ee440bc..62f9c47 100644 --- a/Doc/latex/struct_t_i_m___settings_type_def.tex +++ b/Doc/latex/struct_t_i_m___settings_type_def.tex @@ -23,9 +23,11 @@ TIM\+\_\+\+Master\+Config\+Type\+Def \mbox{\hyperlink{struct_t_i_m___settings_ty TIM\+\_\+\+Break\+Dead\+Time\+Config\+Type\+Def \mbox{\hyperlink{struct_t_i_m___settings_type_def_a961f19f0e1672715c27bc94d7871dbb7}{s\+Break\+Dead\+Time\+Config}} \begin{DoxyCompactList}\small\item\em Настройки дедтаймов таймера \end{DoxyCompactList}\item \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787}{TIM\+\_\+\+ITMode\+Type\+Def}} \mbox{\hyperlink{struct_t_i_m___settings_type_def_ab90e370c3edda88e76583293c250d2b0}{s\+Tim\+Mode}} -\begin{DoxyCompactList}\small\item\em Настройки прерывания таймера \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Настройки прерывания таймера ~\newline + \end{DoxyCompactList}\item \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaa0a51c870325217ac099881f09dd0800}{TIM\+\_\+\+MHz\+Tick\+Base\+Type\+Def}} \mbox{\hyperlink{struct_t_i_m___settings_type_def_a58da1b4c0f6d12d7d9fb2f170b9b9e6e}{s\+Tick\+Base\+US}} -\begin{DoxyCompactList}\small\item\em Длительность одного тика \end{DoxyCompactList}\item +\begin{DoxyCompactList}\small\item\em Длительность одного тика ~\newline + \end{DoxyCompactList}\item uint8\+\_\+t \mbox{\hyperlink{struct_t_i_m___settings_type_def_a11151fe125960cb8e61328ffd06b7718}{s\+Tick\+Base\+Prescaler}} \begin{DoxyCompactList}\small\item\em Дополнительный делитель, для удобного деления \doxylink{struct_t_i_m___settings_type_def_a58da1b4c0f6d12d7d9fb2f170b9b9e6e}{s\+Tick\+Base\+US}. \end{DoxyCompactList}\item float \mbox{\hyperlink{struct_t_i_m___settings_type_def_a7073358fd3a722687eb85238ab570014}{s\+Tim\+AHBFreq\+MHz}} @@ -47,14 +49,12 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00112}{112}} of file -\label{doc-variable-members} -\Hypertarget{struct_t_i_m___settings_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{struct_t_i_m___settings_type_def_ada49efdbd35a8e442c3cff630d42f34c}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!htim@{htim}} +\Hypertarget{struct_t_i_m___settings_type_def_ada49efdbd35a8e442c3cff630d42f34c}\label{struct_t_i_m___settings_type_def_ada49efdbd35a8e442c3cff630d42f34c} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!htim@{htim}} \index{htim@{htim}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{htim}{htim}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_ada49efdbd35a8e442c3cff630d42f34c} -TIM\+\_\+\+Handle\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::htim} +{\footnotesize\ttfamily TIM\+\_\+\+Handle\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::htim} @@ -64,11 +64,11 @@ HAL handle таймера Definition at line \mbox{\hyperlink{general__tim_8h_source_l00114}{114}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___settings_type_def_a3805f627567798c3cd1d79a0da42bea0}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sClockSourceConfig@{sClockSourceConfig}} +\Hypertarget{struct_t_i_m___settings_type_def_a3805f627567798c3cd1d79a0da42bea0}\label{struct_t_i_m___settings_type_def_a3805f627567798c3cd1d79a0da42bea0} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sClockSourceConfig@{sClockSourceConfig}} \index{sClockSourceConfig@{sClockSourceConfig}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{sClockSourceConfig}{sClockSourceConfig}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_a3805f627567798c3cd1d79a0da42bea0} -TIM\+\_\+\+Clock\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Clock\+Source\+Config} +{\footnotesize\ttfamily TIM\+\_\+\+Clock\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Clock\+Source\+Config} @@ -78,11 +78,11 @@ TIM\+\_\+\+Clock\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Clock\+ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00115}{115}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___settings_type_def_a9694cf0910a69d48ff94f8aeac106969}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sSlaveConfig@{sSlaveConfig}} +\Hypertarget{struct_t_i_m___settings_type_def_a9694cf0910a69d48ff94f8aeac106969}\label{struct_t_i_m___settings_type_def_a9694cf0910a69d48ff94f8aeac106969} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sSlaveConfig@{sSlaveConfig}} \index{sSlaveConfig@{sSlaveConfig}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{sSlaveConfig}{sSlaveConfig}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_a9694cf0910a69d48ff94f8aeac106969} -TIM\+\_\+\+Slave\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Slave\+Config} +{\footnotesize\ttfamily TIM\+\_\+\+Slave\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Slave\+Config} @@ -92,11 +92,11 @@ TIM\+\_\+\+Slave\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Slave\+ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00116}{116}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___settings_type_def_a2d9d277dd395424b964445ec1bc65b21}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sMasterConfig@{sMasterConfig}} +\Hypertarget{struct_t_i_m___settings_type_def_a2d9d277dd395424b964445ec1bc65b21}\label{struct_t_i_m___settings_type_def_a2d9d277dd395424b964445ec1bc65b21} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sMasterConfig@{sMasterConfig}} \index{sMasterConfig@{sMasterConfig}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{sMasterConfig}{sMasterConfig}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_a2d9d277dd395424b964445ec1bc65b21} -TIM\+\_\+\+Master\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Master\+Config} +{\footnotesize\ttfamily TIM\+\_\+\+Master\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Master\+Config} @@ -106,11 +106,11 @@ TIM\+\_\+\+Master\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Master Definition at line \mbox{\hyperlink{general__tim_8h_source_l00117}{117}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___settings_type_def_a961f19f0e1672715c27bc94d7871dbb7}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sBreakDeadTimeConfig@{sBreakDeadTimeConfig}} +\Hypertarget{struct_t_i_m___settings_type_def_a961f19f0e1672715c27bc94d7871dbb7}\label{struct_t_i_m___settings_type_def_a961f19f0e1672715c27bc94d7871dbb7} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sBreakDeadTimeConfig@{sBreakDeadTimeConfig}} \index{sBreakDeadTimeConfig@{sBreakDeadTimeConfig}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{sBreakDeadTimeConfig}{sBreakDeadTimeConfig}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_a961f19f0e1672715c27bc94d7871dbb7} -TIM\+\_\+\+Break\+Dead\+Time\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Break\+Dead\+Time\+Config} +{\footnotesize\ttfamily TIM\+\_\+\+Break\+Dead\+Time\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+::s\+Break\+Dead\+Time\+Config} @@ -120,39 +120,41 @@ TIM\+\_\+\+Break\+Dead\+Time\+Config\+Type\+Def TIM\+\_\+\+Settings\+Type\+Def\+ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00118}{118}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___settings_type_def_ab90e370c3edda88e76583293c250d2b0}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTimMode@{sTimMode}} +\Hypertarget{struct_t_i_m___settings_type_def_ab90e370c3edda88e76583293c250d2b0}\label{struct_t_i_m___settings_type_def_ab90e370c3edda88e76583293c250d2b0} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTimMode@{sTimMode}} \index{sTimMode@{sTimMode}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{sTimMode}{sTimMode}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_ab90e370c3edda88e76583293c250d2b0} -\mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787}{TIM\+\_\+\+ITMode\+Type\+Def}} TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tim\+Mode} +{\footnotesize\ttfamily \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaeb611874216a4661fb83366b99b9e787}{TIM\+\_\+\+ITMode\+Type\+Def}} TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tim\+Mode} -Настройки прерывания таймера +Настройки прерывания таймера ~\newline + Definition at line \mbox{\hyperlink{general__tim_8h_source_l00120}{120}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___settings_type_def_a58da1b4c0f6d12d7d9fb2f170b9b9e6e}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTickBaseUS@{sTickBaseUS}} +\Hypertarget{struct_t_i_m___settings_type_def_a58da1b4c0f6d12d7d9fb2f170b9b9e6e}\label{struct_t_i_m___settings_type_def_a58da1b4c0f6d12d7d9fb2f170b9b9e6e} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTickBaseUS@{sTickBaseUS}} \index{sTickBaseUS@{sTickBaseUS}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{sTickBaseUS}{sTickBaseUS}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_a58da1b4c0f6d12d7d9fb2f170b9b9e6e} -\mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaa0a51c870325217ac099881f09dd0800}{TIM\+\_\+\+MHz\+Tick\+Base\+Type\+Def}} TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tick\+Base\+US} +{\footnotesize\ttfamily \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_gaa0a51c870325217ac099881f09dd0800}{TIM\+\_\+\+MHz\+Tick\+Base\+Type\+Def}} TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tick\+Base\+US} -Длительность одного тика +Длительность одного тика ~\newline + Definition at line \mbox{\hyperlink{general__tim_8h_source_l00121}{121}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___settings_type_def_a11151fe125960cb8e61328ffd06b7718}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTickBasePrescaler@{sTickBasePrescaler}} +\Hypertarget{struct_t_i_m___settings_type_def_a11151fe125960cb8e61328ffd06b7718}\label{struct_t_i_m___settings_type_def_a11151fe125960cb8e61328ffd06b7718} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTickBasePrescaler@{sTickBasePrescaler}} \index{sTickBasePrescaler@{sTickBasePrescaler}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{sTickBasePrescaler}{sTickBasePrescaler}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_a11151fe125960cb8e61328ffd06b7718} -uint8\+\_\+t TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tick\+Base\+Prescaler} +{\footnotesize\ttfamily uint8\+\_\+t TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tick\+Base\+Prescaler} @@ -162,11 +164,11 @@ uint8\+\_\+t TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tick\+Base\+Prescaler} Definition at line \mbox{\hyperlink{general__tim_8h_source_l00122}{122}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___settings_type_def_a7073358fd3a722687eb85238ab570014}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTimAHBFreqMHz@{sTimAHBFreqMHz}} +\Hypertarget{struct_t_i_m___settings_type_def_a7073358fd3a722687eb85238ab570014}\label{struct_t_i_m___settings_type_def_a7073358fd3a722687eb85238ab570014} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTimAHBFreqMHz@{sTimAHBFreqMHz}} \index{sTimAHBFreqMHz@{sTimAHBFreqMHz}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{sTimAHBFreqMHz}{sTimAHBFreqMHz}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_a7073358fd3a722687eb85238ab570014} -float TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tim\+AHBFreq\+MHz} +{\footnotesize\ttfamily float TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tim\+AHBFreq\+MHz} @@ -176,11 +178,11 @@ float TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tim\+AHBFreq\+MHz} Definition at line \mbox{\hyperlink{general__tim_8h_source_l00123}{123}} of file \mbox{\hyperlink{general__tim_8h_source}{general\+\_\+tim.\+h}}. -\Hypertarget{struct_t_i_m___settings_type_def_af6057ff3f60f5e01b41d4a347b79a5e4}\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTimFreqHz@{sTimFreqHz}} +\Hypertarget{struct_t_i_m___settings_type_def_af6057ff3f60f5e01b41d4a347b79a5e4}\label{struct_t_i_m___settings_type_def_af6057ff3f60f5e01b41d4a347b79a5e4} +\index{TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}!sTimFreqHz@{sTimFreqHz}} \index{sTimFreqHz@{sTimFreqHz}!TIM\_SettingsTypeDef@{TIM\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{sTimFreqHz}{sTimFreqHz}} -{\footnotesize\ttfamily \label{struct_t_i_m___settings_type_def_af6057ff3f60f5e01b41d4a347b79a5e4} -float TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tim\+Freq\+Hz} +{\footnotesize\ttfamily float TIM\+\_\+\+Settings\+Type\+Def\+::s\+Tim\+Freq\+Hz} @@ -194,4 +196,4 @@ Definition at line \mbox{\hyperlink{general__tim_8h_source_l00124}{124}} of file 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{general__tim_8h}{general\+\_\+tim.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{general__tim_8h}{general\+\_\+tim.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/struct_u_a_r_t___settings_type_def.tex b/Doc/latex/struct_u_a_r_t___settings_type_def.tex index c2fb447..96f519c 100644 --- a/Doc/latex/struct_u_a_r_t___settings_type_def.tex +++ b/Doc/latex/struct_u_a_r_t___settings_type_def.tex @@ -24,64 +24,62 @@ Definition at line \mbox{\hyperlink{____general__uart_8h_source_l00045}{45}} of -\label{doc-variable-members} -\Hypertarget{struct_u_a_r_t___settings_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{struct_u_a_r_t___settings_type_def_accf2c9448a3ea8eb3b8c25a569276fea}\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!huart@{huart}} +\Hypertarget{struct_u_a_r_t___settings_type_def_accf2c9448a3ea8eb3b8c25a569276fea}\label{struct_u_a_r_t___settings_type_def_accf2c9448a3ea8eb3b8c25a569276fea} +\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!huart@{huart}} \index{huart@{huart}!UART\_SettingsTypeDef@{UART\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{huart}{huart}} -{\footnotesize\ttfamily \label{struct_u_a_r_t___settings_type_def_accf2c9448a3ea8eb3b8c25a569276fea} -UART\+\_\+\+Handle\+Type\+Def UART\+\_\+\+Settings\+Type\+Def\+::huart} +{\footnotesize\ttfamily UART\+\_\+\+Handle\+Type\+Def UART\+\_\+\+Settings\+Type\+Def\+::huart} Definition at line \mbox{\hyperlink{____general__uart_8h_source_l00047}{47}} of file \mbox{\hyperlink{____general__uart_8h_source}{\+\_\+\+\_\+general\+\_\+uart.\+h}}. -\Hypertarget{struct_u_a_r_t___settings_type_def_af6f9910d065bae715cdb4a1024143a8f}\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!GPIOx@{GPIOx}} +\Hypertarget{struct_u_a_r_t___settings_type_def_af6f9910d065bae715cdb4a1024143a8f}\label{struct_u_a_r_t___settings_type_def_af6f9910d065bae715cdb4a1024143a8f} +\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!GPIOx@{GPIOx}} \index{GPIOx@{GPIOx}!UART\_SettingsTypeDef@{UART\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{GPIOx}{GPIOx}} -{\footnotesize\ttfamily \label{struct_u_a_r_t___settings_type_def_af6f9910d065bae715cdb4a1024143a8f} -GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} UART\+\_\+\+Settings\+Type\+Def\+::\+GPIOx} +{\footnotesize\ttfamily GPIO\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} UART\+\_\+\+Settings\+Type\+Def\+::\+GPIOx} Definition at line \mbox{\hyperlink{____general__uart_8h_source_l00049}{49}} of file \mbox{\hyperlink{____general__uart_8h_source}{\+\_\+\+\_\+general\+\_\+uart.\+h}}. -\Hypertarget{struct_u_a_r_t___settings_type_def_a3fba2b52788fe453348b5d92ed52ba49}\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!GPIO\_PIN\_RX@{GPIO\_PIN\_RX}} +\Hypertarget{struct_u_a_r_t___settings_type_def_a3fba2b52788fe453348b5d92ed52ba49}\label{struct_u_a_r_t___settings_type_def_a3fba2b52788fe453348b5d92ed52ba49} +\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!GPIO\_PIN\_RX@{GPIO\_PIN\_RX}} \index{GPIO\_PIN\_RX@{GPIO\_PIN\_RX}!UART\_SettingsTypeDef@{UART\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{GPIO\_PIN\_RX}{GPIO\_PIN\_RX}} -{\footnotesize\ttfamily \label{struct_u_a_r_t___settings_type_def_a3fba2b52788fe453348b5d92ed52ba49} -uint16\+\_\+t UART\+\_\+\+Settings\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+RX} +{\footnotesize\ttfamily uint16\+\_\+t UART\+\_\+\+Settings\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+RX} Definition at line \mbox{\hyperlink{____general__uart_8h_source_l00050}{50}} of file \mbox{\hyperlink{____general__uart_8h_source}{\+\_\+\+\_\+general\+\_\+uart.\+h}}. -\Hypertarget{struct_u_a_r_t___settings_type_def_a5f1babfcfb436cd77f5614253c0a5bef}\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!GPIO\_PIN\_TX@{GPIO\_PIN\_TX}} +\Hypertarget{struct_u_a_r_t___settings_type_def_a5f1babfcfb436cd77f5614253c0a5bef}\label{struct_u_a_r_t___settings_type_def_a5f1babfcfb436cd77f5614253c0a5bef} +\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!GPIO\_PIN\_TX@{GPIO\_PIN\_TX}} \index{GPIO\_PIN\_TX@{GPIO\_PIN\_TX}!UART\_SettingsTypeDef@{UART\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{GPIO\_PIN\_TX}{GPIO\_PIN\_TX}} -{\footnotesize\ttfamily \label{struct_u_a_r_t___settings_type_def_a5f1babfcfb436cd77f5614253c0a5bef} -uint16\+\_\+t UART\+\_\+\+Settings\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+TX} +{\footnotesize\ttfamily uint16\+\_\+t UART\+\_\+\+Settings\+Type\+Def\+::\+GPIO\+\_\+\+PIN\+\_\+\+TX} Definition at line \mbox{\hyperlink{____general__uart_8h_source_l00051}{51}} of file \mbox{\hyperlink{____general__uart_8h_source}{\+\_\+\+\_\+general\+\_\+uart.\+h}}. -\Hypertarget{struct_u_a_r_t___settings_type_def_a1ecc9ac6a1d2747ade56770cbab6a613}\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!DMAChannel@{DMAChannel}} +\Hypertarget{struct_u_a_r_t___settings_type_def_a1ecc9ac6a1d2747ade56770cbab6a613}\label{struct_u_a_r_t___settings_type_def_a1ecc9ac6a1d2747ade56770cbab6a613} +\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!DMAChannel@{DMAChannel}} \index{DMAChannel@{DMAChannel}!UART\_SettingsTypeDef@{UART\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{DMAChannel}{DMAChannel}} -{\footnotesize\ttfamily \label{struct_u_a_r_t___settings_type_def_a1ecc9ac6a1d2747ade56770cbab6a613} -DMA\+\_\+\+Stream\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} UART\+\_\+\+Settings\+Type\+Def\+::\+DMAChannel} +{\footnotesize\ttfamily DMA\+\_\+\+Stream\+\_\+\+Type\+Def\texorpdfstring{$\ast$}{*} UART\+\_\+\+Settings\+Type\+Def\+::\+DMAChannel} Definition at line \mbox{\hyperlink{____general__uart_8h_source_l00053}{53}} of file \mbox{\hyperlink{____general__uart_8h_source}{\+\_\+\+\_\+general\+\_\+uart.\+h}}. -\Hypertarget{struct_u_a_r_t___settings_type_def_a15ce92b03f7f189bfbe1ab88a5f94d19}\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!DMA\_CHANNEL\_X@{DMA\_CHANNEL\_X}} +\Hypertarget{struct_u_a_r_t___settings_type_def_a15ce92b03f7f189bfbe1ab88a5f94d19}\label{struct_u_a_r_t___settings_type_def_a15ce92b03f7f189bfbe1ab88a5f94d19} +\index{UART\_SettingsTypeDef@{UART\_SettingsTypeDef}!DMA\_CHANNEL\_X@{DMA\_CHANNEL\_X}} \index{DMA\_CHANNEL\_X@{DMA\_CHANNEL\_X}!UART\_SettingsTypeDef@{UART\_SettingsTypeDef}} \doxysubsubsection{\texorpdfstring{DMA\_CHANNEL\_X}{DMA\_CHANNEL\_X}} -{\footnotesize\ttfamily \label{struct_u_a_r_t___settings_type_def_a15ce92b03f7f189bfbe1ab88a5f94d19} -uint32\+\_\+t UART\+\_\+\+Settings\+Type\+Def\+::\+DMA\+\_\+\+CHANNEL\+\_\+X} +{\footnotesize\ttfamily uint32\+\_\+t UART\+\_\+\+Settings\+Type\+Def\+::\+DMA\+\_\+\+CHANNEL\+\_\+X} @@ -91,4 +89,4 @@ Definition at line \mbox{\hyperlink{____general__uart_8h_source_l00054}{54}} of The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} \item -E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\+\_\+\+\_\+general\+\_\+uart.\+h\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\+\_\+\+\_\+general\+\_\+uart.\+h\end{DoxyCompactItemize} diff --git a/Doc/latex/trace_8h.tex b/Doc/latex/trace_8h.tex index 34b2516..6e582dc 100644 --- a/Doc/latex/trace_8h.tex +++ b/Doc/latex/trace_8h.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/trace.h File Reference} -\hypertarget{trace_8h}{}\label{trace_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trace.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trace.h}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/trace.h File Reference} +\hypertarget{trace_8h}{}\label{trace_8h}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trace.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trace.h}} Заголочный файл для работы с трассировкой. @@ -19,7 +19,7 @@ This graph shows which files directly or indirectly include this file\+:\nopageb \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{trace_8h__dep__incl} +\includegraphics[width=233pt]{trace_8h__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} @@ -32,13 +32,13 @@ struct \mbox{\hyperlink{struct_h_f___stack_frame__t}{HF\+\_\+\+Stack\+Frame\+\_\ \doxysubsubsection*{Macros} \begin{DoxyCompactItemize} \item -\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\+\_\+printf}}(...) +\#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\+\_\+printf}}(...)~SEGGER\+\_\+\+RTT\+\_\+printf(0, \+\_\+\+\_\+\+VA\+\_\+\+ARGS\+\_\+\+\_\+) \begin{DoxyCompactList}\small\item\em Универсальный макрос для вывода трассировки \end{DoxyCompactList}\item \#define \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_ga730fb7b8d0bbb348dca73c15bd0e0b26}{log\+\_\+printf}}(TAG, fmt, ...) \begin{DoxyCompactList}\small\item\em Макрос логирования с поддержкой уровней LOG\+\_\+\+LEVEL. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}{TRACE\+\_\+\+GPIO\+\_\+\+SET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga02a6a7b273766121db8ad4a1371373eb}{TRACE\+\_\+\+GPIO\+\_\+\+SET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+)~(\+\_\+gpio\+\_\+)-\/$>$BSRR = (((\+\_\+pin\+\_\+))) \begin{DoxyCompactList}\small\item\em Установить указанную ножку GPIO. \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}{TRACE\+\_\+\+GPIO\+\_\+\+RESET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_e___g_p_i_o_ga69741d88c991112e99fe7a62e025108a}{TRACE\+\_\+\+GPIO\+\_\+\+RESET}}(\+\_\+gpio\+\_\+, \+\_\+pin\+\_\+)~(\+\_\+gpio\+\_\+)-\/$>$BSRR = ((\+\_\+pin\+\_\+)$<$$<$16) \begin{DoxyCompactList}\small\item\em Сбросить указанную ножку GPIO. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} diff --git a/Doc/latex/trace_8h__dep__incl.md5 b/Doc/latex/trace_8h__dep__incl.md5 index fc64bec..1128197 100644 --- a/Doc/latex/trace_8h__dep__incl.md5 +++ b/Doc/latex/trace_8h__dep__incl.md5 @@ -1 +1 @@ -d1d9b9839489bb966fdfc05554f4505c \ No newline at end of file +ed66c693e6b28b2992bca99d933335c9 \ No newline at end of file diff --git a/Doc/latex/trace_8h__dep__incl.pdf b/Doc/latex/trace_8h__dep__incl.pdf index ae17096..005a6b4 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.md5 b/Doc/latex/trace_8h__incl.md5 index 3bf9e8b..a1c8f34 100644 --- a/Doc/latex/trace_8h__incl.md5 +++ b/Doc/latex/trace_8h__incl.md5 @@ -1 +1 @@ -25ced8a2b2c0bbd5a0a97e1ea1708d17 \ No newline at end of file +c825fc7596c334c4e6a628692e58fd83 \ No newline at end of file diff --git a/Doc/latex/trace_8h__incl.pdf b/Doc/latex/trace_8h__incl.pdf index 53119aa..69ff32c 100644 Binary files a/Doc/latex/trace_8h__incl.pdf and b/Doc/latex/trace_8h__incl.pdf differ diff --git a/Doc/latex/trace_8h_source.tex b/Doc/latex/trace_8h_source.tex index a1a84b0..930babd 100644 --- a/Doc/latex/trace_8h_source.tex +++ b/Doc/latex/trace_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{trace.\+h} -\hypertarget{trace_8h_source}{}\label{trace_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trace.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trace.h}} +\hypertarget{trace_8h_source}{}\label{trace_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trace.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trace.h}} \mbox{\hyperlink{trace_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{trace_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} @@ -184,7 +184,7 @@ \DoxyCodeLine{\Hypertarget{trace_8h_source_l00180}\mbox{\hyperlink{struct_r_t_t___flash_header__t}{00180}}\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{} \DoxyCodeLine{\Hypertarget{trace_8h_source_l00181}\mbox{\hyperlink{struct_r_t_t___flash_header__t_a844ee5470a323a749856cbb7a682dc57}{00181}}\ \ \ uint32\_t\ \mbox{\hyperlink{struct_r_t_t___flash_header__t_a844ee5470a323a749856cbb7a682dc57}{tag}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Уникальный\ идентификатор\ буфера}} \DoxyCodeLine{\Hypertarget{trace_8h_source_l00182}\mbox{\hyperlink{struct_r_t_t___flash_header__t_afd1a5c51af6f97d170c2ccbbe3e34699}{00182}}\ \ \ uint32\_t\ \mbox{\hyperlink{struct_r_t_t___flash_header__t_afd1a5c51af6f97d170c2ccbbe3e34699}{size}};\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{///<\ Размер\ данных}} -\DoxyCodeLine{\Hypertarget{trace_8h_source_l00183}\mbox{\hyperlink{struct_r_t_t___flash_header__t_ae7276198385c8d6f6508f433d042d52a}{00183}}\ \ \ \textcolor{keywordtype}{char}\ \ \ \ \ \mbox{\hyperlink{struct_r_t_t___flash_header__t_ae7276198385c8d6f6508f433d042d52a}{data}}[\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\_FLASH\_BUFFER\_SIZE}}];\ \ \textcolor{comment}{///<\ Буфер\ RTT}} +\DoxyCodeLine{\Hypertarget{trace_8h_source_l00183}\mbox{\hyperlink{struct_r_t_t___flash_header__t_ae7276198385c8d6f6508f433d042d52a}{00183}}\ \ \ \textcolor{keywordtype}{char}\ \ \ \ \ data[\mbox{\hyperlink{group___t_r_a_c_e___c_o_n_f_i_g_ga501312b24e322de4dd6755ad442f0ba3}{RTT\_FLASH\_BUFFER\_SIZE}}];\ \ \textcolor{comment}{///<\ Буфер\ RTT}} \DoxyCodeLine{\Hypertarget{trace_8h_source_l00184}00184\ \}\ \mbox{\hyperlink{struct_r_t_t___flash_header__t}{RTT\_FlashHeader\_t}};} \DoxyCodeLine{\Hypertarget{trace_8h_source_l00185}00185\ \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{trace_8h_source_l00186}00186\ \textcolor{comment}{/**}} @@ -540,14 +540,14 @@ \DoxyCodeLine{\Hypertarget{trace_8h_source_l00536}00536\ \ \ \ \ );} \DoxyCodeLine{\Hypertarget{trace_8h_source_l00537}00537\ } \DoxyCodeLine{\Hypertarget{trace_8h_source_l00538}00538\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}\(\backslash\)n=====\ HardFault\ occurred!\ =====\(\backslash\)n"{}});} -\DoxyCodeLine{\Hypertarget{trace_8h_source_l00539}00539\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R0\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>r0);} -\DoxyCodeLine{\Hypertarget{trace_8h_source_l00540}00540\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R1\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>r1);} -\DoxyCodeLine{\Hypertarget{trace_8h_source_l00541}00541\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R2\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>r2);} -\DoxyCodeLine{\Hypertarget{trace_8h_source_l00542}00542\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R3\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>r3);} -\DoxyCodeLine{\Hypertarget{trace_8h_source_l00543}00543\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R12\ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>r12);} -\DoxyCodeLine{\Hypertarget{trace_8h_source_l00544}00544\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}LR\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>lr);} -\DoxyCodeLine{\Hypertarget{trace_8h_source_l00545}00545\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}PC\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>pc);} -\DoxyCodeLine{\Hypertarget{trace_8h_source_l00546}00546\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}PSR\ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>psr);} +\DoxyCodeLine{\Hypertarget{trace_8h_source_l00539}00539\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R0\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>\mbox{\hyperlink{struct_h_f___stack_frame__t_a4146ed28926b5f234132b7112119a413}{r0}});} +\DoxyCodeLine{\Hypertarget{trace_8h_source_l00540}00540\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R1\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>\mbox{\hyperlink{struct_h_f___stack_frame__t_a286104d19185714940645a9df814ddea}{r1}});} +\DoxyCodeLine{\Hypertarget{trace_8h_source_l00541}00541\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R2\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>\mbox{\hyperlink{struct_h_f___stack_frame__t_a5a52e5006dabcf68c0fa4cfb0e03335b}{r2}});} +\DoxyCodeLine{\Hypertarget{trace_8h_source_l00542}00542\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R3\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>\mbox{\hyperlink{struct_h_f___stack_frame__t_a453c7af42b6928a693af422e17c981d3}{r3}});} +\DoxyCodeLine{\Hypertarget{trace_8h_source_l00543}00543\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}R12\ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>\mbox{\hyperlink{struct_h_f___stack_frame__t_a819ee3bc518c460ece1b7c4079f8f80b}{r12}});} +\DoxyCodeLine{\Hypertarget{trace_8h_source_l00544}00544\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}LR\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>\mbox{\hyperlink{struct_h_f___stack_frame__t_a6e51904297f7725e96d5b5fb291ef577}{lr}});} +\DoxyCodeLine{\Hypertarget{trace_8h_source_l00545}00545\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}PC\ \ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>\mbox{\hyperlink{struct_h_f___stack_frame__t_a16563896004751c90e41c81ae4570732}{pc}});} +\DoxyCodeLine{\Hypertarget{trace_8h_source_l00546}00546\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}PSR\ =\ 0x\%08X\(\backslash\)n"{}},\ stack\_frame-\/>\mbox{\hyperlink{struct_h_f___stack_frame__t_ae47cb051ee3c94471bfd4fe7e49c55f9}{psr}});} \DoxyCodeLine{\Hypertarget{trace_8h_source_l00547}00547\ } \DoxyCodeLine{\Hypertarget{trace_8h_source_l00548}00548\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}CFSR\ \ =\ 0x\%08X\(\backslash\)n"{}},\ SCB-\/>CFSR);} \DoxyCodeLine{\Hypertarget{trace_8h_source_l00549}00549\ \ \ \ \ \mbox{\hyperlink{group___t_r_a_c_e___s_e_r_i_a_l_gae9b9b8a611e291a2f2aa5abf99f3ebaa}{my\_printf}}(\textcolor{stringliteral}{"{}HFSR\ \ =\ 0x\%08X\(\backslash\)n"{}},\ SCB-\/>HFSR);} diff --git a/Doc/latex/trackers_8h.tex b/Doc/latex/trackers_8h.tex index b00b13c..1f402ed 100644 --- a/Doc/latex/trackers_8h.tex +++ b/Doc/latex/trackers_8h.tex @@ -1,5 +1,5 @@ -\doxysection{E\+:/.WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/trackers.h File Reference} -\hypertarget{trackers_8h}{}\label{trackers_8h}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trackers.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trackers.h}} +\doxysection{F\+:/\+Work/\+Projects/\+STM/.Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/trackers.h File Reference} +\hypertarget{trackers_8h}{}\label{trackers_8h}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trackers.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trackers.h}} Заголочный файл для работы с трекерами \doxylink{group___t_r_a_c_k_e_r_s}{Trackers defines}. @@ -10,14 +10,14 @@ Include dependency graph for trackers.\+h\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode -\includegraphics[width=229pt]{trackers_8h__incl} +\includegraphics[width=245pt]{trackers_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]{trackers_8h__dep__incl} +\includegraphics[width=245pt]{trackers_8h__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Macros} @@ -25,43 +25,43 @@ This graph shows which files directly or indirectly include this file\+:\nopageb \item \#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{Tracker\+Type\+Def}}(num\+\_\+user\+\_\+vars) \begin{DoxyCompactList}\small\item\em Структура для счетчиков отладки \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}(\+\_\+user\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}(\+\_\+user\+\_\+)~(sizeof(\+\_\+user\+\_\+) / sizeof(uint32\+\_\+t)) \begin{DoxyCompactList}\small\item\em Получить количетство пользовательских переменных \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~((\+\_\+uservarnumb\+\_\+) $<$ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}((\+\_\+cntstruct\+\_\+).user)) \begin{DoxyCompactList}\small\item\em Проверка существует ли указанная пользовательская переменная \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~if(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)) \begin{DoxyCompactList}\small\item\em Условие для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)) ? \+\_\+uservarnumb\+\_\+ \+: 0 \begin{DoxyCompactList}\small\item\em Тернарный оператор для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+ok \begin{DoxyCompactList}\small\item\em Считать счетчик успешных событий \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+err \begin{DoxyCompactList}\small\item\em Считать счетчик ошибок \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+warn \begin{DoxyCompactList}\small\item\em Считать счетчик предупреждений \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~(\+\_\+cntstruct\+\_\+).user\mbox{[}\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)\mbox{]} \begin{DoxyCompactList}\small\item\em Считать пользовательскую переменную \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+ok++ \begin{DoxyCompactList}\small\item\em Инкрементирование счетчика успешных событий \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+err++ \begin{DoxyCompactList}\small\item\em Инкрементирование счетчика ошибок \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+warn++ \begin{DoxyCompactList}\small\item\em Инкрементирование счетчика предупреждений \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) (\+\_\+cntstruct\+\_\+).user\mbox{[}\+\_\+uservarnumb\+\_\+\mbox{]}++; \begin{DoxyCompactList}\small\item\em Инкрементирование пользовательской переменной \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+, \+\_\+val\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+, \+\_\+val\+\_\+)~\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) (\+\_\+cntstruct\+\_\+).user\mbox{[}\+\_\+uservarnumb\+\_\+\mbox{]} = (\+\_\+val\+\_\+) \begin{DoxyCompactList}\small\item\em Запись числа в пользовательскую переменную \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All}}(\+\_\+cntstruct\+\_\+)~memset(\&(\+\_\+cntstruct\+\_\+), 0, sizeof(\+\_\+cntstruct\+\_\+)) \begin{DoxyCompactList}\small\item\em Очистка всей структуры \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+ok = 0 \begin{DoxyCompactList}\small\item\em Очистка счетчика успешных событий \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+err = 0 \begin{DoxyCompactList}\small\item\em Очистка счетчика ошибок \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)~(\+\_\+cntstruct\+\_\+).cnt\+\_\+warn = 0 \begin{DoxyCompactList}\small\item\em Очистка счетчика предупреждений \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+)~\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+, \+\_\+uservarnumb\+\_\+) (\+\_\+cntstruct\+\_\+).user\mbox{[}\+\_\+uservarnumb\+\_\+\mbox{]} = 0; \begin{DoxyCompactList}\small\item\em Очистка пользовательской переменной \end{DoxyCompactList}\item -\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All}}(\+\_\+cntstruct\+\_\+) +\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All}}(\+\_\+cntstruct\+\_\+)~memset(\&(\+\_\+cntstruct\+\_\+).user, 0, sizeof((\+\_\+cntstruct\+\_\+).user)) \begin{DoxyCompactList}\small\item\em Очистка всех пользовательских переменных \end{DoxyCompactList}\end{DoxyCompactItemize} diff --git a/Doc/latex/trackers_8h__dep__incl.md5 b/Doc/latex/trackers_8h__dep__incl.md5 index 1f31ff9..db42c88 100644 --- a/Doc/latex/trackers_8h__dep__incl.md5 +++ b/Doc/latex/trackers_8h__dep__incl.md5 @@ -1 +1 @@ -72159b9328b2b9eb57fcadd1b302af03 \ No newline at end of file +b846d5f6f730de44071fc47243d7d99d \ No newline at end of file diff --git a/Doc/latex/trackers_8h__dep__incl.pdf b/Doc/latex/trackers_8h__dep__incl.pdf index 26999c4..bfb8f20 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.md5 b/Doc/latex/trackers_8h__incl.md5 index 6a7968e..bc2aed8 100644 --- a/Doc/latex/trackers_8h__incl.md5 +++ b/Doc/latex/trackers_8h__incl.md5 @@ -1 +1 @@ -6d8304d11950bddd905c4ec0d61782f8 \ No newline at end of file +3c9f10ae297328bb7c38db39a1b594fe \ No newline at end of file diff --git a/Doc/latex/trackers_8h__incl.pdf b/Doc/latex/trackers_8h__incl.pdf index 2282aec..44b27be 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 10669d6..a32d9f2 100644 --- a/Doc/latex/trackers_8h_source.tex +++ b/Doc/latex/trackers_8h_source.tex @@ -1,5 +1,5 @@ \doxysection{trackers.\+h} -\hypertarget{trackers_8h_source}{}\label{trackers_8h_source}\index{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trackers.h@{E:/.WORK/STM32/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trackers.h}} +\hypertarget{trackers_8h_source}{}\label{trackers_8h_source}\index{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trackers.h@{F:/Work/Projects/STM/.Elementary/STM32\_ExtendedLibs/MyLibsGeneral/Inc/trackers.h}} \mbox{\hyperlink{trackers_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{trackers_8h_source_l00001}00001\ \textcolor{comment}{/**\ }} diff --git a/Doc/latex/unionuint16___bit_type_def.tex b/Doc/latex/unionuint16___bit_type_def.tex index c4d32f3..c196c4b 100644 --- a/Doc/latex/unionuint16___bit_type_def.tex +++ b/Doc/latex/unionuint16___bit_type_def.tex @@ -5,7 +5,7 @@ \item uint16\+\_\+t \mbox{\hyperlink{unionuint16___bit_type_def_ab821c8d3f0ad9b2aa405b29c1a15e955}{all}} \item -\Hypertarget{unionuint16___bit_type_def_a74615b0facc151c62611408fa64fa3a7}\label{unionuint16___bit_type_def_a74615b0facc151c62611408fa64fa3a7} +\Hypertarget{unionuint16___bit_type_def_abe6bb6d170ddf8f4320c50c377e88fbb}\label{unionuint16___bit_type_def_abe6bb6d170ddf8f4320c50c377e88fbb} \begin{tabbing} xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill struct \{\\ @@ -37,174 +37,172 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00055}{55}} of file \ -\label{doc-variable-members} -\Hypertarget{unionuint16___bit_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{unionuint16___bit_type_def_ab821c8d3f0ad9b2aa405b29c1a15e955}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!all@{all}} +\Hypertarget{unionuint16___bit_type_def_ab821c8d3f0ad9b2aa405b29c1a15e955}\label{unionuint16___bit_type_def_ab821c8d3f0ad9b2aa405b29c1a15e955} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!all@{all}} \index{all@{all}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{all}{all}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_ab821c8d3f0ad9b2aa405b29c1a15e955} -uint16\+\_\+t uint16\+\_\+\+Bit\+Type\+Def\+::all} +{\footnotesize\ttfamily uint16\+\_\+t uint16\+\_\+\+Bit\+Type\+Def\+::all} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00057}{57}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_acf97910d744de20e4f66231ac04916f4}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit0@{bit0}} +\Hypertarget{unionuint16___bit_type_def_acf97910d744de20e4f66231ac04916f4}\label{unionuint16___bit_type_def_acf97910d744de20e4f66231ac04916f4} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit0@{bit0}} \index{bit0@{bit0}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit0}{bit0}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_acf97910d744de20e4f66231ac04916f4} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit0} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit0} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00060}{60}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_ad24e7739b7345e2e8c7b904390f38245}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit1@{bit1}} +\Hypertarget{unionuint16___bit_type_def_ad24e7739b7345e2e8c7b904390f38245}\label{unionuint16___bit_type_def_ad24e7739b7345e2e8c7b904390f38245} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit1@{bit1}} \index{bit1@{bit1}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit1}{bit1}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_ad24e7739b7345e2e8c7b904390f38245} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit1} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit1} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00061}{61}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_aeeaefb47272ce9dd0093189434e3cc16}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit2@{bit2}} +\Hypertarget{unionuint16___bit_type_def_aeeaefb47272ce9dd0093189434e3cc16}\label{unionuint16___bit_type_def_aeeaefb47272ce9dd0093189434e3cc16} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit2@{bit2}} \index{bit2@{bit2}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit2}{bit2}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_aeeaefb47272ce9dd0093189434e3cc16} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit2} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit2} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00062}{62}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a0fd35ec303d0432e0ed09498b4339825}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit3@{bit3}} +\Hypertarget{unionuint16___bit_type_def_a0fd35ec303d0432e0ed09498b4339825}\label{unionuint16___bit_type_def_a0fd35ec303d0432e0ed09498b4339825} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit3@{bit3}} \index{bit3@{bit3}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit3}{bit3}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a0fd35ec303d0432e0ed09498b4339825} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit3} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit3} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00063}{63}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_abf9ffa5ca2bf68f60e663c6a34283024}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit4@{bit4}} +\Hypertarget{unionuint16___bit_type_def_abf9ffa5ca2bf68f60e663c6a34283024}\label{unionuint16___bit_type_def_abf9ffa5ca2bf68f60e663c6a34283024} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit4@{bit4}} \index{bit4@{bit4}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit4}{bit4}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_abf9ffa5ca2bf68f60e663c6a34283024} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit4} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit4} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00064}{64}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_abdd8245ddc6468c4edc6eb7b523f2b68}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit5@{bit5}} +\Hypertarget{unionuint16___bit_type_def_abdd8245ddc6468c4edc6eb7b523f2b68}\label{unionuint16___bit_type_def_abdd8245ddc6468c4edc6eb7b523f2b68} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit5@{bit5}} \index{bit5@{bit5}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit5}{bit5}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_abdd8245ddc6468c4edc6eb7b523f2b68} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit5} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit5} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00065}{65}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a67094d80de21352fd3fdfd34ca862f08}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit6@{bit6}} +\Hypertarget{unionuint16___bit_type_def_a67094d80de21352fd3fdfd34ca862f08}\label{unionuint16___bit_type_def_a67094d80de21352fd3fdfd34ca862f08} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit6@{bit6}} \index{bit6@{bit6}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit6}{bit6}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a67094d80de21352fd3fdfd34ca862f08} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit6} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit6} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00066}{66}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a6f693fc837a1ea0f3a6fcbc64963d4e5}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit7@{bit7}} +\Hypertarget{unionuint16___bit_type_def_a6f693fc837a1ea0f3a6fcbc64963d4e5}\label{unionuint16___bit_type_def_a6f693fc837a1ea0f3a6fcbc64963d4e5} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit7@{bit7}} \index{bit7@{bit7}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit7}{bit7}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a6f693fc837a1ea0f3a6fcbc64963d4e5} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit7} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit7} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00067}{67}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a87b063401e95d432f4797abf1ef38037}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit8@{bit8}} +\Hypertarget{unionuint16___bit_type_def_a87b063401e95d432f4797abf1ef38037}\label{unionuint16___bit_type_def_a87b063401e95d432f4797abf1ef38037} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit8@{bit8}} \index{bit8@{bit8}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit8}{bit8}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a87b063401e95d432f4797abf1ef38037} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit8} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit8} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00068}{68}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a790a2de77be9b2672fec0ed8725aa3ce}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit9@{bit9}} +\Hypertarget{unionuint16___bit_type_def_a790a2de77be9b2672fec0ed8725aa3ce}\label{unionuint16___bit_type_def_a790a2de77be9b2672fec0ed8725aa3ce} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit9@{bit9}} \index{bit9@{bit9}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit9}{bit9}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a790a2de77be9b2672fec0ed8725aa3ce} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit9} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit9} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00069}{69}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a2068066f12e596957429373a9e7b370b}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit10@{bit10}} +\Hypertarget{unionuint16___bit_type_def_a2068066f12e596957429373a9e7b370b}\label{unionuint16___bit_type_def_a2068066f12e596957429373a9e7b370b} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit10@{bit10}} \index{bit10@{bit10}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit10}{bit10}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a2068066f12e596957429373a9e7b370b} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit10} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit10} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00070}{70}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a5aea5de8000bab137f45154ac4845a7a}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit11@{bit11}} +\Hypertarget{unionuint16___bit_type_def_a5aea5de8000bab137f45154ac4845a7a}\label{unionuint16___bit_type_def_a5aea5de8000bab137f45154ac4845a7a} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit11@{bit11}} \index{bit11@{bit11}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit11}{bit11}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a5aea5de8000bab137f45154ac4845a7a} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit11} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit11} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00071}{71}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_af42575933decdc768b2d47d74150b447}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit12@{bit12}} +\Hypertarget{unionuint16___bit_type_def_af42575933decdc768b2d47d74150b447}\label{unionuint16___bit_type_def_af42575933decdc768b2d47d74150b447} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit12@{bit12}} \index{bit12@{bit12}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit12}{bit12}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_af42575933decdc768b2d47d74150b447} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit12} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit12} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00072}{72}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a4cb4776e5e848a3cce73e9eca21a2977}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit13@{bit13}} +\Hypertarget{unionuint16___bit_type_def_a4cb4776e5e848a3cce73e9eca21a2977}\label{unionuint16___bit_type_def_a4cb4776e5e848a3cce73e9eca21a2977} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit13@{bit13}} \index{bit13@{bit13}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit13}{bit13}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a4cb4776e5e848a3cce73e9eca21a2977} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit13} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit13} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00073}{73}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a0c88ae0be399d9620d288f548ab4037d}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit14@{bit14}} +\Hypertarget{unionuint16___bit_type_def_a0c88ae0be399d9620d288f548ab4037d}\label{unionuint16___bit_type_def_a0c88ae0be399d9620d288f548ab4037d} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit14@{bit14}} \index{bit14@{bit14}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit14}{bit14}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a0c88ae0be399d9620d288f548ab4037d} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit14} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit14} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00074}{74}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint16___bit_type_def_a246b7b099a4fab9338abb9549339db7c}\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit15@{bit15}} +\Hypertarget{unionuint16___bit_type_def_a246b7b099a4fab9338abb9549339db7c}\label{unionuint16___bit_type_def_a246b7b099a4fab9338abb9549339db7c} +\index{uint16\_BitTypeDef@{uint16\_BitTypeDef}!bit15@{bit15}} \index{bit15@{bit15}!uint16\_BitTypeDef@{uint16\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit15}{bit15}} -{\footnotesize\ttfamily \label{unionuint16___bit_type_def_a246b7b099a4fab9338abb9549339db7c} -unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit15} +{\footnotesize\ttfamily unsigned uint16\+\_\+\+Bit\+Type\+Def\+::bit15} @@ -214,4 +212,4 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00075}{75}} of file \ The documentation for this union was generated from the following file\+:\begin{DoxyCompactItemize} \item -E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/unionuint32___bit_type_def.tex b/Doc/latex/unionuint32___bit_type_def.tex index 3014264..1567bb7 100644 --- a/Doc/latex/unionuint32___bit_type_def.tex +++ b/Doc/latex/unionuint32___bit_type_def.tex @@ -5,7 +5,7 @@ \item uint32\+\_\+t \mbox{\hyperlink{unionuint32___bit_type_def_aabd9acf3b55b909219a41737a105f31b}{all}} \item -\Hypertarget{unionuint32___bit_type_def_a49ec6ac6dfc5a5da865150c5213e3822}\label{unionuint32___bit_type_def_a49ec6ac6dfc5a5da865150c5213e3822} +\Hypertarget{unionuint32___bit_type_def_a76de1c3d849f17f4ee2f9d17b44ee853}\label{unionuint32___bit_type_def_a76de1c3d849f17f4ee2f9d17b44ee853} \begin{tabbing} xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill struct \{\\ @@ -53,334 +53,332 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00080}{80}} of file \ -\label{doc-variable-members} -\Hypertarget{unionuint32___bit_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{unionuint32___bit_type_def_aabd9acf3b55b909219a41737a105f31b}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!all@{all}} +\Hypertarget{unionuint32___bit_type_def_aabd9acf3b55b909219a41737a105f31b}\label{unionuint32___bit_type_def_aabd9acf3b55b909219a41737a105f31b} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!all@{all}} \index{all@{all}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{all}{all}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_aabd9acf3b55b909219a41737a105f31b} -uint32\+\_\+t uint32\+\_\+\+Bit\+Type\+Def\+::all} +{\footnotesize\ttfamily uint32\+\_\+t uint32\+\_\+\+Bit\+Type\+Def\+::all} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00082}{82}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_abff6cfc25cc49ec273ed50773492e7f5}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit0@{bit0}} +\Hypertarget{unionuint32___bit_type_def_abff6cfc25cc49ec273ed50773492e7f5}\label{unionuint32___bit_type_def_abff6cfc25cc49ec273ed50773492e7f5} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit0@{bit0}} \index{bit0@{bit0}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit0}{bit0}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_abff6cfc25cc49ec273ed50773492e7f5} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit0} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit0} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00085}{85}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_abf8bdbe7ff864eed8de9099c0b587e28}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit1@{bit1}} +\Hypertarget{unionuint32___bit_type_def_abf8bdbe7ff864eed8de9099c0b587e28}\label{unionuint32___bit_type_def_abf8bdbe7ff864eed8de9099c0b587e28} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit1@{bit1}} \index{bit1@{bit1}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit1}{bit1}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_abf8bdbe7ff864eed8de9099c0b587e28} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit1} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit1} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00085}{85}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a666403b3523509859533e4d9f8b92f54}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit2@{bit2}} +\Hypertarget{unionuint32___bit_type_def_a666403b3523509859533e4d9f8b92f54}\label{unionuint32___bit_type_def_a666403b3523509859533e4d9f8b92f54} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit2@{bit2}} \index{bit2@{bit2}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit2}{bit2}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a666403b3523509859533e4d9f8b92f54} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit2} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit2} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00085}{85}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a5a2e789bb9bd79a65b1018bf45f18e20}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit3@{bit3}} +\Hypertarget{unionuint32___bit_type_def_a5a2e789bb9bd79a65b1018bf45f18e20}\label{unionuint32___bit_type_def_a5a2e789bb9bd79a65b1018bf45f18e20} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit3@{bit3}} \index{bit3@{bit3}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit3}{bit3}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a5a2e789bb9bd79a65b1018bf45f18e20} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit3} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit3} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00085}{85}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_abf47a02fa44022e310d8f5ff1a016a0b}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit4@{bit4}} +\Hypertarget{unionuint32___bit_type_def_abf47a02fa44022e310d8f5ff1a016a0b}\label{unionuint32___bit_type_def_abf47a02fa44022e310d8f5ff1a016a0b} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit4@{bit4}} \index{bit4@{bit4}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit4}{bit4}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_abf47a02fa44022e310d8f5ff1a016a0b} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit4} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit4} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00086}{86}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_ad1123a45e39fae16a0bc6ef1f9d8a029}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit5@{bit5}} +\Hypertarget{unionuint32___bit_type_def_ad1123a45e39fae16a0bc6ef1f9d8a029}\label{unionuint32___bit_type_def_ad1123a45e39fae16a0bc6ef1f9d8a029} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit5@{bit5}} \index{bit5@{bit5}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit5}{bit5}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_ad1123a45e39fae16a0bc6ef1f9d8a029} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit5} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit5} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00086}{86}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a09e0e3f37bb503bfc35c74988f7d1c38}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit6@{bit6}} +\Hypertarget{unionuint32___bit_type_def_a09e0e3f37bb503bfc35c74988f7d1c38}\label{unionuint32___bit_type_def_a09e0e3f37bb503bfc35c74988f7d1c38} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit6@{bit6}} \index{bit6@{bit6}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit6}{bit6}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a09e0e3f37bb503bfc35c74988f7d1c38} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit6} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit6} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00086}{86}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_ae0c9ae90820561cd7a65bed3ed545908}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit7@{bit7}} +\Hypertarget{unionuint32___bit_type_def_ae0c9ae90820561cd7a65bed3ed545908}\label{unionuint32___bit_type_def_ae0c9ae90820561cd7a65bed3ed545908} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit7@{bit7}} \index{bit7@{bit7}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit7}{bit7}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_ae0c9ae90820561cd7a65bed3ed545908} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit7} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit7} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00086}{86}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_aa5d94c8ca24d3987d889abf68a727469}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit8@{bit8}} +\Hypertarget{unionuint32___bit_type_def_aa5d94c8ca24d3987d889abf68a727469}\label{unionuint32___bit_type_def_aa5d94c8ca24d3987d889abf68a727469} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit8@{bit8}} \index{bit8@{bit8}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit8}{bit8}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_aa5d94c8ca24d3987d889abf68a727469} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit8} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit8} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00087}{87}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_aa7a37c3527f8cccab46b7df2fd8209f5}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit9@{bit9}} +\Hypertarget{unionuint32___bit_type_def_aa7a37c3527f8cccab46b7df2fd8209f5}\label{unionuint32___bit_type_def_aa7a37c3527f8cccab46b7df2fd8209f5} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit9@{bit9}} \index{bit9@{bit9}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit9}{bit9}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_aa7a37c3527f8cccab46b7df2fd8209f5} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit9} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit9} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00087}{87}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_ac12eaa502b6d609141ccb335f33af5e7}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit10@{bit10}} +\Hypertarget{unionuint32___bit_type_def_ac12eaa502b6d609141ccb335f33af5e7}\label{unionuint32___bit_type_def_ac12eaa502b6d609141ccb335f33af5e7} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit10@{bit10}} \index{bit10@{bit10}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit10}{bit10}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_ac12eaa502b6d609141ccb335f33af5e7} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit10} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit10} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00087}{87}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a683cce990ca4831b03265bfbe482cbb4}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit11@{bit11}} +\Hypertarget{unionuint32___bit_type_def_a683cce990ca4831b03265bfbe482cbb4}\label{unionuint32___bit_type_def_a683cce990ca4831b03265bfbe482cbb4} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit11@{bit11}} \index{bit11@{bit11}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit11}{bit11}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a683cce990ca4831b03265bfbe482cbb4} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit11} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit11} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00087}{87}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a77e18067ae4ac536b344117243c6d506}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit12@{bit12}} +\Hypertarget{unionuint32___bit_type_def_a77e18067ae4ac536b344117243c6d506}\label{unionuint32___bit_type_def_a77e18067ae4ac536b344117243c6d506} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit12@{bit12}} \index{bit12@{bit12}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit12}{bit12}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a77e18067ae4ac536b344117243c6d506} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit12} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit12} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00088}{88}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a3cd10a17f06d0074bac403ed78afd891}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit13@{bit13}} +\Hypertarget{unionuint32___bit_type_def_a3cd10a17f06d0074bac403ed78afd891}\label{unionuint32___bit_type_def_a3cd10a17f06d0074bac403ed78afd891} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit13@{bit13}} \index{bit13@{bit13}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit13}{bit13}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a3cd10a17f06d0074bac403ed78afd891} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit13} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit13} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00088}{88}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a3c1e306cf28b30566ba1336fffce194b}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit14@{bit14}} +\Hypertarget{unionuint32___bit_type_def_a3c1e306cf28b30566ba1336fffce194b}\label{unionuint32___bit_type_def_a3c1e306cf28b30566ba1336fffce194b} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit14@{bit14}} \index{bit14@{bit14}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit14}{bit14}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a3c1e306cf28b30566ba1336fffce194b} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit14} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit14} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00088}{88}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a5270b3410fb334ca5639a7ff8168e79b}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit15@{bit15}} +\Hypertarget{unionuint32___bit_type_def_a5270b3410fb334ca5639a7ff8168e79b}\label{unionuint32___bit_type_def_a5270b3410fb334ca5639a7ff8168e79b} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit15@{bit15}} \index{bit15@{bit15}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit15}{bit15}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a5270b3410fb334ca5639a7ff8168e79b} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit15} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit15} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00088}{88}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_aaafd5bb13d528e1677d257c454877608}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit16@{bit16}} +\Hypertarget{unionuint32___bit_type_def_aaafd5bb13d528e1677d257c454877608}\label{unionuint32___bit_type_def_aaafd5bb13d528e1677d257c454877608} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit16@{bit16}} \index{bit16@{bit16}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit16}{bit16}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_aaafd5bb13d528e1677d257c454877608} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit16} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit16} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00089}{89}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a1433177abbca3502a8b349c84ea00a18}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit17@{bit17}} +\Hypertarget{unionuint32___bit_type_def_a1433177abbca3502a8b349c84ea00a18}\label{unionuint32___bit_type_def_a1433177abbca3502a8b349c84ea00a18} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit17@{bit17}} \index{bit17@{bit17}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit17}{bit17}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a1433177abbca3502a8b349c84ea00a18} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit17} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit17} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00089}{89}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a4a71070cee54394b6538702985bb9bed}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit18@{bit18}} +\Hypertarget{unionuint32___bit_type_def_a4a71070cee54394b6538702985bb9bed}\label{unionuint32___bit_type_def_a4a71070cee54394b6538702985bb9bed} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit18@{bit18}} \index{bit18@{bit18}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit18}{bit18}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a4a71070cee54394b6538702985bb9bed} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit18} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit18} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00089}{89}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_aa986b0413af6a14e8bc889e40a547dec}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit19@{bit19}} +\Hypertarget{unionuint32___bit_type_def_aa986b0413af6a14e8bc889e40a547dec}\label{unionuint32___bit_type_def_aa986b0413af6a14e8bc889e40a547dec} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit19@{bit19}} \index{bit19@{bit19}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit19}{bit19}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_aa986b0413af6a14e8bc889e40a547dec} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit19} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit19} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00089}{89}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a4aa0febc01b82124e82fd183e5938a92}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit20@{bit20}} +\Hypertarget{unionuint32___bit_type_def_a4aa0febc01b82124e82fd183e5938a92}\label{unionuint32___bit_type_def_a4aa0febc01b82124e82fd183e5938a92} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit20@{bit20}} \index{bit20@{bit20}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit20}{bit20}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a4aa0febc01b82124e82fd183e5938a92} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit20} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit20} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00090}{90}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a7b0e092cf7411e9b265546cb685088d2}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit21@{bit21}} +\Hypertarget{unionuint32___bit_type_def_a7b0e092cf7411e9b265546cb685088d2}\label{unionuint32___bit_type_def_a7b0e092cf7411e9b265546cb685088d2} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit21@{bit21}} \index{bit21@{bit21}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit21}{bit21}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a7b0e092cf7411e9b265546cb685088d2} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit21} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit21} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00090}{90}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a659e845e7eb657ea25a2f99d989849f6}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit22@{bit22}} +\Hypertarget{unionuint32___bit_type_def_a659e845e7eb657ea25a2f99d989849f6}\label{unionuint32___bit_type_def_a659e845e7eb657ea25a2f99d989849f6} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit22@{bit22}} \index{bit22@{bit22}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit22}{bit22}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a659e845e7eb657ea25a2f99d989849f6} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit22} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit22} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00090}{90}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_aee65f736e7d7b6af66addf365ae47ca9}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit23@{bit23}} +\Hypertarget{unionuint32___bit_type_def_aee65f736e7d7b6af66addf365ae47ca9}\label{unionuint32___bit_type_def_aee65f736e7d7b6af66addf365ae47ca9} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit23@{bit23}} \index{bit23@{bit23}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit23}{bit23}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_aee65f736e7d7b6af66addf365ae47ca9} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit23} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit23} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00090}{90}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a760d75577810f01480ff019023d7c10e}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit24@{bit24}} +\Hypertarget{unionuint32___bit_type_def_a760d75577810f01480ff019023d7c10e}\label{unionuint32___bit_type_def_a760d75577810f01480ff019023d7c10e} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit24@{bit24}} \index{bit24@{bit24}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit24}{bit24}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a760d75577810f01480ff019023d7c10e} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit24} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit24} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00091}{91}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a5cd1e149fa9d1b0c23a6977989ee30ca}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit25@{bit25}} +\Hypertarget{unionuint32___bit_type_def_a5cd1e149fa9d1b0c23a6977989ee30ca}\label{unionuint32___bit_type_def_a5cd1e149fa9d1b0c23a6977989ee30ca} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit25@{bit25}} \index{bit25@{bit25}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit25}{bit25}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a5cd1e149fa9d1b0c23a6977989ee30ca} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit25} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit25} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00091}{91}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a3ac1b793de197ed00907d420cbaf67de}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit26@{bit26}} +\Hypertarget{unionuint32___bit_type_def_a3ac1b793de197ed00907d420cbaf67de}\label{unionuint32___bit_type_def_a3ac1b793de197ed00907d420cbaf67de} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit26@{bit26}} \index{bit26@{bit26}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit26}{bit26}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a3ac1b793de197ed00907d420cbaf67de} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit26} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit26} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00091}{91}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_aef4211a2fbabc4020b376fcda333743e}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit27@{bit27}} +\Hypertarget{unionuint32___bit_type_def_aef4211a2fbabc4020b376fcda333743e}\label{unionuint32___bit_type_def_aef4211a2fbabc4020b376fcda333743e} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit27@{bit27}} \index{bit27@{bit27}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit27}{bit27}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_aef4211a2fbabc4020b376fcda333743e} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit27} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit27} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00091}{91}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a6849e6bd6f3e263f512d24bfe9b3b5be}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit28@{bit28}} +\Hypertarget{unionuint32___bit_type_def_a6849e6bd6f3e263f512d24bfe9b3b5be}\label{unionuint32___bit_type_def_a6849e6bd6f3e263f512d24bfe9b3b5be} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit28@{bit28}} \index{bit28@{bit28}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit28}{bit28}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a6849e6bd6f3e263f512d24bfe9b3b5be} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit28} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit28} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00092}{92}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a1a12a3a22dd803e4381a6f9c7be8b043}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit29@{bit29}} +\Hypertarget{unionuint32___bit_type_def_a1a12a3a22dd803e4381a6f9c7be8b043}\label{unionuint32___bit_type_def_a1a12a3a22dd803e4381a6f9c7be8b043} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit29@{bit29}} \index{bit29@{bit29}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit29}{bit29}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a1a12a3a22dd803e4381a6f9c7be8b043} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit29} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit29} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00092}{92}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_a743186db785e1a412209b75152ade3ff}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit30@{bit30}} +\Hypertarget{unionuint32___bit_type_def_a743186db785e1a412209b75152ade3ff}\label{unionuint32___bit_type_def_a743186db785e1a412209b75152ade3ff} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit30@{bit30}} \index{bit30@{bit30}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit30}{bit30}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_a743186db785e1a412209b75152ade3ff} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit30} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit30} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00092}{92}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint32___bit_type_def_acff898f6a1d8583148b8c20537266253}\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit31@{bit31}} +\Hypertarget{unionuint32___bit_type_def_acff898f6a1d8583148b8c20537266253}\label{unionuint32___bit_type_def_acff898f6a1d8583148b8c20537266253} +\index{uint32\_BitTypeDef@{uint32\_BitTypeDef}!bit31@{bit31}} \index{bit31@{bit31}!uint32\_BitTypeDef@{uint32\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit31}{bit31}} -{\footnotesize\ttfamily \label{unionuint32___bit_type_def_acff898f6a1d8583148b8c20537266253} -unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit31} +{\footnotesize\ttfamily unsigned uint32\+\_\+\+Bit\+Type\+Def\+::bit31} @@ -390,4 +388,4 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00092}{92}} of file \ The documentation for this union was generated from the following file\+:\begin{DoxyCompactItemize} \item -E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/unionuint64___bit_type_def.tex b/Doc/latex/unionuint64___bit_type_def.tex index 23030ba..9b49ea9 100644 --- a/Doc/latex/unionuint64___bit_type_def.tex +++ b/Doc/latex/unionuint64___bit_type_def.tex @@ -5,7 +5,7 @@ \item uint64\+\_\+t \mbox{\hyperlink{unionuint64___bit_type_def_a1dd79aa84a1d13d156f1b684aaf01edd}{all}} \item -\Hypertarget{unionuint64___bit_type_def_a90521812d54cf423f4cacf6cce0022cd}\label{unionuint64___bit_type_def_a90521812d54cf423f4cacf6cce0022cd} +\Hypertarget{unionuint64___bit_type_def_a1cec80592b666bd54a987bfd849604ae}\label{unionuint64___bit_type_def_a1cec80592b666bd54a987bfd849604ae} \begin{tabbing} xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill struct \{\\ @@ -85,654 +85,652 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00097}{97}} of file \ -\label{doc-variable-members} -\Hypertarget{unionuint64___bit_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{unionuint64___bit_type_def_a1dd79aa84a1d13d156f1b684aaf01edd}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!all@{all}} +\Hypertarget{unionuint64___bit_type_def_a1dd79aa84a1d13d156f1b684aaf01edd}\label{unionuint64___bit_type_def_a1dd79aa84a1d13d156f1b684aaf01edd} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!all@{all}} \index{all@{all}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{all}{all}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a1dd79aa84a1d13d156f1b684aaf01edd} -uint64\+\_\+t uint64\+\_\+\+Bit\+Type\+Def\+::all} +{\footnotesize\ttfamily uint64\+\_\+t uint64\+\_\+\+Bit\+Type\+Def\+::all} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00099}{99}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_aff17255dbf3ae6a53a2cb3b9ec3d4298}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit0@{bit0}} +\Hypertarget{unionuint64___bit_type_def_aff17255dbf3ae6a53a2cb3b9ec3d4298}\label{unionuint64___bit_type_def_aff17255dbf3ae6a53a2cb3b9ec3d4298} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit0@{bit0}} \index{bit0@{bit0}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit0}{bit0}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_aff17255dbf3ae6a53a2cb3b9ec3d4298} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit0} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit0} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00102}{102}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a3261a8e364bbfc3bea2099962fd391e5}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit1@{bit1}} +\Hypertarget{unionuint64___bit_type_def_a3261a8e364bbfc3bea2099962fd391e5}\label{unionuint64___bit_type_def_a3261a8e364bbfc3bea2099962fd391e5} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit1@{bit1}} \index{bit1@{bit1}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit1}{bit1}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a3261a8e364bbfc3bea2099962fd391e5} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit1} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit1} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00102}{102}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a20ae7d30b5f560cb06ec7ddf8c901b8c}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit2@{bit2}} +\Hypertarget{unionuint64___bit_type_def_a20ae7d30b5f560cb06ec7ddf8c901b8c}\label{unionuint64___bit_type_def_a20ae7d30b5f560cb06ec7ddf8c901b8c} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit2@{bit2}} \index{bit2@{bit2}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit2}{bit2}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a20ae7d30b5f560cb06ec7ddf8c901b8c} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit2} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit2} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00102}{102}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a0c4125f907098ffe900e193357e5d3ad}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit3@{bit3}} +\Hypertarget{unionuint64___bit_type_def_a0c4125f907098ffe900e193357e5d3ad}\label{unionuint64___bit_type_def_a0c4125f907098ffe900e193357e5d3ad} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit3@{bit3}} \index{bit3@{bit3}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit3}{bit3}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a0c4125f907098ffe900e193357e5d3ad} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit3} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit3} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00102}{102}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a548c073727ccb13e6e7f56472412034f}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit4@{bit4}} +\Hypertarget{unionuint64___bit_type_def_a548c073727ccb13e6e7f56472412034f}\label{unionuint64___bit_type_def_a548c073727ccb13e6e7f56472412034f} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit4@{bit4}} \index{bit4@{bit4}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit4}{bit4}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a548c073727ccb13e6e7f56472412034f} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit4} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit4} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00103}{103}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a5386a391a6ba21bdeb0296ed9043d03a}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit5@{bit5}} +\Hypertarget{unionuint64___bit_type_def_a5386a391a6ba21bdeb0296ed9043d03a}\label{unionuint64___bit_type_def_a5386a391a6ba21bdeb0296ed9043d03a} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit5@{bit5}} \index{bit5@{bit5}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit5}{bit5}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a5386a391a6ba21bdeb0296ed9043d03a} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit5} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit5} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00103}{103}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a9181ed01944b9da888afafead31931d2}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit6@{bit6}} +\Hypertarget{unionuint64___bit_type_def_a9181ed01944b9da888afafead31931d2}\label{unionuint64___bit_type_def_a9181ed01944b9da888afafead31931d2} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit6@{bit6}} \index{bit6@{bit6}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit6}{bit6}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a9181ed01944b9da888afafead31931d2} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit6} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit6} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00103}{103}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a19df4425e8bfa0de2d6920696cf7614c}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit7@{bit7}} +\Hypertarget{unionuint64___bit_type_def_a19df4425e8bfa0de2d6920696cf7614c}\label{unionuint64___bit_type_def_a19df4425e8bfa0de2d6920696cf7614c} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit7@{bit7}} \index{bit7@{bit7}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit7}{bit7}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a19df4425e8bfa0de2d6920696cf7614c} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit7} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit7} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00103}{103}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a4e721ef35fc0b10ffde85d3face0810b}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit8@{bit8}} +\Hypertarget{unionuint64___bit_type_def_a4e721ef35fc0b10ffde85d3face0810b}\label{unionuint64___bit_type_def_a4e721ef35fc0b10ffde85d3face0810b} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit8@{bit8}} \index{bit8@{bit8}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit8}{bit8}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a4e721ef35fc0b10ffde85d3face0810b} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit8} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit8} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00104}{104}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a1269f7d45f62bf763c6dbcce5d286459}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit9@{bit9}} +\Hypertarget{unionuint64___bit_type_def_a1269f7d45f62bf763c6dbcce5d286459}\label{unionuint64___bit_type_def_a1269f7d45f62bf763c6dbcce5d286459} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit9@{bit9}} \index{bit9@{bit9}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit9}{bit9}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a1269f7d45f62bf763c6dbcce5d286459} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit9} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit9} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00104}{104}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a6d2d38d7385f47a21797ff1251150b26}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit10@{bit10}} +\Hypertarget{unionuint64___bit_type_def_a6d2d38d7385f47a21797ff1251150b26}\label{unionuint64___bit_type_def_a6d2d38d7385f47a21797ff1251150b26} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit10@{bit10}} \index{bit10@{bit10}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit10}{bit10}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a6d2d38d7385f47a21797ff1251150b26} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit10} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit10} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00104}{104}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_af2680443011d9537ad667321115bd9d9}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit11@{bit11}} +\Hypertarget{unionuint64___bit_type_def_af2680443011d9537ad667321115bd9d9}\label{unionuint64___bit_type_def_af2680443011d9537ad667321115bd9d9} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit11@{bit11}} \index{bit11@{bit11}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit11}{bit11}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_af2680443011d9537ad667321115bd9d9} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit11} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit11} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00104}{104}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a1e806ef90a4a49e9acc816fbfd559b7a}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit12@{bit12}} +\Hypertarget{unionuint64___bit_type_def_a1e806ef90a4a49e9acc816fbfd559b7a}\label{unionuint64___bit_type_def_a1e806ef90a4a49e9acc816fbfd559b7a} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit12@{bit12}} \index{bit12@{bit12}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit12}{bit12}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a1e806ef90a4a49e9acc816fbfd559b7a} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit12} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit12} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00105}{105}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ad4b8ef500154da1a0dc19ef9535fd18b}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit13@{bit13}} +\Hypertarget{unionuint64___bit_type_def_ad4b8ef500154da1a0dc19ef9535fd18b}\label{unionuint64___bit_type_def_ad4b8ef500154da1a0dc19ef9535fd18b} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit13@{bit13}} \index{bit13@{bit13}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit13}{bit13}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ad4b8ef500154da1a0dc19ef9535fd18b} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit13} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit13} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00105}{105}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a1ace2a9de437ba03fffcf0003e8a9922}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit14@{bit14}} +\Hypertarget{unionuint64___bit_type_def_a1ace2a9de437ba03fffcf0003e8a9922}\label{unionuint64___bit_type_def_a1ace2a9de437ba03fffcf0003e8a9922} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit14@{bit14}} \index{bit14@{bit14}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit14}{bit14}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a1ace2a9de437ba03fffcf0003e8a9922} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit14} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit14} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00105}{105}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a6a2318362ad7fe9eb0d8115f78a2b954}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit15@{bit15}} +\Hypertarget{unionuint64___bit_type_def_a6a2318362ad7fe9eb0d8115f78a2b954}\label{unionuint64___bit_type_def_a6a2318362ad7fe9eb0d8115f78a2b954} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit15@{bit15}} \index{bit15@{bit15}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit15}{bit15}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a6a2318362ad7fe9eb0d8115f78a2b954} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit15} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit15} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00105}{105}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a843c0a233cbb56277603b2af8c49799a}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit16@{bit16}} +\Hypertarget{unionuint64___bit_type_def_a843c0a233cbb56277603b2af8c49799a}\label{unionuint64___bit_type_def_a843c0a233cbb56277603b2af8c49799a} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit16@{bit16}} \index{bit16@{bit16}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit16}{bit16}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a843c0a233cbb56277603b2af8c49799a} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit16} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit16} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00106}{106}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ac5f4985df61854a2e4a459bee5049901}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit17@{bit17}} +\Hypertarget{unionuint64___bit_type_def_ac5f4985df61854a2e4a459bee5049901}\label{unionuint64___bit_type_def_ac5f4985df61854a2e4a459bee5049901} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit17@{bit17}} \index{bit17@{bit17}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit17}{bit17}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ac5f4985df61854a2e4a459bee5049901} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit17} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit17} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00106}{106}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_aedcddf700cf22c6ffa88a3cc35d3ca45}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit18@{bit18}} +\Hypertarget{unionuint64___bit_type_def_aedcddf700cf22c6ffa88a3cc35d3ca45}\label{unionuint64___bit_type_def_aedcddf700cf22c6ffa88a3cc35d3ca45} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit18@{bit18}} \index{bit18@{bit18}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit18}{bit18}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_aedcddf700cf22c6ffa88a3cc35d3ca45} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit18} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit18} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00106}{106}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_aa54f6e0b37d9a7ee270d60ab5fa99d96}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit19@{bit19}} +\Hypertarget{unionuint64___bit_type_def_aa54f6e0b37d9a7ee270d60ab5fa99d96}\label{unionuint64___bit_type_def_aa54f6e0b37d9a7ee270d60ab5fa99d96} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit19@{bit19}} \index{bit19@{bit19}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit19}{bit19}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_aa54f6e0b37d9a7ee270d60ab5fa99d96} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit19} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit19} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00106}{106}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_aa494c40e09d657938459fe033f9b4768}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit20@{bit20}} +\Hypertarget{unionuint64___bit_type_def_aa494c40e09d657938459fe033f9b4768}\label{unionuint64___bit_type_def_aa494c40e09d657938459fe033f9b4768} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit20@{bit20}} \index{bit20@{bit20}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit20}{bit20}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_aa494c40e09d657938459fe033f9b4768} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit20} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit20} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00107}{107}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a2bb5652539ba1be890e7a8e9106b1b13}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit21@{bit21}} +\Hypertarget{unionuint64___bit_type_def_a2bb5652539ba1be890e7a8e9106b1b13}\label{unionuint64___bit_type_def_a2bb5652539ba1be890e7a8e9106b1b13} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit21@{bit21}} \index{bit21@{bit21}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit21}{bit21}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a2bb5652539ba1be890e7a8e9106b1b13} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit21} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit21} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00107}{107}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_acdfa6e465a2ab178030d6e6602aace99}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit22@{bit22}} +\Hypertarget{unionuint64___bit_type_def_acdfa6e465a2ab178030d6e6602aace99}\label{unionuint64___bit_type_def_acdfa6e465a2ab178030d6e6602aace99} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit22@{bit22}} \index{bit22@{bit22}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit22}{bit22}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_acdfa6e465a2ab178030d6e6602aace99} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit22} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit22} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00107}{107}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_afe3bd10a6deca0fe61ab0ef5e8e4a20f}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit23@{bit23}} +\Hypertarget{unionuint64___bit_type_def_afe3bd10a6deca0fe61ab0ef5e8e4a20f}\label{unionuint64___bit_type_def_afe3bd10a6deca0fe61ab0ef5e8e4a20f} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit23@{bit23}} \index{bit23@{bit23}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit23}{bit23}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_afe3bd10a6deca0fe61ab0ef5e8e4a20f} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit23} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit23} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00107}{107}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_aae3e9b8317400c2d0b727dfa173d5ad2}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit24@{bit24}} +\Hypertarget{unionuint64___bit_type_def_aae3e9b8317400c2d0b727dfa173d5ad2}\label{unionuint64___bit_type_def_aae3e9b8317400c2d0b727dfa173d5ad2} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit24@{bit24}} \index{bit24@{bit24}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit24}{bit24}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_aae3e9b8317400c2d0b727dfa173d5ad2} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit24} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit24} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00108}{108}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a81b8ac661abfed6e2b58fdb615eb252a}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit25@{bit25}} +\Hypertarget{unionuint64___bit_type_def_a81b8ac661abfed6e2b58fdb615eb252a}\label{unionuint64___bit_type_def_a81b8ac661abfed6e2b58fdb615eb252a} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit25@{bit25}} \index{bit25@{bit25}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit25}{bit25}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a81b8ac661abfed6e2b58fdb615eb252a} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit25} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit25} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00108}{108}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_af3f19ae67c1f900e23daf8deda4324ef}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit26@{bit26}} +\Hypertarget{unionuint64___bit_type_def_af3f19ae67c1f900e23daf8deda4324ef}\label{unionuint64___bit_type_def_af3f19ae67c1f900e23daf8deda4324ef} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit26@{bit26}} \index{bit26@{bit26}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit26}{bit26}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_af3f19ae67c1f900e23daf8deda4324ef} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit26} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit26} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00108}{108}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ace71c1313eb20f6157e354125e85b644}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit27@{bit27}} +\Hypertarget{unionuint64___bit_type_def_ace71c1313eb20f6157e354125e85b644}\label{unionuint64___bit_type_def_ace71c1313eb20f6157e354125e85b644} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit27@{bit27}} \index{bit27@{bit27}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit27}{bit27}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ace71c1313eb20f6157e354125e85b644} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit27} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit27} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00108}{108}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a6691a7d235dedb6f8f2a3a285a987c0b}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit28@{bit28}} +\Hypertarget{unionuint64___bit_type_def_a6691a7d235dedb6f8f2a3a285a987c0b}\label{unionuint64___bit_type_def_a6691a7d235dedb6f8f2a3a285a987c0b} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit28@{bit28}} \index{bit28@{bit28}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit28}{bit28}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a6691a7d235dedb6f8f2a3a285a987c0b} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit28} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit28} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00109}{109}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a28b75958e1c0d1132e45c08a911b1c4b}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit29@{bit29}} +\Hypertarget{unionuint64___bit_type_def_a28b75958e1c0d1132e45c08a911b1c4b}\label{unionuint64___bit_type_def_a28b75958e1c0d1132e45c08a911b1c4b} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit29@{bit29}} \index{bit29@{bit29}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit29}{bit29}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a28b75958e1c0d1132e45c08a911b1c4b} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit29} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit29} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00109}{109}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a120ee09962960ef1c39d1710070a927a}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit30@{bit30}} +\Hypertarget{unionuint64___bit_type_def_a120ee09962960ef1c39d1710070a927a}\label{unionuint64___bit_type_def_a120ee09962960ef1c39d1710070a927a} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit30@{bit30}} \index{bit30@{bit30}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit30}{bit30}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a120ee09962960ef1c39d1710070a927a} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit30} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit30} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00109}{109}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a7daaf6b99ddcead17e00cad39d58c0ba}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit31@{bit31}} +\Hypertarget{unionuint64___bit_type_def_a7daaf6b99ddcead17e00cad39d58c0ba}\label{unionuint64___bit_type_def_a7daaf6b99ddcead17e00cad39d58c0ba} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit31@{bit31}} \index{bit31@{bit31}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit31}{bit31}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a7daaf6b99ddcead17e00cad39d58c0ba} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit31} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit31} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00109}{109}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a8c273132d8a04ec96ef2b81c4acdab40}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit32@{bit32}} +\Hypertarget{unionuint64___bit_type_def_a8c273132d8a04ec96ef2b81c4acdab40}\label{unionuint64___bit_type_def_a8c273132d8a04ec96ef2b81c4acdab40} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit32@{bit32}} \index{bit32@{bit32}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit32}{bit32}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a8c273132d8a04ec96ef2b81c4acdab40} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit32} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit32} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00110}{110}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a37884146acb266d93a1046cbb32e0754}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit33@{bit33}} +\Hypertarget{unionuint64___bit_type_def_a37884146acb266d93a1046cbb32e0754}\label{unionuint64___bit_type_def_a37884146acb266d93a1046cbb32e0754} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit33@{bit33}} \index{bit33@{bit33}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit33}{bit33}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a37884146acb266d93a1046cbb32e0754} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit33} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit33} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00110}{110}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a317a774edf3fc9f8c5f0bab49ac7e3ea}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit34@{bit34}} +\Hypertarget{unionuint64___bit_type_def_a317a774edf3fc9f8c5f0bab49ac7e3ea}\label{unionuint64___bit_type_def_a317a774edf3fc9f8c5f0bab49ac7e3ea} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit34@{bit34}} \index{bit34@{bit34}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit34}{bit34}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a317a774edf3fc9f8c5f0bab49ac7e3ea} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit34} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit34} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00110}{110}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ad07bade9d4ce904b8822dbf507c7c695}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit35@{bit35}} +\Hypertarget{unionuint64___bit_type_def_ad07bade9d4ce904b8822dbf507c7c695}\label{unionuint64___bit_type_def_ad07bade9d4ce904b8822dbf507c7c695} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit35@{bit35}} \index{bit35@{bit35}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit35}{bit35}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ad07bade9d4ce904b8822dbf507c7c695} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit35} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit35} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00110}{110}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a14afca8c10e4abcbaf4740e308b8791a}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit36@{bit36}} +\Hypertarget{unionuint64___bit_type_def_a14afca8c10e4abcbaf4740e308b8791a}\label{unionuint64___bit_type_def_a14afca8c10e4abcbaf4740e308b8791a} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit36@{bit36}} \index{bit36@{bit36}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit36}{bit36}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a14afca8c10e4abcbaf4740e308b8791a} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit36} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit36} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00111}{111}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a8796b96d250307eaefb78eeea59e30ed}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit37@{bit37}} +\Hypertarget{unionuint64___bit_type_def_a8796b96d250307eaefb78eeea59e30ed}\label{unionuint64___bit_type_def_a8796b96d250307eaefb78eeea59e30ed} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit37@{bit37}} \index{bit37@{bit37}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit37}{bit37}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a8796b96d250307eaefb78eeea59e30ed} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit37} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit37} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00111}{111}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a297a35fbb4c94c193f578ac20522b589}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit38@{bit38}} +\Hypertarget{unionuint64___bit_type_def_a297a35fbb4c94c193f578ac20522b589}\label{unionuint64___bit_type_def_a297a35fbb4c94c193f578ac20522b589} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit38@{bit38}} \index{bit38@{bit38}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit38}{bit38}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a297a35fbb4c94c193f578ac20522b589} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit38} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit38} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00111}{111}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a2d85e07f1127e67e02a3fb9b17cec87f}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit39@{bit39}} +\Hypertarget{unionuint64___bit_type_def_a2d85e07f1127e67e02a3fb9b17cec87f}\label{unionuint64___bit_type_def_a2d85e07f1127e67e02a3fb9b17cec87f} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit39@{bit39}} \index{bit39@{bit39}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit39}{bit39}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a2d85e07f1127e67e02a3fb9b17cec87f} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit39} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit39} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00111}{111}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a094fd073860f380f8d1881ae313864a2}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit40@{bit40}} +\Hypertarget{unionuint64___bit_type_def_a094fd073860f380f8d1881ae313864a2}\label{unionuint64___bit_type_def_a094fd073860f380f8d1881ae313864a2} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit40@{bit40}} \index{bit40@{bit40}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit40}{bit40}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a094fd073860f380f8d1881ae313864a2} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit40} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit40} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00112}{112}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a72f0b4f624bef10dc2deb8661fb7da4b}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit41@{bit41}} +\Hypertarget{unionuint64___bit_type_def_a72f0b4f624bef10dc2deb8661fb7da4b}\label{unionuint64___bit_type_def_a72f0b4f624bef10dc2deb8661fb7da4b} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit41@{bit41}} \index{bit41@{bit41}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit41}{bit41}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a72f0b4f624bef10dc2deb8661fb7da4b} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit41} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit41} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00112}{112}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ab70b7c38e6cc4d117e5b21e63718eed9}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit42@{bit42}} +\Hypertarget{unionuint64___bit_type_def_ab70b7c38e6cc4d117e5b21e63718eed9}\label{unionuint64___bit_type_def_ab70b7c38e6cc4d117e5b21e63718eed9} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit42@{bit42}} \index{bit42@{bit42}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit42}{bit42}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ab70b7c38e6cc4d117e5b21e63718eed9} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit42} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit42} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00112}{112}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ac33764c0c04dd15ec3643343ebbf2437}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit43@{bit43}} +\Hypertarget{unionuint64___bit_type_def_ac33764c0c04dd15ec3643343ebbf2437}\label{unionuint64___bit_type_def_ac33764c0c04dd15ec3643343ebbf2437} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit43@{bit43}} \index{bit43@{bit43}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit43}{bit43}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ac33764c0c04dd15ec3643343ebbf2437} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit43} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit43} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00112}{112}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a1d3c44deb4caaf002d77c50dbc0a03e2}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit44@{bit44}} +\Hypertarget{unionuint64___bit_type_def_a1d3c44deb4caaf002d77c50dbc0a03e2}\label{unionuint64___bit_type_def_a1d3c44deb4caaf002d77c50dbc0a03e2} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit44@{bit44}} \index{bit44@{bit44}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit44}{bit44}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a1d3c44deb4caaf002d77c50dbc0a03e2} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit44} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit44} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00113}{113}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ad00ed97ae560ea4db6b8ee15b1c8ab7d}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit45@{bit45}} +\Hypertarget{unionuint64___bit_type_def_ad00ed97ae560ea4db6b8ee15b1c8ab7d}\label{unionuint64___bit_type_def_ad00ed97ae560ea4db6b8ee15b1c8ab7d} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit45@{bit45}} \index{bit45@{bit45}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit45}{bit45}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ad00ed97ae560ea4db6b8ee15b1c8ab7d} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit45} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit45} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00113}{113}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_adcfbd33fd8d3e555093f10d12e4e30bd}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit46@{bit46}} +\Hypertarget{unionuint64___bit_type_def_adcfbd33fd8d3e555093f10d12e4e30bd}\label{unionuint64___bit_type_def_adcfbd33fd8d3e555093f10d12e4e30bd} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit46@{bit46}} \index{bit46@{bit46}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit46}{bit46}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_adcfbd33fd8d3e555093f10d12e4e30bd} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit46} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit46} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00113}{113}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a31c74e216efa115cf210a28543250092}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit47@{bit47}} +\Hypertarget{unionuint64___bit_type_def_a31c74e216efa115cf210a28543250092}\label{unionuint64___bit_type_def_a31c74e216efa115cf210a28543250092} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit47@{bit47}} \index{bit47@{bit47}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit47}{bit47}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a31c74e216efa115cf210a28543250092} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit47} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit47} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00113}{113}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a5785ec5ef50cea4f9893e3b36687d8c3}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit48@{bit48}} +\Hypertarget{unionuint64___bit_type_def_a5785ec5ef50cea4f9893e3b36687d8c3}\label{unionuint64___bit_type_def_a5785ec5ef50cea4f9893e3b36687d8c3} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit48@{bit48}} \index{bit48@{bit48}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit48}{bit48}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a5785ec5ef50cea4f9893e3b36687d8c3} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit48} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit48} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00114}{114}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a7a73d551df00a67ffa9d9ce9ae5a66b2}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit49@{bit49}} +\Hypertarget{unionuint64___bit_type_def_a7a73d551df00a67ffa9d9ce9ae5a66b2}\label{unionuint64___bit_type_def_a7a73d551df00a67ffa9d9ce9ae5a66b2} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit49@{bit49}} \index{bit49@{bit49}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit49}{bit49}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a7a73d551df00a67ffa9d9ce9ae5a66b2} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit49} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit49} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00114}{114}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a38c4154dde7a42789a799283565ea259}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit50@{bit50}} +\Hypertarget{unionuint64___bit_type_def_a38c4154dde7a42789a799283565ea259}\label{unionuint64___bit_type_def_a38c4154dde7a42789a799283565ea259} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit50@{bit50}} \index{bit50@{bit50}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit50}{bit50}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a38c4154dde7a42789a799283565ea259} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit50} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit50} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00114}{114}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_aea9978fdeedb0b8653633e5c5ceda200}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit51@{bit51}} +\Hypertarget{unionuint64___bit_type_def_aea9978fdeedb0b8653633e5c5ceda200}\label{unionuint64___bit_type_def_aea9978fdeedb0b8653633e5c5ceda200} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit51@{bit51}} \index{bit51@{bit51}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit51}{bit51}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_aea9978fdeedb0b8653633e5c5ceda200} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit51} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit51} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00114}{114}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a4cef515450f79794b217673872204e74}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit52@{bit52}} +\Hypertarget{unionuint64___bit_type_def_a4cef515450f79794b217673872204e74}\label{unionuint64___bit_type_def_a4cef515450f79794b217673872204e74} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit52@{bit52}} \index{bit52@{bit52}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit52}{bit52}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a4cef515450f79794b217673872204e74} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit52} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit52} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00115}{115}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_af6b445f558b5c1e6ea2f47b7fb8d82ba}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit53@{bit53}} +\Hypertarget{unionuint64___bit_type_def_af6b445f558b5c1e6ea2f47b7fb8d82ba}\label{unionuint64___bit_type_def_af6b445f558b5c1e6ea2f47b7fb8d82ba} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit53@{bit53}} \index{bit53@{bit53}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit53}{bit53}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_af6b445f558b5c1e6ea2f47b7fb8d82ba} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit53} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit53} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00115}{115}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ae133f0a428da163fe266a4ef11f7b772}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit54@{bit54}} +\Hypertarget{unionuint64___bit_type_def_ae133f0a428da163fe266a4ef11f7b772}\label{unionuint64___bit_type_def_ae133f0a428da163fe266a4ef11f7b772} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit54@{bit54}} \index{bit54@{bit54}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit54}{bit54}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ae133f0a428da163fe266a4ef11f7b772} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit54} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit54} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00115}{115}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a7cac784c45e82916a2dc3d98728e6d51}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit55@{bit55}} +\Hypertarget{unionuint64___bit_type_def_a7cac784c45e82916a2dc3d98728e6d51}\label{unionuint64___bit_type_def_a7cac784c45e82916a2dc3d98728e6d51} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit55@{bit55}} \index{bit55@{bit55}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit55}{bit55}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a7cac784c45e82916a2dc3d98728e6d51} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit55} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit55} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00115}{115}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a0b592c9e73b61ee134b894e4c57baaa1}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit56@{bit56}} +\Hypertarget{unionuint64___bit_type_def_a0b592c9e73b61ee134b894e4c57baaa1}\label{unionuint64___bit_type_def_a0b592c9e73b61ee134b894e4c57baaa1} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit56@{bit56}} \index{bit56@{bit56}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit56}{bit56}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a0b592c9e73b61ee134b894e4c57baaa1} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit56} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit56} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00116}{116}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a7fad0ef8a3759fb94623f797dc0a28cd}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit57@{bit57}} +\Hypertarget{unionuint64___bit_type_def_a7fad0ef8a3759fb94623f797dc0a28cd}\label{unionuint64___bit_type_def_a7fad0ef8a3759fb94623f797dc0a28cd} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit57@{bit57}} \index{bit57@{bit57}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit57}{bit57}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a7fad0ef8a3759fb94623f797dc0a28cd} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit57} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit57} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00116}{116}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_adf6d53faede2611a9cfd87c96887f785}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit58@{bit58}} +\Hypertarget{unionuint64___bit_type_def_adf6d53faede2611a9cfd87c96887f785}\label{unionuint64___bit_type_def_adf6d53faede2611a9cfd87c96887f785} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit58@{bit58}} \index{bit58@{bit58}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit58}{bit58}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_adf6d53faede2611a9cfd87c96887f785} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit58} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit58} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00116}{116}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_aed5c6e4bf5e5d5062d4619165f53e21e}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit59@{bit59}} +\Hypertarget{unionuint64___bit_type_def_aed5c6e4bf5e5d5062d4619165f53e21e}\label{unionuint64___bit_type_def_aed5c6e4bf5e5d5062d4619165f53e21e} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit59@{bit59}} \index{bit59@{bit59}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit59}{bit59}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_aed5c6e4bf5e5d5062d4619165f53e21e} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit59} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit59} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00116}{116}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ac32cd60facac9c1ab19d47c29324525e}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit60@{bit60}} +\Hypertarget{unionuint64___bit_type_def_ac32cd60facac9c1ab19d47c29324525e}\label{unionuint64___bit_type_def_ac32cd60facac9c1ab19d47c29324525e} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit60@{bit60}} \index{bit60@{bit60}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit60}{bit60}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ac32cd60facac9c1ab19d47c29324525e} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit60} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit60} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00117}{117}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ace649ce26ab7885f2d988d9842c72466}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit61@{bit61}} +\Hypertarget{unionuint64___bit_type_def_ace649ce26ab7885f2d988d9842c72466}\label{unionuint64___bit_type_def_ace649ce26ab7885f2d988d9842c72466} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit61@{bit61}} \index{bit61@{bit61}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit61}{bit61}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ace649ce26ab7885f2d988d9842c72466} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit61} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit61} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00117}{117}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_a95f5a66dae374905c9e4c6779451c96e}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit62@{bit62}} +\Hypertarget{unionuint64___bit_type_def_a95f5a66dae374905c9e4c6779451c96e}\label{unionuint64___bit_type_def_a95f5a66dae374905c9e4c6779451c96e} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit62@{bit62}} \index{bit62@{bit62}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit62}{bit62}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_a95f5a66dae374905c9e4c6779451c96e} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit62} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit62} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00117}{117}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint64___bit_type_def_ad61034647ebdb14089dbcb9cc9cd0f51}\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit63@{bit63}} +\Hypertarget{unionuint64___bit_type_def_ad61034647ebdb14089dbcb9cc9cd0f51}\label{unionuint64___bit_type_def_ad61034647ebdb14089dbcb9cc9cd0f51} +\index{uint64\_BitTypeDef@{uint64\_BitTypeDef}!bit63@{bit63}} \index{bit63@{bit63}!uint64\_BitTypeDef@{uint64\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit63}{bit63}} -{\footnotesize\ttfamily \label{unionuint64___bit_type_def_ad61034647ebdb14089dbcb9cc9cd0f51} -unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit63} +{\footnotesize\ttfamily unsigned uint64\+\_\+\+Bit\+Type\+Def\+::bit63} @@ -742,4 +740,4 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00117}{117}} of file The documentation for this union was generated from the following file\+:\begin{DoxyCompactItemize} \item -E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}}\end{DoxyCompactItemize} diff --git a/Doc/latex/unionuint8___bit_type_def.tex b/Doc/latex/unionuint8___bit_type_def.tex index d369e58..34f9424 100644 --- a/Doc/latex/unionuint8___bit_type_def.tex +++ b/Doc/latex/unionuint8___bit_type_def.tex @@ -5,7 +5,7 @@ \item uint8\+\_\+t \mbox{\hyperlink{unionuint8___bit_type_def_aacf75bef7d0b9ed458e03a4278f5fe88}{all}} \item -\Hypertarget{unionuint8___bit_type_def_aebe07b71261a8c24d23c63637d506f91}\label{unionuint8___bit_type_def_aebe07b71261a8c24d23c63637d506f91} +\Hypertarget{unionuint8___bit_type_def_a06339e6cbac8350c26b153d573e9c1df}\label{unionuint8___bit_type_def_a06339e6cbac8350c26b153d573e9c1df} \begin{tabbing} xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill struct \{\\ @@ -29,94 +29,92 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00039}{39}} of file \ -\label{doc-variable-members} -\Hypertarget{unionuint8___bit_type_def_doc-variable-members} \doxysubsection{Member Data Documentation} -\Hypertarget{unionuint8___bit_type_def_aacf75bef7d0b9ed458e03a4278f5fe88}\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!all@{all}} +\Hypertarget{unionuint8___bit_type_def_aacf75bef7d0b9ed458e03a4278f5fe88}\label{unionuint8___bit_type_def_aacf75bef7d0b9ed458e03a4278f5fe88} +\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!all@{all}} \index{all@{all}!uint8\_BitTypeDef@{uint8\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{all}{all}} -{\footnotesize\ttfamily \label{unionuint8___bit_type_def_aacf75bef7d0b9ed458e03a4278f5fe88} -uint8\+\_\+t uint8\+\_\+\+Bit\+Type\+Def\+::all} +{\footnotesize\ttfamily uint8\+\_\+t uint8\+\_\+\+Bit\+Type\+Def\+::all} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00041}{41}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint8___bit_type_def_a3748bf8d6ebfdce0895b1f4e704746d9}\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit0@{bit0}} +\Hypertarget{unionuint8___bit_type_def_a3748bf8d6ebfdce0895b1f4e704746d9}\label{unionuint8___bit_type_def_a3748bf8d6ebfdce0895b1f4e704746d9} +\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit0@{bit0}} \index{bit0@{bit0}!uint8\_BitTypeDef@{uint8\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit0}{bit0}} -{\footnotesize\ttfamily \label{unionuint8___bit_type_def_a3748bf8d6ebfdce0895b1f4e704746d9} -unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit0} +{\footnotesize\ttfamily unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit0} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00044}{44}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint8___bit_type_def_a8794ff2357a3b7d52e7afa3b5a7de99a}\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit1@{bit1}} +\Hypertarget{unionuint8___bit_type_def_a8794ff2357a3b7d52e7afa3b5a7de99a}\label{unionuint8___bit_type_def_a8794ff2357a3b7d52e7afa3b5a7de99a} +\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit1@{bit1}} \index{bit1@{bit1}!uint8\_BitTypeDef@{uint8\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit1}{bit1}} -{\footnotesize\ttfamily \label{unionuint8___bit_type_def_a8794ff2357a3b7d52e7afa3b5a7de99a} -unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit1} +{\footnotesize\ttfamily unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit1} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00045}{45}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint8___bit_type_def_a892712177c44aabdc16d3241dfc99db9}\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit2@{bit2}} +\Hypertarget{unionuint8___bit_type_def_a892712177c44aabdc16d3241dfc99db9}\label{unionuint8___bit_type_def_a892712177c44aabdc16d3241dfc99db9} +\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit2@{bit2}} \index{bit2@{bit2}!uint8\_BitTypeDef@{uint8\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit2}{bit2}} -{\footnotesize\ttfamily \label{unionuint8___bit_type_def_a892712177c44aabdc16d3241dfc99db9} -unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit2} +{\footnotesize\ttfamily unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit2} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00046}{46}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint8___bit_type_def_a3c83a9aa064121feff3b6cb97c1dc543}\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit3@{bit3}} +\Hypertarget{unionuint8___bit_type_def_a3c83a9aa064121feff3b6cb97c1dc543}\label{unionuint8___bit_type_def_a3c83a9aa064121feff3b6cb97c1dc543} +\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit3@{bit3}} \index{bit3@{bit3}!uint8\_BitTypeDef@{uint8\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit3}{bit3}} -{\footnotesize\ttfamily \label{unionuint8___bit_type_def_a3c83a9aa064121feff3b6cb97c1dc543} -unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit3} +{\footnotesize\ttfamily unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit3} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00047}{47}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint8___bit_type_def_af5a2b4b6c4e408d985671b2543eee037}\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit4@{bit4}} +\Hypertarget{unionuint8___bit_type_def_af5a2b4b6c4e408d985671b2543eee037}\label{unionuint8___bit_type_def_af5a2b4b6c4e408d985671b2543eee037} +\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit4@{bit4}} \index{bit4@{bit4}!uint8\_BitTypeDef@{uint8\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit4}{bit4}} -{\footnotesize\ttfamily \label{unionuint8___bit_type_def_af5a2b4b6c4e408d985671b2543eee037} -unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit4} +{\footnotesize\ttfamily unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit4} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00048}{48}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint8___bit_type_def_abbbf81339876997dded91b86237eba01}\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit5@{bit5}} +\Hypertarget{unionuint8___bit_type_def_abbbf81339876997dded91b86237eba01}\label{unionuint8___bit_type_def_abbbf81339876997dded91b86237eba01} +\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit5@{bit5}} \index{bit5@{bit5}!uint8\_BitTypeDef@{uint8\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit5}{bit5}} -{\footnotesize\ttfamily \label{unionuint8___bit_type_def_abbbf81339876997dded91b86237eba01} -unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit5} +{\footnotesize\ttfamily unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit5} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00049}{49}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint8___bit_type_def_afba4a1642a44bd86c9535a32ccf54004}\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit6@{bit6}} +\Hypertarget{unionuint8___bit_type_def_afba4a1642a44bd86c9535a32ccf54004}\label{unionuint8___bit_type_def_afba4a1642a44bd86c9535a32ccf54004} +\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit6@{bit6}} \index{bit6@{bit6}!uint8\_BitTypeDef@{uint8\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit6}{bit6}} -{\footnotesize\ttfamily \label{unionuint8___bit_type_def_afba4a1642a44bd86c9535a32ccf54004} -unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit6} +{\footnotesize\ttfamily unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit6} Definition at line \mbox{\hyperlink{bit__access_8h_source_l00050}{50}} of file \mbox{\hyperlink{bit__access_8h_source}{bit\+\_\+access.\+h}}. -\Hypertarget{unionuint8___bit_type_def_ad1ca71ae4b18042a6c305cd84b749810}\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit7@{bit7}} +\Hypertarget{unionuint8___bit_type_def_ad1ca71ae4b18042a6c305cd84b749810}\label{unionuint8___bit_type_def_ad1ca71ae4b18042a6c305cd84b749810} +\index{uint8\_BitTypeDef@{uint8\_BitTypeDef}!bit7@{bit7}} \index{bit7@{bit7}!uint8\_BitTypeDef@{uint8\_BitTypeDef}} \doxysubsubsection{\texorpdfstring{bit7}{bit7}} -{\footnotesize\ttfamily \label{unionuint8___bit_type_def_ad1ca71ae4b18042a6c305cd84b749810} -unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit7} +{\footnotesize\ttfamily unsigned uint8\+\_\+\+Bit\+Type\+Def\+::bit7} @@ -126,4 +124,4 @@ Definition at line \mbox{\hyperlink{bit__access_8h_source_l00051}{51}} of file \ The documentation for this union was generated from the following file\+:\begin{DoxyCompactItemize} \item -E\+:/.\+WORK/\+STM32/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}}\end{DoxyCompactItemize} +F\+:/\+Work/\+Projects/\+STM/.\+Elementary/\+STM32\+\_\+\+Extended\+Libs/\+My\+Libs\+General/\+Inc/\mbox{\hyperlink{bit__access_8h}{bit\+\_\+access.\+h}}\end{DoxyCompactItemize} diff --git a/MyLibsGeneral/Inc/evolve_optimizer.h b/MyLibsGeneral/Inc/evolve_optimizer.h index 0a63941..7d4de0f 100644 --- a/MyLibsGeneral/Inc/evolve_optimizer.h +++ b/MyLibsGeneral/Inc/evolve_optimizer.h @@ -20,7 +20,9 @@ заглушки, никак не влияющие на параметры и остальную программу - @ref EVOLVE_MAX_PARAMS - Максимальное количество параметров - @ref EVOLVE_MAX_CANDIDATES - Максимальное количество кандидатов для обучения - +- (опционально) @ref EVOLVE_MUTATION_MIN_PCT - Минимальная мутация в процентах от Loss (по умолчанию 10%) +- (опционально) @ref EVOLVE_MUTATION_MAX_PCT - Максимальная мутация в процентах от Loss (по умолчанию 100%) +- (опционально) @ref ELOVLE_N_ELITE_CANDIDATE - Количество кандидатов, которые проходят в поколение без изменений @par Пример использования: @code @@ -28,8 +30,8 @@ #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]; +#define MUTATION 0.1f +float params[N_PARAMS]; EvolveOptimizer_t optimizer; // Формирование параметров @@ -37,23 +39,23 @@ 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); +params[0] = PARAM_SCALE(param_u16, 0.0f, 1000.0f); +params[1] = PARAM_SCALE(param_f, 0.001f, 0.1f); +params[2] = PARAM_SCALE(param_u8, 10.0f, 100.0f); +params[3] = PARAM_SCALE(param_i16, 500.0f, 5000.0f); // Инициалиазция -EvolveOptimizer_Init(&optimizer, N_PARAMS, N_CANDIDATES, N_BEST, IQ_MUTATION, params); +EvolveOptimizer_Init(&optimizer, N_PARAMS, N_CANDIDATES, N_BEST, MUTATION, params); // Шаг эволюции -int32_t loss = calc_iq_loss(); // расчет эффективности параметров +float loss = calc_loss(); // расчет эффективности параметров (от 0 до 1) 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); +param_u16 = PARAM_UNSCALE(params[0], 0.0f, 1000.0f); +param_f = PARAM_UNSCALE(params[1], 0.001f, 0.1f); +param_u8 = PARAM_UNSCALE(params[2], 10.0f, 100.0f); +param_i16 = PARAM_UNSCALE(params[3], 500.0f, 5000.0f); @endcode * @{ *****************************************************************************/ @@ -66,33 +68,54 @@ param_i16 = PARAM_UNSCALE_Q16(params[3], 500, 5000); #ifdef ENABLE_EVOLVE_OPTIMIZATION /** - * @brief Линейное масштабирование x из диапазона [min_val, max_val] в Q16.16 [0, 65536) + * @brief Линейное масштабирование x из диапазона [min_val, max_val] в диапазон [0, 1) */ -#define PARAM_SCALE_Q16(x, min_val, max_val) \ -((int32_t)((((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val))) * 65536.0f)) +#define PARAM_SCALE(x, min_val, max_val) \ +(((float)(x) - (float)(min_val)) / ((float)(max_val) - (float)(min_val))) /** - * @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 Обратное линейное масштабирование значения из [0, 1) в диапазон [min_val, max_val] + */ +#define PARAM_UNSCALE(val, min_val, max_val) \ +(((float)(val)) * ((float)(max_val) - (float)(min_val)) + (float)(min_val)) #ifndef local_time #define local_time() HAL_GetTick() ///< Локальное время #endif + + +#ifndef EVOLVE_MUTATION_MIN_PCT +#define EVOLVE_MUTATION_MIN_PCT 10 ///< Минимальная мутация (в процентах от Loss) +#endif +#ifndef EVOLVE_MUTATION_MAX_PCT +#define EVOLVE_MUTATION_MAX_PCT 100 ///< Максимальная мутация (в процентах от Loss) +#endif +#ifndef ELOVLE_N_ELITE_CANDIDATE +#define ELOVLE_N_ELITE_CANDIDATE 2 ///< Количество кандидатов, которые проходят в поколение без изменений (по умолчанию 2) +#endif + + /** * @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]; ///< Индексы отсортированных кандидатов + float stability; ///< Коэффициент насколько стабильная популяция (0..1)(@ref n_cand) + + uint16_t n_params; ///< Количество параметров + uint16_t n_cand; ///< Количество кандидатов в популяции + uint16_t n_best; ///< Количество лучших, усредняемых + float mutation_amp; ///< Амплитуда мутации (0..1) + + uint16_t cand_index; ///< Индекс кандидата для обработки + uint16_t gen_index; ///< Индекс популяции + + //INTERNAL + float gen_mut; ///< Амплитуда мутации у текущей популяции + + float loss[EVOLVE_MAX_CANDIDATES]; ///< Loss для каждого кандидата + float candidates[EVOLVE_MAX_CANDIDATES][EVOLVE_MAX_PARAMS]; ///< Параметры кандидатов + uint16_t sorted_idx[EVOLVE_MAX_CANDIDATES]; ///< Индексы отсортированных кандидатов } EvolveOptimizer_t; @@ -100,11 +123,11 @@ typedef struct { /** * @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; @@ -124,8 +147,8 @@ static int cmp_idx(const void *a, const void *b) { * @param n_params Количество параметров в одном кандидате * @param n_cand Количество кандидатов * @param n_best Количество лучших, усредняемых - * @param iq_mutation Амплитуда мутации в Q16.16 - * @param start_params Начальные параметры (Q16.16) + * @param mutation_amp Амплитуда мутации (в диапазоне 0.0–1.0) + * @param start_params Начальные параметры (в диапазоне 0.0–1.0) * @return 0 — если окей, * -1 — если ошибка */ @@ -133,10 +156,10 @@ __STATIC_INLINE int 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) + float mutation_amp, + float* start_params) { - if((opt = NULL) || (start_params == NULL)) + if((opt == NULL) || (start_params == NULL)) return -1; if(n_params > EVOLVE_MAX_PARAMS) @@ -151,19 +174,34 @@ __STATIC_INLINE int EvolveOptimizer_Init(EvolveOptimizer_t* opt, return -1; opt->n_best = n_best; - if(iq_mutation > 32768) - return -1; - opt->iq_mutation = iq_mutation; + + if((mutation_amp > 1) || (mutation_amp < 0)) + return -1; + if(mutation_amp <= 0.001f) + mutation_amp = 0.001f; + opt->mutation_amp = mutation_amp; - 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 = local_time() + (ADC1->DR & 0xFF); + uint32_t seed = local_time(); +#ifdef ADC1 + seed += (ADC1->DR & 0xFF); +#endif srand(seed); + for (uint16_t i = 0; i < n_cand; i++) { + for (uint16_t j = 0; j < n_params; j++) { + // Добавляем случайную мутацию вокруг стартового параметра + float base = start_params[j]; + float inv_randmax = 1.0f / (float)RAND_MAX; + float noise = ((float)rand() * inv_randmax * 2.0f - 1.0f) * mutation_amp; + opt->candidates[i][j] = base + noise; + if (opt->candidates[i][j] < 0.0f) opt->candidates[i][j] = 0.0f; + if (opt->candidates[i][j] > 1.0f) opt->candidates[i][j] = 1.0f; + } + opt->loss[i] = 0.0f; + } + + opt->cand_index = 0; + opt->gen_index = 0; return 0; } @@ -172,7 +210,7 @@ __STATIC_INLINE int EvolveOptimizer_Init(EvolveOptimizer_t* opt, * @brief Один шаг эволюционного оптимизатора. * @param opt Указатель на структуру оптимизатора * @param params Массив параметров, которые будут обновлены (на выходе — новые параметры) - * @param loss Loss текущего кандидата (Q16.16) + * @param loss Loss текущего кандидата * @return 0 — если окей, * -1 — если ошибка * @details @@ -185,10 +223,10 @@ __STATIC_INLINE int EvolveOptimizer_Init(EvolveOptimizer_t* opt, * Надо убедится что только один экземпляр функции запущен в момент времени */ __STATIC_INLINE int EvolveOptimizer_Step(EvolveOptimizer_t* opt, - int32_t* params, - int32_t loss) + float* params, + float loss) { - if((opt = NULL) || (params == NULL)) + if((opt == NULL) || (params == NULL)) return -1; uint16_t n_params = opt->n_params; @@ -201,11 +239,11 @@ __STATIC_INLINE int EvolveOptimizer_Step(EvolveOptimizer_t* opt, uint16_t n_best = opt->n_best; if(n_best > EVOLVE_MAX_CANDIDATES/2) - return -1; + return -1; - uint16_t mut = opt->iq_mutation; - if(mut > 32768) - return -1; + float mut = opt->mutation_amp; + if((mut > 1) ||(mut < 0)) + return -1; // 1. Сохраняем loss текущего кандидата opt->loss[opt->cand_index] = loss; @@ -219,42 +257,56 @@ __STATIC_INLINE int EvolveOptimizer_Step(EvolveOptimizer_t* opt, 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; -// } -// } -// } -// } + // --- Адаптивная мутация в зависимости от Loss --- + float best_loss = opt->loss[opt->sorted_idx[0]]; + float worst_loss = opt->loss[opt->sorted_idx[opt->n_cand - 1]]; + float diff = worst_loss - best_loss; - // 3. Генерируем новое поколение: каждый кандидат берется случайно из лучших с мутацией - uint16_t n_elite = 2; // количество элитных кандидатов, которые сохраняем без изменений + float sum_loss = 0.0f; + for (uint16_t i = 0; i < n_cand; i++) + sum_loss += opt->loss[i]; + float avg_loss = sum_loss / (float)n_cand; + + + float loss_ratio = (diff > 0.0f) ? ((avg_loss - best_loss) / diff) : 0.5f; + if (loss_ratio < 0.0f) loss_ratio = 0.0f; + if (loss_ratio > 1.0f) loss_ratio = 1.0f; + + // Записываем стабильность популяции в структуру + if(diff < 0.0f) diff = 0.0f; + if(diff > 1.0f) diff = 1.0f; + opt->stability = (1.0f - worst_loss) * (1.0f - (worst_loss - best_loss)); + if(opt->stability < 0.0f) opt->stability = 0.0f; + if(opt->stability > 1.0f) opt->stability = 1.0f; + + float mut_pct = EVOLVE_MUTATION_MIN_PCT + + (EVOLVE_MUTATION_MAX_PCT - EVOLVE_MUTATION_MIN_PCT) * loss_ratio; + float adaptive_mut = mut * (mut_pct / 100.0f); + if (adaptive_mut < 0.0001f) adaptive_mut = 0.0001f; + opt->gen_mut = adaptive_mut; + + // 3. Генерируем новое поколение + uint16_t n_elite = ELOVLE_N_ELITE_CANDIDATE; 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; + for (uint16_t i = 0; i < n_params; i++) + opt->candidates[c][i] = opt->candidates[opt->sorted_idx[c]][i]; + opt->loss[c] = 0.0f; } 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]; // каждый параметр из случайного лучшего + float inv_randmax = 1.0f / (float)RAND_MAX; + float noise = ((float)rand() * inv_randmax * 2.0f - 1.0f) * adaptive_mut; + uint16_t parent = opt->sorted_idx[rand() % opt->n_best]; opt->candidates[c][i] = opt->candidates[parent][i] + noise; + if (opt->candidates[c][i] < 0.0f) opt->candidates[c][i] = 0.0f; + if (opt->candidates[c][i] > 1.0f) opt->candidates[c][i] = 1.0f; } - opt->loss[c] = 0; + opt->loss[c] = 0.0f; } } opt->cand_index = 0; + opt->gen_index++; } // 4. Возвращаем параметры следующего кандидата @@ -269,14 +321,14 @@ 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]; + float mutation_amp; + float loss[0]; + float candidates[0][0]; } EvolveOptimizer_t; -#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, iq_mutation, start_params) +#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, mutation_amp, 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) +#define PARAM_SCALE(x, min_val, max_val) (x) +#define PARAM_UNSCALE(val, min_val, max_val) (val) #endif // ENABLE_EVOLVE_OPTIMIZATION #endif // __EVOLVE_OPTIMIZER_H_