#include "main.h"
#include "PWM.h"
void PWM_Init(void)
{
RCC_APB2ENR |= 0x00000804; //enable clock to GPIO port A and Timer 1
GPIOA_CRH &= 0xFFFFF000; //clear previous config for port A pin 8,9,10
GPIOA_CRH |= 0x00000999; //config port A pin 8,9,10 as 10Mhz push pull alternate purpose output.
TIM1_CR1 = 0x0080;
TIM1_CNT = 0;
TIM1_PSC = 7;
TIM1_ARR = (20000-1);
TIM1_CCMR1 = 0x6868;
TIM1_CCMR2 = 0x0068;
TIM1_CCER = 0x0111;
TIM1_CCR1 = 1000;
TIM1_CCR2 = 1000;
TIM1_CCR3 = 1000;
TIM1_EGR = 0x0001;
TIM1_BDTR = 0x8000;
TIM1_CR1 |= 1;
}
void PWM_Ch1_drive_motor(const uint16_t PERIOD)
{
if((PERIOD>=10)&&(PERIOD<=19950))
{
H TIM1_CCR1 = PERIOD;
}
else if(PERIOD<10)
{
TIM1_CCR1=10;
}
else
{
TIM1_CCR1=19950;
}
}