diff --git a/Doc/Documentation.lnk b/Doc/Documentation.lnk new file mode 100644 index 0000000..65f9ac3 Binary files /dev/null and b/Doc/Documentation.lnk differ diff --git a/Doc/Doxyfile b/Doc/Doxyfile index ac3b5d3..ba9121b 100644 --- a/Doc/Doxyfile +++ b/Doc/Doxyfile @@ -2619,7 +2619,7 @@ HIDE_UNDOC_RELATIONS = YES # set to NO # The default value is: NO. -HAVE_DOT = NO +HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations Doxygen is allowed # to run in parallel. When set to 0 Doxygen will base this on the number of diff --git a/Doc/html/____general__flash_8h_source.html b/Doc/html/____general__flash_8h_source.html index 8c2819b..463e16a 100644 --- a/Doc/html/____general__flash_8h_source.html +++ b/Doc/html/____general__flash_8h_source.html @@ -100,10 +100,10 @@ $(function(){initNavTree('____general__flash_8h_source.html','',''); });
__general_flash.h
-
1/*********************************UART**************************************
-
2Данный файл содержит объявления базовых функции и дефайны для инициализации
-
3UART.
-
4***************************************************************************/
+
1/**************************************************************************
+
2* @file general_flash.h
+
3* @brief Заголовочны файл модуля работы с FLASH.
+
4*************************************************************************/
5#ifndef __FLASH_GENERAL_H_
6#define __FLASH_GENERAL_H_
7
@@ -143,25 +143,7 @@ $(function(){initNavTree('____general__flash_8h_source.html','',''); });
41HAL_StatusTypeDef FLASH_Write_Word(uint32_t Address, uint32_t Data);
42///////////////////////////---FUNCTIONS---///////////////////////////
43
-
44#ifndef LED_PWM_TICKS
-
45#define LED_PWM_TICKS 15
-
46#endif
-
47
-
48#ifndef LED_ON
-
49#define LED_ON 1
-
50#endif
-
51#ifndef LED_OFF
-
52#define LED_OFF 0
-
53#endif
-
54
-
55#ifndef SW_ON
-
56#define SW_ON 1
-
57#endif
-
58#ifndef SW_OFF
-
59#define SW_OFF 0
-
60#endif
-
61
-
62#endif // __FLASH_GENERAL_H_
+
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 5121ef3..ad92bfa 100644 --- a/Doc/html/____general__spi_8c_source.html +++ b/Doc/html/____general__spi_8c_source.html @@ -101,22 +101,22 @@ $(function(){initNavTree('____general__spi_8c_source.html','',''); });
1/**
-
2 **************************************************************************
-
3 * @file general_spi.c
-
4 * @brief Модуль для инициализации SPI.
-
5 **************************************************************************
-
6 * //-------------------Функции-------------------//
-
7 * @verbatim
-
8 * Functions: users
-
9 * - SPI_Base_Init Инициализация SPI
-
10 *
-
11 * Functions: spi initialize
-
12 * - SPI_GPIO_Init Инициализация GPIO для SPI
-
13 * - SPI_DMA_Init Инициализация DMA для SPI
-
14 * - SPI_MspInit Аналог HAL_MspInit для SPI
-
15 * - SPI_MspDeInit Аналог HAL_MspDeInit для SPI
-
16 * @endverbatim
-
17 *************************************************************************/
+
2**************************************************************************
+
3* @file general_spi.c
+
4* @brief Модуль для инициализации SPI.
+
5**************************************************************************
+
6* @details
+
7*
+
8* Функции:
+
9* - SPI_Base_Init Инициализация SPI
+
10*
+
11* Functions: spi initialize
+
12* - SPI_GPIO_Init Инициализация GPIO для SPI
+
13* - SPI_DMA_Init Инициализация DMA для SPI
+
14* - SPI_MspInit Аналог HAL_MspInit для SPI
+
15* - SPI_MspDeInit Аналог HAL_MspDeInit для SPI
+
16*
+
17*************************************************************************/
18#include "general_spi.h"
19#include "general_gpio.h"
20
@@ -164,9 +164,9 @@ $(function(){initNavTree('____general__spi_8c_source.html','',''); });
62{
63 GPIO_InitTypeDef GPIO_InitStruct = {0};
64 // GPIO INIT
-
65 GPIO_Clock_Enable(sspi->CLK_GPIOx);
-
66 GPIO_Clock_Enable(sspi->MISO_GPIOx);
-
67 GPIO_Clock_Enable(sspi->MOSI_GPIOx);
+
65 GPIO_Clock_Enable(sspi->CLK_GPIOx);
+
66 GPIO_Clock_Enable(sspi->MISO_GPIOx);
+
67 GPIO_Clock_Enable(sspi->MOSI_GPIOx);
68 // CLK PIN INIT
69 GPIO_InitStruct.Pin = sspi->CLK_PIN;
70 GPIO_InitStruct.Alternate = sspi->CLK_GPIO_AlternageFunc;
@@ -392,9 +392,9 @@ $(function(){initNavTree('____general__spi_8c_source.html','',''); });
290
291 return HAL_OK;
292}
-
Заголовочный файл для модуля инициализации портов.
+
Заголовочный файл для модуля инициализации портов и работы с ними.
#define MyLibs_Error_Handler(params)
Error_Handler который будет вызыватся в библиотеке
Definition mylibs_defs.h:31
-
HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
Включить тактирование порта GPIO.
+
HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
Включить тактирование порта GPIO.
diff --git a/Doc/html/____general__spi_8h_source.html b/Doc/html/____general__spi_8h_source.html index da603d4..e83c1f2 100644 --- a/Doc/html/____general__spi_8h_source.html +++ b/Doc/html/____general__spi_8h_source.html @@ -101,10 +101,10 @@ $(function(){initNavTree('____general__spi_8h_source.html','',''); });
1/**
-
2 **************************************************************************
-
3 * @file general_spi.h
-
4 * @brief Заголовочны файл модуля инициализации SPI.
-
5 *************************************************************************/
+
2**************************************************************************
+
3* @file general_spi.h
+
4* @brief Заголовочны файл модуля инициализации SPI.
+
5*************************************************************************/
6#ifndef __SPI_GENERAL_H_
7#define __SPI_GENERAL_H_
8
diff --git a/Doc/html/____general__tim_8c_source.html b/Doc/html/____general__tim_8c_source.html deleted file mode 100644 index 89d95ce..0000000 --- a/Doc/html/____general__tim_8c_source.html +++ /dev/null @@ -1,777 +0,0 @@ - - - - - - - -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/__general_tim.c Source File - - - - - - - - - - - - - - - - - -
-
- - - - - - -
-
MyLibs 1.0 -
-
Расширенные библиотеки для STM32
-
-
- - - - - - - - -
-
- -
-
-
- -
-
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
__general_tim.c
-
-
-
1/**
-
2 **************************************************************************
-
3 * @file general_tim.c
-
4 * @brief Модуль для инициализации таймеров.
-
5 **************************************************************************
-
6 @verbatim
-
7 //-------------------Функции-------------------//
-
8 Functions: user init
-
9 - TIM_Base_Init Инициализация TIM
-
10 - TIM_Encoder_Init Инициализация режима энкодера
-
11 - TIM_Output_PWM_Init Инициализация PWM с выводом на GPIO
-
12 - TIM_OC_Comparator_Init Инициализация TIM как компаратора
-
13
-
14 Functions: user
-
15 - TIM_Delay Задержка с помощью TIM
-
16
-
17 Functions: tim initialize
-
18 - TIM_Base_MspInit Аналог HAL_MspInit для таймера
-
19 - TIM_Base_MspDeInit Аналог HAL_MspDeInit для таймера
-
20 @endverbatim
-
21 *************************************************************************/
-
22#include "general_tim.h"
-
23#include "general_gpio.h"
-
24
-
25//-------------------------------------------------------------------
-
26//-------------------------TIM INIT FUNCTIONS------------------------
-
27/**
-
28 * @brief Initialize TIM with TIM_SettingsTypeDef structure.
-
29 * @param stim - указатель на структуру с настройками таймера.
-
30 * @return HAL status.
-
31 * @note Данная структура содержит хендл таймера и структуры для его настройки.
-
32 */
-
33HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)
-
34{ // function takes structure for init
-
35 // check that htim is defined
-
36 if (stim->htim.Instance == NULL)
-
37 return HAL_ERROR;
-
38
-
39
-
40
-
41 if(stim->sTickBaseUS) // if tickbase isnt disable
-
42 {
-
43 if(stim->sTimAHBFreqMHz == NULL)
-
44 return HAL_ERROR;
-
45 stim->htim.Init.Prescaler = (stim->sTimAHBFreqMHz*stim->sTickBaseUS) - 1;
-
46
-
47 if ((stim->sTimFreqHz != NULL))
-
48 stim->htim.Init.Period = ((1000000/stim->sTickBaseUS) / stim->sTimFreqHz) - 1;
-
49 else if (stim->htim.Init.Period == NULL)
-
50 stim->htim.Init.Period = 0xFFFF;
-
51
-
52 if(stim->sTickBasePrescaler)
-
53 {
-
54 stim->htim.Init.Prescaler = (stim->htim.Init.Prescaler + 1)/stim->sTickBasePrescaler - 1;
-
55 stim->htim.Init.Period = (stim->htim.Init.Period + 1)*stim->sTickBasePrescaler - 1;
-
56 }
-
57 else
-
58 stim->sTickBasePrescaler = 1;
-
59 }
-
60
-
61 // fix overflow of presc and period if need
-
62 for(int i = 0; (stim->htim.Init.Prescaler > 0xFFFF) || (stim->htim.Init.Period > 0xFFFF); i++)
-
63 {
-
64 if (i>10) // if it isnt fixed after 10 itteration - return HAL_ERRPOR
-
65 {
-
66 return HAL_ERROR;
-
67 }
-
68
-
69 // if timbase is too big (prescaller too big for choosen base from MHZ)
-
70 if(stim->htim.Init.Prescaler > 0xFFFF)
-
71 {
-
72 // переносим часть пресскалера в период
-
73 stim->htim.Init.Prescaler = ((stim->htim.Init.Prescaler + 1)/2) - 1;
-
74 stim->htim.Init.Period = ((stim->htim.Init.Period + 1)*2) - 1;
-
75 // обновляем TickBase, если есть куда обновлять
-
76 if(stim->sTickBaseUS > 1)
-
77 stim->sTickBaseUS /= 2;
-
78 // обновляем sTickBasePrescaler, если sTickBaseUS - уже в минимуме
-
79 else if (stim->sTickBaseUS == 1)
-
80 stim->sTickBasePrescaler *= 2;
-
81 else // if TickBase = 0 - return error
-
82 return HAL_ERROR;
-
83 }
-
84 // if freq is too low (period too big for choosen base)
-
85 if(stim->htim.Init.Period > 0xFFFF)
-
86 {
-
87 // переносим часть периода в прескалер
-
88 stim->htim.Init.Period = ((stim->htim.Init.Period + 1)/2) - 1;
-
89 stim->htim.Init.Prescaler = ((stim->htim.Init.Prescaler + 1)*2) - 1;
-
90 // обновляем TickBase
-
91 stim->sTickBaseUS *= 2;
-
92 }
-
93 }
-
94
-
95 //-------------TIM BASE INIT----------------
-
96 // tim base init
-
97 TIM_Base_MspInit(&stim->htim, stim->sTimMode);
-
98 if (HAL_TIM_Base_Init(&stim->htim) != HAL_OK)
-
99 {
- -
101 return HAL_ERROR;
-
102 }
-
103
-
104 //-------------CLOCK SRC INIT---------------
-
105 // fill sClockSourceConfig if its NULL
-
106 if (stim->sClockSourceConfig.ClockSource == NULL)
-
107 stim->sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
-
108 // clock source init
-
109 if (HAL_TIM_ConfigClockSource(&stim->htim, &stim->sClockSourceConfig) != HAL_OK)
-
110 {
- -
112 return HAL_ERROR;
-
113 }
-
114
-
115 //--------------SLAVE INIT------------------
-
116 // if slave mode enables - config it
-
117 if (stim->sSlaveConfig.SlaveMode)
-
118 {
-
119 // slave mode init
-
120 if (HAL_TIM_SlaveConfigSynchro(&stim->htim, &stim->sSlaveConfig) != HAL_OK)
-
121 {
- -
123 return HAL_ERROR;
-
124 }
-
125 }
-
126 //--------------MASTER INIT-----------------
-
127 // master mode init
-
128 if (HAL_TIMEx_MasterConfigSynchronization(&stim->htim, &stim->sMasterConfig) != HAL_OK)
-
129 {
- -
131 return HAL_ERROR;
-
132 }
-
133
-
134 //--------------BDTR INIT-----------------
-
135 if (HAL_TIMEx_ConfigBreakDeadTime(&stim->htim, &stim->sBreakDeadTimeConfig) != HAL_OK)
-
136 {
- -
138 return HAL_ERROR;
-
139 }
-
140
-
141 //----------------IT CLEAR-------------------
-
142 __HAL_TIM_CLEAR_IT(&stim->htim, TIM_IT_UPDATE);
-
143
-
144
-
145 // обновляем TickBase
-
146 #ifdef UPDATE_TIM_PARAMS_AFTER_INITIALIZATION
-
147 stim->sTickBaseUS = (stim->htim.Instance->PSC+1)*stim->sTickBasePrescaler/(stim->sTimAHBFreqMHz);
-
148 if(stim->sTickBaseUS == 0) // if prescaler is too high
-
149 { // recalc what is prescaler irl
-
150 stim->sTickBaseUS = 1;
-
151 stim->sTickBasePrescaler = stim->sTimAHBFreqMHz/(stim->htim.Instance->PSC+1);
-
152 }
-
153 #endif
-
154 stim->htim.Instance->CNT = 0;
-
155 return HAL_OK;
-
156}
-
157
-
158
-
159
-
160/**
-
161 * @brief Initialize TIM Encoder functional.
-
162 * @param htim - указатель на хендл таймера.
-
163 * @param sConfigOC - указатель на настрйоки канала таймера.
-
164 * @param GPIOx - порт для приема енкодера.
-
165 * @param GPIO_PIN1 - первый пин для енкодера.
-
166 * @param GPIO_PIN2 - второй пин для енкодера.
-
167 * @param GPIO_PIN_SW - пин для кнопки енкодера.
-
168 * @return HAL status.
-
169 */
-
170HAL_StatusTypeDef TIM_Encoder_Init(TIM_EncoderTypeDef *henc, TIM_HandleTypeDef *htim)
-
171{
-
172 GPIO_InitTypeDef GPIO_InitStruct = {0};
-
173 HAL_StatusTypeDef RES = HAL_ERROR;
-
174 henc->htim = htim;
-
175
-
176 // setup channel for pwm
-
177 RES = HAL_TIM_Encoder_Init(henc->htim, &henc->sConfig);
-
178 if (RES != HAL_OK)
-
179 {
- -
181 return RES;
-
182 }
-
183 // choose port for enable clock
-
184 RES = GPIO_Clock_Enable(henc->GPIOx);
-
185 if(RES != HAL_OK)
-
186 {
- -
188 return RES;
-
189 }
-
190
-
191 GPIO_InitStruct.Pin = henc->GPIO_PIN_TI1|henc->GPIO_PIN_TI2;
-
192 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
-
193 GPIO_InitStruct.Pull = GPIO_PULLUP;
-
194 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
-
195 GPIO_InitStruct.Alternate = TIM_Alternate_Mapping(henc->htim->Instance);
-
196 if(GPIO_InitStruct.Alternate)
-
197 HAL_GPIO_Init(henc->GPIOx, &GPIO_InitStruct);
-
198
-
199 if(henc->GPIO_PIN_SW)
-
200 {
-
201 /*Configure switch pin */
-
202 GPIO_InitStruct.Pin = henc->GPIO_PIN_SW;
-
203 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
-
204 GPIO_InitStruct.Pull = GPIO_PULLUP;
-
205 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
-
206 }
-
207
-
208 return HAL_OK;
-
209}
-
210
-
211/**
-
212 * @brief Initialize PWM Channel and GPIO for output.
-
213 * @param htim - указатель на хендл таймера.
-
214 * @param sConfigOC - указатель на настрйоки канала таймера.
-
215 * @param TIM_CHANNEL - канал таймера для настройки.
-
216 * @param GPIOx - порт для вывода ШИМ.
-
217 * @param GPIO_PIN - пин для вывода ШИМ.
-
218 * @return HAL status.
-
219 */
-
220HAL_StatusTypeDef TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN)
-
221{
-
222 GPIO_InitTypeDef GPIO_InitStruct = {0};
-
223 HAL_StatusTypeDef RES = HAL_ERROR;
-
224
-
225 // setup channel for pwm
-
226 RES = HAL_TIM_PWM_ConfigChannel(htim, sConfigOC, TIM_CHANNEL);
-
227 if (RES != HAL_OK)
-
228 {
- -
230 return RES;
-
231 }
-
232 // choose port for enable clock
-
233 RES = GPIO_Clock_Enable(GPIOx);
-
234 if(RES != HAL_OK)
-
235 {
- -
237 return RES;
-
238 }
-
239
-
240 GPIO_InitStruct.Pin = GPIO_PIN;
-
241 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
-
242 if(sConfigOC->OCPolarity == TIM_OCNPOLARITY_HIGH)
-
243 GPIO_InitStruct.Pull = GPIO_PULLDOWN;
-
244 else
-
245 GPIO_InitStruct.Pull = GPIO_PULLUP;
-
246 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
-
247 GPIO_InitStruct.Alternate = TIM_Alternate_Mapping(htim->Instance);
-
248 if(GPIO_InitStruct.Alternate)
-
249 HAL_GPIO_Init(GPIOx, &GPIO_InitStruct);
-
250
-
251 return HAL_OK;
-
252}
-
253
-
254/**
-
255 * @brief Initialize OC Comparator.
-
256 * @param htim - указатель на хендл таймера.
-
257 * @param TIM_CHANNEL - канал таймера для настройки.
-
258 * @return HAL status.
-
259 */
-
260HAL_StatusTypeDef TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)
-
261{
-
262 TIM_OC_InitTypeDef sConfigOC = {0};
-
263 HAL_StatusTypeDef RES = HAL_ERROR;
-
264
-
265 sConfigOC.OCMode = TIM_OCMODE_ACTIVE;
-
266 sConfigOC.Pulse = 0;
-
267 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
-
268
-
269 RES = HAL_TIM_OC_ConfigChannel(htim, &sConfigOC, TIM_CHANNEL);
-
270 if (RES != HAL_OK)
-
271 {
- -
273 return RES;
-
274 }
-
275 return RES;
-
276}
-
277
-
278
-
279
-
280//-------------------------------------------------------------------
-
281//-------------------------TIM USER FUNCTIONS------------------------
-
282/**
-
283 * @brief Delay via TIM.
-
284 * @param htim - указатель на хендл таймера.
-
285 * @param delay - задержка в тиках таймера.
-
286 * @return HAL status.
-
287 * @note Таймер должен быть уже запущен.
-
288 */
-
289HAL_StatusTypeDef TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay)
-
290{
-
291 if(delay >= htim->Instance->ARR)
-
292 {
-
293 return HAL_ERROR;
-
294 }
-
295 htim->Instance->CNT = 0;
-
296 while(1)
-
297 {
-
298 if(htim->Instance->CNT > delay)
-
299 {
-
300 return HAL_OK;
-
301 }
-
302 }
-
303}
-
304
-
305/**
-
306 * @brief Start delay via TIM.
-
307 * @param htim - указатель на хендл таймера.
-
308 * @return HAL status.
-
309 * @note Таймер должен быть уже запущен.
-
310 */
-
311HAL_StatusTypeDef TIM_Delay_Start(TIM_HandleTypeDef *htim)
-
312{
-
313 htim->Instance->CNT = 0;
-
314
-
315 return HAL_OK;
-
316}
-
317
-
318/**
-
319 * @brief Wait Delay via TIM without blocking app.
-
320 * @param htim - указатель на хендл таймера.
-
321 * @param delay - задержка в тиках таймера.
-
322 * @return HAL status.
-
323 * @note Перед ожиданием задержки надо запутстить таймер её @ref TIM_Delay_Start
-
324 * @note Таймер не должен использоваться на время этой задержки
-
325 */
-
326HAL_StatusTypeDef TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay)
-
327{
-
328 if(delay >= htim->Instance->ARR)
-
329 {
-
330 return HAL_ERROR;
-
331 }
-
332
-
333 if(htim->Instance->CNT <= delay)
-
334 {
-
335 return HAL_BUSY;
-
336 }
-
337 else
-
338 {
-
339 return HAL_OK;
-
340 }
-
341}
-
342
-
343/**
-
344 * @brief Initialize TIMs clock and interrupt.
-
345 * @param htim - указатель на хендл таймера.
-
346 * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых таймеров,
-
347 дефайнами в general_tim.h определяются используемые таймеры.
-
348 */
-
349void TIM_Base_MspInit(TIM_HandleTypeDef* htim, TIM_ITModeTypeDef it_mode)
-
350{
-
351 it_mode = it_mode&TIM_IT_CONF;
-
352#ifdef USE_TIM1
-
353 if(htim->Instance==TIM1)
-
354 {
-
355 /* TIM2 clock enable */
-
356 __HAL_RCC_TIM1_CLK_ENABLE();
-
357
-
358 /* TIM2 interrupt Init */
-
359 if(it_mode)
-
360 {
-
361 HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);
-
362 HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);
-
363 }
-
364 }
-
365#endif
-
366#ifdef USE_TIM2
-
367 if(htim->Instance==TIM2)
-
368 {
-
369 /* TIM2 clock enable */
-
370 __HAL_RCC_TIM2_CLK_ENABLE();
-
371
-
372 /* TIM2 interrupt Init */
-
373 if(it_mode)
-
374 {
-
375 HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
-
376 HAL_NVIC_EnableIRQ(TIM2_IRQn);
-
377 }
-
378 }
-
379#endif
-
380#ifdef USE_TIM3
-
381 if(htim->Instance==TIM3)
-
382 {
-
383 /* TIM3 clock enable */
-
384 __HAL_RCC_TIM3_CLK_ENABLE();
-
385
-
386 /* TIM3 interrupt Init */
-
387 if(it_mode)
-
388 {
-
389 HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
-
390 HAL_NVIC_EnableIRQ(TIM3_IRQn);
-
391 }
-
392 }
-
393#endif
-
394#ifdef USE_TIM4
-
395 if(htim->Instance==TIM4)
-
396 {
-
397 /* TIM4 clock enable */
-
398 __HAL_RCC_TIM4_CLK_ENABLE();
-
399
-
400 /* TIM4 interrupt Init */
-
401 if(it_mode)
-
402 {
-
403 HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0);
-
404 HAL_NVIC_EnableIRQ(TIM4_IRQn);
-
405 }
-
406 }
-
407#endif
-
408#ifdef USE_TIM5
-
409 if(htim->Instance==TIM5)
-
410 {
-
411 /* TIM5 clock enable */
-
412 __HAL_RCC_TIM5_CLK_ENABLE();
-
413
-
414 /* TIM5 interrupt Init */
-
415 if(it_mode)
-
416 {
-
417 HAL_NVIC_SetPriority(TIM5_IRQn, 0, 0);
-
418 HAL_NVIC_EnableIRQ(TIM5_IRQn);
-
419 }
-
420 }
-
421#endif
-
422#ifdef USE_TIM6
-
423 if(htim->Instance==TIM6)
-
424 {
-
425 /* TIM6 clock enable */
-
426 __HAL_RCC_TIM6_CLK_ENABLE();
-
427
-
428 /* TIM6 interrupt Init */
-
429 if(it_mode)
-
430 {
-
431 HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);
-
432 HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
-
433 }
-
434 }
-
435#endif
-
436#ifdef USE_TIM7
-
437 if(htim->Instance==TIM7)
-
438 {
-
439 /* TIM7 clock enable */
-
440 __HAL_RCC_TIM7_CLK_ENABLE();
-
441
-
442 /* TIM7 interrupt Init */
-
443 if(it_mode)
-
444 {
-
445 HAL_NVIC_SetPriority(TIM7_IRQn, 0, 0);
-
446 HAL_NVIC_EnableIRQ(TIM7_IRQn);
-
447 }
-
448 }
-
449#endif
-
450#ifdef USE_TIM8
-
451 if(htim->Instance==TIM8)
-
452 {
-
453 /* TIM8 clock enable */
-
454 __HAL_RCC_TIM8_CLK_ENABLE();
-
455
-
456 /* TIM8 interrupt Init */
-
457 if(it_mode)
-
458 {
-
459 HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 0, 0);
-
460 HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);
-
461 }
-
462 }
-
463#endif
-
464#ifdef USE_TIM9
-
465 if(htim->Instance==TIM9)
-
466 {
-
467 /* TIM9 clock enable */
-
468 __HAL_RCC_TIM9_CLK_ENABLE();
-
469
-
470 /* TIM9 interrupt Init */
-
471 if(it_mode)
-
472 {
-
473 HAL_NVIC_SetPriority(TIM1_BRK_TIM9_IRQn, 0, 0);
-
474 HAL_NVIC_EnableIRQ(TIM1_BRK_TIM9_IRQn);
-
475 }
-
476 }
-
477#endif
-
478#ifdef USE_TIM10
-
479 if(htim->Instance==TIM10)
-
480 {
-
481 /* TIM10 clock enable */
-
482 __HAL_RCC_TIM10_CLK_ENABLE();
-
483
-
484 /* TIM10 interrupt Init */
-
485 if(it_mode)
-
486 {
-
487 HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);
-
488 HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);
-
489 }
-
490 }
-
491#endif
-
492#ifdef USE_TIM11
-
493 if(htim->Instance==TIM11)
-
494 {
-
495 /* TIM11 clock enable */
-
496 __HAL_RCC_TIM11_CLK_ENABLE();
-
497
-
498 /* TIM11 interrupt Init */
-
499 if(it_mode)
-
500 {
-
501 HAL_NVIC_SetPriority(TIM1_TRG_COM_TIM11_IRQn, 0, 0);
-
502 HAL_NVIC_EnableIRQ(TIM1_TRG_COM_TIM11_IRQn);
-
503 }
-
504 }
-
505#endif
-
506#ifdef USE_TIM12
-
507 if(htim->Instance==TIM12)
-
508 {
-
509 /* TIM12 clock enable */
-
510 __HAL_RCC_TIM12_CLK_ENABLE();
-
511
-
512 /* TIM12 interrupt Init */
-
513 if(it_mode)
-
514 {
-
515 HAL_NVIC_SetPriority(TIM8_BRK_TIM12_IRQn, 0, 0);
-
516 HAL_NVIC_EnableIRQ(TIM8_BRK_TIM12_IRQn);
-
517 }
-
518 }
-
519#endif
-
520#ifdef USE_TIM13
-
521 if(htim->Instance==TIM13)
-
522 {
-
523 /* TIM13 clock enable */
-
524 __HAL_RCC_TIM13_CLK_ENABLE();
-
525
-
526 /* TIM13 interrupt Init */
-
527 if(it_mode)
-
528 {
-
529 HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 0, 0);
-
530 HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);
-
531 }
-
532 }
-
533#endif
-
534#ifdef USE_TIM14
-
535 if(htim->Instance==TIM14)
-
536 {
-
537 /* TIM14 clock enable */
-
538 __HAL_RCC_TIM14_CLK_ENABLE();
-
539
-
540 /* TIM14 interrupt Init */
-
541 if(it_mode)
-
542 {
-
543 HAL_NVIC_SetPriority(TIM8_TRG_COM_TIM14_IRQn, 0, 0);
-
544 HAL_NVIC_EnableIRQ(TIM8_TRG_COM_TIM14_IRQn);
-
545 }
-
546 }
-
547#endif
-
548}
-
549/**
-
550 * @brief DeInitialize TIMs clock and interrupt.
-
551 * @param htim - указатель на хендл таймера.
-
552 * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых таймеров,
-
553 дефайнами в general_tim.h определяются используемые таймеры.
-
554 */
-
555void TIM_Base_MspDeInit(TIM_HandleTypeDef* htim)
-
556{
-
557#ifdef USE_TIM1
-
558 if(htim->Instance==TIM1)
-
559 {
-
560 __HAL_RCC_TIM1_FORCE_RESET();
-
561 __HAL_RCC_TIM1_RELEASE_RESET();
-
562 }
-
563#endif
-
564#ifdef USE_TIM2
-
565 if(htim->Instance==TIM2)
-
566 {
-
567 __HAL_RCC_TIM2_FORCE_RESET();
-
568 __HAL_RCC_TIM2_RELEASE_RESET();
-
569 }
-
570#endif
-
571#ifdef USE_TIM3
-
572 if(htim->Instance==TIM3)
-
573 {
-
574 __HAL_RCC_TIM3_FORCE_RESET();
-
575 __HAL_RCC_TIM3_RELEASE_RESET();
-
576 }
-
577#endif
-
578#ifdef USE_TIM4
-
579 if(htim->Instance==TIM4)
-
580 {
-
581 __HAL_RCC_TIM4_FORCE_RESET();
-
582 __HAL_RCC_TIM4_RELEASE_RESET();
-
583 }
-
584#endif
-
585#ifdef USE_TIM5
-
586 if(htim->Instance==TIM5)
-
587 {
-
588 __HAL_RCC_TIM5_FORCE_RESET();
-
589 __HAL_RCC_TIM5_RELEASE_RESET();
-
590 }
-
591#endif
-
592#ifdef USE_TIM6
-
593 if(htim->Instance==TIM6)
-
594 {
-
595 __HAL_RCC_TIM6_FORCE_RESET();
-
596 __HAL_RCC_TIM6_RELEASE_RESET();
-
597 }
-
598#endif
-
599#ifdef USE_TIM7
-
600 if(htim->Instance==TIM7)
-
601 {
-
602 __HAL_RCC_TIM7_FORCE_RESET();
-
603 __HAL_RCC_TIM7_RELEASE_RESET();
-
604 }
-
605#endif
-
606#ifdef USE_TIM8
-
607 if(htim->Instance==TIM8)
-
608 {
-
609 __HAL_RCC_TIM8_FORCE_RESET();
-
610 __HAL_RCC_TIM8_RELEASE_RESET();
-
611 }
-
612#endif
-
613#ifdef USE_TIM9
-
614 if(htim->Instance==TIM9)
-
615 {
-
616 __HAL_RCC_TIM9_FORCE_RESET();
-
617 __HAL_RCC_TIM9_RELEASE_RESET();
-
618 }
-
619#endif
-
620#ifdef USE_TIM10
-
621 if(htim->Instance==TIM10)
-
622 {
-
623 __HAL_RCC_TIM10_FORCE_RESET();
-
624 __HAL_RCC_TIM10_RELEASE_RESET();
-
625 }
-
626#endif
-
627#ifdef USE_TIM11
-
628 if(htim->Instance==TIM11)
-
629 {
-
630 __HAL_RCC_TIM11_FORCE_RESET();
-
631 __HAL_RCC_TIM11_RELEASE_RESET();
-
632 }
-
633#endif
-
634#ifdef USE_TIM12
-
635 if(htim->Instance==TIM12)
-
636 {
-
637 __HAL_RCC_TIM12_FORCE_RESET();
-
638 __HAL_RCC_TIM12_RELEASE_RESET();
-
639 }
-
640#endif
-
641#ifdef USE_TIM13
-
642 if(htim->Instance==TIM13)
-
643 {
-
644 __HAL_RCC_TIM13_FORCE_RESET();
-
645 __HAL_RCC_TIM13_RELEASE_RESET();
-
646 }
-
647#endif
-
648#ifdef USE_TIM14
-
649 if(htim->Instance==TIM14)
-
650 {
-
651 __HAL_RCC_TIM14_FORCE_RESET();
-
652 __HAL_RCC_TIM14_RELEASE_RESET();
-
653 }
-
654#endif
-
655}
-
656//-------------------------TIM INIT FUNCTIONS------------------------
-
657//-------------------------------------------------------------------
-
Заголовочный файл для модуля инициализации портов.
-
#define MyLibs_Error_Handler(params)
Error_Handler который будет вызыватся в библиотеке
Definition mylibs_defs.h:31
-
#define TIM_Alternate_Mapping(INSTANCE)
Маппинг альтернативной функции SPI между GPIO.
-
HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
Включить тактирование порта GPIO.
- - -
-
-
- - - - diff --git a/Doc/html/____general__tim_8h_source.html b/Doc/html/____general__tim_8h_source.html deleted file mode 100644 index 1442d2c..0000000 --- a/Doc/html/____general__tim_8h_source.html +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - - -MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/__general_tim.h Source File - - - - - - - - - - - - - - - - - -
-
- - - - - - -
-
MyLibs 1.0 -
-
Расширенные библиотеки для STM32
-
-
- - - - - - - - -
-
- -
-
-
- -
-
- -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- -
-
__general_tim.h
-
-
-
1/**
-
2 **************************************************************************
-
3 * @file general_tim.h
-
4 * @brief Заголовочный файл для базовой работы с таймерами.
-
5 *************************************************************************/
-
6#ifndef __TIM_GENERAL_H_
-
7#define __TIM_GENERAL_H_
-
8
-
9/////////////////////////////////////////////////////////////////////
-
10/////////////////////////---USER SETTINGS---/////////////////////////
-
11#define HAL_TIM_MODULE_ENABLED // need to uncomment this define in stm32f4xx_hal_conf.h
-
12
-
13#define USE_TIM1
-
14#define USE_TIM2
-
15#define USE_TIM3
-
16#define USE_TIM4
-
17#define USE_TIM5
-
18#define USE_TIM6
-
19#define USE_TIM7
-
20#define USE_TIM8
-
21#define USE_TIM9
-
22#define USE_TIM10
-
23#define USE_TIM11
-
24#define USE_TIM12
-
25#define USE_TIM13
-
26#define USE_TIM14
-
27/* note: used uart defines in modbus.h */
-
28
-
29/////////////////////////---USER SETTINGS---/////////////////////////
-
30#include "mylibs_defs.h"
-
31
-
32/////////////////////////////////////////////////////////////////////
-
33////////////////////////////---DEFINES---////////////////////////////
-
34#define TIM_IT_CONF_Pos 0
-
35//#define TIM_PWM_CONF_Pos 1
-
36//#define TIM_CLCK_SRC_CONF_Pos 2
-
37//#define TIM_SLAVE_CONF_Pos 3
-
38//#define TIM_MASTER_CONF_Pos 4
-
39//#define TIM_BDTR_CONF_Pos 5
-
40
-
41#define TIM_IT_CONF (1<<(TIM_IT_CONF_Pos))
-
42//#define TIM_PWM_CONF (1<<(TIM_PWM_Pos))
-
43
-
44
-
45#define TIM_Alternate_Mapping(INSTANCE) ((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: \
-
46 (((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3: \
-
47 (((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8: \
-
48 (((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \
-
49 (0))
-
50////////////////////////////---DEFINES---////////////////////////////]
-
51
-
52
-
53
-
54/////////////////////////////////////////////////////////////////////
-
55///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
56typedef enum
-
57{
-
58 TIM_DEFAULT = 0,
-
59 TIM_IT_MODE = TIM_IT_CONF,
-
60// TIM_PWM_MODE = TIM_PWM_ENABLE,
-
61// TIM_PWM_IT_MODE = TIM_PWM_ENABLE | TIM_IT_CONF,
-
62}TIM_ITModeTypeDef;
-
63
-
64
-
65typedef enum
-
66{
-
67 TIM_Base_Disable = 0,
-
68 TIM_TickBase_1US = 1,
-
69 TIM_TickBase_10US = 10,
-
70 TIM_TickBase_100US = 100,
-
71 TIM_TickBase_1MS = 1000,
-
72 TIM_TickBase_10MS = 10000,
-
73 TIM_TickBase_100MS = 100000,
-
74}TIM_MHzTickBaseTypeDef;
-
75
-
-
76typedef struct // struct with settings for custom function
-
77{
-
78 TIM_HandleTypeDef htim;
-
79 TIM_ClockConfigTypeDef sClockSourceConfig;
-
80 TIM_SlaveConfigTypeDef sSlaveConfig;
-
81 TIM_MasterConfigTypeDef sMasterConfig;
-
82 TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;
-
83 TIM_ITModeTypeDef sTimMode;
-
84
-
85 TIM_MHzTickBaseTypeDef sTickBaseUS;
-
86 uint8_t sTickBasePrescaler;
-
87 float sTimAHBFreqMHz;
-
88 float sTimFreqHz;
-
89
- -
-
91
-
92
-
-
93typedef struct // struct with variables for encoder
-
94{
-
95 int16_t Encoder_Diff;
-
96
-
97 TIM_HandleTypeDef *htim;
-
98 TIM_Encoder_InitTypeDef sConfig;
-
99
-
100 GPIO_TypeDef *GPIOx;
-
101 uint32_t GPIO_PIN_TI1;
-
102 uint32_t GPIO_PIN_TI2;
-
103 uint32_t GPIO_PIN_SW;
- -
-
105///////////////////////---STRUCTURES & ENUMS---//////////////////////
-
106
-
107/////////////////////////////////////////////////////////////////////
-
108///////////////////////////---FUNCTIONS---///////////////////////////
-
109/* Initialize TIM with TIM_SettingsTypeDef structure */
-
110HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef* stim);
-
111/* Initialize PWM Channel and GPIO for output */
-
112HAL_StatusTypeDef TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t PWM_PIN);
-
113/* Initialize TIM Encoder functional */
-
114HAL_StatusTypeDef TIM_Encoder_Init(TIM_EncoderTypeDef *henc1, TIM_HandleTypeDef *htim);
-
115/* Initialize OC Comparator */
-
116HAL_StatusTypeDef TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL);
-
117/* Start delay via TIM */
-
118HAL_StatusTypeDef TIM_Delay_Start(TIM_HandleTypeDef *htim);
-
119/* Delay via TIM */
-
120HAL_StatusTypeDef TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay);
-
121/* Wait Delay via TIM without blocking app */
-
122HAL_StatusTypeDef TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay);
-
123/* Initialize TIMs clock and interrupt */
-
124void TIM_Base_MspInit(TIM_HandleTypeDef* htim, TIM_ITModeTypeDef it_mode);
-
125/* DeInitialize TIMs clock and interrupt */
-
126void TIM_Base_MspDeInit(TIM_HandleTypeDef* htim);
-
127///////////////////////////---FUNCTIONS---///////////////////////////
-
128
-
129
-
130#endif // __TIM_GENERAL_H_
-
Заголочный файл для дефайнов библиотеки MyLibsGeneral.
- - -
-
-
- - - - diff --git a/Doc/html/____general__uart_8c_source.html b/Doc/html/____general__uart_8c_source.html index 27d3d50..041ddc5 100644 --- a/Doc/html/____general__uart_8c_source.html +++ b/Doc/html/____general__uart_8c_source.html @@ -170,7 +170,7 @@ $(function(){initNavTree('____general__uart_8c_source.html','',''); });
68 GPIO_InitTypeDef GPIO_InitStruct = {0};
69
70 // choose port for enable clock
-
71 GPIO_Clock_Enable(GPIOx);
+
71 GPIO_Clock_Enable(GPIOx);
72
73 //USART3 GPIO Configuration
74 //GPIO_PIN_TX ------> USART_TX
@@ -480,9 +480,9 @@ $(function(){initNavTree('____general__uart_8c_source.html','',''); });
378
379//------------------------UART INIT FUNCTIONS------------------------
380//-------------------------------------------------------------------
-
Заголовочный файл для модуля инициализации портов.
+
Заголовочный файл для модуля инициализации портов и работы с ними.
#define MyLibs_Error_Handler(params)
Error_Handler который будет вызыватся в библиотеке
Definition mylibs_defs.h:31
-
HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
Включить тактирование порта GPIO.
+
HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
Включить тактирование порта GPIO.
diff --git a/Doc/html/____general__uart_8h_source.html b/Doc/html/____general__uart_8h_source.html index 78bb766..810ca3d 100644 --- a/Doc/html/____general__uart_8h_source.html +++ b/Doc/html/____general__uart_8h_source.html @@ -101,10 +101,10 @@ $(function(){initNavTree('____general__uart_8h_source.html','',''); });
1/**
-
2 **************************************************************************
-
3 * @file general_uart.h
-
4 * @brief Заголовочный файл для модуля инициализации UART.
-
5 *************************************************************************/
+
2**************************************************************************
+
3* @file general_uart.h
+
4* @brief Заголовочный файл для модуля инициализации UART.
+
5*************************************************************************/
6#ifndef __UART_GENERAL_H_
7#define __UART_GENERAL_H_
8
diff --git a/Doc/html/annotated.html b/Doc/html/annotated.html index 8e38e32..a2c2e40 100644 --- a/Doc/html/annotated.html +++ b/Doc/html/annotated.html @@ -102,25 +102,18 @@ $(function(){initNavTree('annotated.html','',''); });
Here are the classes, structs, unions and interfaces with brief descriptions:
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +
 CADC_TrackerTypeDefStruct for trackers for ADC
 CADCChannel_TrackerTypeDefStruct for trackers for ADC Channel
 CGPIO_LEDTypeDefСтруктура светодиода
 CGPIO_SwitchTypeDefСтруктура кнопки
 CHF_StackFrame_tКонтекст стек-фрейма процессора при HardFault
 CMeasure_TrackerTypeDefStruct for trackers for Measure
 CMeasureHandle_TrackerTypeDefStruct for trackers for Measure
 CMZKT_DiscreteInputsTypeDef
 CMZKT_LEDsTypeDef
 CRS_TrackerTypeDefStruct for trackers for RS
 CRTT_FlashHeader_tСтруктура RTT, которая будет положена в Flash
 CSPI_SettingsTypeDef
 CTIM_EncoderTypeDef
 CTIM_SettingsTypeDef
 CUART_SettingsTypeDef
 Cuint16_BitTypeDef
 Cuint32_BitTypeDef
 Cuint64_BitTypeDef
 Cuint8_BitTypeDef
 CGPIO_LEDTypeDefСтруктура светодиода
 CGPIO_SwitchTypeDefСтруктура кнопки
 CHF_StackFrame_tКонтекст стек-фрейма процессора при HardFault
 CRTT_FlashHeader_tСтруктура RTT, которая будет положена в Flash
 CSPI_SettingsTypeDef
 CTIM_EncoderTypeDefСтруктура инициализации енкодера
 CTIM_SettingsTypeDefСтруктура инициализации таймера
 CUART_SettingsTypeDef
 Cuint16_BitTypeDef
 Cuint32_BitTypeDef
 Cuint64_BitTypeDef
 Cuint8_BitTypeDef
diff --git a/Doc/html/annotated_dup.js b/Doc/html/annotated_dup.js index 904449e..555ef5f 100644 --- a/Doc/html/annotated_dup.js +++ b/Doc/html/annotated_dup.js @@ -1,19 +1,12 @@ var annotated_dup = [ - [ "ADC_TrackerTypeDef", "struct_a_d_c___tracker_type_def.html", null ], - [ "ADCChannel_TrackerTypeDef", "struct_a_d_c_channel___tracker_type_def.html", null ], [ "GPIO_LEDTypeDef", "struct_g_p_i_o___l_e_d_type_def.html", "struct_g_p_i_o___l_e_d_type_def" ], [ "GPIO_SwitchTypeDef", "struct_g_p_i_o___switch_type_def.html", "struct_g_p_i_o___switch_type_def" ], [ "HF_StackFrame_t", "struct_h_f___stack_frame__t.html", "struct_h_f___stack_frame__t" ], - [ "Measure_TrackerTypeDef", "struct_measure___tracker_type_def.html", null ], - [ "MeasureHandle_TrackerTypeDef", "struct_measure_handle___tracker_type_def.html", null ], - [ "MZKT_DiscreteInputsTypeDef", "struct_m_z_k_t___discrete_inputs_type_def.html", null ], - [ "MZKT_LEDsTypeDef", "struct_m_z_k_t___l_e_ds_type_def.html", null ], - [ "RS_TrackerTypeDef", "struct_r_s___tracker_type_def.html", null ], [ "RTT_FlashHeader_t", "struct_r_t_t___flash_header__t.html", "struct_r_t_t___flash_header__t" ], [ "SPI_SettingsTypeDef", "struct_s_p_i___settings_type_def.html", null ], - [ "TIM_EncoderTypeDef", "struct_t_i_m___encoder_type_def.html", null ], - [ "TIM_SettingsTypeDef", "struct_t_i_m___settings_type_def.html", null ], + [ "TIM_EncoderTypeDef", "struct_t_i_m___encoder_type_def.html", "struct_t_i_m___encoder_type_def" ], + [ "TIM_SettingsTypeDef", "struct_t_i_m___settings_type_def.html", "struct_t_i_m___settings_type_def" ], [ "UART_SettingsTypeDef", "struct_u_a_r_t___settings_type_def.html", null ], [ "uint16_BitTypeDef", "unionuint16___bit_type_def.html", null ], [ "uint32_BitTypeDef", "unionuint32___bit_type_def.html", null ], diff --git a/Doc/html/bit__access_8h.html b/Doc/html/bit__access_8h.html new file mode 100644 index 0000000..eacf932 --- /dev/null +++ b/Doc/html/bit__access_8h.html @@ -0,0 +1,176 @@ + + + + + + + +MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/bit_access.h File Reference + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
bit_access.h File Reference
+
+
+ +

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

+
#include "mylibs_defs.h"
+
Include dependency graph for bit_access.h:
+
+
+ +
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
+ + + + + + + + + +

+Macros

#define uint8_bit(_uint8_, _bit_)
 Получить n-й бит из uint8_t.
#define uint16_bit(_uint8_, _bit_)
 Получить n-й бит из uint16_t.
#define uint32_bit(_uint8_, _bit_)
 Получить n-й бит из uint32_t.
#define uint64_bit(_uint8_, _bit_)
 Получить n-й бит из uint64_t.
+

Detailed Description

+

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

+ +

Definition in file bit_access.h.

+
+
+ +
+ + + + diff --git a/Doc/html/bit__access_8h.js b/Doc/html/bit__access_8h.js new file mode 100644 index 0000000..9c568c5 --- /dev/null +++ b/Doc/html/bit__access_8h.js @@ -0,0 +1,7 @@ +var bit__access_8h = +[ + [ "uint8_bit", "group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html#ga57dc3bb3472a66fc92312f89d42d2396", null ], + [ "uint16_bit", "group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html#ga6a122b536ad99ae611c8cf01437af086", null ], + [ "uint32_bit", "group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html#gafaa2080168b1b6f7281e8bfabab022d1", null ], + [ "uint64_bit", "group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html#ga47eb69ce9330a1c73fe8031240f02f0a", null ] +]; \ No newline at end of file diff --git a/Doc/html/bit__access_8h__dep__incl.map b/Doc/html/bit__access_8h__dep__incl.map new file mode 100644 index 0000000..11c4cbf --- /dev/null +++ b/Doc/html/bit__access_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/Doc/html/bit__access_8h__dep__incl.md5 b/Doc/html/bit__access_8h__dep__incl.md5 new file mode 100644 index 0000000..2f7fcbf --- /dev/null +++ b/Doc/html/bit__access_8h__dep__incl.md5 @@ -0,0 +1 @@ +9d0f52ae67584f7f09caa88b8c7ab4e9 \ 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 new file mode 100644 index 0000000..79f6619 Binary files /dev/null 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 new file mode 100644 index 0000000..9afbbb7 --- /dev/null +++ b/Doc/html/bit__access_8h__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Doc/html/bit__access_8h__incl.md5 b/Doc/html/bit__access_8h__incl.md5 new file mode 100644 index 0000000..dd84ccf --- /dev/null +++ b/Doc/html/bit__access_8h__incl.md5 @@ -0,0 +1 @@ +4b8c2556090cdbb9271b9fbe97d7cf5b \ No newline at end of file diff --git a/Doc/html/bit__access_8h__incl.png b/Doc/html/bit__access_8h__incl.png new file mode 100644 index 0000000..6e25770 Binary files /dev/null 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 f72b8e8..37a5171 100644 --- a/Doc/html/bit__access_8h_source.html +++ b/Doc/html/bit__access_8h_source.html @@ -100,37 +100,37 @@ $(function(){initNavTree('bit__access_8h_source.html','',''); });
bit_access.h
-
1/**
+Go to the documentation of this file.
1/**
2**************************************************************************
-
3* @file mylibs_defs.h
-
4* @brief Заголочный файл для дефайнов библиотеки MyLibsGeneral.
+
3* @file bit_access.h
+
4* @brief Заголочный файл для дефайнов битового доступа.
5**************************************************************************
6* @defgroup BIT_ACCESS_DEFINES Bit access defines
7* @ingroup MYLIBS_DEFINES
8* @brief Макросы и typedef'ы для работы с битами в unsigned типах.
9* @details
-
10* В этом файле определены макросы для получения значения конкретного бита^
-
11* - @ref uint8_bit
-
12* - @ref uint16_bit
-
13* - @ref uint32_bit
-
14* - @ref uint64_bit
-
15*
-
16* Особенности использования:
-
17* - Индекс бита должен быть **константой на этапе компиляции**.
-
18* Пример верного использования:
-
19* @code
-
20* uint8_t val = 0x05;
-
21* uint8_t b2 = uint8_bit(val, 2); // Получить бит 2
-
22* uint8_bit(val, 6) = 1; // Записать бит 6
-
23* @endcode
-
24* - Нельзя использовать переменные в качестве индекса:
-
25* @code
-
26* uint8_t i = 2;
-
27* uint8_bit(val, i); // Не сработает!
-
28* @endcode
-
29* - Макросы возвращают 0 или 1.
-
30* - Доступ реализован через приведение к `union` с битовыми полями, поэтому это
-
31* безопасный способ работы с отдельными битами без ручного сдвига и маскирования.
+
10В этом файле определены макросы для получения значения конкретного бита^
+
11- @ref uint8_bit
+
12- @ref uint16_bit
+
13- @ref uint32_bit
+
14- @ref uint64_bit
+
15
+
16Особенности использования:
+
17- Индекс бита должен быть **константой на этапе компиляции**.
+
18 Пример верного использования:
+
19 @code
+
20 uint8_t val = 0x05;
+
21 uint8_t b2 = uint8_bit(val, 2); // Получить бит 2
+
22 uint8_bit(val, 6) = 1; // Записать бит 6
+
23 @endcode
+
24- Нельзя использовать переменные в качестве индекса:
+
25 @code
+
26 uint8_t i = 2;
+
27 uint8_bit(val, i); // Не сработает!
+
28 @endcode
+
29- Макросы возвращают 0 или 1.
+
30- Доступ реализован через приведение к `union` с битовыми полями, поэтому это
+
31 безопасный способ работы с отдельными битами без ручного сдвига и маскирования.
32* @{
33*************************************************************************/
34#ifndef __BIT_ACCESS_H_
@@ -278,7 +278,7 @@ $(function(){initNavTree('bit__access_8h_source.html','',''); }); diff --git a/Doc/html/classes.html b/Doc/html/classes.html index f99af2f..6035bf4 100644 --- a/Doc/html/classes.html +++ b/Doc/html/classes.html @@ -100,23 +100,17 @@ $(function(){initNavTree('classes.html','',''); });
Class Index
-
A | G | H | M | R | S | T | U
+
G | H | R | S | T | U
-
A
-
ADC_TrackerTypeDef
ADCChannel_TrackerTypeDef
-
G
GPIO_LEDTypeDef
GPIO_SwitchTypeDef
-
+
H
HF_StackFrame_t
-
-
M
-
Measure_TrackerTypeDef
MeasureHandle_TrackerTypeDef
MZKT_DiscreteInputsTypeDef
MZKT_LEDsTypeDef
R
-
RS_TrackerTypeDef
RTT_FlashHeader_t
+
RTT_FlashHeader_t
S
SPI_SettingsTypeDef
diff --git a/Doc/html/struct_r_s___tracker_type_def-members.html b/Doc/html/dir_000002_000000.html similarity index 70% rename from Doc/html/struct_r_s___tracker_type_def-members.html rename to Doc/html/dir_000002_000000.html index 35107fa..39823a3 100644 --- a/Doc/html/struct_r_s___tracker_type_def-members.html +++ b/Doc/html/dir_000002_000000.html @@ -5,7 +5,7 @@ -MyLibs: Member List +MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src -> Inc Relation @@ -71,7 +71,7 @@ $(function() {
@@ -96,23 +96,21 @@ $(function(){initNavTree('struct_r_s___tracker_type_def.html','',''); });
-
-
RS_TrackerTypeDef Member List
-
- -

This is the complete list of members for RS_TrackerTypeDef, including all inherited members.

- - - - - -
cnt_err (defined in RS_TrackerTypeDef)RS_TrackerTypeDef
cnt_ok (defined in RS_TrackerTypeDef)RS_TrackerTypeDef
cnt_warn (defined in RS_TrackerTypeDef)RS_TrackerTypeDef
user (defined in RS_TrackerTypeDef)RS_TrackerTypeDef
+

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 8ab2f6c..2a88587 100644 --- a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.html +++ b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.html @@ -100,15 +100,29 @@ $(function(){initNavTree('dir_9c80311a018e1f8cfb6659b73d634be4.html','',''); });
Src Directory Reference
+
Directory dependency graph for Src:
+
+
+ - - + + +

Files

 
__general_flash.c
 
__general_spi.c
 
__general_tim.c
 
__general_uart.c
 
general_gpio.c
 Модуль для инициализации портов.
 Модуль для инициализации портов и работы с ними.
 
general_tim.c
 Модуль для инициализации таймеров и работы с ними.
diff --git a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.js b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.js index ca9dc0f..6df5d45 100644 --- a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.js +++ b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4.js @@ -2,7 +2,7 @@ var dir_9c80311a018e1f8cfb6659b73d634be4 = [ [ "__general_flash.c", "____general__flash_8c_source.html", null ], [ "__general_spi.c", "____general__spi_8c_source.html", null ], - [ "__general_tim.c", "____general__tim_8c_source.html", null ], [ "__general_uart.c", "____general__uart_8c_source.html", null ], - [ "general_gpio.c", "general__gpio_8c.html", "general__gpio_8c" ] + [ "general_gpio.c", "general__gpio_8c.html", "general__gpio_8c" ], + [ "general_tim.c", "general__tim_8c.html", "general__tim_8c" ] ]; \ No newline at end of file diff --git a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.map b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.map new file mode 100644 index 0000000..649ed93 --- /dev/null +++ b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.md5 b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.md5 new file mode 100644 index 0000000..26d1cc5 --- /dev/null +++ b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.md5 @@ -0,0 +1 @@ +387bb26d88dde230c0675e9727f07c60 \ No newline at end of file diff --git a/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.png b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.png new file mode 100644 index 0000000..662c95b Binary files /dev/null and b/Doc/html/dir_9c80311a018e1f8cfb6659b73d634be4_dep.png differ diff --git a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html index 7c5d22b..28e8558 100644 --- a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html +++ b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515.html @@ -100,6 +100,19 @@ $(function(){initNavTree('dir_9e11e9a41112194af3eee6cc728f9515.html','',''); });
MyLibsGeneral Directory Reference
+
Directory dependency graph for MyLibsGeneral:
+
+
+ diff --git a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.map b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.map new file mode 100644 index 0000000..397ee7e --- /dev/null +++ b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.md5 b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.md5 new file mode 100644 index 0000000..e96a2a1 --- /dev/null +++ b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.md5 @@ -0,0 +1 @@ +a1466c7fe0f5fc90492120d9a3a88167 \ No newline at end of file diff --git a/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.png b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.png new file mode 100644 index 0000000..755f4fd Binary files /dev/null and b/Doc/html/dir_9e11e9a41112194af3eee6cc728f9515_dep.png differ diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html index fd8ba79..f6e79a3 100644 --- a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html +++ b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.html @@ -100,16 +100,28 @@ $(function(){initNavTree('dir_eb423fea8a9c4b9b32b922020ec391e1.html','',''); });
Inc Directory Reference
+
Directory dependency graph for Inc:
+
+
+

Directories

- - + + - + + + diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.js b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.js index 0ea66f6..9316149 100644 --- a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.js +++ b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1.js @@ -2,13 +2,13 @@ var dir_eb423fea8a9c4b9b32b922020ec391e1 = [ [ "__general_flash.h", "____general__flash_8h_source.html", null ], [ "__general_spi.h", "____general__spi_8h_source.html", null ], - [ "__general_tim.h", "____general__tim_8h_source.html", null ], [ "__general_uart.h", "____general__uart_8h_source.html", null ], - [ "bit_access.h", "bit__access_8h_source.html", null ], + [ "bit_access.h", "bit__access_8h.html", "bit__access_8h" ], [ "general_gpio.h", "general__gpio_8h.html", "general__gpio_8h" ], + [ "general_tim.h", "general__tim_8h.html", "general__tim_8h" ], [ "mylibs_config.h", "mylibs__config_8h.html", "mylibs__config_8h" ], [ "mylibs_defs.h", "mylibs__defs_8h.html", "mylibs__defs_8h" ], - [ "mylibs_include.h", "mylibs__include_8h.html", "mylibs__include_8h" ], + [ "mylibs_include.h", "mylibs__include_8h.html", null ], [ "trace.h", "trace_8h.html", "trace_8h" ], [ "trackers.h", "trackers_8h.html", "trackers_8h" ] ]; \ No newline at end of file diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.map b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.map new file mode 100644 index 0000000..8f7cb36 --- /dev/null +++ b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.md5 b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.md5 new file mode 100644 index 0000000..f594f8b --- /dev/null +++ b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.md5 @@ -0,0 +1 @@ +51bda8bf2e3b4eafeabf6cf3520068b7 \ No newline at end of file diff --git a/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.png b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.png new file mode 100644 index 0000000..9cf8f9f Binary files /dev/null and b/Doc/html/dir_eb423fea8a9c4b9b32b922020ec391e1_dep.png differ diff --git a/Doc/html/doxygen_crawl.html b/Doc/html/doxygen_crawl.html index dadab9a..a4b8d18 100644 --- a/Doc/html/doxygen_crawl.html +++ b/Doc/html/doxygen_crawl.html @@ -12,13 +12,13 @@ - - + + @@ -30,11 +30,16 @@ + + + + + @@ -46,47 +51,89 @@ - - - - + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -146,27 +193,32 @@ + + + + + + + + + + + - - - - - - @@ -182,16 +234,6 @@ - - - - - - - - - - @@ -201,8 +243,27 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Doc/html/files.html b/Doc/html/files.html index cc94b1b..be04d52 100644 --- a/Doc/html/files.html +++ b/Doc/html/files.html @@ -106,10 +106,10 @@ $(function(){initNavTree('files.html','',''); }); - - - - + + + + @@ -118,9 +118,9 @@ $(function(){initNavTree('files.html','',''); }); - - - + + +

Files

 
__general_flash.h
 
__general_spi.h
 
__general_tim.h
 
__general_uart.h
 
bit_access.h
 
bit_access.h
 Заголочный файл для дефайнов битового доступа.
 
general_gpio.h
 Заголовочный файл для модуля инициализации портов.
 Заголовочный файл для модуля инициализации портов и работы с ними.
 
general_tim.h
 Заголовочный файл для модуля инициализации таймеров и работы с ними.
 
mylibs_config.h
 Конфигурации для библиотек MyLibs.
 
mylibs_defs.h
 
Inc
 
__general_flash.h
 
__general_spi.h
 
__general_tim.h
 
__general_uart.h
 
bit_access.h
 
general_gpio.h
Заголовочный файл для модуля инициализации портов
 
__general_uart.h
 
bit_access.h
Заголочный файл для дефайнов битового доступа
 
general_gpio.h
Заголовочный файл для модуля инициализации портов и работы с ними
 
general_tim.h
Заголовочный файл для модуля инициализации таймеров и работы с ними
 
mylibs_config.h
Конфигурации для библиотек MyLibs
 
mylibs_defs.h
Заголочный файл для дефайнов библиотеки MyLibsGeneral
 
mylibs_include.h
Заголочный файл для всех библиотек
 
Src
 
__general_flash.c
 
__general_spi.c
 
__general_tim.c
 
__general_uart.c
 
general_gpio.c
Модуль для инициализации портов
 
__general_uart.c
 
general_gpio.c
Модуль для инициализации портов и работы с ними
 
general_tim.c
Модуль для инициализации таймеров и работы с ними
diff --git a/Doc/html/functions.html b/Doc/html/functions.html index 258c390..1411471 100644 --- a/Doc/html/functions.html +++ b/Doc/html/functions.html @@ -97,29 +97,80 @@ $(function(){initNavTree('functions.html','',''); });
-
Here is a list of all documented class members with links to the class documentation for each member:
diff --git a/Doc/html/functions_vars.html b/Doc/html/functions_vars.html index b788bfc..fc684f6 100644 --- a/Doc/html/functions_vars.html +++ b/Doc/html/functions_vars.html @@ -97,29 +97,80 @@ $(function(){initNavTree('functions_vars.html','',''); });
-
Here is a list of all documented variables with links to the class documentation for each member:
diff --git a/Doc/html/general__gpio_8c.html b/Doc/html/general__gpio_8c.html index f7405e2..895b805 100644 --- a/Doc/html/general__gpio_8c.html +++ b/Doc/html/general__gpio_8c.html @@ -101,37 +101,54 @@ $(function(){initNavTree('general__gpio_8c.html','',''); });
-

Модуль для инициализации портов. +

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

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

Go to the source code of this file.

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

Functions

HAL_StatusTypeDef GPIO_Clock_Enable (GPIO_TypeDef *GPIOx)
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_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_On (GPIO_LEDTypeDef *led)
 Включить светодиод
HAL_StatusTypeDef GPIO_LED_Off (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_Set (GPIO_LEDTypeDef *led, uint8_t led_state)
 Выставить светодиод по переменной
HAL_StatusTypeDef GPIO_LED_Blink_Start (GPIO_LEDTypeDef *led, uint32_t period)
HAL_StatusTypeDef GPIO_LED_Blink_Start (GPIO_LEDTypeDef *led, uint32_t period)
 Активировать моргание светодиодом
HAL_StatusTypeDef GPIO_LED_Fading_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)
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)
HAL_StatusTypeDef GPIO_Switch_Init (GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)
 Инициализировать кнопку (структуру кнопки)
uint8_t GPIO_Read_Switch (GPIO_SwitchTypeDef *sw)
 Считать состоянии кнопки
int GPIO_Read_Switch (GPIO_SwitchTypeDef *sw)
 Считать состоянии кнопки

Detailed Description

-

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

+

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

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

  • Включение тактирования портов
  • Инициализация светодиодов и кнопок
  • diff --git a/Doc/html/general__gpio_8c.js b/Doc/html/general__gpio_8c.js index d09c80d..10e5599 100644 --- a/Doc/html/general__gpio_8c.js +++ b/Doc/html/general__gpio_8c.js @@ -1,13 +1,13 @@ var general__gpio_8c = [ - [ "GPIO_Clock_Enable", "group___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6", null ], - [ "GPIO_LED_Init", "group___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084", null ], - [ "GPIO_LED_On", "group___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c", null ], - [ "GPIO_LED_Off", "group___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357", null ], - [ "GPIO_LED_Set", "group___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2", null ], - [ "GPIO_LED_Blink_Start", "group___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9", null ], - [ "GPIO_LED_Fading_Start", "group___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a", null ], - [ "GPIO_LED_Dynamic_Handle", "group___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2", null ], - [ "GPIO_Switch_Init", "group___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7", null ], - [ "GPIO_Read_Switch", "group___g_p_i_o___s_w_i_t_c_h.html#ga4b6b8be19a9265bfee6b2bb8a68e988f", null ] + [ "GPIO_Clock_Enable", "group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6", null ], + [ "GPIO_LED_Init", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084", null ], + [ "GPIO_LED_On", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c", null ], + [ "GPIO_LED_Off", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357", null ], + [ "GPIO_LED_Set", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2", null ], + [ "GPIO_LED_Blink_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9", null ], + [ "GPIO_LED_Fading_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a", null ], + [ "GPIO_LED_Dynamic_Handle", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2", null ], + [ "GPIO_Switch_Init", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7", null ], + [ "GPIO_Read_Switch", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70", null ] ]; \ No newline at end of file diff --git a/Doc/html/general__gpio_8c__incl.map b/Doc/html/general__gpio_8c__incl.map new file mode 100644 index 0000000..1d47388 --- /dev/null +++ b/Doc/html/general__gpio_8c__incl.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Doc/html/general__gpio_8c__incl.md5 b/Doc/html/general__gpio_8c__incl.md5 new file mode 100644 index 0000000..958ccc2 --- /dev/null +++ b/Doc/html/general__gpio_8c__incl.md5 @@ -0,0 +1 @@ +6e517891df2cdbcb0824fafba9ac3005 \ No newline at end of file diff --git a/Doc/html/general__gpio_8c__incl.png b/Doc/html/general__gpio_8c__incl.png new file mode 100644 index 0000000..f8a4a65 Binary files /dev/null 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 d77720c..73e3cc1 100644 --- a/Doc/html/general__gpio_8c_source.html +++ b/Doc/html/general__gpio_8c_source.html @@ -103,124 +103,124 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); }); Go to the documentation of this file.
    1/**
    2**************************************************************************
    3* @file general_gpio.c
    -
    4* @brief Модуль для инициализации портов.
    +
    4* @brief Модуль для инициализации портов и работы с ними.
    5**************************************************************************
    -
    6* @details Реализация функций для работы с GPIO:
    -
    7* - Включение тактирования портов
    -
    8* - Инициализация светодиодов и кнопок
    -
    9* - Управление светодиодами: включение, выключение, моргание, плавное затухание
    -
    10* - Чтение состояния кнопок с фильтром от дребезга
    -
    11***************************************************************************/
    -
    12#include "general_gpio.h"
    -
    13
    -
    14//-------------------------------------------------------------------
    -
    15//------------------------GPIO INIT FUNCTIONS------------------------
    -
    16
    -
    17
    -
    18/**
    -
    19 * @brief Включить тактирование порта GPIO
    -
    20 */
    -
    -
    21HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
    -
    22{
    -
    23 HAL_StatusTypeDef status = HAL_OK;
    -
    24 // choose port for enable clock
    -
    25 if (GPIOx==GPIOA)
    -
    26 __HAL_RCC_GPIOA_CLK_ENABLE();
    -
    27 else if (GPIOx==GPIOB)
    -
    28 __HAL_RCC_GPIOB_CLK_ENABLE();
    -
    29#ifdef GPIOC
    -
    30 else if (GPIOx==GPIOC)
    -
    31 __HAL_RCC_GPIOC_CLK_ENABLE();
    -
    32#endif
    -
    33#ifdef GPIOD
    -
    34 else if (GPIOx==GPIOD)
    -
    35 __HAL_RCC_GPIOD_CLK_ENABLE();
    +
    6* @details
    +
    7Реализация функций для работы с GPIO:
    +
    8 - Включение тактирования портов
    +
    9 - Инициализация светодиодов и кнопок
    +
    10 - Управление светодиодами: включение, выключение, моргание, плавное затухание
    +
    11 - Чтение состояния кнопок с фильтром от дребезга
    +
    12***************************************************************************/
    +
    13#include "general_gpio.h"
    +
    14
    +
    15//-------------------------------------------------------------------
    +
    16//------------------------GPIO INIT FUNCTIONS------------------------
    +
    17
    +
    18
    +
    19/**
    +
    20 * @brief Включить тактирование порта GPIO
    +
    21 */
    +
    +
    22HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
    +
    23{
    +
    24 if(check_null_ptr_1(GPIOx))
    +
    25 return HAL_ERROR;
    +
    26
    +
    27 HAL_StatusTypeDef status = HAL_OK;
    +
    28 // choose port for enable clock
    +
    29 if (GPIOx==GPIOA)
    +
    30 __HAL_RCC_GPIOA_CLK_ENABLE();
    +
    31 else if (GPIOx==GPIOB)
    +
    32 __HAL_RCC_GPIOB_CLK_ENABLE();
    +
    33#ifdef GPIOC
    +
    34 else if (GPIOx==GPIOC)
    +
    35 __HAL_RCC_GPIOC_CLK_ENABLE();
    36#endif
    -
    37#ifdef GPIOE
    -
    38 else if (GPIOx==GPIOE)
    -
    39 __HAL_RCC_GPIOE_CLK_ENABLE();
    +
    37#ifdef GPIOD
    +
    38 else if (GPIOx==GPIOD)
    +
    39 __HAL_RCC_GPIOD_CLK_ENABLE();
    40#endif
    -
    41#ifdef GPIOF
    -
    42 else if (GPIOx==GPIOF)
    -
    43 __HAL_RCC_GPIOF_CLK_ENABLE();
    +
    41#ifdef GPIOE
    +
    42 else if (GPIOx==GPIOE)
    +
    43 __HAL_RCC_GPIOE_CLK_ENABLE();
    44#endif
    -
    45#ifdef GPIOH
    +
    45#ifdef GPIOF
    46 else if (GPIOx==GPIOF)
    -
    47 __HAL_RCC_GPIOH_CLK_ENABLE();
    +
    47 __HAL_RCC_GPIOF_CLK_ENABLE();
    48#endif
    -
    49 else
    -
    50 status = HAL_ERROR;
    -
    51
    -
    52 return status;
    -
    53}
    +
    49#ifdef GPIOH
    +
    50 else if (GPIOx==GPIOF)
    +
    51 __HAL_RCC_GPIOH_CLK_ENABLE();
    +
    52#endif
    +
    53 else
    +
    54 status = HAL_ERROR;
    +
    55
    +
    56 return status;
    +
    57}
    -
    54
    -
    55//------------------------GPIO INIT FUNCTIONS------------------------
    -
    56//-------------------------------------------------------------------
    -
    57
    58
    -
    59//-------------------------------------------------------------------
    -
    60//------------------------GPIO LED FUNCTIONS-------------------------
    -
    61
    -
    62/**
    -
    63 * @brief Инициализировать светодиод (структуру светодиода)
    -
    64 * @param led Указатель на структуру светодиода
    -
    65 * @param GPIOx Указатель на структуру порта для светодиода
    -
    66 * @param GPIO_PIN_X Пин для светодиода
    -
    67 * @param LED_ActiveLevel Состояния пина, при котором светодиод будет включен
    -
    68 */
    -
    -
    69HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel)
    -
    70{
    -
    71 if(check_null_ptr_2(led, GPIOx))
    -
    72 return HAL_ERROR;
    -
    73
    -
    74 led->LED_Port = GPIOx;
    -
    75 led->LED_Pin = GPIO_PIN_X;
    -
    76 led->LED_ActiveLvl = LED_ActiveLevel;
    +
    59//------------------------GPIO INIT FUNCTIONS------------------------
    +
    60//-------------------------------------------------------------------
    +
    61
    +
    62
    +
    63//-------------------------------------------------------------------
    +
    64//------------------------GPIO LED FUNCTIONS-------------------------
    +
    65
    +
    66/**
    +
    67 * @brief Инициализировать светодиод (структуру светодиода)
    +
    68 * @param led Указатель на структуру светодиода
    +
    69 * @param GPIOx Указатель на структуру порта для светодиода
    +
    70 * @param GPIO_PIN_X Пин для светодиода
    +
    71 * @param LED_ActiveLevel Состояния пина, при котором светодиод будет включен
    +
    72 */
    +
    +
    73HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel)
    +
    74{
    +
    75 if(check_null_ptr_3(led, GPIOx, GPIO_PIN_X))
    +
    76 return HAL_ERROR;
    77
    -
    78 GPIO_LED_Off(led);
    -
    79 return HAL_OK;
    -
    80}
    +
    78 led->LED_Port = GPIOx;
    +
    79 led->LED_Pin = GPIO_PIN_X;
    +
    80 led->LED_ActiveLvl = LED_ActiveLevel;
    +
    81
    +
    82 GPIO_LED_Off(led);
    +
    83 return HAL_OK;
    +
    84}
    -
    81
    -
    82/**
    -
    83 * @brief Включить светодиод
    -
    84 * @param led Указатель на структуру светодиода
    -
    85 * @return HAL Status
    -
    86 */
    -
    -
    87HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)
    -
    88{
    -
    89 if(check_null_ptr_1(led))
    -
    90 return HAL_ERROR;
    -
    91
    -
    92 led->state = LED_IS_ON;
    -
    93 if(led->LED_Port != NULL)
    -
    94 HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, led->LED_ActiveLvl);
    -
    95 else
    -
    96 return HAL_ERROR;
    -
    97
    -
    98 return HAL_OK;
    -
    99}
    +
    85
    +
    86/**
    +
    87 * @brief Включить светодиод
    +
    88 * @param led Указатель на структуру светодиода
    +
    89 * @return HAL Status
    +
    90 */
    +
    +
    91HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)
    +
    92{
    +
    93 if(check_null_ptr_3(led, led->LED_Port, led->LED_Pin))
    +
    94 return HAL_ERROR;
    +
    95
    +
    96 led->state = LED_IS_ON;
    +
    97 HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, led->LED_ActiveLvl);
    +
    98
    +
    99
    +
    100 return HAL_OK;
    +
    101}
    -
    100/**
    -
    101 * @brief Выключить светодиод
    -
    102 * @param led Указатель на структуру светодиода
    -
    103 * @return HAL Status
    -
    104 */
    -
    -
    105HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led)
    -
    106{
    -
    107 if(check_null_ptr_1(led))
    -
    108 return HAL_ERROR;
    -
    109
    -
    110 led->state = LED_IS_OFF;
    -
    111 if(led->LED_Port != NULL)
    -
    112 HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, !led->LED_ActiveLvl);
    -
    113 else
    -
    114 return HAL_ERROR;
    +
    102/**
    +
    103 * @brief Выключить светодиод
    +
    104 * @param led Указатель на структуру светодиода
    +
    105 * @return HAL Status
    +
    106 */
    +
    +
    107HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led)
    +
    108{
    +
    109 if(check_null_ptr_3(led, led->LED_Port, led->LED_Pin))
    +
    110 return HAL_ERROR;
    +
    111
    +
    112 led->state = LED_IS_OFF;
    +
    113 HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, !led->LED_ActiveLvl);
    +
    114
    115
    116
    117 return HAL_OK;
    @@ -233,18 +233,18 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); });
    123 * @return HAL Status
    124 */
    -
    125HAL_StatusTypeDef GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state)
    +
    125HAL_StatusTypeDef GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state)
    126{
    -
    127 if(check_null_ptr_1(led))
    -
    128 return HAL_ERROR;
    +
    127 if(check_null_ptr_3(led, led->LED_Port, led->LED_Pin))
    +
    128 return HAL_ERROR;
    129
    130 if(led_state)
    131 {
    -
    132 return GPIO_LED_On(led);
    +
    132 return GPIO_LED_On(led);
    133 }
    134 else
    135 {
    -
    136 return GPIO_LED_Off(led);
    +
    136 return GPIO_LED_Off(led);
    137 }
    138}
    @@ -256,12 +256,12 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); });
    144 * @details Функция ставит режим моргания, который после управляется в @ref GPIO_LED_Dynamic_Handle
    145 */
    -
    146HAL_StatusTypeDef GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period)
    +
    146HAL_StatusTypeDef GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period)
    147{
    -
    148 if(check_null_ptr_2(led, led->LED_Port))
    +
    148 if(check_null_ptr_3(led, led->LED_Port, led->LED_Pin))
    149 return HAL_ERROR;
    150
    -
    151 led->state = LED_IS_BLINKING;
    +
    151 led->state = LED_IS_BLINKING;
    152 led->LED_Period = period;
    153
    154 return HAL_OK;
    @@ -276,12 +276,12 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); });
    162 * @details Функция ставит режим моргания, который после управляется в @ref GPIO_LED_Dynamic_Handle
    163 */
    -
    164HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)
    +
    164HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)
    165{
    -
    166 if(check_null_ptr_2(led, led->LED_Port))
    +
    166 if(check_null_ptr_3(led, led->LED_Port, led->LED_Pin))
    167 return HAL_ERROR;
    168
    -
    169 led->state = LED_IS_FADING;
    +
    169 led->state = LED_IS_FADING;
    170 led->LED_Period = period;
    171
    172
    @@ -298,41 +298,41 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); });
    182 * и в нужный момент переключала светодиод
    183 */
    - +
    185{
    -
    186 if(check_null_ptr_2(led, led->LED_Port))
    +
    186 if(check_null_ptr_3(led, led->LED_Port, led->LED_Pin))
    187 return;
    188
    189 /* Режим моргания светодиода */
    -
    190 if(led->state == LED_IS_BLINKING)
    +
    190 if(led->state == LED_IS_BLINKING)
    191 {
    192 uint32_t tickcurrent = HAL_GetTick();
    193 /* Ожидание истечения периода моргания */
    -
    194 if((tickcurrent - led->tickprev) > led->LED_Period)
    +
    194 if((tickcurrent - led->tickprev) > led->LED_Period)
    195 {
    196 /* Моргание */
    197 HAL_GPIO_TogglePin(led->LED_Port, led->LED_Pin);
    198
    -
    199 led->tickprev = tickcurrent;
    +
    199 led->tickprev = tickcurrent;
    200 }
    201 }
    202 /* Режим плавного моргания светодиода */
    -
    203 else if(led->state == LED_IS_FADING)
    +
    203 else if(led->state == LED_IS_FADING)
    204 {
    205 static unsigned direction = 0;
    206 static int duty = 0;
    207 uint32_t tickcurrent = HAL_GetTick();
    208 /* Ожидание момента изменения яркости */
    209 /* Период ШИМ 20 мс, поэтому менять яроксть надо 40 раз за период (туда обратно) */
    -
    210 if((tickcurrent - led->tickprev) > led->LED_Period/(LED_PWM_TICKS*2))
    +
    210 if((tickcurrent - led->tickprev) > led->LED_Period/(LED_PWM_TICKS*2))
    211 {
    212 /* Формирование разтухания */
    213 if(direction == 0)
    214 {
    -
    215 if(++duty >= LED_PWM_TICKS)
    +
    215 if(++duty >= LED_PWM_TICKS)
    216 {
    217 direction = 1;
    -
    218 duty = LED_PWM_TICKS;
    +
    218 duty = LED_PWM_TICKS;
    219 }
    220 }
    221 /* Формирование затухания */
    @@ -344,11 +344,11 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); });
    227 duty = 0;
    228 }
    229 }
    -
    230 led->tickprev = tickcurrent;
    +
    230 led->tickprev = tickcurrent;
    231 }
    232 /* Формирование ШИМ для изменения яркости */
    -
    233 int duty_crt = (duty*duty/LED_PWM_TICKS);
    -
    234 if(tickcurrent%LED_PWM_TICKS < duty_crt)
    +
    233 int duty_crt = (duty*duty/LED_PWM_TICKS);
    +
    234 if(tickcurrent%LED_PWM_TICKS < duty_crt)
    235 {
    236 HAL_GPIO_WritePin(led->LED_Port, led->LED_Pin, led->LED_ActiveLvl);
    237 }
    @@ -374,9 +374,9 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); });
    256 * @return HAL Status
    257 */
    -
    258HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)
    +
    258HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)
    259{
    -
    260 if(check_null_ptr_2(sw, GPIOx))
    +
    260 if(check_null_ptr_3(sw, GPIOx, GPIO_PIN_X))
    261 return HAL_ERROR;
    262
    263 sw->Sw_Port = GPIOx;
    @@ -389,92 +389,93 @@ $(function(){initNavTree('general__gpio_8c_source.html','',''); });
    269/**
    270 * @brief Считать состоянии кнопки
    271 * @param sw Указатель на структуру кнопки
    -
    272 * @return 1 - если кнопка нажата, 0 - если отжата
    -
    273 * @details Функция включает в себя неблокирующую проверку на дребезг
    -
    274 * Т.е. функцию надо вызывать постоянно, чтобы она мониторила состояние кнопки
    -
    275 */
    -
    - -
    277{
    -
    278 if(check_null_ptr_1(sw))
    -
    279 return 0;
    -
    280
    -
    281 if(HAL_GPIO_ReadPin(sw->Sw_Port, sw->Sw_Pin) == sw->Sw_ActiveLvl)
    -
    282 {
    -
    283 sw->Sw_PrevState = 1;
    -
    284
    -
    285
    -
    286 if(sw->Sw_FilterDelay) // если включена защита от дребезга
    -
    287 {
    -
    288 if(sw->tickprev == 0)
    -
    289 sw->tickprev = HAL_GetTick();
    -
    290
    -
    291 if((HAL_GetTick() - sw->tickprev) >= sw->Sw_FilterDelay)
    -
    292 {
    -
    293 if(HAL_GPIO_ReadPin(sw->Sw_Port, sw->Sw_Pin) == sw->Sw_ActiveLvl)
    -
    294 {
    -
    295 return 1;
    -
    296 }
    -
    297 else
    -
    298 {
    -
    299 sw->tickprev = 0;
    -
    300 return 0;
    -
    301 }
    -
    302 }
    -
    303 }
    -
    304 else // если нет защиты от дребезга
    -
    305 {
    -
    306 if(HAL_GPIO_ReadPin(sw->Sw_Port, sw->Sw_Pin) == sw->Sw_ActiveLvl)
    -
    307 {
    -
    308 return 1;
    -
    309 }
    -
    310 else
    -
    311 {
    -
    312 sw->tickprev = 0;
    -
    313 return 0;
    -
    314 }
    -
    315 }
    -
    316 }
    -
    317 else
    -
    318 {
    -
    319 sw->Sw_PrevState = 0;
    -
    320 }
    -
    321 return 0;
    -
    322}
    +
    272 * @return 1 - если кнопка нажата,
    +
    273 * 0 - если отжата,
    +
    274 * -1 - если ошибка
    +
    275 * @details Функция включает в себя неблокирующую проверку на дребезг
    +
    276 * Т.е. функцию надо вызывать постоянно, чтобы она мониторила состояние кнопки
    +
    277 */
    +
    + +
    279{
    +
    280 if(check_null_ptr_3(sw, sw->Sw_Port, sw->Sw_Pin))
    +
    281 return -1;
    +
    282
    +
    283 if(HAL_GPIO_ReadPin(sw->Sw_Port, sw->Sw_Pin) == sw->Sw_ActiveLvl)
    +
    284 {
    +
    285 sw->Sw_PrevState = 1;
    +
    286
    +
    287
    +
    288 if(sw->Sw_FilterDelay) // если включена защита от дребезга
    +
    289 {
    +
    290 if(sw->tickprev == 0)
    +
    291 sw->tickprev = HAL_GetTick();
    +
    292
    +
    293 if((HAL_GetTick() - sw->tickprev) >= sw->Sw_FilterDelay)
    +
    294 {
    +
    295 if(HAL_GPIO_ReadPin(sw->Sw_Port, sw->Sw_Pin) == sw->Sw_ActiveLvl)
    +
    296 {
    +
    297 return 1;
    +
    298 }
    +
    299 else
    +
    300 {
    +
    301 sw->tickprev = 0;
    +
    302 return 0;
    +
    303 }
    +
    304 }
    +
    305 }
    +
    306 else // если нет защиты от дребезга
    +
    307 {
    +
    308 if(HAL_GPIO_ReadPin(sw->Sw_Port, sw->Sw_Pin) == sw->Sw_ActiveLvl)
    +
    309 {
    +
    310 return 1;
    +
    311 }
    +
    312 else
    +
    313 {
    +
    314 sw->tickprev = 0;
    +
    315 return 0;
    +
    316 }
    +
    317 }
    +
    318 }
    +
    319 else
    +
    320 {
    +
    321 sw->Sw_PrevState = 0;
    +
    322 }
    +
    323 return 0;
    +
    324}
    -
    323//------------------------GPIO SW FUNCTIONS-------------------------
    -
    324//-------------------------------------------------------------------
    -
    Заголовочный файл для модуля инициализации портов.
    -
    #define check_null_ptr_1(_p1_)
    Проверить указатель на NULL.
    Definition mylibs_defs.h:38
    -
    #define check_null_ptr_2(_p1_, _p2_)
    Проверить два указателя на NULL.
    Definition mylibs_defs.h:40
    -
    HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
    Включить тактирование порта GPIO.
    -
    HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)
    Включить светодиод
    -
    HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)
    Активировать моргание светодиодом
    -
    HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led)
    Выключить светодиод
    -
    HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel)
    Инициализировать светодиод (структуру светодиода)
    -
    void GPIO_LED_Dynamic_Handle(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)
    Активировать моргание светодиодом
    -
    @ LED_IS_BLINKING
    Моргание светодиодом
    -
    @ LED_IS_OFF
    Светодиод выключен
    -
    @ LED_IS_FADING
    Плавное моргание светодиодом
    -
    @ LED_IS_ON
    Светодиод включен
    -
    uint8_t GPIO_Read_Switch(GPIO_SwitchTypeDef *sw)
    Считать состоянии кнопки
    -
    HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)
    Инициализировать кнопку (структуру кнопки)
    -
    Структура светодиода
    -
    uint32_t LED_Pin
    GPIO пин ножки светодиода
    -
    uint32_t LED_Period
    Период моргания светодиода
    -
    GPIO_TypeDef * LED_Port
    GPIO порт ножки светодиода
    -
    uint32_t tickprev
    Период моргания светодиода
    -
    uint8_t LED_ActiveLvl
    Активный уровень ножки (при котором светодиод горит)
    -
    GPIO_LEDStateTypeDef state
    Текущий режим работы светодиода
    -
    Структура кнопки
    -
    uint32_t tickprev
    Период моргания светодиода
    -
    uint32_t Sw_PrevState
    Предыдущее состояние кнопки
    -
    uint32_t Sw_FilterDelay
    Фильтр от дребезга (в мс)
    -
    uint8_t Sw_ActiveLvl
    Активный уровень ножки (при котором кнопка нажата)
    -
    uint32_t Sw_Pin
    GPIO пин ножки кнопки
    -
    GPIO_TypeDef * Sw_Port
    GPIO порт ножки кнопки
    +
    325//------------------------GPIO SW FUNCTIONS-------------------------
    +
    326//-------------------------------------------------------------------
    +
    Заголовочный файл для модуля инициализации портов и работы с ними.
    +
    #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 LED_PWM_TICKS
    Количество тиков в периоде ШИМ
    +
    HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
    Включить тактирование порта GPIO.
    +
    HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)
    Включить светодиод
    +
    HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)
    Активировать моргание светодиодом
    +
    HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led)
    Выключить светодиод
    +
    HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel)
    Инициализировать светодиод (структуру светодиода)
    +
    void GPIO_LED_Dynamic_Handle(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)
    Активировать моргание светодиодом
    +
    @ LED_IS_BLINKING
    Моргание светодиодом
    +
    @ LED_IS_OFF
    Светодиод выключен
    +
    @ LED_IS_FADING
    Плавное моргание светодиодом
    +
    @ LED_IS_ON
    Светодиод включен
    +
    int GPIO_Read_Switch(GPIO_SwitchTypeDef *sw)
    Считать состоянии кнопки
    +
    HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)
    Инициализировать кнопку (структуру кнопки)
    +
    Структура светодиода
    +
    uint32_t LED_Pin
    GPIO пин ножки светодиода
    +
    uint32_t LED_Period
    Период моргания светодиода
    +
    GPIO_TypeDef * LED_Port
    GPIO порт ножки светодиода
    +
    uint8_t LED_ActiveLvl
    Активный уровень ножки (при котором светодиод горит)
    +
    GPIO_LEDStateTypeDef state
    Текущий режим работы светодиода
    +
    Структура кнопки
    +
    uint32_t Sw_PrevState
    Предыдущее состояние кнопки
    +
    uint32_t Sw_FilterDelay
    Фильтр от дребезга (в мс)
    +
    uint8_t Sw_ActiveLvl
    Активный уровень ножки (при котором кнопка нажата)
    +
    uint32_t Sw_Pin
    GPIO пин ножки кнопки
    +
    GPIO_TypeDef * Sw_Port
    GPIO порт ножки кнопки
    diff --git a/Doc/html/general__gpio_8h.html b/Doc/html/general__gpio_8h.html index 8204ab5..7538746 100644 --- a/Doc/html/general__gpio_8h.html +++ b/Doc/html/general__gpio_8h.html @@ -101,9 +101,46 @@ $(function(){initNavTree('general__gpio_8h.html','',''); });
    -

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

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

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

    Go to the source code of this file.

    @@ -126,43 +163,43 @@ Macros - - + +
     Состояние пина при нажатой кнопке
    #define SW_OFF   0
     Состояние пина при отжатой кнопке
    #define TIM_Alternate_Mapping(INSTANCE)
     Маппинг альтернативной функции SPI между GPIO.
    #define GPIO_TIM_Alternate_Mapping(INSTANCE)
     Маппинг альтернативной функции SPI между GPIO.
    - - +

    Enumerations

    enum  GPIO_LEDStateTypeDef { LED_IS_OFF = 0 -, LED_IS_ON = 1 -, LED_IS_BLINKING = 2 -, LED_IS_FADING = 3 +
    enum  GPIO_LEDStateTypeDef { LED_IS_OFF = 0 +, LED_IS_ON = 1 +, LED_IS_BLINKING = 2 +, LED_IS_FADING = 3 }
     Режимы работы светодиода More...
     Режимы работы светодиода More...
    - + - + - - - + + + - + - + - + - + - + - +

    Functions

    HAL_StatusTypeDef GPIO_Clock_Enable (GPIO_TypeDef *GPIOx)
    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)
    HAL_StatusTypeDef GPIO_Switch_Init (GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State)
     Инициализировать кнопку (структуру кнопки)
    uint8_t 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)
    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_On (GPIO_LEDTypeDef *led)
     Включить светодиод
    HAL_StatusTypeDef GPIO_LED_Off (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_Set (GPIO_LEDTypeDef *led, uint8_t led_state)
     Выставить светодиод по переменной
    HAL_StatusTypeDef GPIO_LED_Blink_Start (GPIO_LEDTypeDef *led, uint32_t period)
    HAL_StatusTypeDef GPIO_LED_Blink_Start (GPIO_LEDTypeDef *led, uint32_t period)
     Активировать моргание светодиодом
    HAL_StatusTypeDef GPIO_LED_Fading_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)
    void GPIO_LED_Dynamic_Handle (GPIO_LEDTypeDef *led)
     Управление динамическими режимами свечения светодиода

    Detailed Description

    -

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

    +

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

    Definition in file general_gpio.h.

    diff --git a/Doc/html/general__gpio_8h.js b/Doc/html/general__gpio_8h.js index e5410ab..20925fe 100644 --- a/Doc/html/general__gpio_8h.js +++ b/Doc/html/general__gpio_8h.js @@ -5,21 +5,21 @@ var general__gpio_8h = [ "LED_OFF", "group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29", null ], [ "SW_ON", "group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9", null ], [ "SW_OFF", "group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067", null ], - [ "TIM_Alternate_Mapping", "group___g_p_i_o___g_e_n_e_r_a_l.html#ga34242874b455a72aa6e25841678ed105", null ], - [ "GPIO_LEDStateTypeDef", "group___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1", [ - [ "LED_IS_OFF", "group___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae", null ], - [ "LED_IS_ON", "group___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea", null ], - [ "LED_IS_BLINKING", "group___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb", null ], - [ "LED_IS_FADING", "group___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b", null ] + [ "GPIO_TIM_Alternate_Mapping", "group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga580b842096340b066c28b24d6b315be6", null ], + [ "GPIO_LEDStateTypeDef", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1", [ + [ "LED_IS_OFF", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae", null ], + [ "LED_IS_ON", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea", null ], + [ "LED_IS_BLINKING", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb", null ], + [ "LED_IS_FADING", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b", null ] ] ], - [ "GPIO_Clock_Enable", "group___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6", null ], - [ "GPIO_Switch_Init", "group___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7", null ], - [ "GPIO_Read_Switch", "group___g_p_i_o___s_w_i_t_c_h.html#ga4b6b8be19a9265bfee6b2bb8a68e988f", null ], - [ "GPIO_LED_Init", "group___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084", null ], - [ "GPIO_LED_On", "group___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c", null ], - [ "GPIO_LED_Off", "group___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357", null ], - [ "GPIO_LED_Set", "group___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2", null ], - [ "GPIO_LED_Blink_Start", "group___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9", null ], - [ "GPIO_LED_Fading_Start", "group___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a", null ], - [ "GPIO_LED_Dynamic_Handle", "group___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2", null ] + [ "GPIO_Clock_Enable", "group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6", null ], + [ "GPIO_Switch_Init", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7", null ], + [ "GPIO_Read_Switch", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70", null ], + [ "GPIO_LED_Init", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084", null ], + [ "GPIO_LED_On", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c", null ], + [ "GPIO_LED_Off", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357", null ], + [ "GPIO_LED_Set", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2", null ], + [ "GPIO_LED_Blink_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9", null ], + [ "GPIO_LED_Fading_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a", null ], + [ "GPIO_LED_Dynamic_Handle", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2", null ] ]; \ No newline at end of file diff --git a/Doc/html/general__gpio_8h__dep__incl.map b/Doc/html/general__gpio_8h__dep__incl.map new file mode 100644 index 0000000..5752b36 --- /dev/null +++ b/Doc/html/general__gpio_8h__dep__incl.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Doc/html/general__gpio_8h__dep__incl.md5 b/Doc/html/general__gpio_8h__dep__incl.md5 new file mode 100644 index 0000000..ad68897 --- /dev/null +++ b/Doc/html/general__gpio_8h__dep__incl.md5 @@ -0,0 +1 @@ +601832d7a86478887e6618268a8e6110 \ 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 new file mode 100644 index 0000000..506ce37 Binary files /dev/null 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 new file mode 100644 index 0000000..2a678e8 --- /dev/null +++ b/Doc/html/general__gpio_8h__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Doc/html/general__gpio_8h__incl.md5 b/Doc/html/general__gpio_8h__incl.md5 new file mode 100644 index 0000000..e999f78 --- /dev/null +++ b/Doc/html/general__gpio_8h__incl.md5 @@ -0,0 +1 @@ +64dafee7a8d3ae5fb443763ec7bc3400 \ No newline at end of file diff --git a/Doc/html/general__gpio_8h__incl.png b/Doc/html/general__gpio_8h__incl.png new file mode 100644 index 0000000..04247fc Binary files /dev/null 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 f395f39..11028f6 100644 --- a/Doc/html/general__gpio_8h_source.html +++ b/Doc/html/general__gpio_8h_source.html @@ -103,216 +103,222 @@ $(function(){initNavTree('general__gpio_8h_source.html','',''); }); Go to the documentation of this file.
    1/**
    2**************************************************************************
    3* @file general_gpio.h
    -
    4* @brief Заголовочный файл для модуля инициализации портов.
    +
    4* @brief Заголовочный файл для модуля инициализации портов и работы с ними.
    5**************************************************************************
    6* @defgroup MY_LIBS_GPIO GPIO Tools
    7* @ingroup MYLIBS_PERIPHERAL
    8* @brief Функции и макросы для удобной работы с GPIO.
    -
    9*************************************************************************/
    -
    10#ifndef __GPIO_GENERAL_H_
    -
    11#define __GPIO_GENERAL_H_
    -
    12
    -
    13#include "mylibs_defs.h"
    -
    14
    -
    15/**
    -
    16 * @addtogroup GPIO_INIT Init defines
    -
    17 * @ingroup GPIO_GENERAL
    -
    18 * @brief Настройка состояний кнопок и количества тиков в периоде ШИМ
    -
    19 * @{
    -
    20 */
    -
    21
    -
    22#ifndef LED_PWM_TICKS
    -
    23#define LED_PWM_TICKS 15 ///< Количество тиков в периоде ШИМ
    -
    24#endif
    -
    25
    -
    26#ifndef LED_ON
    -
    27#define LED_ON 1 ///< Состояние пина для включения светодиода
    -
    28#endif
    -
    29#ifndef LED_OFF
    -
    30#define LED_OFF 0 ///< Состояние пина для выключения светодиода
    -
    31#endif
    -
    32
    -
    33#ifndef SW_ON
    -
    34#define SW_ON 1 ///< Состояние пина при нажатой кнопке
    -
    35#endif
    -
    36#ifndef SW_OFF
    -
    37#define SW_OFF 0 ///< Состояние пина при отжатой кнопке
    -
    38#endif
    -
    39
    -
    40/** GPIO_INIT
    -
    41 * @}
    -
    42 */
    -
    43
    -
    44
    -
    45// /**
    -
    46// * @brief Маппинг альтернативной функции SPI между GPIO
    -
    47// * @ingroup GPIO_GENERAL
    -
    48// */
    -
    49// #define SPI_Alternate_Mapping(INSTANCE) \
    -
    50// ((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: \
    -
    51// (((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3: \
    -
    52// (((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8: \
    -
    53// (((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \
    -
    54// (0))
    -
    55
    -
    56
    -
    57/**
    -
    58 * @brief Маппинг альтернативной функции TIM между GPIO
    -
    59 * @ingroup GPIO_GENERAL
    -
    60 */
    -
    -
    61#define TIM_Alternate_Mapping(INSTANCE) \
    -
    62((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: \
    -
    63(((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3: \
    -
    64(((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8: \
    -
    65(((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \
    -
    66(0))
    +
    9* @details
    +
    10Модуль предоставляет универсальные инструменты для работы с GPIO):
    +
    11 - @ref MYLIBS_GPIO_GENERAL — инициализация и общие функции работы с портами.
    +
    12 - @ref MYLIBS_GPIO_SWITCH — работа с GPIO как с кнопкой: чтение состояния,
    +
    13 фильтрация дребезга, настройка активного уровня.
    +
    14 - @ref MYLIBS_GPIO_LEDS — работа с GPIO как со светодиодом: включение,
    +
    15 выключение, моргание и плавное затухание.
    +
    16
    +
    17*************************************************************************/
    +
    18#ifndef __GPIO_GENERAL_H_
    +
    19#define __GPIO_GENERAL_H_
    +
    20
    +
    21#include "mylibs_defs.h"
    +
    22
    +
    23/**
    +
    24 * @addtogroup GPIO_INIT Init defines
    +
    25 * @ingroup MYLIBS_GPIO_GENERAL
    +
    26 * @brief Настройка состояний кнопок и количества тиков в периоде ШИМ
    +
    27 * @{
    +
    28 */
    +
    29
    +
    30#ifndef LED_PWM_TICKS
    +
    31#define LED_PWM_TICKS 15 ///< Количество тиков в периоде ШИМ
    +
    32#endif
    +
    33
    +
    34#ifndef LED_ON
    +
    35#define LED_ON 1 ///< Состояние пина для включения светодиода
    +
    36#endif
    +
    37#ifndef LED_OFF
    +
    38#define LED_OFF 0 ///< Состояние пина для выключения светодиода
    +
    39#endif
    +
    40
    +
    41#ifndef SW_ON
    +
    42#define SW_ON 1 ///< Состояние пина при нажатой кнопке
    +
    43#endif
    +
    44#ifndef SW_OFF
    +
    45#define SW_OFF 0 ///< Состояние пина при отжатой кнопке
    +
    46#endif
    +
    47
    +
    48/** GPIO_INIT
    +
    49 * @}
    +
    50 */
    +
    51
    +
    52
    +
    53// /**
    +
    54// * @brief Маппинг альтернативной функции SPI между GPIO
    +
    55// * @ingroup MYLIBS_GPIO_GENERAL
    +
    56// */
    +
    57// #define SPI_Alternate_Mapping(INSTANCE) \
    +
    58// ((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: \
    +
    59// (((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3: \
    +
    60// (((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8: \
    +
    61// (((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \
    +
    62// (0))
    +
    63
    +
    64
    +
    65/**
    +
    66 * @brief Маппинг альтернативной функции TIM между GPIO
    +
    67 * @ingroup MYLIBS_GPIO_GENERAL
    +
    68 */
    +
    +
    69#define GPIO_TIM_Alternate_Mapping(INSTANCE) \
    +
    70((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: \
    +
    71(((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3: \
    +
    72(((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8: \
    +
    73(((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \
    +
    74(0))
    -
    67
    -
    68
    -
    69/**
    -
    70 * @brief Режимы работы светодиода
    -
    71 * @ingroup GPIO_LEDS
    -
    72 */
    -
    -
    73typedef enum
    -
    74{
    -
    75 LED_IS_OFF = 0, ///< Светодиод выключен
    -
    76 LED_IS_ON = 1, ///< Светодиод включен
    -
    77 LED_IS_BLINKING = 2, ///< Моргание светодиодом
    -
    78 LED_IS_FADING = 3, ///< Плавное моргание светодиодом
    - +
    75
    +
    76
    +
    77/**
    +
    78 * @brief Режимы работы светодиода
    +
    79 * @ingroup MYLIBS_GPIO_LEDS
    +
    80 */
    +
    +
    81typedef enum
    +
    82{
    +
    83 LED_IS_OFF = 0, ///< Светодиод выключен
    +
    84 LED_IS_ON = 1, ///< Светодиод включен
    +
    85 LED_IS_BLINKING = 2, ///< Моргание светодиодом
    +
    86 LED_IS_FADING = 3, ///< Плавное моргание светодиодом
    +
    -
    80
    -
    81/**
    -
    82 * @brief Структура светодиода
    -
    83 * @ingroup GPIO_LEDS
    -
    84 */
    -
    -
    85typedef struct
    -
    86{
    -
    87 GPIO_LEDStateTypeDef state; ///< Текущий режим работы светодиода
    -
    88
    -
    89 GPIO_TypeDef *LED_Port; ///< GPIO порт ножки светодиода
    -
    90 uint32_t LED_Pin; ///< GPIO пин ножки светодиода
    -
    91
    -
    92 uint8_t LED_ActiveLvl; ///< Активный уровень ножки (при котором светодиод горит)
    -
    93 uint32_t LED_Period; ///< Период моргания светодиода
    -
    94
    -
    95 uint32_t tickprev;///< Период моргания светодиода
    - +
    88
    +
    89/**
    +
    90 * @brief Структура светодиода
    +
    91 * @ingroup MYLIBS_GPIO_LEDS
    +
    92 */
    +
    +
    93typedef struct
    +
    94{
    +
    95 GPIO_LEDStateTypeDef state; ///< Текущий режим работы светодиода
    +
    96
    +
    97 GPIO_TypeDef *LED_Port; ///< GPIO порт ножки светодиода
    +
    98 uint32_t LED_Pin; ///< GPIO пин ножки светодиода
    +
    99
    +
    100 uint8_t LED_ActiveLvl; ///< Активный уровень ножки (при котором светодиод горит)
    +
    101 uint32_t LED_Period; ///< Период моргания светодиода
    +
    102
    +
    103 uint32_t tickprev;
    +
    -
    97
    -
    98/**
    -
    99 * @brief Структура кнопки
    -
    100 * @ingroup GPIO_SWITCH
    -
    101 */
    -
    -
    102typedef struct
    -
    103{
    -
    104 GPIO_TypeDef *Sw_Port; ///< GPIO порт ножки кнопки
    -
    105 uint32_t Sw_Pin; ///< GPIO пин ножки кнопки
    -
    106
    -
    107 uint8_t Sw_ActiveLvl; ///< Активный уровень ножки (при котором кнопка нажата)
    -
    108 uint32_t Sw_PrevState; ///< Предыдущее состояние кнопки
    -
    109 uint32_t Sw_FilterDelay; ///< Фильтр от дребезга (в мс)
    -
    110
    -
    111 uint32_t tickprev;///< Период моргания светодиода
    - +
    105
    +
    106/**
    +
    107 * @brief Структура кнопки
    +
    108 * @ingroup MYLIBS_GPIO_SWITCH
    +
    109 */
    +
    +
    110typedef struct
    +
    111{
    +
    112 GPIO_TypeDef *Sw_Port; ///< GPIO порт ножки кнопки
    +
    113 uint32_t Sw_Pin; ///< GPIO пин ножки кнопки
    +
    114
    +
    115 uint8_t Sw_ActiveLvl; ///< Активный уровень ножки (при котором кнопка нажата)
    +
    116 uint32_t Sw_PrevState; ///< Предыдущее состояние кнопки
    +
    117 uint32_t Sw_FilterDelay; ///< Фильтр от дребезга (в мс)
    +
    118
    +
    119 uint32_t tickprev;
    +
    -
    113
    -
    114
    -
    115/////////////////////////////////////////////////////////////////////
    -
    116///////////////////////////---FUNCTIONS---///////////////////////////
    -
    117/**
    -
    118 * @addtogroup GPIO_GENERAL General tools
    -
    119 * @ingroup MY_LIBS_GPIO
    -
    120 * @brief Общие функции/макросы для работы с GPIO
    -
    121 * @{
    -
    122 */
    -
    123
    -
    124HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx);
    -
    125
    -
    126/** GPIO_GENERAL
    -
    127 * @}
    -
    128 */
    -
    129
    -
    130/**
    -
    131* @addtogroup GPIO_SWITCH Switch tools
    -
    132* @ingroup MY_LIBS_GPIO
    -
    133* @brief Функции для работы с GPIO, как с кнопкой
    -
    134* @{
    -
    135*/
    -
    136
    -
    137/* Инициализировать кнопку (структуру кнопки) */
    -
    138HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State);
    -
    139/* Считать состоянии кнопки запуска */
    -
    140uint8_t GPIO_Read_Switch(GPIO_SwitchTypeDef *swstart);
    -
    141
    -
    142/** GPIO_SWITCH
    -
    143 * @}
    -
    144 */
    -
    145
    -
    146
    -
    147/**
    -
    148 * @addtogroup GPIO_LEDS LED tools
    -
    149 * @ingroup MY_LIBS_GPIO
    -
    150 * @brief Функции для работы с GPIO, для управления светодиодом
    -
    151 * @{
    +
    121
    +
    122
    +
    123/////////////////////////////////////////////////////////////////////
    +
    124///////////////////////////---FUNCTIONS---///////////////////////////
    +
    125/**
    +
    126 * @addtogroup MYLIBS_GPIO_GENERAL General tools
    +
    127 * @ingroup MY_LIBS_GPIO
    +
    128 * @brief Общие функции/макросы для работы с GPIO
    +
    129 * @{
    +
    130 */
    +
    131
    +
    132HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx);
    +
    133
    +
    134/** MYLIBS_GPIO_GENERAL
    +
    135 * @}
    +
    136 */
    +
    137
    +
    138/**
    +
    139* @addtogroup MYLIBS_GPIO_SWITCH Switch tools
    +
    140* @ingroup MY_LIBS_GPIO
    +
    141* @brief Функции для работы с GPIO, как с кнопкой
    +
    142* @{
    +
    143*/
    +
    144
    +
    145/* Инициализировать кнопку (структуру кнопки) */
    +
    146HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State);
    +
    147/* Считать состоянии кнопки запуска */
    + +
    149
    +
    150/** MYLIBS_GPIO_SWITCH
    +
    151 * @}
    152 */
    153
    -
    154/* Инициализировать светодиод (структуру светодиода) */
    -
    155HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State);
    -
    156/* Включить светодиод */
    -
    157HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led);
    -
    158/* Выключить светодиод */
    -
    159HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led);
    -
    160/* Выставить светодиод по переменной */
    -
    161HAL_StatusTypeDef GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state);
    -
    162/* Активировать моргание светодиодом */
    -
    163HAL_StatusTypeDef GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period);
    -
    164/* Активировать моргание светодиодом */
    -
    165HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period);
    -
    166/* Управление динамическими режимами свечения светодиода */
    - -
    168
    -
    169/** GPIO_LEDS
    -
    170 * @}
    -
    171 */
    -
    172///////////////////////////---FUNCTIONS---///////////////////////////
    -
    173
    -
    174
    -
    175#endif // __GPIO_GENERAL_H_
    -
    HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
    Включить тактирование порта GPIO.
    -
    HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)
    Включить светодиод
    -
    HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)
    Активировать моргание светодиодом
    -
    GPIO_LEDStateTypeDef
    Режимы работы светодиода
    -
    HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led)
    Выключить светодиод
    -
    HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State)
    Инициализировать светодиод (структуру светодиода)
    -
    void GPIO_LED_Dynamic_Handle(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)
    Активировать моргание светодиодом
    -
    @ LED_IS_BLINKING
    Моргание светодиодом
    -
    @ LED_IS_OFF
    Светодиод выключен
    -
    @ LED_IS_FADING
    Плавное моргание светодиодом
    -
    @ LED_IS_ON
    Светодиод включен
    -
    uint8_t 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)
    Инициализировать кнопку (структуру кнопки)
    +
    154
    +
    155/**
    +
    156 * @addtogroup MYLIBS_GPIO_LEDS LED tools
    +
    157 * @ingroup MY_LIBS_GPIO
    +
    158 * @brief Функции для работы с GPIO, для управления светодиодом
    +
    159 * @{
    +
    160 */
    +
    161
    +
    162/* Инициализировать светодиод (структуру светодиода) */
    +
    163HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State);
    +
    164/* Включить светодиод */
    +
    165HAL_StatusTypeDef GPIO_LED_On (GPIO_LEDTypeDef *led);
    +
    166/* Выключить светодиод */
    +
    167HAL_StatusTypeDef GPIO_LED_Off (GPIO_LEDTypeDef *led);
    +
    168/* Выставить светодиод по переменной */
    +
    169HAL_StatusTypeDef GPIO_LED_Set (GPIO_LEDTypeDef *led, uint8_t led_state);
    +
    170/* Активировать моргание светодиодом */
    +
    171HAL_StatusTypeDef GPIO_LED_Blink_Start (GPIO_LEDTypeDef *led, uint32_t period);
    +
    172/* Активировать моргание светодиодом */
    +
    173HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period);
    +
    174/* Управление динамическими режимами свечения светодиода */
    + +
    176
    +
    177/** MYLIBS_GPIO_LEDS
    +
    178 * @}
    +
    179 */
    +
    180///////////////////////////---FUNCTIONS---///////////////////////////
    +
    181
    +
    182
    +
    183#endif // __GPIO_GENERAL_H_
    +
    HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)
    Включить тактирование порта GPIO.
    +
    HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)
    Включить светодиод
    +
    HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)
    Активировать моргание светодиодом
    +
    GPIO_LEDStateTypeDef
    Режимы работы светодиода
    +
    HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led)
    Выключить светодиод
    +
    HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State)
    Инициализировать светодиод (структуру светодиода)
    +
    void GPIO_LED_Dynamic_Handle(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)
    Активировать моргание светодиодом
    +
    @ LED_IS_BLINKING
    Моргание светодиодом
    +
    @ LED_IS_OFF
    Светодиод выключен
    +
    @ LED_IS_FADING
    Плавное моргание светодиодом
    +
    @ LED_IS_ON
    Светодиод включен
    +
    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)
    Инициализировать кнопку (структуру кнопки)
    Заголочный файл для дефайнов библиотеки MyLibsGeneral.
    -
    Структура светодиода
    -
    uint32_t LED_Pin
    GPIO пин ножки светодиода
    -
    uint32_t LED_Period
    Период моргания светодиода
    -
    GPIO_TypeDef * LED_Port
    GPIO порт ножки светодиода
    -
    uint32_t tickprev
    Период моргания светодиода
    -
    uint8_t LED_ActiveLvl
    Активный уровень ножки (при котором светодиод горит)
    -
    GPIO_LEDStateTypeDef state
    Текущий режим работы светодиода
    -
    Структура кнопки
    -
    uint32_t tickprev
    Период моргания светодиода
    -
    uint32_t Sw_PrevState
    Предыдущее состояние кнопки
    -
    uint32_t Sw_FilterDelay
    Фильтр от дребезга (в мс)
    -
    uint8_t Sw_ActiveLvl
    Активный уровень ножки (при котором кнопка нажата)
    -
    uint32_t Sw_Pin
    GPIO пин ножки кнопки
    -
    GPIO_TypeDef * Sw_Port
    GPIO порт ножки кнопки
    +
    Структура светодиода
    +
    uint32_t LED_Pin
    GPIO пин ножки светодиода
    +
    uint32_t LED_Period
    Период моргания светодиода
    +
    GPIO_TypeDef * LED_Port
    GPIO порт ножки светодиода
    +
    uint8_t LED_ActiveLvl
    Активный уровень ножки (при котором светодиод горит)
    +
    GPIO_LEDStateTypeDef state
    Текущий режим работы светодиода
    +
    Структура кнопки
    +
    uint32_t Sw_PrevState
    Предыдущее состояние кнопки
    +
    uint32_t Sw_FilterDelay
    Фильтр от дребезга (в мс)
    +
    uint8_t Sw_ActiveLvl
    Активный уровень ножки (при котором кнопка нажата)
    +
    uint32_t Sw_Pin
    GPIO пин ножки кнопки
    +
    GPIO_TypeDef * Sw_Port
    GPIO порт ножки кнопки
    diff --git a/Doc/html/general__tim_8c.html b/Doc/html/general__tim_8c.html new file mode 100644 index 0000000..bc889a7 --- /dev/null +++ b/Doc/html/general__tim_8c.html @@ -0,0 +1,182 @@ + + + + + + + +MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_tim.c File Reference + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    MyLibs 1.0 +
    +
    Расширенные библиотеки для STM32
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    general_tim.c File Reference
    +
    +
    + +

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

    +
    #include "general_tim.h"
    +
    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

    +

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

    +

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

      +
    • Инициализация таймера и его каналов
    • +
    • Формирование задержек через таймеры
    • +
    • Считывание энкодера
    • +
    + +

    Definition in file general_tim.c.

    +
    +
    + +
    + + + + diff --git a/Doc/html/general__tim_8c.js b/Doc/html/general__tim_8c.js new file mode 100644 index 0000000..ae02dd9 --- /dev/null +++ b/Doc/html/general__tim_8c.js @@ -0,0 +1,14 @@ +var general__tim_8c = +[ + [ "TIM_Base_Init", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec", null ], + [ "TIM_Encoder_Init", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc", null ], + [ "TIM_Output_PWM_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6", null ], + [ "TIM_OC_Comparator_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889", null ], + [ "TIM_Encoder_Read", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501", null ], + [ "TIM_Encoder_ReadSwitch", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761", null ], + [ "TIM_Delay", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e", null ], + [ "TIM_Delay_Start", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834", null ], + [ "TIM_Delay_NonBlocking", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b", null ], + [ "TIM_Base_MspInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931", null ], + [ "TIM_Base_MspDeInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115", null ] +]; \ No newline at end of file diff --git a/Doc/html/general__tim_8c__incl.map b/Doc/html/general__tim_8c__incl.map new file mode 100644 index 0000000..1096c09 --- /dev/null +++ b/Doc/html/general__tim_8c__incl.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Doc/html/general__tim_8c__incl.md5 b/Doc/html/general__tim_8c__incl.md5 new file mode 100644 index 0000000..b3c8500 --- /dev/null +++ b/Doc/html/general__tim_8c__incl.md5 @@ -0,0 +1 @@ +b9386d564e6b4fd6c35f93b0536b2339 \ No newline at end of file diff --git a/Doc/html/general__tim_8c__incl.png b/Doc/html/general__tim_8c__incl.png new file mode 100644 index 0000000..616abfe Binary files /dev/null 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 new file mode 100644 index 0000000..09759d2 --- /dev/null +++ b/Doc/html/general__tim_8c_source.html @@ -0,0 +1,900 @@ + + + + + + + +MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Src/general_tim.c Source File + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    MyLibs 1.0 +
    +
    Расширенные библиотеки для STM32
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    general_tim.c
    +
    +
    +Go to the documentation of this file.
    1/**
    +
    2**************************************************************************
    +
    3* @file general_tim.c
    +
    4* @brief Модуль для инициализации таймеров и работы с ними.
    +
    5**************************************************************************
    +
    6Реализация функций для работы с TIM:
    +
    7 - Инициализация таймера и его каналов
    +
    8 - Формирование задержек через таймеры
    +
    9 - Считывание энкодера
    +
    10*************************************************************************/
    +
    11#include "general_tim.h"
    +
    12
    +
    13//-------------------------------------------------------------------
    +
    14//-------------------------TIM INIT FUNCTIONS------------------------
    +
    15/**
    +
    16 * @brief Инициализация таймера.
    +
    17 * @param stim Указатель на структуру с настройками таймера.
    +
    18 * @return HAL status.
    +
    19 * @details
    +
    20 * Инициализирует таймер исходя из настроек верхнего уровня:
    +
    21 * - Длительность одного тика @ref TIM_MHzTickBaseTypeDef
    +
    22 * - Частота таймера (в Гц, float)
    +
    23 * - Частота тактирования таймера от шины (в Гц, float)
    +
    24 *
    +
    25 * При невозможности выставления частоты при заданой длительности тика
    +
    26 * длительность тика увеличивается до тех пор, пока частота не будет достигнута.
    +
    27 *
    +
    28 * При выставлении дефайна @ref UPDATE_TIM_PARAMS_AFTER_INITIALIZATION
    +
    29 * новая длительность тика записывается в структуру.
    +
    30 *
    +
    31 * Также остается возможность низкоуровневой настройки по структурам @ref TIM_SettingsTypeDef.
    +
    32 * Для этого надо высокоуровневые настройки приравнять к нулю
    +
    33 */
    +
    +
    34HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)
    +
    35{ // function takes structure for init
    +
    36 // check that htim is defined
    +
    37 if(check_null_ptr_2(stim, stim->htim.Instance))
    +
    38 return HAL_ERROR;
    +
    39
    +
    40
    +
    41
    +
    42 if(stim->sTickBaseUS) // if tickbase isnt disable
    +
    43 {
    +
    44 if(stim->sTimAHBFreqMHz == NULL)
    +
    45 return HAL_ERROR;
    +
    46 stim->htim.Init.Prescaler = (stim->sTimAHBFreqMHz*stim->sTickBaseUS) - 1;
    +
    47
    +
    48 if ((stim->sTimFreqHz != NULL))
    +
    49 stim->htim.Init.Period = ((1000000/stim->sTickBaseUS) / stim->sTimFreqHz) - 1;
    +
    50 else if (stim->htim.Init.Period == NULL)
    +
    51 stim->htim.Init.Period = 0xFFFF;
    +
    52
    +
    53 if(stim->sTickBasePrescaler)
    +
    54 {
    +
    55 stim->htim.Init.Prescaler = (stim->htim.Init.Prescaler + 1)/stim->sTickBasePrescaler - 1;
    +
    56 stim->htim.Init.Period = (stim->htim.Init.Period + 1)*stim->sTickBasePrescaler - 1;
    +
    57 }
    +
    58 else
    +
    59 stim->sTickBasePrescaler = 1;
    +
    60 }
    +
    61
    +
    62 // fix overflow of presc and period if need
    +
    63 for(int i = 0; (stim->htim.Init.Prescaler > 0xFFFF) || (stim->htim.Init.Period > 0xFFFF); i++)
    +
    64 {
    +
    65 if (i>10) // if it isnt fixed after 10 itteration - return HAL_ERRPOR
    +
    66 {
    +
    67 return HAL_ERROR;
    +
    68 }
    +
    69
    +
    70 // if timbase is too big (prescaller too big for choosen base from MHZ)
    +
    71 if(stim->htim.Init.Prescaler > 0xFFFF)
    +
    72 {
    +
    73 // переносим часть пресскалера в период
    +
    74 stim->htim.Init.Prescaler = ((stim->htim.Init.Prescaler + 1)/2) - 1;
    +
    75 stim->htim.Init.Period = ((stim->htim.Init.Period + 1)*2) - 1;
    +
    76 // обновляем TickBase, если есть куда обновлять
    +
    77 if(stim->sTickBaseUS > 1)
    +
    78 stim->sTickBaseUS /= 2;
    +
    79 // обновляем sTickBasePrescaler, если sTickBaseUS - уже в минимуме
    +
    80 else if (stim->sTickBaseUS == 1)
    +
    81 stim->sTickBasePrescaler *= 2;
    +
    82 else // if TickBase = 0 - return error
    +
    83 return HAL_ERROR;
    +
    84 }
    +
    85 // if freq is too low (period too big for choosen base)
    +
    86 if(stim->htim.Init.Period > 0xFFFF)
    +
    87 {
    +
    88 // переносим часть периода в прескалер
    +
    89 stim->htim.Init.Period = ((stim->htim.Init.Period + 1)/2) - 1;
    +
    90 stim->htim.Init.Prescaler = ((stim->htim.Init.Prescaler + 1)*2) - 1;
    +
    91 // обновляем TickBase
    +
    92 stim->sTickBaseUS *= 2;
    +
    93 }
    +
    94 }
    +
    95
    +
    96 //-------------TIM BASE INIT----------------
    +
    97 // tim base init
    +
    98 TIM_Base_MspInit(&stim->htim, stim->sTimMode);
    +
    99 if (HAL_TIM_Base_Init(&stim->htim) != HAL_OK)
    +
    100 {
    + +
    102 return HAL_ERROR;
    +
    103 }
    +
    104
    +
    105 //-------------CLOCK SRC INIT---------------
    +
    106 // fill sClockSourceConfig if its NULL
    +
    107 if (stim->sClockSourceConfig.ClockSource == NULL)
    +
    108 stim->sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
    +
    109 // clock source init
    +
    110 if (HAL_TIM_ConfigClockSource(&stim->htim, &stim->sClockSourceConfig) != HAL_OK)
    +
    111 {
    + +
    113 return HAL_ERROR;
    +
    114 }
    +
    115
    +
    116 //--------------SLAVE INIT------------------
    +
    117 // if slave mode enables - config it
    +
    118 if (stim->sSlaveConfig.SlaveMode)
    +
    119 {
    +
    120 // slave mode init
    +
    121 if (HAL_TIM_SlaveConfigSynchro(&stim->htim, &stim->sSlaveConfig) != HAL_OK)
    +
    122 {
    + +
    124 return HAL_ERROR;
    +
    125 }
    +
    126 }
    +
    127 //--------------MASTER INIT-----------------
    +
    128 // master mode init
    +
    129 if (HAL_TIMEx_MasterConfigSynchronization(&stim->htim, &stim->sMasterConfig) != HAL_OK)
    +
    130 {
    + +
    132 return HAL_ERROR;
    +
    133 }
    +
    134
    +
    135 //--------------BDTR INIT-----------------
    +
    136 if (HAL_TIMEx_ConfigBreakDeadTime(&stim->htim, &stim->sBreakDeadTimeConfig) != HAL_OK)
    +
    137 {
    + +
    139 return HAL_ERROR;
    +
    140 }
    +
    141
    +
    142 //----------------IT CLEAR-------------------
    +
    143 __HAL_TIM_CLEAR_IT(&stim->htim, TIM_IT_UPDATE);
    +
    144
    +
    145
    +
    146 // обновляем TickBase
    +
    147 #ifdef UPDATE_TIM_PARAMS_AFTER_INITIALIZATION
    +
    148 stim->sTickBaseUS = (stim->htim.Instance->PSC+1)*stim->sTickBasePrescaler/(stim->sTimAHBFreqMHz);
    +
    149 if(stim->sTickBaseUS == 0) // if prescaler is too high
    +
    150 { // recalc what is prescaler irl
    +
    151 stim->sTickBaseUS = 1;
    +
    152 stim->sTickBasePrescaler = stim->sTimAHBFreqMHz/(stim->htim.Instance->PSC+1);
    +
    153 }
    +
    154 #endif
    +
    155 stim->htim.Instance->CNT = 0;
    +
    156 return HAL_OK;
    +
    157}
    +
    +
    158
    +
    159
    +
    160
    +
    161/**
    +
    162 * @brief Инициализация режима энкодер у таймера.
    +
    163 * @param henc Указатель на хендл энкодера.
    +
    164 * @param htim Указатель на хендл таймера.
    +
    165 * @return HAL status.
    +
    166 * @note Предварительно надо инициализировать таймер @ref TIM_Base_Init.
    +
    167 */
    +
    +
    168HAL_StatusTypeDef TIM_Encoder_Init(TIM_EncoderTypeDef *henc, TIM_HandleTypeDef *htim)
    +
    169{
    +
    170 if(check_null_ptr_3(henc, htim, htim->Instance))
    +
    171 return HAL_ERROR;
    +
    172 if(check_null_ptr_3(henc->GPIOx, henc->GPIO_PIN_TI1, henc->GPIO_PIN_TI2))
    +
    173 return HAL_ERROR;
    +
    174
    +
    175 GPIO_InitTypeDef GPIO_InitStruct = {0};
    +
    176 HAL_StatusTypeDef RES = HAL_ERROR;
    +
    177 henc->htim = htim;
    +
    178
    +
    179 // setup channel for pwm
    +
    180 RES = HAL_TIM_Encoder_Init(henc->htim, &henc->sConfig);
    +
    181 if (RES != HAL_OK)
    +
    182 {
    + +
    184 return RES;
    +
    185 }
    +
    186 // choose port for enable clock
    +
    187 RES = GPIO_Clock_Enable(henc->GPIOx);
    +
    188 if(RES != HAL_OK)
    +
    189 {
    + +
    191 return RES;
    +
    192 }
    +
    193
    +
    194 GPIO_InitStruct.Pin = henc->GPIO_PIN_TI1|henc->GPIO_PIN_TI2;
    +
    195 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    +
    196 GPIO_InitStruct.Pull = GPIO_PULLUP;
    +
    197 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    +
    198 GPIO_InitStruct.Alternate = GPIO_TIM_Alternate_Mapping(henc->htim->Instance);
    +
    199 if(GPIO_InitStruct.Alternate)
    +
    200 HAL_GPIO_Init(henc->GPIOx, &GPIO_InitStruct);
    +
    201
    +
    202 if(henc->GPIO_PIN_SW)
    +
    203 {
    +
    204 /*Configure switch pin */
    +
    205 GPIO_InitStruct.Pin = henc->GPIO_PIN_SW;
    +
    206 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    +
    207 GPIO_InitStruct.Pull = GPIO_PULLUP;
    +
    208 HAL_GPIO_Init(henc->GPIOx, &GPIO_InitStruct);
    +
    209
    +
    210 GPIO_Switch_Init(&henc->Sw, henc->GPIOx, henc->GPIO_PIN_SW, 0);
    +
    211 }
    +
    212
    +
    213 return HAL_OK;
    +
    214}
    +
    +
    215
    +
    216/**
    +
    217 * @brief Инициализация выхода ШИМ таймера.
    +
    218 * @param htim Указатель на хендл таймера.
    +
    219 * @param sConfigOC Указатель на настрйоки канала таймера.
    +
    220 * @param TIM_CHANNEL Канал таймера для настройки.
    +
    221 * @param GPIOx Порт для вывода ШИМ.
    +
    222 * @param GPIO_PIN Пин для вывода ШИМ.
    +
    223 * @return HAL status.
    +
    224 * @note Предварительно надо инициализировать таймер @ref TIM_Base_Init.
    +
    225 */
    +
    +
    226HAL_StatusTypeDef TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN)
    +
    227{
    +
    228 if(check_null_ptr_3(htim, htim->Instance, sConfigOC))
    +
    229 return HAL_ERROR;
    +
    230 if(check_null_ptr_2(GPIOx, GPIO_PIN))
    +
    231 return HAL_ERROR;
    +
    232
    +
    233 GPIO_InitTypeDef GPIO_InitStruct = {0};
    +
    234 HAL_StatusTypeDef RES = HAL_ERROR;
    +
    235
    +
    236 // setup channel for pwm
    +
    237 RES = HAL_TIM_PWM_ConfigChannel(htim, sConfigOC, TIM_CHANNEL);
    +
    238 if (RES != HAL_OK)
    +
    239 {
    + +
    241 return RES;
    +
    242 }
    +
    243 // choose port for enable clock
    +
    244 RES = GPIO_Clock_Enable(GPIOx);
    +
    245 if(RES != HAL_OK)
    +
    246 {
    + +
    248 return RES;
    +
    249 }
    +
    250
    +
    251 GPIO_InitStruct.Pin = GPIO_PIN;
    +
    252 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    +
    253 if(sConfigOC->OCPolarity == TIM_OCNPOLARITY_HIGH)
    +
    254 GPIO_InitStruct.Pull = GPIO_PULLDOWN;
    +
    255 else
    +
    256 GPIO_InitStruct.Pull = GPIO_PULLUP;
    +
    257 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    +
    258 GPIO_InitStruct.Alternate = GPIO_TIM_Alternate_Mapping(htim->Instance);
    +
    259 if(GPIO_InitStruct.Alternate)
    +
    260 HAL_GPIO_Init(GPIOx, &GPIO_InitStruct);
    +
    261
    +
    262 return HAL_OK;
    +
    263}
    +
    +
    264
    +
    265/**
    +
    266 * @brief Инициализация OC компаратора таймера.
    +
    267 * @param htim Указатель на хендл таймера.
    +
    268 * @param TIM_CHANNEL Канал таймера для настройки.
    +
    269 * @return HAL status.
    +
    270 * @note Предварительно надо инициализировать таймер @ref TIM_Base_Init.
    +
    271 */
    +
    +
    272HAL_StatusTypeDef TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)
    +
    273{
    +
    274 if(check_null_ptr_2(htim, htim->Instance))
    +
    275 return HAL_ERROR;
    +
    276
    +
    277 TIM_OC_InitTypeDef sConfigOC = {0};
    +
    278 HAL_StatusTypeDef RES = HAL_ERROR;
    +
    279
    +
    280 sConfigOC.OCMode = TIM_OCMODE_ACTIVE;
    +
    281 sConfigOC.Pulse = 0;
    +
    282 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
    +
    283
    +
    284 RES = HAL_TIM_OC_ConfigChannel(htim, &sConfigOC, TIM_CHANNEL);
    +
    285 if (RES != HAL_OK)
    +
    286 {
    + +
    288 return RES;
    +
    289 }
    +
    290 return RES;
    +
    291}
    +
    +
    292
    +
    293
    +
    294//-------------------------------------------------------------------
    +
    295//-------------------------TIM USER FUNCTIONS------------------------
    +
    296/**
    +
    297 * @brief Считать энкодер.
    +
    298 * @param henc Указатель на хендл энкодера.
    +
    299 * @return HAL status.
    +
    300 * @details Читает разницу энкодера, которую он накопил после
    +
    301 * предыдущего вызова этой функции.
    +
    302 */
    +
    +
    303HAL_StatusTypeDef TIM_Encoder_Read(TIM_EncoderTypeDef *henc)
    +
    304{
    +
    305 if(check_null_ptr_3(henc, henc->htim, henc->htim->Instance))
    +
    306 return HAL_ERROR;
    +
    307
    +
    308 uint16_t cnt_now = (uint16_t)henc->htim->Instance->CNT;
    +
    309 int16_t diff = (int16_t)(cnt_now - henc->Encoder_Shdw); // переполнение корректно обрабатывается
    +
    310 henc->Encoder_Diff = diff;
    +
    311 henc->Encoder_Shdw = cnt_now;
    +
    312
    +
    313 return HAL_OK;
    +
    314}
    +
    +
    315/**
    +
    316 * @brief Считать кнопку энкодера.
    +
    317 * @param henc Указатель на хендл энкодера.
    +
    318 * @return 1 - если кнопка нажата,
    +
    319 * 0 - если отжата,
    +
    320 * -1 - если ошибка
    +
    321 */
    +
    + +
    323{
    +
    324 if(check_null_ptr_1(henc))
    +
    325 return -1;
    +
    326
    +
    327 return GPIO_Read_Switch(&henc->Sw);
    +
    328}
    +
    +
    329
    +
    330/**
    +
    331 * @brief Задержка в тиках таймера (блокирующая).
    +
    332 * @param htim Указатель на хендл таймера.
    +
    333 * @param delay Задержка в тиках таймера.
    +
    334 * @return HAL status.
    +
    335 * @details Формирует задержку с блокировкой программы.
    +
    336 */
    +
    +
    337HAL_StatusTypeDef TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay)
    +
    338{
    +
    339 if(check_null_ptr_2(htim, htim->Instance))
    +
    340 return HAL_ERROR;
    +
    341
    +
    342 if(delay >= htim->Instance->ARR)
    +
    343 {
    +
    344 return HAL_ERROR;
    +
    345 }
    +
    346 htim->Instance->CNT = 0;
    +
    347 while(1)
    +
    348 {
    +
    349 if(htim->Instance->CNT > delay)
    +
    350 {
    +
    351 return HAL_OK;
    +
    352 }
    +
    353 }
    +
    354}
    +
    +
    355
    +
    356/**
    +
    357 * @brief Начать отсчет неблокирующей задержки.
    +
    358 * @param htim Указатель на хендл таймера.
    +
    359 * @return HAL status.
    +
    360 * @details Сбрасывает счетчик для начала отсчета неблокирующей задержки.
    +
    361 * @ref TIM_Delay_NonBlocking для проверки статуса задержки
    +
    362 */
    +
    +
    363HAL_StatusTypeDef TIM_Delay_Start(TIM_HandleTypeDef *htim)
    +
    364{
    +
    365 if(check_null_ptr_2(htim, htim->Instance))
    +
    366 return HAL_ERROR;
    +
    367
    +
    368 htim->Instance->CNT = 0;
    +
    369
    +
    370 return HAL_OK;
    +
    371}
    +
    +
    372
    +
    373/**
    +
    374 * @brief Задержка в тиках таймера (неблокирующая).
    +
    375 * @param htim Указатель на хендл таймера.
    +
    376 * @param delay Задержка в тиках таймера.
    +
    377 * @return HAL status.
    +
    378 * @details Формирует задержку с блокировкой программы.
    +
    379 * Перед ожиданием задержки надо запутстить таймер @ref TIM_Delay_Start
    +
    380 * @note Таймер не должен использоваться на время этой задержки
    +
    381 */
    +
    +
    382HAL_StatusTypeDef TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay)
    +
    383{
    +
    384 if(check_null_ptr_2(htim, htim->Instance))
    +
    385 return HAL_ERROR;
    +
    386
    +
    387 if(delay >= htim->Instance->ARR)
    +
    388 {
    +
    389 return HAL_ERROR;
    +
    390 }
    +
    391
    +
    392 if(htim->Instance->CNT <= delay)
    +
    393 {
    +
    394 return HAL_BUSY;
    +
    395 }
    +
    396 else
    +
    397 {
    +
    398 return HAL_OK;
    +
    399 }
    +
    400}
    +
    +
    401
    +
    402/**
    +
    403 * @brief Инициализация CLK и NVIC таймеров.
    +
    404 * @param htim Указатель на хендл таймера.
    +
    405 * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых таймеров,
    +
    406 дефайнами в general_tim.h определяются используемые таймеры.
    +
    407 */
    +
    +
    408void TIM_Base_MspInit(TIM_HandleTypeDef* htim, TIM_ITModeTypeDef it_mode)
    +
    409{
    +
    410 if(check_null_ptr_2(htim, htim->Instance))
    +
    411 return;
    +
    412
    +
    413 it_mode = it_mode&TIM_IT_CONF;
    +
    414#ifdef USE_TIM1
    +
    415 if(htim->Instance==TIM1)
    +
    416 {
    +
    417 /* TIM2 clock enable */
    +
    418 __HAL_RCC_TIM1_CLK_ENABLE();
    +
    419
    +
    420 /* TIM2 interrupt Init */
    +
    421 if(it_mode)
    +
    422 {
    +
    423 HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);
    +
    424 HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);
    +
    425 }
    +
    426 }
    +
    427#endif
    +
    428#ifdef USE_TIM2
    +
    429 if(htim->Instance==TIM2)
    +
    430 {
    +
    431 /* TIM2 clock enable */
    +
    432 __HAL_RCC_TIM2_CLK_ENABLE();
    +
    433
    +
    434 /* TIM2 interrupt Init */
    +
    435 if(it_mode)
    +
    436 {
    +
    437 HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
    +
    438 HAL_NVIC_EnableIRQ(TIM2_IRQn);
    +
    439 }
    +
    440 }
    +
    441#endif
    +
    442#ifdef USE_TIM3
    +
    443 if(htim->Instance==TIM3)
    +
    444 {
    +
    445 /* TIM3 clock enable */
    +
    446 __HAL_RCC_TIM3_CLK_ENABLE();
    +
    447
    +
    448 /* TIM3 interrupt Init */
    +
    449 if(it_mode)
    +
    450 {
    +
    451 HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
    +
    452 HAL_NVIC_EnableIRQ(TIM3_IRQn);
    +
    453 }
    +
    454 }
    +
    455#endif
    +
    456#ifdef USE_TIM4
    +
    457 if(htim->Instance==TIM4)
    +
    458 {
    +
    459 /* TIM4 clock enable */
    +
    460 __HAL_RCC_TIM4_CLK_ENABLE();
    +
    461
    +
    462 /* TIM4 interrupt Init */
    +
    463 if(it_mode)
    +
    464 {
    +
    465 HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0);
    +
    466 HAL_NVIC_EnableIRQ(TIM4_IRQn);
    +
    467 }
    +
    468 }
    +
    469#endif
    +
    470#ifdef USE_TIM5
    +
    471 if(htim->Instance==TIM5)
    +
    472 {
    +
    473 /* TIM5 clock enable */
    +
    474 __HAL_RCC_TIM5_CLK_ENABLE();
    +
    475
    +
    476 /* TIM5 interrupt Init */
    +
    477 if(it_mode)
    +
    478 {
    +
    479 HAL_NVIC_SetPriority(TIM5_IRQn, 0, 0);
    +
    480 HAL_NVIC_EnableIRQ(TIM5_IRQn);
    +
    481 }
    +
    482 }
    +
    483#endif
    +
    484#ifdef USE_TIM6
    +
    485 if(htim->Instance==TIM6)
    +
    486 {
    +
    487 /* TIM6 clock enable */
    +
    488 __HAL_RCC_TIM6_CLK_ENABLE();
    +
    489
    +
    490 /* TIM6 interrupt Init */
    +
    491 if(it_mode)
    +
    492 {
    +
    493 HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);
    +
    494 HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
    +
    495 }
    +
    496 }
    +
    497#endif
    +
    498#ifdef USE_TIM7
    +
    499 if(htim->Instance==TIM7)
    +
    500 {
    +
    501 /* TIM7 clock enable */
    +
    502 __HAL_RCC_TIM7_CLK_ENABLE();
    +
    503
    +
    504 /* TIM7 interrupt Init */
    +
    505 if(it_mode)
    +
    506 {
    +
    507 HAL_NVIC_SetPriority(TIM7_IRQn, 0, 0);
    +
    508 HAL_NVIC_EnableIRQ(TIM7_IRQn);
    +
    509 }
    +
    510 }
    +
    511#endif
    +
    512#ifdef USE_TIM8
    +
    513 if(htim->Instance==TIM8)
    +
    514 {
    +
    515 /* TIM8 clock enable */
    +
    516 __HAL_RCC_TIM8_CLK_ENABLE();
    +
    517
    +
    518 /* TIM8 interrupt Init */
    +
    519 if(it_mode)
    +
    520 {
    +
    521 HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 0, 0);
    +
    522 HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);
    +
    523 }
    +
    524 }
    +
    525#endif
    +
    526#ifdef USE_TIM9
    +
    527 if(htim->Instance==TIM9)
    +
    528 {
    +
    529 /* TIM9 clock enable */
    +
    530 __HAL_RCC_TIM9_CLK_ENABLE();
    +
    531
    +
    532 /* TIM9 interrupt Init */
    +
    533 if(it_mode)
    +
    534 {
    +
    535 HAL_NVIC_SetPriority(TIM1_BRK_TIM9_IRQn, 0, 0);
    +
    536 HAL_NVIC_EnableIRQ(TIM1_BRK_TIM9_IRQn);
    +
    537 }
    +
    538 }
    +
    539#endif
    +
    540#ifdef USE_TIM10
    +
    541 if(htim->Instance==TIM10)
    +
    542 {
    +
    543 /* TIM10 clock enable */
    +
    544 __HAL_RCC_TIM10_CLK_ENABLE();
    +
    545
    +
    546 /* TIM10 interrupt Init */
    +
    547 if(it_mode)
    +
    548 {
    +
    549 HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);
    +
    550 HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);
    +
    551 }
    +
    552 }
    +
    553#endif
    +
    554#ifdef USE_TIM11
    +
    555 if(htim->Instance==TIM11)
    +
    556 {
    +
    557 /* TIM11 clock enable */
    +
    558 __HAL_RCC_TIM11_CLK_ENABLE();
    +
    559
    +
    560 /* TIM11 interrupt Init */
    +
    561 if(it_mode)
    +
    562 {
    +
    563 HAL_NVIC_SetPriority(TIM1_TRG_COM_TIM11_IRQn, 0, 0);
    +
    564 HAL_NVIC_EnableIRQ(TIM1_TRG_COM_TIM11_IRQn);
    +
    565 }
    +
    566 }
    +
    567#endif
    +
    568#ifdef USE_TIM12
    +
    569 if(htim->Instance==TIM12)
    +
    570 {
    +
    571 /* TIM12 clock enable */
    +
    572 __HAL_RCC_TIM12_CLK_ENABLE();
    +
    573
    +
    574 /* TIM12 interrupt Init */
    +
    575 if(it_mode)
    +
    576 {
    +
    577 HAL_NVIC_SetPriority(TIM8_BRK_TIM12_IRQn, 0, 0);
    +
    578 HAL_NVIC_EnableIRQ(TIM8_BRK_TIM12_IRQn);
    +
    579 }
    +
    580 }
    +
    581#endif
    +
    582#ifdef USE_TIM13
    +
    583 if(htim->Instance==TIM13)
    +
    584 {
    +
    585 /* TIM13 clock enable */
    +
    586 __HAL_RCC_TIM13_CLK_ENABLE();
    +
    587
    +
    588 /* TIM13 interrupt Init */
    +
    589 if(it_mode)
    +
    590 {
    +
    591 HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 0, 0);
    +
    592 HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);
    +
    593 }
    +
    594 }
    +
    595#endif
    +
    596#ifdef USE_TIM14
    +
    597 if(htim->Instance==TIM14)
    +
    598 {
    +
    599 /* TIM14 clock enable */
    +
    600 __HAL_RCC_TIM14_CLK_ENABLE();
    +
    601
    +
    602 /* TIM14 interrupt Init */
    +
    603 if(it_mode)
    +
    604 {
    +
    605 HAL_NVIC_SetPriority(TIM8_TRG_COM_TIM14_IRQn, 0, 0);
    +
    606 HAL_NVIC_EnableIRQ(TIM8_TRG_COM_TIM14_IRQn);
    +
    607 }
    +
    608 }
    +
    609#endif
    +
    610}
    +
    +
    611/**
    +
    612 * @brief Деинициализация CLK и NVIC таймеров.
    +
    613 * @param htim Указатель на хендл таймера.
    +
    614 * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых таймеров,
    +
    615 дефайнами в general_tim.h определяются используемые таймеры.
    +
    616 */
    +
    +
    617void TIM_Base_MspDeInit(TIM_HandleTypeDef* htim)
    +
    618{
    +
    619 if(check_null_ptr_2(htim, htim->Instance))
    +
    620 return;
    +
    621
    +
    622#ifdef USE_TIM1
    +
    623 if(htim->Instance==TIM1)
    +
    624 {
    +
    625 __HAL_RCC_TIM1_FORCE_RESET();
    +
    626 __HAL_RCC_TIM1_RELEASE_RESET();
    +
    627 }
    +
    628#endif
    +
    629#ifdef USE_TIM2
    +
    630 if(htim->Instance==TIM2)
    +
    631 {
    +
    632 __HAL_RCC_TIM2_FORCE_RESET();
    +
    633 __HAL_RCC_TIM2_RELEASE_RESET();
    +
    634 }
    +
    635#endif
    +
    636#ifdef USE_TIM3
    +
    637 if(htim->Instance==TIM3)
    +
    638 {
    +
    639 __HAL_RCC_TIM3_FORCE_RESET();
    +
    640 __HAL_RCC_TIM3_RELEASE_RESET();
    +
    641 }
    +
    642#endif
    +
    643#ifdef USE_TIM4
    +
    644 if(htim->Instance==TIM4)
    +
    645 {
    +
    646 __HAL_RCC_TIM4_FORCE_RESET();
    +
    647 __HAL_RCC_TIM4_RELEASE_RESET();
    +
    648 }
    +
    649#endif
    +
    650#ifdef USE_TIM5
    +
    651 if(htim->Instance==TIM5)
    +
    652 {
    +
    653 __HAL_RCC_TIM5_FORCE_RESET();
    +
    654 __HAL_RCC_TIM5_RELEASE_RESET();
    +
    655 }
    +
    656#endif
    +
    657#ifdef USE_TIM6
    +
    658 if(htim->Instance==TIM6)
    +
    659 {
    +
    660 __HAL_RCC_TIM6_FORCE_RESET();
    +
    661 __HAL_RCC_TIM6_RELEASE_RESET();
    +
    662 }
    +
    663#endif
    +
    664#ifdef USE_TIM7
    +
    665 if(htim->Instance==TIM7)
    +
    666 {
    +
    667 __HAL_RCC_TIM7_FORCE_RESET();
    +
    668 __HAL_RCC_TIM7_RELEASE_RESET();
    +
    669 }
    +
    670#endif
    +
    671#ifdef USE_TIM8
    +
    672 if(htim->Instance==TIM8)
    +
    673 {
    +
    674 __HAL_RCC_TIM8_FORCE_RESET();
    +
    675 __HAL_RCC_TIM8_RELEASE_RESET();
    +
    676 }
    +
    677#endif
    +
    678#ifdef USE_TIM9
    +
    679 if(htim->Instance==TIM9)
    +
    680 {
    +
    681 __HAL_RCC_TIM9_FORCE_RESET();
    +
    682 __HAL_RCC_TIM9_RELEASE_RESET();
    +
    683 }
    +
    684#endif
    +
    685#ifdef USE_TIM10
    +
    686 if(htim->Instance==TIM10)
    +
    687 {
    +
    688 __HAL_RCC_TIM10_FORCE_RESET();
    +
    689 __HAL_RCC_TIM10_RELEASE_RESET();
    +
    690 }
    +
    691#endif
    +
    692#ifdef USE_TIM11
    +
    693 if(htim->Instance==TIM11)
    +
    694 {
    +
    695 __HAL_RCC_TIM11_FORCE_RESET();
    +
    696 __HAL_RCC_TIM11_RELEASE_RESET();
    +
    697 }
    +
    698#endif
    +
    699#ifdef USE_TIM12
    +
    700 if(htim->Instance==TIM12)
    +
    701 {
    +
    702 __HAL_RCC_TIM12_FORCE_RESET();
    +
    703 __HAL_RCC_TIM12_RELEASE_RESET();
    +
    704 }
    +
    705#endif
    +
    706#ifdef USE_TIM13
    +
    707 if(htim->Instance==TIM13)
    +
    708 {
    +
    709 __HAL_RCC_TIM13_FORCE_RESET();
    +
    710 __HAL_RCC_TIM13_RELEASE_RESET();
    +
    711 }
    +
    712#endif
    +
    713#ifdef USE_TIM14
    +
    714 if(htim->Instance==TIM14)
    +
    715 {
    +
    716 __HAL_RCC_TIM14_FORCE_RESET();
    +
    717 __HAL_RCC_TIM14_RELEASE_RESET();
    +
    718 }
    +
    719#endif
    +
    720}
    +
    +
    721//-------------------------TIM INIT FUNCTIONS------------------------
    +
    722//-------------------------------------------------------------------
    +
    Заголовочный файл для модуля инициализации таймеров и работы с ними.
    +
    #define check_null_ptr_2(p1, p2)
    Проверить два указателя на NULL.
    Definition mylibs_defs.h:41
    +
    #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.
    +
    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)
    Инициализировать кнопку (структуру кнопки)
    +
    HAL_StatusTypeDef TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay)
    Задержка в тиках таймера (неблокирующая).
    +
    HAL_StatusTypeDef TIM_Delay_Start(TIM_HandleTypeDef *htim)
    Начать отсчет неблокирующей задержки.
    +
    HAL_StatusTypeDef TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay)
    Задержка в тиках таймера (блокирующая).
    +
    int TIM_Encoder_ReadSwitch(TIM_EncoderTypeDef *henc)
    Считать кнопку энкодера.
    +
    HAL_StatusTypeDef TIM_Encoder_Init(TIM_EncoderTypeDef *henc, TIM_HandleTypeDef *htim)
    Инициализация режима энкодер у таймера.
    +
    HAL_StatusTypeDef TIM_Encoder_Read(TIM_EncoderTypeDef *henc)
    Считать энкодер.
    +
    HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)
    Инициализация таймера.
    Definition general_tim.c:34
    +
    void TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
    Деинициализация CLK и NVIC таймеров.
    +
    void TIM_Base_MspInit(TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode)
    Инициализация CLK и NVIC таймеров.
    +
    TIM_ITModeTypeDef
    Режим прерываний таймера
    Definition general_tim.h:77
    +
    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 компаратора таймера.
    +
    Структура инициализации енкодера
    +
    TIM_Encoder_InitTypeDef sConfig
    Указатель на структуру настройки энкодера
    +
    uint16_t Encoder_Shdw
    Последние считанные тики
    +
    uint32_t GPIO_PIN_TI1
    Пин, куда подключается канал TI1.
    +
    uint32_t GPIO_PIN_TI2
    Пин, куда подключается канал TI2.
    +
    uint32_t GPIO_PIN_SW
    Пин, куда кнопка энкодера (если есть)
    +
    int16_t Encoder_Diff
    Считанная разница
    +
    GPIO_SwitchTypeDef Sw
    Структура кнопки
    +
    GPIO_TypeDef * GPIOx
    Порт, куда подключается энкодер
    +
    TIM_HandleTypeDef * htim
    Указатель на HAL handle таймера
    +
    Структура инициализации таймера
    +
    uint8_t sTickBasePrescaler
    Дополнительный делитель, для удобного деления sTickBaseUS.
    +
    TIM_MasterConfigTypeDef sMasterConfig
    Настройки мастер режима таймера
    +
    TIM_ClockConfigTypeDef sClockSourceConfig
    Настройки тактирования таймера
    +
    TIM_MHzTickBaseTypeDef sTickBaseUS
    Длительность одного тика
    +
    float sTimAHBFreqMHz
    Частота шины тактирования таймера
    +
    TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig
    Настройки дедтаймов таймера
    +
    TIM_SlaveConfigTypeDef sSlaveConfig
    Настройки слейв режима таймера
    +
    TIM_ITModeTypeDef sTimMode
    Настройки прерывания таймера
    +
    TIM_HandleTypeDef htim
    HAL handle таймера
    +
    float sTimFreqHz
    Желаемая частота таймера
    +
    +
    +
    + + + + diff --git a/Doc/html/general__tim_8h.html b/Doc/html/general__tim_8h.html new file mode 100644 index 0000000..534318f --- /dev/null +++ b/Doc/html/general__tim_8h.html @@ -0,0 +1,282 @@ + + + + + + + +MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h File Reference + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    MyLibs 1.0 +
    +
    Расширенные библиотеки для STM32
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    general_tim.h File Reference
    +
    +
    + +

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

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

    Go to the source code of this file.

    + + + + + + +

    +Classes

    struct  TIM_SettingsTypeDef
     Структура инициализации таймера More...
    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 +, TIM_TickBase_10US = 10 +, TIM_TickBase_100US = 100 +,
    +  TIM_TickBase_1MS = 1000 +, TIM_TickBase_10MS = 10000 +, TIM_TickBase_100MS = 100000 +
    + }
     Длительность тика таймера (частота тактирования таймера) 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

    +

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

    + +

    Definition in file general_tim.h.

    +

    Macro Definition Documentation

    + +

    ◆ TIM_IT_CONF_Pos

    + +
    +
    + + + + +
    #define TIM_IT_CONF_Pos   0
    +
    + +

    Definition at line 56 of file general_tim.h.

    + +
    +
    + +

    ◆ TIM_IT_CONF

    + +
    +
    + + + + +
    #define TIM_IT_CONF   (1<<(TIM_IT_CONF_Pos))
    +
    + +

    Definition at line 63 of file general_tim.h.

    + +
    +
    +
    +
    + +
    + + + + diff --git a/Doc/html/general__tim_8h.js b/Doc/html/general__tim_8h.js new file mode 100644 index 0000000..babcffb --- /dev/null +++ b/Doc/html/general__tim_8h.js @@ -0,0 +1,41 @@ +var general__tim_8h = +[ + [ "USE_TIM1", "group___t_i_m___i_n_i_t.html#ga54a98c21365e0bc45b81555d2b101f2b", null ], + [ "USE_TIM2", "group___t_i_m___i_n_i_t.html#ga72535a44955b43cbcd56e25039ab32eb", null ], + [ "USE_TIM3", "group___t_i_m___i_n_i_t.html#ga5b5685a43273b6e37242a4aba3ee0617", null ], + [ "USE_TIM4", "group___t_i_m___i_n_i_t.html#ga1493b39c9214501180b81b4c892f9be0", null ], + [ "USE_TIM5", "group___t_i_m___i_n_i_t.html#ga252f4fba93fc265110e83760e0590af3", null ], + [ "USE_TIM6", "group___t_i_m___i_n_i_t.html#ga8fe31b98160627d19038222910be3f46", null ], + [ "USE_TIM7", "group___t_i_m___i_n_i_t.html#ga7cdc54cc8cbbb6e9f60001f1e3e6ec67", null ], + [ "USE_TIM8", "group___t_i_m___i_n_i_t.html#ga28ba33d7c6bf22821dafa5bcee4854be", null ], + [ "USE_TIM9", "group___t_i_m___i_n_i_t.html#gaac627c0e98c9594cc41b1b46eb39e44a", null ], + [ "USE_TIM10", "group___t_i_m___i_n_i_t.html#ga98c0691052d1da2c4053dd3586ff7ce9", null ], + [ "USE_TIM11", "group___t_i_m___i_n_i_t.html#ga176c97f06ebcf14e06e5c5bdbfac44c2", null ], + [ "USE_TIM12", "group___t_i_m___i_n_i_t.html#ga4e2b0e6cdf9eed74581b575c3fd9516b", null ], + [ "USE_TIM13", "group___t_i_m___i_n_i_t.html#gaf48ef87650517652ddec039a189507ac", null ], + [ "USE_TIM14", "group___t_i_m___i_n_i_t.html#ga9ae40be31d5271abe3e49f896d916d5c", null ], + [ "TIM_ITModeTypeDef", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787", [ + [ "TIM_DEFAULT", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8", null ], + [ "TIM_IT_MODE", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c", null ] + ] ], + [ "TIM_MHzTickBaseTypeDef", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800", [ + [ "TIM_Base_Disable", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5", null ], + [ "TIM_TickBase_1US", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2", null ], + [ "TIM_TickBase_10US", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f", null ], + [ "TIM_TickBase_100US", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30", null ], + [ "TIM_TickBase_1MS", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25", null ], + [ "TIM_TickBase_10MS", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa", null ], + [ "TIM_TickBase_100MS", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da", null ] + ] ], + [ "TIM_Output_PWM_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6", null ], + [ "TIM_OC_Comparator_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889", null ], + [ "TIM_Encoder_Init", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc", null ], + [ "TIM_Encoder_Read", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501", null ], + [ "TIM_Encoder_ReadSwitch", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761", null ], + [ "TIM_Delay_Start", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834", null ], + [ "TIM_Delay", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e", null ], + [ "TIM_Delay_NonBlocking", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b", null ], + [ "TIM_Base_Init", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec", null ], + [ "TIM_Base_MspInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931", null ], + [ "TIM_Base_MspDeInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115", null ] +]; \ No newline at end of file diff --git a/Doc/html/general__tim_8h__dep__incl.map b/Doc/html/general__tim_8h__dep__incl.map new file mode 100644 index 0000000..e76bc39 --- /dev/null +++ b/Doc/html/general__tim_8h__dep__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Doc/html/general__tim_8h__dep__incl.md5 b/Doc/html/general__tim_8h__dep__incl.md5 new file mode 100644 index 0000000..abe2711 --- /dev/null +++ b/Doc/html/general__tim_8h__dep__incl.md5 @@ -0,0 +1 @@ +44714191f83fa51a72cbc1377ffdbdff \ 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 new file mode 100644 index 0000000..c7c1671 Binary files /dev/null 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 new file mode 100644 index 0000000..ee3bd57 --- /dev/null +++ b/Doc/html/general__tim_8h__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Doc/html/general__tim_8h__incl.md5 b/Doc/html/general__tim_8h__incl.md5 new file mode 100644 index 0000000..c5ffabb --- /dev/null +++ b/Doc/html/general__tim_8h__incl.md5 @@ -0,0 +1 @@ +8d2ac3de78aaeedbad6de045ad16b161 \ No newline at end of file diff --git a/Doc/html/general__tim_8h__incl.png b/Doc/html/general__tim_8h__incl.png new file mode 100644 index 0000000..ac28d97 Binary files /dev/null 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 new file mode 100644 index 0000000..6374e8d --- /dev/null +++ b/Doc/html/general__tim_8h_source.html @@ -0,0 +1,392 @@ + + + + + + + +MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/MyLibsGeneral/Inc/general_tim.h Source File + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    MyLibs 1.0 +
    +
    Расширенные библиотеки для STM32
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    general_tim.h
    +
    +
    +Go to the documentation of this file.
    1/**
    +
    2**************************************************************************
    +
    3* @file general_tim.h
    +
    4* @brief Заголовочный файл для модуля инициализации таймеров и работы с ними.
    +
    5**************************************************************************
    +
    6* @defgroup MY_LIBS_TIM TIM Tools
    +
    7* @ingroup MYLIBS_PERIPHERAL
    +
    8* @brief Функции и макросы для удобной работы с TIM.
    +
    9* @details
    +
    10Модуль предоставляет универсальные инструменты для работы с TIM:
    +
    11 - @ref MYLIBS_TIM_GENERAL — базовая инициализация таймеров и прерываний.
    +
    12 - @ref MYLIBS_TIM_DELAY — функции задержки через таймеры (blocking и non-blocking).
    +
    13 - @ref MYLIBS_TIM_OC — настройка каналов Output Compare и PWM.
    +
    14 - @ref MYLIBS_TIM_ENCODER — работа с энкодерами, чтение положения и кнопки.
    +
    15* @note Требуется подключение модуля TIM в библиотеке HAL
    +
    16@code
    +
    17#define HAL_TIM_MODULE_ENABLED
    +
    18@endcode
    +
    19*************************************************************************/
    +
    20#ifndef __TIM_GENERAL_H_
    +
    21#define __TIM_GENERAL_H_
    +
    22
    +
    23/////////////////////////////////////////////////////////////////////
    +
    24/////////////////////////---USER SETTINGS---/////////////////////////
    +
    25/**
    +
    26 * @addtogroup TIM_INIT Init defines
    +
    27 * @ingroup MYLIBS_TIM_GENERAL
    +
    28 * @brief Настройка таймеров
    +
    29 * @{
    +
    30 */
    +
    31#define HAL_TIM_MODULE_ENABLED
    +
    32
    +
    33#define USE_TIM1 ///< Включить TIM1 в @ref TIM_Base_MspInit
    +
    34#define USE_TIM2 ///< Включить TIM2 в @ref TIM_Base_MspInit
    +
    35#define USE_TIM3 ///< Включить TIM3 в @ref TIM_Base_MspInit
    +
    36#define USE_TIM4 ///< Включить TIM4 в @ref TIM_Base_MspInit
    +
    37#define USE_TIM5 ///< Включить TIM5 в @ref TIM_Base_MspInit
    +
    38#define USE_TIM6 ///< Включить TIM6 в @ref TIM_Base_MspInit
    +
    39#define USE_TIM7 ///< Включить TIM7 в @ref TIM_Base_MspInit
    +
    40#define USE_TIM8 ///< Включить TIM8 в @ref TIM_Base_MspInit
    +
    41#define USE_TIM9 ///< Включить TIM9 в @ref TIM_Base_MspInit
    +
    42#define USE_TIM10 ///< Включить TIM10 в @ref TIM_Base_MspInit
    +
    43#define USE_TIM11 ///< Включить TIM11 в @ref TIM_Base_MspInit
    +
    44#define USE_TIM12 ///< Включить TIM12 в @ref TIM_Base_MspInit
    +
    45#define USE_TIM13 ///< Включить TIM13 в @ref TIM_Base_MspInit
    +
    46#define USE_TIM14 ///< Включить TIM14 в @ref TIM_Base_MspInit
    +
    47/** TIM_INIT
    +
    48 * @}
    +
    49 */
    +
    50/////////////////////////---USER SETTINGS---/////////////////////////
    +
    51#include "mylibs_defs.h"
    +
    52#include "general_gpio.h"
    +
    53
    +
    54/////////////////////////////////////////////////////////////////////
    +
    55////////////////////////////---DEFINES---////////////////////////////
    +
    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
    +
    60//#define TIM_MASTER_CONF_Pos 4
    +
    61//#define TIM_BDTR_CONF_Pos 5
    +
    62
    +
    63#define TIM_IT_CONF (1<<(TIM_IT_CONF_Pos))
    +
    64//#define TIM_PWM_CONF (1<<(TIM_PWM_Pos))
    +
    65
    +
    66////////////////////////////---DEFINES---////////////////////////////]
    +
    67
    +
    68
    +
    69
    +
    70/////////////////////////////////////////////////////////////////////
    +
    71///////////////////////---STRUCTURES & ENUMS---//////////////////////
    +
    72/**
    +
    73 * @brief Режим прерываний таймера
    +
    74 * @ingroup MYLIBS_TIM_GENERAL
    +
    75 */
    +
    +
    76typedef enum
    +
    77{
    +
    78 TIM_DEFAULT = 0, ///< Прерываний отключены
    +
    79 TIM_IT_MODE = TIM_IT_CONF, ///< Прерываний включены
    +
    80// TIM_PWM_MODE = TIM_PWM_ENABLE,
    +
    81// TIM_PWM_IT_MODE = TIM_PWM_ENABLE | TIM_IT_CONF,
    + +
    +
    83
    +
    84/**
    +
    85 * @brief Длительность тика таймера (частота тактирования таймера)
    +
    86 * @ingroup MYLIBS_TIM_GENERAL
    +
    87 * @details enum дает базовые длительности, но можно выставить другие
    +
    88 * (напр 500 - 0.5 мс)
    +
    89 */
    +
    +
    90typedef enum
    +
    91{
    +
    92 TIM_Base_Disable = 0, ///< Таймер отключен
    +
    93 TIM_TickBase_1US = 1, ///< Таймер тактируется с частотой 1 МГц
    +
    94 TIM_TickBase_10US = 10, ///< Таймер тактируется с частотой 100 кГц
    +
    95 TIM_TickBase_100US = 100, ///< Таймер тактируется с частотой 10 кГц
    +
    96 TIM_TickBase_1MS = 1000, ///< Таймер тактируется с частотой 1 кГц
    +
    97 TIM_TickBase_10MS = 10000, ///< Таймер тактируется с частотой 100 Гц
    +
    98 TIM_TickBase_100MS = 100000, ///< Таймер тактируется с частотой 10 Гц
    + +
    +
    100
    +
    101/**
    +
    102 * @brief Структура инициализации таймера
    +
    103 * @ingroup MYLIBS_TIM_GENERAL
    +
    104 * @details
    +
    105 * Содержит все базовые структуры, которые нужны для инициализации таймера.
    +
    106 * Если структуры настроек не заданы, то они заполнятся сами дефолтными параметрами
    +
    107 *
    +
    108 * Также высокоуровневые настройки частоты работы таймера.
    +
    109 * Если какая-либо высокоуровневая настройка не задана, то
    +
    110 * по возможности берется низкоуровневая настройка из структур
    +
    111 */
    +
    +
    112typedef struct // struct with settings for custom function
    +
    113{
    +
    114 TIM_HandleTypeDef htim; ///< HAL handle таймера
    +
    115 TIM_ClockConfigTypeDef sClockSourceConfig; ///< Настройки тактирования таймера
    +
    116 TIM_SlaveConfigTypeDef sSlaveConfig; ///< Настройки слейв режима таймера
    +
    117 TIM_MasterConfigTypeDef sMasterConfig; ///< Настройки мастер режима таймера
    +
    118 TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig; ///< Настройки дедтаймов таймера
    +
    119
    +
    120 TIM_ITModeTypeDef sTimMode; ///< Настройки прерывания таймера
    +
    121 TIM_MHzTickBaseTypeDef sTickBaseUS; ///< Длительность одного тика
    +
    122 uint8_t sTickBasePrescaler; ///< Дополнительный делитель, для удобного деления @ref sTickBaseUS
    +
    123 float sTimAHBFreqMHz; ///< Частота шины тактирования таймера
    +
    124 float sTimFreqHz; ///< Желаемая частота таймера
    +
    125
    + +
    +
    127
    +
    128
    +
    129/**
    +
    130 * @brief Структура инициализации енкодера
    +
    131 * @ingroup MYLIBS_TIM_ENCODER
    +
    132 * @details
    +
    133 * Содержит все базовые структуры, которые нужны для инициализации таймера.
    +
    134 * Если структуры настроек не заданы, то они заполнятся сами дефолтными параметрами
    +
    135 *
    +
    136 * Также высокоуровневые настройки частоты работы таймера.
    +
    137 * Если какая-либо высокоуровневая настройка не задана, то
    +
    138 * по возможности берется низкоуровневая настройка из структур
    +
    139 */
    +
    +
    140typedef struct // struct with variables for encoder
    +
    141{
    +
    142 int16_t Encoder_Diff; ///< Считанная разница
    +
    143 uint16_t Encoder_Shdw; ///< Последние считанные тики
    +
    144
    +
    145 TIM_HandleTypeDef *htim; ///< Указатель на HAL handle таймера
    +
    146 TIM_Encoder_InitTypeDef sConfig; ///< Указатель на структуру настройки энкодера
    +
    147
    +
    148 GPIO_TypeDef *GPIOx; ///< Порт, куда подключается энкодер
    +
    149 uint32_t GPIO_PIN_TI1; ///< Пин, куда подключается канал TI1
    +
    150 uint32_t GPIO_PIN_TI2; ///< Пин, куда подключается канал TI2
    +
    151 uint32_t GPIO_PIN_SW; ///< Пин, куда кнопка энкодера (если есть)
    +
    152
    +
    153 GPIO_SwitchTypeDef Sw; ///< Структура кнопки
    +
    154
    + +
    +
    156///////////////////////---STRUCTURES & ENUMS---//////////////////////
    +
    157
    +
    158/////////////////////////////////////////////////////////////////////
    +
    159///////////////////////////---FUNCTIONS---///////////////////////////
    +
    160/**
    +
    161 * @addtogroup MYLIBS_TIM_OC PWM/OC Channels tools
    +
    162 * @ingroup MY_LIBS_TIM
    +
    163 * @brief Функции для инициализации базовых функций каналов таймера
    +
    164 * @{
    +
    165 */
    +
    166/* Initialize PWM Channel and GPIO for output */
    +
    167HAL_StatusTypeDef TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t PWM_PIN);
    +
    168/* Initialize OC Comparator */
    +
    169HAL_StatusTypeDef TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL);
    +
    170/** MYLIBS_TIM_ENCODER
    +
    171 * @}
    +
    172 */
    +
    173
    +
    174/**
    +
    175 * @addtogroup MYLIBS_TIM_ENCODER Encoder tools
    +
    176 * @ingroup MY_LIBS_TIM
    +
    177 * @brief Функции для считывания энкодера
    +
    178 * @{
    +
    179 */
    +
    180/* Initialize TIM Encoder functional */
    +
    181HAL_StatusTypeDef TIM_Encoder_Init(TIM_EncoderTypeDef *henc1, TIM_HandleTypeDef *htim);
    +
    182/* Считать энкодер */
    +
    183HAL_StatusTypeDef TIM_Encoder_Read(TIM_EncoderTypeDef *henc);
    +
    184/* Считать кнопку энкодера */
    + +
    186/** MYLIBS_TIM_ENCODER
    +
    187 * @}
    +
    188 */
    +
    189
    +
    190/**
    +
    191 * @addtogroup MYLIBS_TIM_DELAY Delay tools
    +
    192 * @ingroup MY_LIBS_TIM
    +
    193 * @brief Функции для формирования задержек с помощью таймеров
    +
    194 * @{
    +
    195 */
    +
    196/* Start delay via TIM */
    +
    197HAL_StatusTypeDef TIM_Delay_Start(TIM_HandleTypeDef *htim);
    +
    198/* Delay via TIM */
    +
    199HAL_StatusTypeDef TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay);
    +
    200/* Wait Delay via TIM without blocking app */
    +
    201HAL_StatusTypeDef TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay);
    +
    202/** MYLIBS_TIM_DELAY
    +
    203 * @}
    +
    204 */
    +
    205
    +
    206/**
    +
    207 * @addtogroup MYLIBS_TIM_GENERAL General tools
    +
    208 * @ingroup MY_LIBS_TIM
    +
    209 * @brief Функции для базовой инициализации таймеров
    +
    210 * @{
    +
    211 */
    +
    212/* Initialize TIM with TIM_SettingsTypeDef structure */
    +
    213HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef* stim);
    +
    214/* Initialize TIMs clock and interrupt */
    +
    215void TIM_Base_MspInit(TIM_HandleTypeDef* htim, TIM_ITModeTypeDef it_mode);
    +
    216/* DeInitialize TIMs clock and interrupt */
    +
    217void TIM_Base_MspDeInit(TIM_HandleTypeDef* htim);
    +
    218/** MYLIBS_TIM_GENERAL
    +
    219 * @}
    +
    220 */
    +
    221///////////////////////////---FUNCTIONS---///////////////////////////
    +
    222
    +
    223
    +
    224#endif // __TIM_GENERAL_H_
    +
    Заголовочный файл для модуля инициализации портов и работы с ними.
    +
    HAL_StatusTypeDef TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay)
    Задержка в тиках таймера (неблокирующая).
    +
    HAL_StatusTypeDef TIM_Delay_Start(TIM_HandleTypeDef *htim)
    Начать отсчет неблокирующей задержки.
    +
    HAL_StatusTypeDef TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay)
    Задержка в тиках таймера (блокирующая).
    +
    int TIM_Encoder_ReadSwitch(TIM_EncoderTypeDef *henc)
    Считать кнопку энкодера.
    +
    HAL_StatusTypeDef TIM_Encoder_Init(TIM_EncoderTypeDef *henc1, TIM_HandleTypeDef *htim)
    Инициализация режима энкодер у таймера.
    +
    HAL_StatusTypeDef TIM_Encoder_Read(TIM_EncoderTypeDef *henc)
    Считать энкодер.
    +
    HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)
    Инициализация таймера.
    Definition general_tim.c:34
    +
    void TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
    Деинициализация CLK и NVIC таймеров.
    +
    TIM_MHzTickBaseTypeDef
    Длительность тика таймера (частота тактирования таймера)
    Definition general_tim.h:91
    +
    void TIM_Base_MspInit(TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode)
    Инициализация CLK и NVIC таймеров.
    +
    TIM_ITModeTypeDef
    Режим прерываний таймера
    Definition general_tim.h:77
    +
    @ TIM_TickBase_10US
    Таймер тактируется с частотой 100 кГц
    Definition general_tim.h:94
    +
    @ TIM_TickBase_100US
    Таймер тактируется с частотой 10 кГц
    Definition general_tim.h:95
    +
    @ TIM_TickBase_100MS
    Таймер тактируется с частотой 10 Гц
    Definition general_tim.h:98
    +
    @ TIM_TickBase_1US
    Таймер тактируется с частотой 1 МГц
    Definition general_tim.h:93
    +
    @ TIM_TickBase_1MS
    Таймер тактируется с частотой 1 кГц
    Definition general_tim.h:96
    +
    @ TIM_TickBase_10MS
    Таймер тактируется с частотой 100 Гц
    Definition general_tim.h:97
    +
    @ TIM_Base_Disable
    Таймер отключен
    Definition general_tim.h:92
    +
    @ TIM_IT_MODE
    Прерываний включены
    Definition general_tim.h:79
    +
    @ TIM_DEFAULT
    Прерываний отключены
    Definition general_tim.h:78
    +
    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 компаратора таймера.
    +
    Заголочный файл для дефайнов библиотеки MyLibsGeneral.
    +
    Структура кнопки
    +
    Структура инициализации енкодера
    +
    TIM_Encoder_InitTypeDef sConfig
    Указатель на структуру настройки энкодера
    +
    uint16_t Encoder_Shdw
    Последние считанные тики
    +
    uint32_t GPIO_PIN_TI1
    Пин, куда подключается канал TI1.
    +
    uint32_t GPIO_PIN_TI2
    Пин, куда подключается канал TI2.
    +
    uint32_t GPIO_PIN_SW
    Пин, куда кнопка энкодера (если есть)
    +
    int16_t Encoder_Diff
    Считанная разница
    +
    GPIO_SwitchTypeDef Sw
    Структура кнопки
    +
    GPIO_TypeDef * GPIOx
    Порт, куда подключается энкодер
    +
    TIM_HandleTypeDef * htim
    Указатель на HAL handle таймера
    +
    Структура инициализации таймера
    +
    uint8_t sTickBasePrescaler
    Дополнительный делитель, для удобного деления sTickBaseUS.
    +
    TIM_MasterConfigTypeDef sMasterConfig
    Настройки мастер режима таймера
    +
    TIM_ClockConfigTypeDef sClockSourceConfig
    Настройки тактирования таймера
    +
    TIM_MHzTickBaseTypeDef sTickBaseUS
    Длительность одного тика
    +
    float sTimAHBFreqMHz
    Частота шины тактирования таймера
    +
    TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig
    Настройки дедтаймов таймера
    +
    TIM_SlaveConfigTypeDef sSlaveConfig
    Настройки слейв режима таймера
    +
    TIM_ITModeTypeDef sTimMode
    Настройки прерывания таймера
    +
    TIM_HandleTypeDef htim
    HAL handle таймера
    +
    float sTimFreqHz
    Желаемая частота таймера
    +
    +
    +
    + + + + diff --git a/Doc/html/globals.html b/Doc/html/globals.html index ff955a0..e430e85 100644 --- a/Doc/html/globals.html +++ b/Doc/html/globals.html @@ -111,11 +111,11 @@ $(function(){initNavTree('globals.html','',''); });

    - c -

    @@ -126,17 +126,18 @@ $(function(){initNavTree('globals.html','',''); });

    - g -

    @@ -163,10 +164,10 @@ $(function(){initNavTree('globals.html','',''); });

    - l -

    diff --git a/Doc/html/globals_defs.html b/Doc/html/globals_defs.html index 0a8045f..df9d5c8 100644 --- a/Doc/html/globals_defs.html +++ b/Doc/html/globals_defs.html @@ -111,11 +111,11 @@ $(function(){initNavTree('globals_defs.html','',''); });

    - c -

    @@ -126,6 +126,7 @@ $(function(){initNavTree('globals_defs.html','',''); });

    - g -

    @@ -192,7 +193,6 @@ $(function(){initNavTree('globals_defs.html','',''); });

    - t -

    + + +

    - u -

    diff --git a/Doc/html/globals_enum.html b/Doc/html/globals_enum.html index 1126f6c..6f657c5 100644 --- a/Doc/html/globals_enum.html +++ b/Doc/html/globals_enum.html @@ -98,7 +98,9 @@ $(function(){initNavTree('globals_enum.html','',''); });
    Here is a list of all documented enums with links to the documentation:
    diff --git a/Doc/html/globals_eval.html b/Doc/html/globals_eval.html index 1f87744..0a9db7f 100644 --- a/Doc/html/globals_eval.html +++ b/Doc/html/globals_eval.html @@ -98,10 +98,19 @@ $(function(){initNavTree('globals_eval.html','',''); });
    Here is a list of all documented enum values with links to the documentation:
    diff --git a/Doc/html/globals_func.html b/Doc/html/globals_func.html index 9e5a2dd..7489c79 100644 --- a/Doc/html/globals_func.html +++ b/Doc/html/globals_func.html @@ -97,24 +97,49 @@ $(function(){initNavTree('globals_func.html','',''); });
