Skip to content
Snippets Groups Projects
bsp_pwm.c 861 B
Newer Older
Baptiste Toussaint's avatar
Pwm
Baptiste Toussaint committed
#include "tim.h"
#include "bsp_pwm.h"

void PWM_init(void){
	/* Open 4 sets of PWM waves respectively */
		/**TIM2 GPIO Configuration    
	PA8     ------> TIM2_CH1
	PA9     ------> TIM2_CH2
	PA10    ------> TIM2_CH3
	PA11    ------> TIM2_CH4 
	*/
	HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
	HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);
	HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3);
	HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_4);
}

void PWM_SetDuty(TIM_HandleTypeDef *tim,uint32_t tim_channel,float duty){
	
	switch(tim_channel){	
		case TIM_CHANNEL_1: tim->Instance->CCR1 = (PWM_RESOLUTION*duty) - 1;break;
		case TIM_CHANNEL_2: tim->Instance->CCR2 = (PWM_RESOLUTION*duty) - 1;break;
		case TIM_CHANNEL_3: tim->Instance->CCR3 = (PWM_RESOLUTION*duty) - 1;break;
		case TIM_CHANNEL_4: tim->Instance->CCR4 = (PWM_RESOLUTION*duty) - 1;break;
	}
	
}