STM32CubeWL/Projects/NUCLEO-WL55JC/Examples/TIM/TIM_OCToggle/Inc/main.h

105 lines
3.3 KiB
C

/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file TIM/TIM_OCToggle/Inc/main.h
* @author MCD Application Team
* @brief Header for main.c module
******************************************************************************
* @attention
*
* Copyright (c) 2020 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 __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32wlxx_hal.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "stm32wlxx_nucleo.h"
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
/* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/*## Define Timer period and pulse #######################################*/
/* ---------------------------------------------------------------------------
TIM1 Configuration: Output Compare Toggle Mode:
To get TIM1 counter clock at 1 MHz, the prescaler is computed as follows:
Prescaler = (TIM1CLK / TIM1 counter clock) - 1
Prescaler = (SystemCoreClock /1000000) - 1
CC1 update rate = TIM1 counter clock / uhCCR1_Val
= 1 MHz/625 = 1600 Hz
==> So the TIM1 Channel 1 generates a periodic signal with a frequency equal
to 800 Hz.
CC2 update rate = TIM1 counter clock / uhCCR2_Val
= 1 MHz/1250 = 800 Hz
==> So the TIM1 Channel 2 generates a periodic signal with a frequency equal
to 400 Hz.
CC3 update rate = TIM1 counter clock / uhCCR3_Val
= 1 MHz/2500 = 400 Hz
==> So the TIM1 Channel 3 generates a periodic signal with a frequency equal
to 200 Hz.
CC4 update rate = TIM1 counter clock / uhCCR4_Val
= 1 MHz/5000 = 200 Hz
==> So the TIM1 Channel 4 generates a periodic signal with a frequency equal
to 100 Hz.
--------------------------------------------------------------------------- */
#define PRESCALER_VALUE (uint32_t)((SystemCoreClock / 1000000) - 1)
#define PULSE1_VALUE 625
#define PULSE2_VALUE 1250
#define PULSE3_VALUE 2500
#define PULSE4_VALUE 5000
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* USER CODE END EM */
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
#ifdef __cplusplus
}
#endif
#endif /* __MAIN_H */