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

Last change on this file since 5 was 4, checked in by f.jahn, 3 years ago

Fixing project.

File size: 13.4 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 // This timer is used to turn on again overcurrent detection after short turn-off.
181
182 /* USER CODE END TIM15_Init 0 */
183
184 TIM_ClockConfigTypeDef sClockSourceConfig = {0};
185 TIM_MasterConfigTypeDef sMasterConfig = {0};
186
187 /* USER CODE BEGIN TIM15_Init 1 */
188
189 /* USER CODE END TIM15_Init 1 */
190 htim15.Instance = TIM15;
191 htim15.Init.Prescaler = 0;
192 htim15.Init.CounterMode = TIM_COUNTERMODE_UP;
193 htim15.Init.Period = 65536 - 1;
194 htim15.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
195 htim15.Init.RepetitionCounter = 0;
196 htim15.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
197 if (HAL_TIM_Base_Init(&htim15) != HAL_OK)
198 {
199 Error_Handler();
200 }
201 sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
202 if (HAL_TIM_ConfigClockSource(&htim15, &sClockSourceConfig) != HAL_OK)
203 {
204 Error_Handler();
205 }
206 sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
207 sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
208 if (HAL_TIMEx_MasterConfigSynchronization(&htim15, &sMasterConfig) != HAL_OK)
209 {
210 Error_Handler();
211 }
212 /* USER CODE BEGIN TIM15_Init 2 */
213
214 /* USER CODE END TIM15_Init 2 */
215
216}
217/* TIM16 init function */
218void MX_TIM16_Init(void)
219{
220
221 /* USER CODE BEGIN TIM16_Init 0 */
222
223 // This timer is used to turn off switch after 60sec after entering into ON mode
224
225 /* USER CODE END TIM16_Init 0 */
226
227 /* USER CODE BEGIN TIM16_Init 1 */
228
229 /* USER CODE END TIM16_Init 1 */
230 htim16.Instance = TIM16;
231 htim16.Init.Prescaler = 60000-1;
232 htim16.Init.CounterMode = TIM_COUNTERMODE_UP;
233 htim16.Init.Period = 64000-1;
234 htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
235 htim16.Init.RepetitionCounter = 0;
236 htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
237 if (HAL_TIM_Base_Init(&htim16) != HAL_OK)
238 {
239 Error_Handler();
240 }
241 /* USER CODE BEGIN TIM16_Init 2 */
242
243 /* USER CODE END TIM16_Init 2 */
244
245}
246/* TIM17 init function */
247void MX_TIM17_Init(void)
248{
249
250 /* USER CODE BEGIN TIM17_Init 0 */
251
252 // This timer is used to stop parsing Modbus commands for 10 sec after illegal command is recieved
253
254 /* USER CODE END TIM17_Init 0 */
255
256 /* USER CODE BEGIN TIM17_Init 1 */
257
258 /* USER CODE END TIM17_Init 1 */
259 htim17.Instance = TIM17;
260 htim17.Init.Prescaler = 64000-1;
261 htim17.Init.CounterMode = TIM_COUNTERMODE_UP;
262 htim17.Init.Period = 10000-1;
263 htim17.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
264 htim17.Init.RepetitionCounter = 0;
265 htim17.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
266 if (HAL_TIM_Base_Init(&htim17) != HAL_OK)
267 {
268 Error_Handler();
269 }
270 /* USER CODE BEGIN TIM17_Init 2 */
271
272 /* USER CODE END TIM17_Init 2 */
273
274}
275
276void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
277{
278
279 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
280 if(tim_baseHandle->Instance==TIM2)
281 {
282 /* USER CODE BEGIN TIM2_MspInit 0 */
283
284 /* USER CODE END TIM2_MspInit 0 */
285
286 /* TIM2 clock enable */
287 __HAL_RCC_TIM2_CLK_ENABLE();
288 /* USER CODE BEGIN TIM2_MspInit 1 */
289
290 /* USER CODE END TIM2_MspInit 1 */
291 }
292 else if(tim_baseHandle->Instance==TIM6)
293 {
294 /* USER CODE BEGIN TIM6_MspInit 0 */
295
296 /* USER CODE END TIM6_MspInit 0 */
297
298 /* TIM6 clock enable */
299 __HAL_RCC_TIM6_CLK_ENABLE();
300
301 /* TIM6 interrupt Init */
302 HAL_NVIC_SetPriority(TIM6_DAC_LPTIM1_IRQn, 3, 0);
303 HAL_NVIC_EnableIRQ(TIM6_DAC_LPTIM1_IRQn);
304 /* USER CODE BEGIN TIM6_MspInit 1 */
305
306 /* USER CODE END TIM6_MspInit 1 */
307 }
308 else if(tim_baseHandle->Instance==TIM7)
309 {
310 /* USER CODE BEGIN TIM7_MspInit 0 */
311
312 /* USER CODE END TIM7_MspInit 0 */
313
314 /* TIM7 clock enable */
315 __HAL_RCC_TIM7_CLK_ENABLE();
316
317 /* TIM7 interrupt Init */
318 HAL_NVIC_SetPriority(TIM7_LPTIM2_IRQn, 3, 0);
319 HAL_NVIC_EnableIRQ(TIM7_LPTIM2_IRQn);
320 /* USER CODE BEGIN TIM7_MspInit 1 */
321
322 /* USER CODE END TIM7_MspInit 1 */
323 }
324 else if(tim_baseHandle->Instance==TIM14)
325 {
326 /* USER CODE BEGIN TIM14_MspInit 0 */
327
328 /* USER CODE END TIM14_MspInit 0 */
329
330 /* TIM14 clock enable */
331 __HAL_RCC_TIM14_CLK_ENABLE();
332
333 /* TIM14 interrupt Init */
334 HAL_NVIC_SetPriority(TIM14_IRQn, 3, 0);
335 HAL_NVIC_EnableIRQ(TIM14_IRQn);
336 /* USER CODE BEGIN TIM14_MspInit 1 */
337
338 /* USER CODE END TIM14_MspInit 1 */
339 }
340 else if(tim_baseHandle->Instance==TIM15)
341 {
342 /* USER CODE BEGIN TIM15_MspInit 0 */
343
344 /* USER CODE END TIM15_MspInit 0 */
345
346 /** Initializes the peripherals clocks
347 */
348 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_TIM15;
349 PeriphClkInit.Tim15ClockSelection = RCC_TIM15CLKSOURCE_PCLK1;
350 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
351 {
352 Error_Handler();
353 }
354
355 /* TIM15 clock enable */
356 __HAL_RCC_TIM15_CLK_ENABLE();
357
358 /* TIM15 interrupt Init */
359 HAL_NVIC_SetPriority(TIM15_IRQn, 0, 0);
360 HAL_NVIC_EnableIRQ(TIM15_IRQn);
361 /* USER CODE BEGIN TIM15_MspInit 1 */
362
363 /* USER CODE END TIM15_MspInit 1 */
364 }
365 else if(tim_baseHandle->Instance==TIM16)
366 {
367 /* USER CODE BEGIN TIM16_MspInit 0 */
368
369 /* USER CODE END TIM16_MspInit 0 */
370
371 /* TIM16 clock enable */
372 __HAL_RCC_TIM16_CLK_ENABLE();
373
374 /* TIM16 interrupt Init */
375 HAL_NVIC_SetPriority(TIM16_IRQn, 3, 0);
376 HAL_NVIC_EnableIRQ(TIM16_IRQn);
377 /* USER CODE BEGIN TIM16_MspInit 1 */
378
379 /* USER CODE END TIM16_MspInit 1 */
380 }
381 else if(tim_baseHandle->Instance==TIM17)
382 {
383 /* USER CODE BEGIN TIM17_MspInit 0 */
384
385 /* USER CODE END TIM17_MspInit 0 */
386
387 /* TIM17 clock enable */
388 __HAL_RCC_TIM17_CLK_ENABLE();
389
390 /* TIM17 interrupt Init */
391 HAL_NVIC_SetPriority(TIM17_IRQn, 3, 0);
392 HAL_NVIC_EnableIRQ(TIM17_IRQn);
393 /* USER CODE BEGIN TIM17_MspInit 1 */
394
395 /* USER CODE END TIM17_MspInit 1 */
396 }
397}
398
399void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
400{
401
402 if(tim_baseHandle->Instance==TIM2)
403 {
404 /* USER CODE BEGIN TIM2_MspDeInit 0 */
405
406 /* USER CODE END TIM2_MspDeInit 0 */
407 /* Peripheral clock disable */
408 __HAL_RCC_TIM2_CLK_DISABLE();
409 /* USER CODE BEGIN TIM2_MspDeInit 1 */
410
411 /* USER CODE END TIM2_MspDeInit 1 */
412 }
413 else if(tim_baseHandle->Instance==TIM6)
414 {
415 /* USER CODE BEGIN TIM6_MspDeInit 0 */
416
417 /* USER CODE END TIM6_MspDeInit 0 */
418 /* Peripheral clock disable */
419 __HAL_RCC_TIM6_CLK_DISABLE();
420
421 /* TIM6 interrupt Deinit */
422 /* USER CODE BEGIN TIM6:TIM6_DAC_LPTIM1_IRQn disable */
423 /**
424 * Uncomment the line below to disable the "TIM6_DAC_LPTIM1_IRQn" interrupt
425 * Be aware, disabling shared interrupt may affect other IPs
426 */
427 /* HAL_NVIC_DisableIRQ(TIM6_DAC_LPTIM1_IRQn); */
428 /* USER CODE END TIM6:TIM6_DAC_LPTIM1_IRQn disable */
429
430 /* USER CODE BEGIN TIM6_MspDeInit 1 */
431
432 /* USER CODE END TIM6_MspDeInit 1 */
433 }
434 else if(tim_baseHandle->Instance==TIM7)
435 {
436 /* USER CODE BEGIN TIM7_MspDeInit 0 */
437
438 /* USER CODE END TIM7_MspDeInit 0 */
439 /* Peripheral clock disable */
440 __HAL_RCC_TIM7_CLK_DISABLE();
441
442 /* TIM7 interrupt Deinit */
443 HAL_NVIC_DisableIRQ(TIM7_LPTIM2_IRQn);
444 /* USER CODE BEGIN TIM7_MspDeInit 1 */
445
446 /* USER CODE END TIM7_MspDeInit 1 */
447 }
448 else if(tim_baseHandle->Instance==TIM14)
449 {
450 /* USER CODE BEGIN TIM14_MspDeInit 0 */
451
452 /* USER CODE END TIM14_MspDeInit 0 */
453 /* Peripheral clock disable */
454 __HAL_RCC_TIM14_CLK_DISABLE();
455
456 /* TIM14 interrupt Deinit */
457 HAL_NVIC_DisableIRQ(TIM14_IRQn);
458 /* USER CODE BEGIN TIM14_MspDeInit 1 */
459
460 /* USER CODE END TIM14_MspDeInit 1 */
461 }
462 else if(tim_baseHandle->Instance==TIM15)
463 {
464 /* USER CODE BEGIN TIM15_MspDeInit 0 */
465
466 /* USER CODE END TIM15_MspDeInit 0 */
467 /* Peripheral clock disable */
468 __HAL_RCC_TIM15_CLK_DISABLE();
469
470 /* TIM15 interrupt Deinit */
471 HAL_NVIC_DisableIRQ(TIM15_IRQn);
472 /* USER CODE BEGIN TIM15_MspDeInit 1 */
473
474 /* USER CODE END TIM15_MspDeInit 1 */
475 }
476 else if(tim_baseHandle->Instance==TIM16)
477 {
478 /* USER CODE BEGIN TIM16_MspDeInit 0 */
479
480 /* USER CODE END TIM16_MspDeInit 0 */
481 /* Peripheral clock disable */
482 __HAL_RCC_TIM16_CLK_DISABLE();
483
484 /* TIM16 interrupt Deinit */
485 HAL_NVIC_DisableIRQ(TIM16_IRQn);
486 /* USER CODE BEGIN TIM16_MspDeInit 1 */
487
488 /* USER CODE END TIM16_MspDeInit 1 */
489 }
490 else if(tim_baseHandle->Instance==TIM17)
491 {
492 /* USER CODE BEGIN TIM17_MspDeInit 0 */
493
494 /* USER CODE END TIM17_MspDeInit 0 */
495 /* Peripheral clock disable */
496 __HAL_RCC_TIM17_CLK_DISABLE();
497
498 /* TIM17 interrupt Deinit */
499 HAL_NVIC_DisableIRQ(TIM17_IRQn);
500 /* USER CODE BEGIN TIM17_MspDeInit 1 */
501
502 /* USER CODE END TIM17_MspDeInit 1 */
503 }
504}
505
506/* USER CODE BEGIN 1 */
507
508/* USER CODE END 1 */
Note: See TracBrowser for help on using the repository browser.