////////////////////////////////////////////////////////////////////////////////
/// @file tim3_pwm_output.c
/// @author AE TEAM
/// @brief PWM output.
////////////////////////////////////////////////////////////////////////////////
/// @attention
///
/// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
/// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
/// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
/// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
/// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
/// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
///
///
© COPYRIGHT MINDMOTION
////////////////////////////////////////////////////////////////////////////////
// Define to prevent recursive inclusion
#define _TIM3_PWM_OUTPUT_C_
// Files includes
#include "tim3_pwm_output.h"
#include "public.h"
////////////////////////////////////////////////////////////////////////////////
/// @brief TIM3 Pin Config
/// @param None
/// @retval None.
////////////////////////////////////////////////////////////////////////////////
void TIM3_GPIO_Init(void)
{
}
void TIM3_time_Init(u16 arr, u16 psc)
{
NVIC_InitTypeDef NVIC_StructInit;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;
TIM_OCInitTypeDef TIM_OCInitStruct;
RCC_APB1PeriphClockCmd(RCC_APB1ENR_TIM3, ENABLE);
TIM_TimeBaseStructInit(&TIM_TimeBaseStruct);
TIM_TimeBaseStruct.TIM_Period = arr;
TIM_TimeBaseStruct.TIM_Prescaler = psc;
//Setting Clock Segmentation
TIM_TimeBaseStruct.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStruct.TIM_RepetitionCounter = 0;
///TIM Upward Counting Mode
TIM_TimeBaseStruct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStruct);
//使能TIM3 NVIC中断优先级通道
NVIC_StructInit.NVIC_IRQChannel = TIM3_IRQn;
//配置TIM3 NVIC中断优先级
NVIC_StructInit.NVIC_IRQChannelPriority = 2;
//使能NVIC中断优先级
NVIC_StructInit.NVIC_IRQChannelCmd = ENABLE;
//根据配置的中断优先级参数初始化TIM3中断优先级
NVIC_Init(&NVIC_StructInit);
TIM_ClearFlag(TIM3, TIM_FLAG_Update);
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM3, ENABLE);
}
void TIM3_IRQHandler(void)
{
if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
}
}
/// @}
/// @}