/** * @brief Configure TIM1 to allow sine wave generation * @param None * @retval None */ static void TIM1_Config(void) { TIM1_DeInit(); /* Time base configuration */ /* TIM1_Period = INIT_TIM1_ARR TIM1_Prescaler = 0 TIM1_RepetitionCounter=0 */ TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, INIT_TIM1_ARR, 0); /* PWM configuration */ /* TIM1_OCMode = TIM1_OCMODE_PWM1 TIM1_OutputState = TIM1_OUTPUTSTATE_ENABLE TIM1_Pulse = INIT_TIM1_CCR1 TIM1_OCPolarity = TIM1_OCPOLARITY_LOW */ TIM1_OC1Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_DISABLE, INIT_TIM1_CCR1, TIM1_OCPOLARITY_LOW, TIM1_OCNPOLARITY_LOW, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET); /* Update Interrupt Enable */ TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE); /* ARRPreload Enable */ TIM1_ARRPreloadConfig(ENABLE); /* Enable TIM1 */ TIM1_Cmd(ENABLE); /* Enable CC1 output*/ TIM1_CtrlPWMOutputs(ENABLE); }
/* ******************************************************************************* * FUNCTIONS ******************************************************************************* */ void HalLightInit(void) { /* Enable TIM1 clock */ CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE); /* GPIOD configuration */ GPIO_Init(GPIOD, GPIO_Pin_2, GPIO_Mode_Out_PP_Low_Fast); GPIO_Init(GPIOD, GPIO_Pin_3, GPIO_Mode_Out_PP_Low_Fast); GPIO_SetBits(GPIOD, GPIO_Pin_3); /* Close relay output */ /* - TIM1CLK = 16 MHz - TIM1 counter clock = TIM1CLK / 320 = 16MHz/320 = 50000Hz */ /* Time base configuration */ TIM1_TimeBaseInit(320, TIM1_CounterMode_Up, 100, 0); TIM1_OC1Init(TIM1_OCMode_PWM1, TIM1_OutputState_Enable, TIM1_OutputNState_Disable, 10, TIM1_OCPolarity_Low, TIM1_OCNPolarity_High, TIM1_OCIdleState_Set, TIM1_OCNIdleState_Set); TIM1_OC1PreloadConfig(DISABLE); TIM1_ARRPreloadConfig(ENABLE); /* Enable TIM1 outputs */ // TIM1_CtrlPWMOutputs(ENABLE); //HalLightOpen(); // HalLightClose(); // HalLightSetBrightness(10); HalLigthPWM = (80); HalLightOpen(); }
//*********************************//2ms void tmi1_ini(void) { TIM1_TimeBaseInit(8,TIM1_COUNTERMODE_UP,2000,0);//设置分频数,设置定时周期 TIM1_ARRPreloadConfig(ENABLE);//使能预装载 TIM1_ITConfig(TIM1_IT_UPDATE , ENABLE);//使能中断 TIM1_Cmd(ENABLE); //开启定时器 }
void initTimer(void) { TIM1_DeInit(); TIM1_TimeBaseInit(15, TIM1_COUNTERMODE_UP,5000-1, 0); //5MS TIM1_ARRPreloadConfig(ENABLE); TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE); TIM1_Cmd(ENABLE); }