-
Here is a list of all documented functions with links to the documentation:
diff --git a/Doc/html/graph_legend.html b/Doc/html/graph_legend.html new file mode 100644 index 0000000..141b423 --- /dev/null +++ b/Doc/html/graph_legend.html @@ -0,0 +1,173 @@ + + + + + + + +MyLibs: Graph Legend + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +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 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.
  • +
+
+
+
+ + + + diff --git a/Doc/html/graph_legend.md5 b/Doc/html/graph_legend.md5 new file mode 100644 index 0000000..da515da --- /dev/null +++ b/Doc/html/graph_legend.md5 @@ -0,0 +1 @@ +f74606a252eb303675caf37987d0b7af \ No newline at end of file diff --git a/Doc/html/graph_legend.png b/Doc/html/graph_legend.png new file mode 100644 index 0000000..feea22a Binary files /dev/null and b/Doc/html/graph_legend.png differ 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 63d308e..8d7ec65 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 @@ -103,6 +103,16 @@ $(function(){initNavTree('group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.html','','

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

+
Collaboration diagram for Bit access defines:
+
+
+ diff --git a/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.map b/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.map new file mode 100644 index 0000000..3e0bb0e --- /dev/null +++ b/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.md5 b/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.md5 new file mode 100644 index 0000000..aab75c0 --- /dev/null +++ b/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.md5 @@ -0,0 +1 @@ +58861c427738147326054c740ac5c202 \ No newline at end of file diff --git a/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.png b/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.png new file mode 100644 index 0000000..3f10226 Binary files /dev/null and b/Doc/html/group___b_i_t___a_c_c_e_s_s___d_e_f_i_n_e_s.png differ 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 230069e..b32f9a6 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 @@ -103,6 +103,16 @@ $(function(){initNavTree('group___d_e_l_a_y_s___d_e_f_i_n_e_s.html','',''); });

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

+
Collaboration diagram for Delays defines:
+
+
+

Classes

@@ -149,7 +159,7 @@ Macros
Note
Использует HAL_Delay или osDelay в зависимости от FREERTOS_DELAY.
-

Definition at line 82 of file mylibs_defs.h.

+

Definition at line 86 of file mylibs_defs.h.

@@ -179,7 +189,7 @@ Macros

После вызова этого макроса переменная pvar содержит текущее количество миллисекунд с момента запуска системы (HAL_GetTick).

Используется для реализации неблокирующих задержек.

-

Definition at line 94 of file mylibs_defs.h.

+

Definition at line 98 of file mylibs_defs.h.

@@ -221,9 +231,9 @@ Macros

Возвращает true, пока время задержки не истекло. Используется в проверках, когда нужно действовать, пока задержка выполняется. Пример:

while(msDelayWhileActive(1000, &tick)) {
// выполняем другие задачи, задержка не блокирует поток
}
-
#define msDelayWhileActive(_ms_, _pvar_)
Проверяет, активна ли задержка.
+
#define msDelayWhileActive(_ms_, _pvar_)
Проверяет, активна ли задержка.
-

Definition at line 111 of file mylibs_defs.h.

+

Definition at line 115 of file mylibs_defs.h.

@@ -265,9 +275,9 @@ Macros

Возвращает true, когда задержка уже завершена. Используется в проверках, когда нужно выполнить действие только после окончания задержки. Пример:

if(msDelayWaitDone(1000, &tick)) {
// выполняем действие после завершения задержки
}
-
#define msDelayWaitDone(_ms_, _pvar_)
Проверяет, завершилась ли задержка.
+
#define msDelayWaitDone(_ms_, _pvar_)
Проверяет, завершилась ли задержка.
-

Definition at line 128 of file mylibs_defs.h.

+

Definition at line 132 of file mylibs_defs.h.

diff --git a/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.map b/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.map new file mode 100644 index 0000000..b015f63 --- /dev/null +++ b/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.md5 b/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.md5 new file mode 100644 index 0000000..c96e50e --- /dev/null +++ b/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.md5 @@ -0,0 +1 @@ +591a0b98d98294b7a16c22b9669d8b64 \ No newline at end of file diff --git a/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.png b/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.png new file mode 100644 index 0000000..263c49a Binary files /dev/null and b/Doc/html/group___d_e_l_a_y_s___d_e_f_i_n_e_s.png differ 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 1bc83fb..1ce57be 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 @@ -103,21 +103,31 @@ $(function(){initNavTree('group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html

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

+
Collaboration diagram for Error Handler defines:
+
+
+

Macros

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

Macros

#define MyLibs_Error_Handler(params)
 Error_Handler который будет вызыватся в библиотеке
#define check_null_ptr_1(_p1_)
 Проверить указатель на NULL.
#define check_null_ptr_2(_p1_, _p2_)
 Проверить два указателя на NULL.
#define check_null_ptr_3(_p1_, _p2_, _p3_)
 Проверить три указателя на NULL.
#define check_null_ptr_4(_p1_, _p2_, _p3_, _p4_)
 Проверить четыре указателя на NULL.
#define check_null_ptr_5(_p1_, _p2_, _p3_, _p4_, _p5_)
 Проверить пять указателей на NULL.
#define check_null_ptr_1(p1)
 Проверить один указатель на NULL.
#define check_null_ptr_2(p1, p2)
 Проверить два указателя на NULL.
#define check_null_ptr_3(p1, p2, p3)
 Проверить три указателя на NULL.
#define check_null_ptr_4(p1, p2, p3, p4)
 Проверить четыре указателя на NULL.
#define check_null_ptr_5(p1, p2, p3, p4, p5)
 Проверить пять указателей на NULL.
@@ -149,8 +159,8 @@ void  - +

Functions

Error_Handler (vo - -

◆ check_null_ptr_1

+ +

◆ check_null_ptr_1

@@ -158,21 +168,21 @@ void 
Error_Handler (vo
#define check_null_ptr_1 ( _p1_) p1)
-Value:
(_p1_ == NULL)
+Value:
(p1 == NULL)
-

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

+

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

Definition at line 38 of file mylibs_defs.h.

- -

◆ check_null_ptr_2

+ +

◆ check_null_ptr_2

@@ -180,25 +190,25 @@ void Error_Handler (vo #define check_null_ptr_2 ( - _p1_, + p1, - _p2_ ) + p2 )
-Value:
((_p1_ == NULL) || (_p2_ == NULL))
+Value:
((p1 == NULL) || (p1 != NULL && p2 == NULL))

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

-

Definition at line 40 of file mylibs_defs.h.

+

Definition at line 41 of file mylibs_defs.h.

- -

◆ check_null_ptr_3

+ +

◆ check_null_ptr_3

@@ -206,30 +216,30 @@ void Error_Handler (vo #define check_null_ptr_3 ( - _p1_, + p1, - _p2_, + p2, - _p3_ ) + p3 )
-Value:
((_p1_ == NULL) || (_p2_ == NULL) || (_p3_ == NULL))
+Value:
((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && p3 == NULL))))

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

-

Definition at line 42 of file mylibs_defs.h.

+

Definition at line 44 of file mylibs_defs.h.

- -

◆ check_null_ptr_4

+ +

◆ check_null_ptr_4

@@ -237,35 +247,35 @@ void Error_Handler (vo #define check_null_ptr_4 ( - _p1_, + p1, - _p2_, + p2, - _p3_, + p3, - _p4_ ) + p4 )
-Value:
((_p1_ == NULL) || (_p2_ == NULL) || (_p3_ == NULL) || (_p4_ == NULL))
+Value:
((p1 == NULL) || (p1 != NULL && ((p2 == NULL) || (p2 != NULL && ((p3 == NULL) || (p3 != NULL && p4 == NULL))))))

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

-

Definition at line 44 of file mylibs_defs.h.

+

Definition at line 47 of file mylibs_defs.h.

- -

◆ check_null_ptr_5

+ +

◆ check_null_ptr_5

@@ -273,35 +283,35 @@ void Error_Handler (vo #define check_null_ptr_5 ( - _p1_, + p1, - _p2_, + p2, - _p3_, + p3, - _p4_, + p4, - _p5_ ) + p5 )
-Value:
((_p1_ == NULL) || (_p2_ == NULL) || (_p3_ == 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 46 of file mylibs_defs.h.

+

Definition at line 50 of file mylibs_defs.h.

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.js b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.js index e36b4ca..5060995 100644 --- a/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.js +++ b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.js @@ -1,9 +1,9 @@ var group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s = [ [ "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", null ], - [ "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#ga0b75f0bcf066acdf797b8e6730c52f86", null ], - [ "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#gae7d1cbb9075ee4b830342fd564d96be0", null ], - [ "check_null_ptr_3", "group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga002f4a5f5d8bb37d88f607386bc6ba2e", null ], - [ "check_null_ptr_4", "group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gade91c09d89a5f69003dcfe506ed0327f", null ], - [ "check_null_ptr_5", "group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga944edcd2c65519578d36730b94701f64", null ] + [ "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", null ], + [ "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", null ], + [ "check_null_ptr_3", "group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga838b40542faa9aa273d18f921b21fda2", null ], + [ "check_null_ptr_4", "group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#ga590973be111afc3f9ba15e6939530254", null ], + [ "check_null_ptr_5", "group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gaab0aafd7a4a21ec4f338b19269f65490", null ] ]; \ No newline at end of file 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.map b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.map new file mode 100644 index 0000000..f3bc919 --- /dev/null +++ b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.map @@ -0,0 +1,4 @@ + + + + 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.md5 b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.md5 new file mode 100644 index 0000000..7cefaa5 --- /dev/null +++ b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.md5 @@ -0,0 +1 @@ +e4a53f66d0e2072179f4dedfeba20d50 \ No newline at end of file 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.png b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.png new file mode 100644 index 0000000..e5f8ee4 Binary files /dev/null and b/Doc/html/group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.png differ diff --git a/Doc/html/group___g_p_i_o___g_e_n_e_r_a_l.js b/Doc/html/group___g_p_i_o___g_e_n_e_r_a_l.js deleted file mode 100644 index 2539a1f..0000000 --- a/Doc/html/group___g_p_i_o___g_e_n_e_r_a_l.js +++ /dev/null @@ -1,6 +0,0 @@ -var group___g_p_i_o___g_e_n_e_r_a_l = -[ - [ "Init defines", "group___g_p_i_o___i_n_i_t.html", "group___g_p_i_o___i_n_i_t" ], - [ "TIM_Alternate_Mapping", "group___g_p_i_o___g_e_n_e_r_a_l.html#ga34242874b455a72aa6e25841678ed105", null ], - [ "GPIO_Clock_Enable", "group___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6", 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 036a4ab..259fa68 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 @@ -97,12 +97,22 @@ $(function(){initNavTree('group___g_p_i_o___i_n_i_t.html','',''); });
- +

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

+
Collaboration diagram for Init defines:
+
+
+ @@ -134,7 +144,7 @@ Macros

Количество тиков в периоде ШИМ

-

Definition at line 23 of file general_gpio.h.

+

Definition at line 31 of file general_gpio.h.

@@ -152,7 +162,7 @@ Macros

Состояние пина для включения светодиода

-

Definition at line 27 of file general_gpio.h.

+

Definition at line 35 of file general_gpio.h.

@@ -170,7 +180,7 @@ Macros

Состояние пина для выключения светодиода

-

Definition at line 30 of file general_gpio.h.

+

Definition at line 38 of file general_gpio.h.

@@ -188,7 +198,7 @@ Macros

Состояние пина при нажатой кнопке

-

Definition at line 34 of file general_gpio.h.

+

Definition at line 42 of file general_gpio.h.

@@ -206,7 +216,7 @@ Macros

Состояние пина при отжатой кнопке

-

Definition at line 37 of file general_gpio.h.

+

Definition at line 45 of file general_gpio.h.

diff --git a/Doc/html/group___g_p_i_o___i_n_i_t.map b/Doc/html/group___g_p_i_o___i_n_i_t.map new file mode 100644 index 0000000..994ad72 --- /dev/null +++ b/Doc/html/group___g_p_i_o___i_n_i_t.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___g_p_i_o___i_n_i_t.md5 b/Doc/html/group___g_p_i_o___i_n_i_t.md5 new file mode 100644 index 0000000..2df6bcc --- /dev/null +++ b/Doc/html/group___g_p_i_o___i_n_i_t.md5 @@ -0,0 +1 @@ +b3e1b6c0e67365a2d690b83a8c502388 \ No newline at end of file diff --git a/Doc/html/group___g_p_i_o___i_n_i_t.png b/Doc/html/group___g_p_i_o___i_n_i_t.png new file mode 100644 index 0000000..6fb3b6c Binary files /dev/null and b/Doc/html/group___g_p_i_o___i_n_i_t.png differ diff --git a/Doc/html/group___g_p_i_o___l_e_d_s.js b/Doc/html/group___g_p_i_o___l_e_d_s.js deleted file mode 100644 index e47bafc..0000000 --- a/Doc/html/group___g_p_i_o___l_e_d_s.js +++ /dev/null @@ -1,24 +0,0 @@ -var group___g_p_i_o___l_e_d_s = -[ - [ "GPIO_LEDTypeDef", "struct_g_p_i_o___l_e_d_type_def.html", [ - [ "state", "struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435", null ], - [ "LED_Port", "struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf", null ], - [ "LED_Pin", "struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978", null ], - [ "LED_ActiveLvl", "struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816", null ], - [ "LED_Period", "struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec", null ], - [ "tickprev", "struct_g_p_i_o___l_e_d_type_def.html#a8c43c12787f4a89f4a785f91a979ba68", null ] - ] ], - [ "GPIO_LEDStateTypeDef", "group___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1", [ - [ "LED_IS_OFF", "group___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae", null ], - [ "LED_IS_ON", "group___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea", null ], - [ "LED_IS_BLINKING", "group___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb", null ], - [ "LED_IS_FADING", "group___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b", null ] - ] ], - [ "GPIO_LED_Init", "group___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084", null ], - [ "GPIO_LED_On", "group___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c", null ], - [ "GPIO_LED_Off", "group___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357", null ], - [ "GPIO_LED_Set", "group___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2", null ], - [ "GPIO_LED_Blink_Start", "group___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9", null ], - [ "GPIO_LED_Fading_Start", "group___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a", null ], - [ "GPIO_LED_Dynamic_Handle", "group___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2", null ] -]; \ No newline at end of file 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 221acd8..867c7fa 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 @@ -101,8 +101,18 @@ $(function(){initNavTree('group___l_i_b_s___c_o_n_f_i_g.html','',''); });
-

Включенные трекеры и трассировки в МЗКТЭ +

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

+
Collaboration diagram for Libraries configs:
+
+
+

Macros

@@ -116,7 +126,7 @@ Macros

Macros

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

Detailed Description

-

Включенные трекеры и трассировки в МЗКТЭ

+

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

Macro Definition Documentation

◆ INCLUDE_BIT_ACCESS_LIB

@@ -132,7 +142,7 @@ Macros

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

-

Definition at line 69 of file mylibs_config.h.

+

Definition at line 65 of file mylibs_config.h.

@@ -150,7 +160,7 @@ Macros

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

-

Definition at line 70 of file mylibs_config.h.

+

Definition at line 66 of file mylibs_config.h.

@@ -168,7 +178,7 @@ Macros

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

-

Definition at line 71 of file mylibs_config.h.

+

Definition at line 67 of file mylibs_config.h.

@@ -186,7 +196,7 @@ Macros

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

-

Definition at line 72 of file mylibs_config.h.

+

Definition at line 68 of file mylibs_config.h.

diff --git a/Doc/html/group___l_i_b_s___c_o_n_f_i_g.map b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.map new file mode 100644 index 0000000..4f85ccb --- /dev/null +++ b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___l_i_b_s___c_o_n_f_i_g.md5 b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.md5 new file mode 100644 index 0000000..e76c949 --- /dev/null +++ b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.md5 @@ -0,0 +1 @@ +808022049140e07e55939aab8e99f2c8 \ No newline at end of file diff --git a/Doc/html/group___l_i_b_s___c_o_n_f_i_g.png b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.png new file mode 100644 index 0000000..b177fb8 Binary files /dev/null and b/Doc/html/group___l_i_b_s___c_o_n_f_i_g.png differ 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 6b17955..b588aa0 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 @@ -103,18 +103,36 @@ $(function(){initNavTree('group___m_y___l_i_b_s___g_p_i_o.html','',''); });

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

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

Topics

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

Detailed Description

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

+

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

@@ -207,7 +217,7 @@ Functions -

Definition at line 69 of file general_gpio.c.

+

Definition at line 73 of file general_gpio.c.

@@ -235,7 +245,7 @@ Functions
Returns
HAL Status
-

Definition at line 87 of file general_gpio.c.

+

Definition at line 91 of file general_gpio.c.

@@ -263,7 +273,7 @@ Functions
Returns
HAL Status
-

Definition at line 105 of file general_gpio.c.

+

Definition at line 107 of file general_gpio.c.

diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.js b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.js new file mode 100644 index 0000000..0cb5069 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.js @@ -0,0 +1,23 @@ +var group___m_y_l_i_b_s___g_p_i_o___l_e_d_s = +[ + [ "GPIO_LEDTypeDef", "struct_g_p_i_o___l_e_d_type_def.html", [ + [ "state", "struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435", null ], + [ "LED_Port", "struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf", null ], + [ "LED_Pin", "struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978", null ], + [ "LED_ActiveLvl", "struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816", null ], + [ "LED_Period", "struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec", null ] + ] ], + [ "GPIO_LEDStateTypeDef", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1", [ + [ "LED_IS_OFF", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae", null ], + [ "LED_IS_ON", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea", null ], + [ "LED_IS_BLINKING", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb", null ], + [ "LED_IS_FADING", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b", null ] + ] ], + [ "GPIO_LED_Init", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084", null ], + [ "GPIO_LED_On", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c", null ], + [ "GPIO_LED_Off", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357", null ], + [ "GPIO_LED_Set", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2", null ], + [ "GPIO_LED_Blink_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9", null ], + [ "GPIO_LED_Fading_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a", null ], + [ "GPIO_LED_Dynamic_Handle", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2", null ] +]; \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.map b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.map new file mode 100644 index 0000000..84e977d --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.md5 b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.md5 new file mode 100644 index 0000000..665891b --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.md5 @@ -0,0 +1 @@ +7da686519bc4fefcd523c1ffaad864d8 \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.png b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.png new file mode 100644 index 0000000..ab4e080 Binary files /dev/null and b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.png differ diff --git a/Doc/html/group___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 similarity index 83% rename from Doc/html/group___g_p_i_o___s_w_i_t_c_h.html rename to Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html index 11725ce..82e3bfb 100644 --- a/Doc/html/group___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 @@ -71,7 +71,7 @@ $(function() {
@@ -103,6 +103,16 @@ $(function(){initNavTree('group___g_p_i_o___s_w_i_t_c_h.html','',''); });

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

+
Collaboration diagram for Switch tools:
+
+
+ @@ -113,8 +123,8 @@ Classes Functions - - + +

Classes

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

Detailed Description

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

@@ -164,14 +174,14 @@ Functions
- -

◆ GPIO_Read_Switch()

+ +

◆ GPIO_Read_Switch()

- + @@ -186,10 +196,10 @@ Functions
uint8_t GPIO_Read_Switch int GPIO_Read_Switch ( GPIO_SwitchTypeDef * sw)
-
Returns
1 - если кнопка нажата, 0 - если отжата
+
Returns
1 - если кнопка нажата, 0 - если отжата, -1 - если ошибка

Функция включает в себя неблокирующую проверку на дребезг Т.е. функцию надо вызывать постоянно, чтобы она мониторила состояние кнопки

-

Definition at line 276 of file general_gpio.c.

+

Definition at line 278 of file general_gpio.c.

diff --git a/Doc/html/group___g_p_i_o___s_w_i_t_c_h.js b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.js similarity index 58% rename from Doc/html/group___g_p_i_o___s_w_i_t_c_h.js rename to Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.js index e174291..cc824a0 100644 --- a/Doc/html/group___g_p_i_o___s_w_i_t_c_h.js +++ b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.js @@ -1,13 +1,12 @@ -var group___g_p_i_o___s_w_i_t_c_h = +var group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h = [ [ "GPIO_SwitchTypeDef", "struct_g_p_i_o___switch_type_def.html", [ [ "Sw_Port", "struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a", null ], [ "Sw_Pin", "struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032", null ], [ "Sw_ActiveLvl", "struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405", null ], [ "Sw_PrevState", "struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89", null ], - [ "Sw_FilterDelay", "struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06", null ], - [ "tickprev", "struct_g_p_i_o___switch_type_def.html#a13f97b867ff1a77ef182c9b13d964ca6", null ] + [ "Sw_FilterDelay", "struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06", null ] ] ], - [ "GPIO_Switch_Init", "group___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7", null ], - [ "GPIO_Read_Switch", "group___g_p_i_o___s_w_i_t_c_h.html#ga4b6b8be19a9265bfee6b2bb8a68e988f", null ] + [ "GPIO_Switch_Init", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7", null ], + [ "GPIO_Read_Switch", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70", null ] ]; \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.map b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.map new file mode 100644 index 0000000..7f03793 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.md5 b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.md5 new file mode 100644 index 0000000..ca8ef1e --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.md5 @@ -0,0 +1 @@ +02b6c378f59c685817dae556984a4fb3 \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.png b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.png new file mode 100644 index 0000000..6b8513a Binary files /dev/null and b/Doc/html/group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.png differ 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 c223be2..be528a7 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 @@ -103,11 +103,25 @@ $(function(){initNavTree('group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.html','','')

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

+
Collaboration diagram for Peripheral:
+
+
+ + +

Topics

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

Detailed Description

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

diff --git a/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.js b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.js index 1d29866..3fc66f5 100644 --- a/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.js +++ b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.js @@ -1,4 +1,5 @@ var group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l = [ - [ "GPIO Tools", "group___m_y___l_i_b_s___g_p_i_o.html", "group___m_y___l_i_b_s___g_p_i_o" ] + [ "GPIO Tools", "group___m_y___l_i_b_s___g_p_i_o.html", "group___m_y___l_i_b_s___g_p_i_o" ], + [ "TIM Tools", "group___m_y___l_i_b_s___t_i_m.html", "group___m_y___l_i_b_s___t_i_m" ] ]; \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.map b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.map new file mode 100644 index 0000000..fc698cf --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.md5 b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.md5 new file mode 100644 index 0000000..ee8c449 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.md5 @@ -0,0 +1 @@ +9a24bce9b60d282ebbaf04d75a3cfad4 \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.png b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.png new file mode 100644 index 0000000..756240e Binary files /dev/null and b/Doc/html/group___m_y_l_i_b_s___p_e_r_i_p_h_e_r_a_l.png differ 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 new file mode 100644 index 0000000..0ff461a --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html @@ -0,0 +1,243 @@ + + + + + + + +MyLibs: Delay tools + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Delay tools
+
+
+ +

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

+
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

+

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

+

Function Documentation

+ +

◆ TIM_Delay_Start()

+ +
+
+ + + + + + + +
HAL_StatusTypeDef TIM_Delay_Start (TIM_HandleTypeDef * htim)
+
+ +

Начать отсчет неблокирующей задержки.

+
Parameters
+ + +
htimУказатель на хендл таймера.
+
+
+
Returns
HAL status.
+

Сбрасывает счетчик для начала отсчета неблокирующей задержки. TIM_Delay_NonBlocking для проверки статуса задержки

+ +

Definition at line 363 of file general_tim.c.

+ +
+
+ +

◆ TIM_Delay()

+ +
+
+ + + + + + + + + + + +
HAL_StatusTypeDef TIM_Delay (TIM_HandleTypeDef * htim,
uint16_t delay )
+
+ +

Задержка в тиках таймера (блокирующая).

+
Parameters
+ + + +
htimУказатель на хендл таймера.
delayЗадержка в тиках таймера.
+
+
+
Returns
HAL status.
+

Формирует задержку с блокировкой программы.

+ +

Definition at line 337 of file general_tim.c.

+ +
+
+ +

◆ TIM_Delay_NonBlocking()

+ +
+
+ + + + + + + + + + + +
HAL_StatusTypeDef TIM_Delay_NonBlocking (TIM_HandleTypeDef * htim,
uint16_t delay )
+
+ +

Задержка в тиках таймера (неблокирующая).

+
Parameters
+ + + +
htimУказатель на хендл таймера.
delayЗадержка в тиках таймера.
+
+
+
Returns
HAL status.
+

Формирует задержку с блокировкой программы. Перед ожиданием задержки надо запутстить таймер TIM_Delay_Start

Note
Таймер не должен использоваться на время этой задержки
+ +

Definition at line 382 of file general_tim.c.

+ +
+
+
+
+ +
+ + + + diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.js b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.js new file mode 100644 index 0000000..595faab --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.js @@ -0,0 +1,6 @@ +var group___m_y_l_i_b_s___t_i_m___d_e_l_a_y = +[ + [ "TIM_Delay_Start", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834", null ], + [ "TIM_Delay", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e", null ], + [ "TIM_Delay_NonBlocking", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b", null ] +]; \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.map b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.map new file mode 100644 index 0000000..59dd659 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.md5 b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.md5 new file mode 100644 index 0000000..fd82335 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.md5 @@ -0,0 +1 @@ +4ec3b63ebc8456123bf82cd78dcc4875 \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.png b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.png new file mode 100644 index 0000000..d86dd98 Binary files /dev/null and b/Doc/html/group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.png differ 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 new file mode 100644 index 0000000..7401cc6 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html @@ -0,0 +1,242 @@ + + + + + + + +MyLibs: Encoder tools + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Encoder tools
+
+
+ +

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

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

+Classes

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

+

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

+

Function Documentation

+ +

◆ TIM_Encoder_Init()

+ +
+
+ + + + + + + + + + + +
HAL_StatusTypeDef TIM_Encoder_Init (TIM_EncoderTypeDef * henc,
TIM_HandleTypeDef * htim )
+
+ +

Инициализация режима энкодер у таймера.

+
Parameters
+ + + +
hencУказатель на хендл энкодера.
htimУказатель на хендл таймера.
+
+
+
Returns
HAL status.
+
Note
Предварительно надо инициализировать таймер TIM_Base_Init.
+ +

Definition at line 168 of file general_tim.c.

+ +
+
+ +

◆ TIM_Encoder_Read()

+ +
+
+ + + + + + + +
HAL_StatusTypeDef TIM_Encoder_Read (TIM_EncoderTypeDef * henc)
+
+ +

Считать энкодер.

+
Parameters
+ + +
hencУказатель на хендл энкодера.
+
+
+
Returns
HAL status.
+

Читает разницу энкодера, которую он накопил после предыдущего вызова этой функции.

+ +

Definition at line 303 of file general_tim.c.

+ +
+
+ +

◆ TIM_Encoder_ReadSwitch()

+ +
+
+ + + + + + + +
int TIM_Encoder_ReadSwitch (TIM_EncoderTypeDef * henc)
+
+ +

Считать кнопку энкодера.

+
Parameters
+ + +
hencУказатель на хендл энкодера.
+
+
+
Returns
1 - если кнопка нажата, 0 - если отжата, -1 - если ошибка
+ +

Definition at line 322 of file general_tim.c.

+ +
+
+
+
+ +
+ + + + diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.js b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.js new file mode 100644 index 0000000..ebbdb4b --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.js @@ -0,0 +1,17 @@ +var group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r = +[ + [ "TIM_EncoderTypeDef", "struct_t_i_m___encoder_type_def.html", [ + [ "Encoder_Diff", "struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3", null ], + [ "Encoder_Shdw", "struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2", null ], + [ "htim", "struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c", null ], + [ "sConfig", "struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5", null ], + [ "GPIOx", "struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9", null ], + [ "GPIO_PIN_TI1", "struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e", null ], + [ "GPIO_PIN_TI2", "struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5", null ], + [ "GPIO_PIN_SW", "struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80", null ], + [ "Sw", "struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45", null ] + ] ], + [ "TIM_Encoder_Init", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc", null ], + [ "TIM_Encoder_Read", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501", null ], + [ "TIM_Encoder_ReadSwitch", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761", null ] +]; \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.map b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.map new file mode 100644 index 0000000..112fd24 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.md5 b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.md5 new file mode 100644 index 0000000..e0a4275 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.md5 @@ -0,0 +1 @@ +513791dca5b54d0597647f3ade574062 \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.png b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.png new file mode 100644 index 0000000..26fe6d6 Binary files /dev/null and b/Doc/html/group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.png differ 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 new file mode 100644 index 0000000..27e851f --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html @@ -0,0 +1,333 @@ + + + + + + + +MyLibs: General tools + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
General tools
+
+
+ +

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

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

+Topics

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

+Classes

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 +, TIM_TickBase_10US = 10 +, TIM_TickBase_100US = 100 +,
+  TIM_TickBase_1MS = 1000 +, TIM_TickBase_10MS = 10000 +, TIM_TickBase_100MS = 100000 +
+ }
 Длительность тика таймера (частота тактирования таймера) 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

+

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

+

Enumeration Type Documentation

+ +

◆ TIM_ITModeTypeDef

+ +
+
+ + + + +
enum TIM_ITModeTypeDef
+
+ +

Режим прерываний таймера

+ + + +
Enumerator
TIM_DEFAULT 

Прерываний отключены

+
TIM_IT_MODE 

Прерываний включены

+
+ +

Definition at line 76 of file general_tim.h.

+ +
+
+ +

◆ TIM_MHzTickBaseTypeDef

+ +
+
+ + + + +
enum TIM_MHzTickBaseTypeDef
+
+ +

Длительность тика таймера (частота тактирования таймера)

+

enum дает базовые длительности, но можно выставить другие (напр 500 - 0.5 мс)

+ + + + + + + + +
Enumerator
TIM_Base_Disable 

Таймер отключен

+
TIM_TickBase_1US 

Таймер тактируется с частотой 1 МГц

+
TIM_TickBase_10US 

Таймер тактируется с частотой 100 кГц

+
TIM_TickBase_100US 

Таймер тактируется с частотой 10 кГц

+
TIM_TickBase_1MS 

Таймер тактируется с частотой 1 кГц

+
TIM_TickBase_10MS 

Таймер тактируется с частотой 100 Гц

+
TIM_TickBase_100MS 

Таймер тактируется с частотой 10 Гц

+
+ +

Definition at line 90 of file general_tim.h.

+ +
+
+

Function Documentation

+ +

◆ TIM_Base_Init()

+ +
+
+ + + + + + + +
HAL_StatusTypeDef TIM_Base_Init (TIM_SettingsTypeDef * stim)
+
+ +

Инициализация таймера.

+
Parameters
+ + +
stimУказатель на структуру с настройками таймера.
+
+
+
Returns
HAL status.
+


+ Инициализирует таймер исходя из настроек верхнего уровня:

    +
  • Длительность одного тика TIM_MHzTickBaseTypeDef
  • +
  • Частота таймера (в Гц, float)
  • +
  • Частота тактирования таймера от шины (в Гц, float)
  • +
+

При невозможности выставления частоты при заданой длительности тика длительность тика увеличивается до тех пор, пока частота не будет достигнута.

+

При выставлении дефайна UPDATE_TIM_PARAMS_AFTER_INITIALIZATION новая длительность тика записывается в структуру.

+

Также остается возможность низкоуровневой настройки по структурам TIM_SettingsTypeDef. Для этого надо высокоуровневые настройки приравнять к нулю

+ +

Definition at line 34 of file general_tim.c.

+ +
+
+ +

◆ TIM_Base_MspInit()

+ +
+
+ + + + + + + + + + + +
void TIM_Base_MspInit (TIM_HandleTypeDef * htim,
TIM_ITModeTypeDef it_mode )
+
+ +

Инициализация CLK и NVIC таймеров.

+
Parameters
+ + +
htimУказатель на хендл таймера.
+
+
+
Note
Чтобы не генерировать функцию с иницилизацией неиспользуемых таймеров, дефайнами в general_tim.h определяются используемые таймеры.
+ +

Definition at line 408 of file general_tim.c.

+ +
+
+ +

◆ TIM_Base_MspDeInit()

+ +
+
+ + + + + + + +
void TIM_Base_MspDeInit (TIM_HandleTypeDef * htim)
+
+ +

Деинициализация CLK и NVIC таймеров.

+
Parameters
+ + +
htimУказатель на хендл таймера.
+
+
+
Note
Чтобы не генерировать функцию с деиницилизацией неиспользуемых таймеров, дефайнами в general_tim.h определяются используемые таймеры.
+ +

Definition at line 617 of file general_tim.c.

+ +
+
+
+
+ +
+ + + + diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.js b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.js new file mode 100644 index 0000000..80fa05c --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.js @@ -0,0 +1,32 @@ +var group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l = +[ + [ "Init defines", "group___t_i_m___i_n_i_t.html", "group___t_i_m___i_n_i_t" ], + [ "TIM_SettingsTypeDef", "struct_t_i_m___settings_type_def.html", [ + [ "htim", "struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c", null ], + [ "sClockSourceConfig", "struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0", null ], + [ "sSlaveConfig", "struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969", null ], + [ "sMasterConfig", "struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21", null ], + [ "sBreakDeadTimeConfig", "struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7", null ], + [ "sTimMode", "struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0", null ], + [ "sTickBaseUS", "struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e", null ], + [ "sTickBasePrescaler", "struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718", null ], + [ "sTimAHBFreqMHz", "struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014", null ], + [ "sTimFreqHz", "struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4", null ] + ] ], + [ "TIM_ITModeTypeDef", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787", [ + [ "TIM_DEFAULT", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8", null ], + [ "TIM_IT_MODE", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c", null ] + ] ], + [ "TIM_MHzTickBaseTypeDef", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800", [ + [ "TIM_Base_Disable", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5", null ], + [ "TIM_TickBase_1US", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2", null ], + [ "TIM_TickBase_10US", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f", null ], + [ "TIM_TickBase_100US", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30", null ], + [ "TIM_TickBase_1MS", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25", null ], + [ "TIM_TickBase_10MS", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa", null ], + [ "TIM_TickBase_100MS", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da", null ] + ] ], + [ "TIM_Base_Init", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec", null ], + [ "TIM_Base_MspInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931", null ], + [ "TIM_Base_MspDeInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115", null ] +]; \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.map b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.map new file mode 100644 index 0000000..f14a09f --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.map @@ -0,0 +1,5 @@ + + + + + diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.md5 b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.md5 new file mode 100644 index 0000000..5d080b1 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.md5 @@ -0,0 +1 @@ +37d8e41e702ba4c638358b9e0ee2014c \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.png b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.png new file mode 100644 index 0000000..6294f41 Binary files /dev/null and b/Doc/html/group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.png differ 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 new file mode 100644 index 0000000..84523ed --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.html @@ -0,0 +1,230 @@ + + + + + + + +MyLibs: PWM/OC Channels tools + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
PWM/OC Channels tools
+
+
+ +

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

+
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

+

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

+

Function Documentation

+ +

◆ TIM_Output_PWM_Init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
HAL_StatusTypeDef TIM_Output_PWM_Init (TIM_HandleTypeDef * htim,
TIM_OC_InitTypeDef * sConfigOC,
uint32_t TIM_CHANNEL,
GPIO_TypeDef * GPIOx,
uint32_t GPIO_PIN )
+
+ +

Инициализация выхода ШИМ таймера.

+
Parameters
+ + + + + + +
htimУказатель на хендл таймера.
sConfigOCУказатель на настрйоки канала таймера.
TIM_CHANNELКанал таймера для настройки.
GPIOxПорт для вывода ШИМ.
GPIO_PINПин для вывода ШИМ.
+
+
+
Returns
HAL status.
+
Note
Предварительно надо инициализировать таймер TIM_Base_Init.
+ +

Definition at line 226 of file general_tim.c.

+ +
+
+ +

◆ TIM_OC_Comparator_Init()

+ +
+
+ + + + + + + + + + + +
HAL_StatusTypeDef TIM_OC_Comparator_Init (TIM_HandleTypeDef * htim,
uint32_t TIM_CHANNEL )
+
+ +

Инициализация OC компаратора таймера.

+
Parameters
+ + + +
htimУказатель на хендл таймера.
TIM_CHANNELКанал таймера для настройки.
+
+
+
Returns
HAL status.
+
Note
Предварительно надо инициализировать таймер TIM_Base_Init.
+ +

Definition at line 272 of file general_tim.c.

+ +
+
+
+
+ +
+ + + + diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.js b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.js new file mode 100644 index 0000000..b3b5b18 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.js @@ -0,0 +1,5 @@ +var group___m_y_l_i_b_s___t_i_m___o_c = +[ + [ "TIM_Output_PWM_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6", null ], + [ "TIM_OC_Comparator_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889", null ] +]; \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.map b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.map new file mode 100644 index 0000000..5a90a60 --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.md5 b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.md5 new file mode 100644 index 0000000..7283b9f --- /dev/null +++ b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.md5 @@ -0,0 +1 @@ +7f9a6251bcbe3f9c7a8b50c58d1b52f5 \ No newline at end of file diff --git a/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.png b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.png new file mode 100644 index 0000000..2b2d68b Binary files /dev/null and b/Doc/html/group___m_y_l_i_b_s___t_i_m___o_c.png differ 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 new file mode 100644 index 0000000..ad276d8 --- /dev/null +++ b/Doc/html/group___t_i_m___i_n_i_t.html @@ -0,0 +1,437 @@ + + + + + + + +MyLibs: Init defines + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MyLibs 1.0 +
+
Расширенные библиотеки для STM32
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
+
+ +

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

+
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

+

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

+

Macro Definition Documentation

+ +

◆ HAL_TIM_MODULE_ENABLED

+ +
+
+ + + + +
#define HAL_TIM_MODULE_ENABLED
+
+ +

Definition at line 31 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM1

+ +
+
+ + + + +
#define USE_TIM1
+
+ +

Включить TIM1 в TIM_Base_MspInit.

+ +

Definition at line 33 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM2

+ +
+
+ + + + +
#define USE_TIM2
+
+ +

Включить TIM2 в TIM_Base_MspInit.

+ +

Definition at line 34 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM3

+ +
+
+ + + + +
#define USE_TIM3
+
+ +

Включить TIM3 в TIM_Base_MspInit.

+ +

Definition at line 35 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM4

+ +
+
+ + + + +
#define USE_TIM4
+
+ +

Включить TIM4 в TIM_Base_MspInit.

+ +

Definition at line 36 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM5

+ +
+
+ + + + +
#define USE_TIM5
+
+ +

Включить TIM5 в TIM_Base_MspInit.

+ +

Definition at line 37 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM6

+ +
+
+ + + + +
#define USE_TIM6
+
+ +

Включить TIM6 в TIM_Base_MspInit.

+ +

Definition at line 38 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM7

+ +
+
+ + + + +
#define USE_TIM7
+
+ +

Включить TIM7 в TIM_Base_MspInit.

+ +

Definition at line 39 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM8

+ +
+
+ + + + +
#define USE_TIM8
+
+ +

Включить TIM8 в TIM_Base_MspInit.

+ +

Definition at line 40 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM9

+ +
+
+ + + + +
#define USE_TIM9
+
+ +

Включить TIM9 в TIM_Base_MspInit.

+ +

Definition at line 41 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM10

+ +
+
+ + + + +
#define USE_TIM10
+
+ +

Включить TIM10 в TIM_Base_MspInit.

+ +

Definition at line 42 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM11

+ +
+
+ + + + +
#define USE_TIM11
+
+ +

Включить TIM11 в TIM_Base_MspInit.

+ +

Definition at line 43 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM12

+ +
+
+ + + + +
#define USE_TIM12
+
+ +

Включить TIM12 в TIM_Base_MspInit.

+ +

Definition at line 44 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM13

+ +
+
+ + + + +
#define USE_TIM13
+
+ +

Включить TIM13 в TIM_Base_MspInit.

+ +

Definition at line 45 of file general_tim.h.

+ +
+
+ +

◆ USE_TIM14

+ +
+
+ + + + +
#define USE_TIM14
+
+ +

Включить TIM14 в TIM_Base_MspInit.

+ +

Definition at line 46 of file general_tim.h.

+ +
+
+
+
+ +
+ + + + diff --git a/Doc/html/group___t_i_m___i_n_i_t.js b/Doc/html/group___t_i_m___i_n_i_t.js new file mode 100644 index 0000000..9a8158f --- /dev/null +++ b/Doc/html/group___t_i_m___i_n_i_t.js @@ -0,0 +1,17 @@ +var group___t_i_m___i_n_i_t = +[ + [ "USE_TIM1", "group___t_i_m___i_n_i_t.html#ga54a98c21365e0bc45b81555d2b101f2b", null ], + [ "USE_TIM2", "group___t_i_m___i_n_i_t.html#ga72535a44955b43cbcd56e25039ab32eb", null ], + [ "USE_TIM3", "group___t_i_m___i_n_i_t.html#ga5b5685a43273b6e37242a4aba3ee0617", null ], + [ "USE_TIM4", "group___t_i_m___i_n_i_t.html#ga1493b39c9214501180b81b4c892f9be0", null ], + [ "USE_TIM5", "group___t_i_m___i_n_i_t.html#ga252f4fba93fc265110e83760e0590af3", null ], + [ "USE_TIM6", "group___t_i_m___i_n_i_t.html#ga8fe31b98160627d19038222910be3f46", null ], + [ "USE_TIM7", "group___t_i_m___i_n_i_t.html#ga7cdc54cc8cbbb6e9f60001f1e3e6ec67", null ], + [ "USE_TIM8", "group___t_i_m___i_n_i_t.html#ga28ba33d7c6bf22821dafa5bcee4854be", null ], + [ "USE_TIM9", "group___t_i_m___i_n_i_t.html#gaac627c0e98c9594cc41b1b46eb39e44a", null ], + [ "USE_TIM10", "group___t_i_m___i_n_i_t.html#ga98c0691052d1da2c4053dd3586ff7ce9", null ], + [ "USE_TIM11", "group___t_i_m___i_n_i_t.html#ga176c97f06ebcf14e06e5c5bdbfac44c2", null ], + [ "USE_TIM12", "group___t_i_m___i_n_i_t.html#ga4e2b0e6cdf9eed74581b575c3fd9516b", null ], + [ "USE_TIM13", "group___t_i_m___i_n_i_t.html#gaf48ef87650517652ddec039a189507ac", null ], + [ "USE_TIM14", "group___t_i_m___i_n_i_t.html#ga9ae40be31d5271abe3e49f896d916d5c", null ] +]; \ No newline at end of file diff --git a/Doc/html/group___t_i_m___i_n_i_t.map b/Doc/html/group___t_i_m___i_n_i_t.map new file mode 100644 index 0000000..fa3e7f2 --- /dev/null +++ b/Doc/html/group___t_i_m___i_n_i_t.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___t_i_m___i_n_i_t.md5 b/Doc/html/group___t_i_m___i_n_i_t.md5 new file mode 100644 index 0000000..2f19743 --- /dev/null +++ b/Doc/html/group___t_i_m___i_n_i_t.md5 @@ -0,0 +1 @@ +e286c56f2c0f0433bd87311b1d2712be \ No newline at end of file diff --git a/Doc/html/group___t_i_m___i_n_i_t.png b/Doc/html/group___t_i_m___i_n_i_t.png new file mode 100644 index 0000000..6fb3b6c Binary files /dev/null and b/Doc/html/group___t_i_m___i_n_i_t.png differ diff --git a/Doc/html/group___t_r_a_c_e.html b/Doc/html/group___t_r_a_c_e.html index 7bad11c..2be89a9 100644 --- a/Doc/html/group___t_r_a_c_e.html +++ b/Doc/html/group___t_r_a_c_e.html @@ -103,6 +103,20 @@ $(function(){initNavTree('group___t_r_a_c_e.html','',''); });

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

+
Collaboration diagram for Trace defines:
+
+
+ diff --git a/Doc/html/group___t_r_a_c_e.map b/Doc/html/group___t_r_a_c_e.map new file mode 100644 index 0000000..0c4f8df --- /dev/null +++ b/Doc/html/group___t_r_a_c_e.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Doc/html/group___t_r_a_c_e.md5 b/Doc/html/group___t_r_a_c_e.md5 new file mode 100644 index 0000000..8707b6e --- /dev/null +++ b/Doc/html/group___t_r_a_c_e.md5 @@ -0,0 +1 @@ +af53452e0ed934b43a42a30e5eaddc2c \ No newline at end of file diff --git a/Doc/html/group___t_r_a_c_e.png b/Doc/html/group___t_r_a_c_e.png new file mode 100644 index 0000000..3b9e235 Binary files /dev/null and b/Doc/html/group___t_r_a_c_e.png differ 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 bb4d4a2..cd9e6da 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 @@ -103,6 +103,16 @@ $(function(){initNavTree('group___t_r_a_c_e___c_o_n_f_i_g.html','',''); });

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

+
Collaboration diagram for Trace configs:
+
+
+

Topics

@@ -156,7 +166,7 @@ Macros

Включить трекеры

-

Definition at line 29 of file mylibs_config.h.

+

Definition at line 25 of file mylibs_config.h.

@@ -174,7 +184,7 @@ Macros

Включить serial трассировку

-

Definition at line 30 of file mylibs_config.h.

+

Definition at line 26 of file mylibs_config.h.

@@ -192,7 +202,7 @@ Macros

Включить serial трассировку через RTT.

-

Definition at line 31 of file mylibs_config.h.

+

Definition at line 27 of file mylibs_config.h.

@@ -210,7 +220,7 @@ Macros

Включить serial трассировку через SWO.

-

Definition at line 32 of file mylibs_config.h.

+

Definition at line 28 of file mylibs_config.h.

@@ -233,7 +243,7 @@ Macros
  • LOG_LEVEL >= 2 - выводится время, TAG, имя файла и номер строки
  • -

    Definition at line 39 of file mylibs_config.h.

    +

    Definition at line 35 of file mylibs_config.h.

    @@ -251,7 +261,7 @@ Macros

    Размер буфера RTT в Flash.

    -

    Definition at line 41 of file mylibs_config.h.

    +

    Definition at line 37 of file mylibs_config.h.

    @@ -269,7 +279,7 @@ Macros

    Сектор FLASH куда положится RTT буфер

    -

    Definition at line 42 of file mylibs_config.h.

    +

    Definition at line 38 of file mylibs_config.h.

    @@ -287,7 +297,7 @@ Macros

    Начало сектора RTT_FLASH_SECTOR.

    -

    Definition at line 43 of file mylibs_config.h.

    +

    Definition at line 39 of file mylibs_config.h.

    @@ -305,7 +315,7 @@ Macros

    Конец сектора RTT_FLASH_SECTOR.

    -

    Definition at line 44 of file mylibs_config.h.

    +

    Definition at line 40 of file mylibs_config.h.

    @@ -323,7 +333,7 @@ Macros

    Включить обработку и serial трассировку Hardfault.

    -

    Definition at line 47 of file mylibs_config.h.

    +

    Definition at line 43 of file mylibs_config.h.

    @@ -341,7 +351,7 @@ Macros

    базовый тег для HardFault

    -

    Definition at line 48 of file mylibs_config.h.

    +

    Definition at line 44 of file mylibs_config.h.

    @@ -359,7 +369,7 @@ Macros

    Размер буфера RTT, который сохранится при Hardfault.

    -

    Definition at line 49 of file mylibs_config.h.

    +

    Definition at line 45 of file mylibs_config.h.

    @@ -377,7 +387,7 @@ Macros

    Сколько слов стека будет проанализировано во время Hardfault.

    -

    Definition at line 50 of file mylibs_config.h.

    +

    Definition at line 46 of file mylibs_config.h.

    @@ -395,7 +405,7 @@ Macros

    Адрес FLASH куда положится RTT буфер

    -

    Definition at line 51 of file mylibs_config.h.

    +

    Definition at line 47 of file mylibs_config.h.

    @@ -413,7 +423,7 @@ Macros

    Конец RAM памяти (чтобы во время анализа стека не выйти за пределы)

    -

    Definition at line 52 of file mylibs_config.h.

    +

    Definition at line 48 of file mylibs_config.h.

    @@ -431,7 +441,7 @@ Macros

    Включить GPIO трассировку

    -

    Definition at line 54 of file mylibs_config.h.

    +

    Definition at line 50 of file mylibs_config.h.

    diff --git a/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.map b/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.map new file mode 100644 index 0000000..ef4b643 --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.md5 b/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.md5 new file mode 100644 index 0000000..d2b34dd --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.md5 @@ -0,0 +1 @@ +2fc8132be79ba3b5dcba4208b778cf55 \ No newline at end of file diff --git a/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.png b/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.png new file mode 100644 index 0000000..0f1fcfe Binary files /dev/null and b/Doc/html/group___t_r_a_c_e___c_o_n_f_i_g.png differ diff --git a/Doc/html/group___t_r_a_c_e___g_p_i_o.html b/Doc/html/group___t_r_a_c_e___g_p_i_o.html index 7b04253..ebe37bc 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 @@ -103,6 +103,16 @@ $(function(){initNavTree('group___t_r_a_c_e___g_p_i_o.html','',''); });

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

    +
    Collaboration diagram for GPIO trace defines:
    +
    +
    +

    Macros

    @@ -152,7 +162,7 @@ Macros
  • GPIO_TRACE_ENABLE определён - устанавливает бит сброса через BSRR ((pin)<<16)
  • -

    Definition at line 140 of file trace.h.

    +

    Definition at line 138 of file trace.h.

    @@ -189,7 +199,7 @@ Macros
  • GPIO_TRACE_ENABLE определён - устанавливает бит установки через BSRR (pin)
  • -

    Definition at line 139 of file trace.h.

    +

    Definition at line 137 of file trace.h.

    diff --git a/Doc/html/group___t_r_a_c_e___g_p_i_o.map b/Doc/html/group___t_r_a_c_e___g_p_i_o.map new file mode 100644 index 0000000..341dbe4 --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___g_p_i_o.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___t_r_a_c_e___g_p_i_o.md5 b/Doc/html/group___t_r_a_c_e___g_p_i_o.md5 new file mode 100644 index 0000000..62f038a --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___g_p_i_o.md5 @@ -0,0 +1 @@ +ac4a0270cc0a294f6771b1d2273e0e9c \ No newline at end of file diff --git a/Doc/html/group___t_r_a_c_e___g_p_i_o.png b/Doc/html/group___t_r_a_c_e___g_p_i_o.png new file mode 100644 index 0000000..6413612 Binary files /dev/null and b/Doc/html/group___t_r_a_c_e___g_p_i_o.png differ 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 7c9db9c..069857a 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 @@ -103,6 +103,16 @@ $(function(){initNavTree('group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.html','',''); })

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

    +
    Collaboration diagram for Hardfault trace defines:
    +
    +
    +

    Macros

    @@ -144,9 +154,9 @@ Functions
    RTT_EraseFlash(); // erase rtt flash after message readed
    }
    }
    -
    HF_CheckRecovered
    __STATIC_FORCEINLINE int HF_CheckRecovered(int erase)
    Проверка и вывод последнего HardFault-трейса из Flash.
    Definition trace.h:466
    -
    HF_HandleFault
    __STATIC_FORCEINLINE void HF_HandleFault(void)
    Обработчик HardFault.
    Definition trace.h:507
    -
    RTT_EraseFlash
    __STATIC_FORCEINLINE int RTT_EraseFlash(void)
    Стирание сектора Flash с RTT-буфером
    Definition trace.h:365
    +
    HF_CheckRecovered
    __STATIC_FORCEINLINE int HF_CheckRecovered(int erase)
    Проверка и вывод последнего HardFault-трейса из Flash.
    Definition trace.h:464
    +
    HF_HandleFault
    __STATIC_FORCEINLINE void HF_HandleFault(void)
    Обработчик HardFault.
    Definition trace.h:505
    +
    RTT_EraseFlash
    __STATIC_FORCEINLINE int RTT_EraseFlash(void)
    Стирание сектора Flash с RTT-буфером
    Definition trace.h:363
    @@ -176,7 +186,7 @@ Functions
    Note
    Вызов рекомендуется при инициализации приложения для анализа предыдущего сбоя.
    -

    Definition at line 466 of file trace.h.

    +

    Definition at line 464 of file trace.h.

    @@ -206,7 +216,7 @@ Functions
    Note
    Функция защищена, так как вызывается в контексте сбоя — минимизирует использование вызовов HAL.
    -

    Definition at line 507 of file trace.h.

    +

    Definition at line 505 of file trace.h.

    diff --git a/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.map b/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.map new file mode 100644 index 0000000..ef66f03 --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.md5 b/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.md5 new file mode 100644 index 0000000..fb94dce --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.md5 @@ -0,0 +1 @@ +d40611b9b3f8a89ea252c07ed3929315 \ No newline at end of file diff --git a/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.png b/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.png new file mode 100644 index 0000000..88cb0fd Binary files /dev/null and b/Doc/html/group___t_r_a_c_e___h_a_r_d_f_a_u_l_t.png differ 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 9e728aa..d1626ca 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 @@ -103,6 +103,16 @@ $(function(){initNavTree('group___t_r_a_c_e___r_t_t___f_l_a_s_h.html','',''); })

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

    +
    Collaboration diagram for Flash RTT Buffer:
    +
    +
    +

    Classes

    @@ -153,7 +163,7 @@ Functions

    Подготовка Flash к записи

    Сбрасывает ошибки Flash и ожидает готовности перед записью

    -

    Definition at line 181 of file trace.h.

    +

    Definition at line 179 of file trace.h.

    @@ -191,7 +201,7 @@ Functions
  • Если конкретный (младший байт != 0) — запись выполняется только с этим тегом, иначе ошибка.
  • -

    Definition at line 204 of file trace.h.

    +

    Definition at line 202 of file trace.h.

    @@ -240,7 +250,7 @@ Functions
  • Если конкретный (младший байт != 0) — прочитывается именно эта запись.
  • -

    Definition at line 301 of file trace.h.

    +

    Definition at line 299 of file trace.h.

    @@ -261,7 +271,7 @@ Functions

    Стирание сектора Flash с RTT-буфером

    -

    Definition at line 365 of file trace.h.

    +

    Definition at line 363 of file trace.h.

    diff --git a/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.map b/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.map new file mode 100644 index 0000000..4d68bb1 --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.md5 b/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.md5 new file mode 100644 index 0000000..f21e11b --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.md5 @@ -0,0 +1 @@ +a2b22c2a478cecd42e57ff4616ed0a98 \ No newline at end of file diff --git a/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.png b/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.png new file mode 100644 index 0000000..e910965 Binary files /dev/null and b/Doc/html/group___t_r_a_c_e___r_t_t___f_l_a_s_h.png differ 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 f9f3cc9..8a13055 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 @@ -103,6 +103,16 @@ $(function(){initNavTree('group___t_r_a_c_e___s_e_r_i_a_l.html','',''); });

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

    +
    Collaboration diagram for Serial trace defines:
    +
    +
    +

    Classes

    @@ -129,9 +139,8 @@ Macros -
  • Если трассировка SERIAL_TRACE_ENABLE отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют
  • +
  • Если трассировка SERIAL_TRACE_ENABLE отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют
  • -

    Если трассировка отключена, все макросы пустые и не влияют на производительность

    Macro Definition Documentation

    ◆ my_printf

    @@ -156,7 +165,7 @@ Macros
  • NO_TRACE - пустой макрос
  • -

    Definition at line 69 of file trace.h.

    +

    Definition at line 67 of file trace.h.

    @@ -185,7 +194,7 @@ Macros
    Value:
    my_printf("\n[%lu] [%s] " fmt, \
    (unsigned long)uwTick, TAG, ##__VA_ARGS__)
    -
    #define my_printf(...)
    Универсальный макрос для вывода трассировки
    Definition trace.h:69
    +
    #define my_printf(...)
    Универсальный макрос для вывода трассировки
    Definition trace.h:67

    Макрос логирования с поддержкой уровней LOG_LEVEL.

    Parameters
    @@ -201,7 +210,7 @@ Macros
  • LOG_LEVEL >= 2 - выводится время, TAG, имя файла и номер строки
  • -

    Definition at line 94 of file trace.h.

    +

    Definition at line 92 of file trace.h.

    diff --git a/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.map b/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.map new file mode 100644 index 0000000..4cee3ed --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.map @@ -0,0 +1,4 @@ + + + + diff --git a/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.md5 b/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.md5 new file mode 100644 index 0000000..29e1cb0 --- /dev/null +++ b/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.md5 @@ -0,0 +1 @@ +4ef22f6ccdece7fed6e6f9586217d5a8 \ No newline at end of file diff --git a/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.png b/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.png new file mode 100644 index 0000000..daa3658 Binary files /dev/null and b/Doc/html/group___t_r_a_c_e___s_e_r_i_a_l.png differ 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 c797a9c..9b3c87b 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 @@ -103,6 +103,16 @@ $(function(){initNavTree('group___t_r_a_c_k_e_r_s.html','',''); });

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

    +
    Collaboration diagram for Trackers defines:
    +
    +
    +

    Macros

    @@ -149,7 +159,8 @@ Macros

    Macros

    Detailed Description

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

    -

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