#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_tim.h"
void delay (uint32_t time_delay) //функция задержки
{
uint32_t i;
for (i=0;i<time_delay;i++);
}
int i = 0;
int main(void)
{
GPIO_InitTypeDef led_pwm;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
led_pwm.GPIO_Speed = GPIO_Speed_50MHz;
led_pwm.GPIO_Mode = GPIO_Mode_AF_PP;
led_pwm.GPIO_Pin = GPIO_Pin_6 ;
GPIO_Init(GPIOB, &led_pwm);
//GPIO_SetBits(GPIOB, GPIO_Pin_6);
TIM_TimeBaseInitTypeDef timer;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
TIM_TimeBaseStructInit(&timer);
timer.TIM_Prescaler = 720; //устанавливаем делитель частоты основной шины
timer.TIM_Period = 720;
timer.TIM_ClockDivision = 0;
timer.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &timer);
TIM_OCInitTypeDef timerPWM;
TIM_OCStructInit(&timerPWM);
timerPWM.TIM_OCMode = TIM_OCMode_PWM1;
timerPWM.TIM_OutputState = TIM_OutputState_Enable;
//timerPWM.TIM_Pulse = 360; // скважность импульсов можно установить сразу
timerPWM.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM4, &timerPWM);
TIM_Cmd(TIM4, ENABLE);
//TIM_SetCompare1(TIM4 , 999); //управляем скважностью импульса
while(1)
{
for (i=0; i<999; i++){
TIM_SetCompare1(TIM4 , i);
delay (10000);
}
for (i=999; i>0; i--){
TIM_SetCompare1(TIM4 , i);
delay (10000);
}
}
}
Комментариев нет:
Отправить комментарий