|
#include "xctim.h"
void cxtim_init(void)
{
GPIO_InitTypeDef gpio_struct;
TIM_TimeBaseInitTypeDef tim_struct;
TIM_OCInitTypeDef tim_ocstruct;
TIM_OCInitTypeDef tim_ocstruct2;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC |
RCC_APB2Periph_TIM8,ENABLE);
//gpiob 1
gpio_struct.GPIO_Pin = GPIO_Pin_1;
gpio_struct.GPIO_Mode = GPIO_Mode_AF_PP;
gpio_struct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&gpio_struct);
//gpioc 7
gpio_struct.GPIO_Pin = GPIO_Pin_7;
gpio_struct.GPIO_Mode = GPIO_Mode_AF_PP;
gpio_struct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&gpio_struct);
tim_struct.TIM_Period = 255;
tim_struct.TIM_Prescaler = (72-1);
tim_struct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM8,&tim_struct);
tim_ocstruct.TIM_OCMode = TIM_OCMode_PWM1;
tim_ocstruct.TIM_OutputState = TIM_OutputState_Enable;
tim_ocstruct.TIM_OCPolarity = TIM_OCPolarity_High;
tim_ocstruct.TIM_OCIdleState = TIM_OCIdleState_Reset;
tim_ocstruct.TIM_Pulse = 20;
TIM_OC2Init(TIM8,&tim_ocstruct);
tim_ocstruct2.TIM_OCMode = TIM_OCMode_PWM1;
tim_ocstruct2.TIM_OutputNState = TIM_OutputNState_Enable;
tim_ocstruct2.TIM_OCNPolarity = TIM_OCNPolarity_High;
tim_ocstruct2.TIM_OCNIdleState = TIM_OCNIdleState_Reset;
tim_ocstruct2.TIM_Pulse = 20;
TIM_OC3Init(TIM8,&tim_ocstruct2);
TIM_CtrlPWMOutputs(TIM8,ENABLE);
TIM_OC2PreloadConfig(TIM8,TIM_OCPreload_Enable);
TIM_OC3PreloadConfig(TIM8,TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM8,ENABLE);
TIM_Cmd(TIM8,ENABLE);
}
|
|