/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file tim.h * @brief This file contains all the function prototypes for * the tim.c file ****************************************************************************** * @attention * * Copyright (c) 2024 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __TIM_H__ #define __TIM_H__ #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "main.h" /* USER CODE BEGIN Includes */ #define FREQ_SYS 41472000 #define freq_operation(FREQ, PULSE) \ do \ { \ if (FREQ <= 0 || FREQ >= FREQ_SYS || PULSE <= 0 || PULSE >= 100) \ { \ HAL_TIMEx_PWMN_Stop(&htim1, TIM_CHANNEL_2); \ return; \ } \ uint16_t duty = FREQ_SYS / FREQ; \ __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_2, duty *PULSE / 100 - 1); \ __HAL_TIM_SET_AUTORELOAD(&htim1, duty -1); \ HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2); \ } while (0) /* USER CODE END Includes */ extern TIM_HandleTypeDef htim1; extern TIM_HandleTypeDef htim3; extern TIM_HandleTypeDef htim6; /* USER CODE BEGIN Private defines */ /* USER CODE END Private defines */ void MX_TIM1_Init(void); void MX_TIM3_Init(void); void MX_TIM6_Init(void); void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); /* USER CODE BEGIN Prototypes */ /* USER CODE END Prototypes */ #ifdef __cplusplus } #endif #endif /* __TIM_H__ */