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.