source: trunk/firmware/CubeMX/Src/tim.c@ 2

Last change on this file since 2 was 1, checked in by f.jahn, 3 years ago
File size: 13.3 KB
Line 
1/* USER CODE BEGIN Header */
2/**
3 ******************************************************************************
4 * @file tim.c
5 * @brief This file provides code for the configuration
6 * of the TIM instances.
7 ******************************************************************************
8 * @attention
9 *
10 * Copyright (c) 2022 STMicroelectronics.
11 * All rights reserved.
12 *
13 * This software is licensed under terms that can be found in the LICENSE file
14 * in the root directory of this software component.
15 * If no LICENSE file comes with this software, it is provided AS-IS.
16 *
17 ******************************************************************************
18 */
19/* USER CODE END Header */
20/* Includes ------------------------------------------------------------------*/
21#include "tim.h"
22
23/* USER CODE BEGIN 0 */
24
25/* USER CODE END 0 */
26
27TIM_HandleTypeDef htim2;
28TIM_HandleTypeDef htim6;
29TIM_HandleTypeDef htim7;
30TIM_HandleTypeDef htim14;
31TIM_HandleTypeDef htim15;
32TIM_HandleTypeDef htim16;
33TIM_HandleTypeDef htim17;
34
35/* TIM2 init function */
36void MX_TIM2_Init(void)
37{
38
39 /* USER CODE BEGIN TIM2_Init 0 */
40
41 /* USER CODE END TIM2_Init 0 */
42
43 TIM_ClockConfigTypeDef sClockSourceConfig = {0};
44 TIM_MasterConfigTypeDef sMasterConfig = {0};
45
46 /* USER CODE BEGIN TIM2_Init 1 */
47
48 /* USER CODE END TIM2_Init 1 */
49 htim2.Instance = TIM2;
50 htim2.Init.Prescaler = 0;
51 htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
52 htim2.Init.Period = 4294967295;
53 htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
54 htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
55 if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
56 {
57 Error_Handler();
58 }
59 sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
60 if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
61 {
62 Error_Handler();
63 }
64 sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
65 sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
66 if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
67 {
68 Error_Handler();
69 }
70 /* USER CODE BEGIN TIM2_Init 2 */
71
72 /* USER CODE END TIM2_Init 2 */
73
74}
75/* TIM6 init function */
76void MX_TIM6_Init(void)
77{
78
79 /* USER CODE BEGIN TIM6_Init 0 */
80
81 // This timer is used to start MOSFETs ON mode only after 250ms delay after turn on of VBOOST voltage
82 // (VBOOST voltage stabilization time)
83
84 /* USER CODE END TIM6_Init 0 */
85
86 TIM_MasterConfigTypeDef sMasterConfig = {0};
87
88 /* USER CODE BEGIN TIM6_Init 1 */
89
90 /* USER CODE END TIM6_Init 1 */
91 htim6.Instance = TIM6;
92 htim6.Init.Prescaler = 250-1;
93 htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
94 htim6.Init.Period = 64000-1;
95 htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
96 if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
97 {
98 Error_Handler();
99 }
100 sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
101 sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
102 if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
103 {
104 Error_Handler();
105 }
106 /* USER CODE BEGIN TIM6_Init 2 */
107
108 /* USER CODE END TIM6_Init 2 */
109
110}
111/* TIM7 init function */
112void MX_TIM7_Init(void)
113{
114
115 /* USER CODE BEGIN TIM7_Init 0 */
116
117 // This timer is used to start MOSFETs regulation only after 250ms delay after turn on of VBOOST voltage
118
119 /* USER CODE END TIM7_Init 0 */
120
121 TIM_MasterConfigTypeDef sMasterConfig = {0};
122
123 /* USER CODE BEGIN TIM7_Init 1 */
124
125 /* USER CODE END TIM7_Init 1 */
126 htim7.Instance = TIM7;
127 htim7.Init.Prescaler = 250-1;
128 htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
129 htim7.Init.Period = 64000-1;
130 htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
131 if (HAL_TIM_Base_Init(&htim7) != HAL_OK)
132 {
133 Error_Handler();
134 }
135 sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
136 sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
137 if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK)
138 {
139 Error_Handler();
140 }
141 /* USER CODE BEGIN TIM7_Init 2 */
142
143 /* USER CODE END TIM7_Init 2 */
144
145}
146/* TIM14 init function */
147void MX_TIM14_Init(void)
148{
149
150 /* USER CODE BEGIN TIM14_Init 0 */
151
152 // This timer is used to turn off VBOOST voltage after 100msec after entering into OFF mode
153
154 /* USER CODE END TIM14_Init 0 */
155
156 /* USER CODE BEGIN TIM14_Init 1 */
157
158 /* USER CODE END TIM14_Init 1 */
159 htim14.Instance = TIM14;
160 htim14.Init.Prescaler = 100-1;
161 htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
162 htim14.Init.Period = 64000-1;
163 htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
164 htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
165 if (HAL_TIM_Base_Init(&htim14) != HAL_OK)
166 {
167 Error_Handler();
168 }
169 /* USER CODE BEGIN TIM14_Init 2 */
170
171 /* USER CODE END TIM14_Init 2 */
172
173}
174/* TIM15 init function */
175void MX_TIM15_Init(void)
176{
177
178 /* USER CODE BEGIN TIM15_Init 0 */
179
180 /* USER CODE END TIM15_Init 0 */
181
182 TIM_ClockConfigTypeDef sClockSourceConfig = {0};
183 TIM_MasterConfigTypeDef sMasterConfig = {0};
184
185 /* USER CODE BEGIN TIM15_Init 1 */
186
187 /* USER CODE END TIM15_Init 1 */
188 htim15.Instance = TIM15;
189 htim15.Init.Prescaler = 0;
190 htim15.Init.CounterMode = TIM_COUNTERMODE_UP;
191 htim15.Init.Period = 65536 - 1;
192 htim15.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
193 htim15.Init.RepetitionCounter = 0;
194 htim15.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
195 if (HAL_TIM_Base_Init(&htim15) != HAL_OK)
196 {
197 Error_Handler();
198 }
199 sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
200 if (HAL_TIM_ConfigClockSource(&htim15, &sClockSourceConfig) != HAL_OK)
201 {
202 Error_Handler();
203 }
204 sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
205 sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
206 if (HAL_TIMEx_MasterConfigSynchronization(&htim15, &sMasterConfig) != HAL_OK)
207 {
208 Error_Handler();
209 }
210 /* USER CODE BEGIN TIM15_Init 2 */
211
212 /* USER CODE END TIM15_Init 2 */
213
214}
215/* TIM16 init function */
216void MX_TIM16_Init(void)
217{
218
219 /* USER CODE BEGIN TIM16_Init 0 */
220
221 // This timer is used to turn off switch after 60sec after entering into ON mode
222
223 /* USER CODE END TIM16_Init 0 */
224
225 /* USER CODE BEGIN TIM16_Init 1 */
226
227 /* USER CODE END TIM16_Init 1 */
228 htim16.Instance = TIM16;
229 htim16.Init.Prescaler = 60000-1;
230 htim16.Init.CounterMode = TIM_COUNTERMODE_UP;
231 htim16.Init.Period = 64000-1;
232 htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
233 htim16.Init.RepetitionCounter = 0;
234 htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
235 if (HAL_TIM_Base_Init(&htim16) != HAL_OK)
236 {
237 Error_Handler();
238 }
239 /* USER CODE BEGIN TIM16_Init 2 */
240
241 /* USER CODE END TIM16_Init 2 */
242
243}
244/* TIM17 init function */
245void MX_TIM17_Init(void)
246{
247
248 /* USER CODE BEGIN TIM17_Init 0 */
249
250 // This timer is used to stop parsing Modbus commands for 10 sec after illegal command is recieved
251
252 /* USER CODE END TIM17_Init 0 */
253
254 /* USER CODE BEGIN TIM17_Init 1 */
255
256 /* USER CODE END TIM17_Init 1 */
257 htim17.Instance = TIM17;
258 htim17.Init.Prescaler = 64000-1;
259 htim17.Init.CounterMode = TIM_COUNTERMODE_UP;
260 htim17.Init.Period = 10000-1;
261 htim17.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
262 htim17.Init.RepetitionCounter = 0;
263 htim17.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
264 if (HAL_TIM_Base_Init(&htim17) != HAL_OK)
265 {
266 Error_Handler();
267 }
268 /* USER CODE BEGIN TIM17_Init 2 */
269
270 /* USER CODE END TIM17_Init 2 */
271
272}
273
274void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
275{
276
277 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
278 if(tim_baseHandle->Instance==TIM2)
279 {
280 /* USER CODE BEGIN TIM2_MspInit 0 */
281
282 /* USER CODE END TIM2_MspInit 0 */
283
284 /* TIM2 clock enable */
285 __HAL_RCC_TIM2_CLK_ENABLE();
286 /* USER CODE BEGIN TIM2_MspInit 1 */
287
288 /* USER CODE END TIM2_MspInit 1 */
289 }
290 else if(tim_baseHandle->Instance==TIM6)
291 {
292 /* USER CODE BEGIN TIM6_MspInit 0 */
293
294 /* USER CODE END TIM6_MspInit 0 */
295
296 /* TIM6 clock enable */
297 __HAL_RCC_TIM6_CLK_ENABLE();
298
299 /* TIM6 interrupt Init */
300 HAL_NVIC_SetPriority(TIM6_DAC_LPTIM1_IRQn, 3, 0);
301 HAL_NVIC_EnableIRQ(TIM6_DAC_LPTIM1_IRQn);
302 /* USER CODE BEGIN TIM6_MspInit 1 */
303
304 /* USER CODE END TIM6_MspInit 1 */
305 }
306 else if(tim_baseHandle->Instance==TIM7)
307 {
308 /* USER CODE BEGIN TIM7_MspInit 0 */
309
310 /* USER CODE END TIM7_MspInit 0 */
311
312 /* TIM7 clock enable */
313 __HAL_RCC_TIM7_CLK_ENABLE();
314
315 /* TIM7 interrupt Init */
316 HAL_NVIC_SetPriority(TIM7_LPTIM2_IRQn, 3, 0);
317 HAL_NVIC_EnableIRQ(TIM7_LPTIM2_IRQn);
318 /* USER CODE BEGIN TIM7_MspInit 1 */
319
320 /* USER CODE END TIM7_MspInit 1 */
321 }
322 else if(tim_baseHandle->Instance==TIM14)
323 {
324 /* USER CODE BEGIN TIM14_MspInit 0 */
325
326 /* USER CODE END TIM14_MspInit 0 */
327
328 /* TIM14 clock enable */
329 __HAL_RCC_TIM14_CLK_ENABLE();
330
331 /* TIM14 interrupt Init */
332 HAL_NVIC_SetPriority(TIM14_IRQn, 3, 0);
333 HAL_NVIC_EnableIRQ(TIM14_IRQn);
334 /* USER CODE BEGIN TIM14_MspInit 1 */
335
336 /* USER CODE END TIM14_MspInit 1 */
337 }
338 else if(tim_baseHandle->Instance==TIM15)
339 {
340 /* USER CODE BEGIN TIM15_MspInit 0 */
341
342 /* USER CODE END TIM15_MspInit 0 */
343
344 /** Initializes the peripherals clocks
345 */
346 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_TIM15;
347 PeriphClkInit.Tim15ClockSelection = RCC_TIM15CLKSOURCE_PCLK1;
348 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
349 {
350 Error_Handler();
351 }
352
353 /* TIM15 clock enable */
354 __HAL_RCC_TIM15_CLK_ENABLE();
355
356 /* TIM15 interrupt Init */
357 HAL_NVIC_SetPriority(TIM15_IRQn, 0, 0);
358 HAL_NVIC_EnableIRQ(TIM15_IRQn);
359 /* USER CODE BEGIN TIM15_MspInit 1 */
360
361 /* USER CODE END TIM15_MspInit 1 */
362 }
363 else if(tim_baseHandle->Instance==TIM16)
364 {
365 /* USER CODE BEGIN TIM16_MspInit 0 */
366
367 /* USER CODE END TIM16_MspInit 0 */
368
369 /* TIM16 clock enable */
370 __HAL_RCC_TIM16_CLK_ENABLE();
371
372 /* TIM16 interrupt Init */
373 HAL_NVIC_SetPriority(TIM16_IRQn, 3, 0);
374 HAL_NVIC_EnableIRQ(TIM16_IRQn);
375 /* USER CODE BEGIN TIM16_MspInit 1 */
376
377 /* USER CODE END TIM16_MspInit 1 */
378 }
379 else if(tim_baseHandle->Instance==TIM17)
380 {
381 /* USER CODE BEGIN TIM17_MspInit 0 */
382
383 /* USER CODE END TIM17_MspInit 0 */
384
385 /* TIM17 clock enable */
386 __HAL_RCC_TIM17_CLK_ENABLE();
387
388 /* TIM17 interrupt Init */
389 HAL_NVIC_SetPriority(TIM17_IRQn, 3, 0);
390 HAL_NVIC_EnableIRQ(TIM17_IRQn);
391 /* USER CODE BEGIN TIM17_MspInit 1 */
392
393 /* USER CODE END TIM17_MspInit 1 */
394 }
395}
396
397void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
398{
399
400 if(tim_baseHandle->Instance==TIM2)
401 {
402 /* USER CODE BEGIN TIM2_MspDeInit 0 */
403
404 /* USER CODE END TIM2_MspDeInit 0 */
405 /* Peripheral clock disable */
406 __HAL_RCC_TIM2_CLK_DISABLE();
407 /* USER CODE BEGIN TIM2_MspDeInit 1 */
408
409 /* USER CODE END TIM2_MspDeInit 1 */
410 }
411 else if(tim_baseHandle->Instance==TIM6)
412 {
413 /* USER CODE BEGIN TIM6_MspDeInit 0 */
414
415 /* USER CODE END TIM6_MspDeInit 0 */
416 /* Peripheral clock disable */
417 __HAL_RCC_TIM6_CLK_DISABLE();
418
419 /* TIM6 interrupt Deinit */
420 /* USER CODE BEGIN TIM6:TIM6_DAC_LPTIM1_IRQn disable */
421 /**
422 * Uncomment the line below to disable the "TIM6_DAC_LPTIM1_IRQn" interrupt
423 * Be aware, disabling shared interrupt may affect other IPs
424 */
425 /* HAL_NVIC_DisableIRQ(TIM6_DAC_LPTIM1_IRQn); */
426 /* USER CODE END TIM6:TIM6_DAC_LPTIM1_IRQn disable */
427
428 /* USER CODE BEGIN TIM6_MspDeInit 1 */
429
430 /* USER CODE END TIM6_MspDeInit 1 */
431 }
432 else if(tim_baseHandle->Instance==TIM7)
433 {
434 /* USER CODE BEGIN TIM7_MspDeInit 0 */
435
436 /* USER CODE END TIM7_MspDeInit 0 */
437 /* Peripheral clock disable */
438 __HAL_RCC_TIM7_CLK_DISABLE();
439
440 /* TIM7 interrupt Deinit */
441 HAL_NVIC_DisableIRQ(TIM7_LPTIM2_IRQn);
442 /* USER CODE BEGIN TIM7_MspDeInit 1 */
443
444 /* USER CODE END TIM7_MspDeInit 1 */
445 }
446 else if(tim_baseHandle->Instance==TIM14)
447 {
448 /* USER CODE BEGIN TIM14_MspDeInit 0 */
449
450 /* USER CODE END TIM14_MspDeInit 0 */
451 /* Peripheral clock disable */
452 __HAL_RCC_TIM14_CLK_DISABLE();
453
454 /* TIM14 interrupt Deinit */
455 HAL_NVIC_DisableIRQ(TIM14_IRQn);
456 /* USER CODE BEGIN TIM14_MspDeInit 1 */
457
458 /* USER CODE END TIM14_MspDeInit 1 */
459 }
460 else if(tim_baseHandle->Instance==TIM15)
461 {
462 /* USER CODE BEGIN TIM15_MspDeInit 0 */
463
464 /* USER CODE END TIM15_MspDeInit 0 */
465 /* Peripheral clock disable */
466 __HAL_RCC_TIM15_CLK_DISABLE();
467
468 /* TIM15 interrupt Deinit */
469 HAL_NVIC_DisableIRQ(TIM15_IRQn);
470 /* USER CODE BEGIN TIM15_MspDeInit 1 */
471
472 /* USER CODE END TIM15_MspDeInit 1 */
473 }
474 else if(tim_baseHandle->Instance==TIM16)
475 {
476 /* USER CODE BEGIN TIM16_MspDeInit 0 */
477
478 /* USER CODE END TIM16_MspDeInit 0 */
479 /* Peripheral clock disable */
480 __HAL_RCC_TIM16_CLK_DISABLE();
481
482 /* TIM16 interrupt Deinit */
483 HAL_NVIC_DisableIRQ(TIM16_IRQn);
484 /* USER CODE BEGIN TIM16_MspDeInit 1 */
485
486 /* USER CODE END TIM16_MspDeInit 1 */
487 }
488 else if(tim_baseHandle->Instance==TIM17)
489 {
490 /* USER CODE BEGIN TIM17_MspDeInit 0 */
491
492 /* USER CODE END TIM17_MspDeInit 0 */
493 /* Peripheral clock disable */
494 __HAL_RCC_TIM17_CLK_DISABLE();
495
496 /* TIM17 interrupt Deinit */
497 HAL_NVIC_DisableIRQ(TIM17_IRQn);
498 /* USER CODE BEGIN TIM17_MspDeInit 1 */
499
500 /* USER CODE END TIM17_MspDeInit 1 */
501 }
502}
503
504/* USER CODE BEGIN 1 */
505
506/* USER CODE END 1 */
Note: See TracBrowser for help on using the repository browser.