84 lines
2.4 KiB
C
84 lines
2.4 KiB
C
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
/// @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.
|
|||
|
///
|
|||
|
/// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
|
|||
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 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);
|
|||
|
|
|||
|
//ʹ<><CAB9>TIM3 NVIC<49>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>ͨ<EFBFBD><CDA8>
|
|||
|
NVIC_StructInit.NVIC_IRQChannel = TIM3_IRQn;
|
|||
|
//<2F><><EFBFBD><EFBFBD>TIM3 NVIC<49>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
NVIC_StructInit.NVIC_IRQChannelPriority = 2;
|
|||
|
//ʹ<><CAB9>NVIC<49>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
NVIC_StructInit.NVIC_IRQChannelCmd = ENABLE;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>TIM3<4D>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
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);
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
/// @}
|
|||
|
|
|||
|
/// @}
|
|||
|
|
|||
|
|
|||
|
|