38 lines
1.1 KiB
C
38 lines
1.1 KiB
C
/* Includes ----------------------------------------------------------------- */
|
|
#include "bsp_pwm.h"
|
|
|
|
#include "main.h"
|
|
#include "tim.h"
|
|
|
|
/* Private define ----------------------------------------------------------- */
|
|
/* Private macro ------------------------------------------------------------ */
|
|
/* Private typedef ---------------------------------------------------------- */
|
|
/* Private variables -------------------------------------------------------- */
|
|
/* Private function -------------------------------------------------------- */
|
|
/* Exported functions ------------------------------------------------------- */
|
|
uint8_t BSP_PWM_Start(BSP_PWM_Channel_t ch) {
|
|
switch (ch) {
|
|
case BSP_PWM_IMU_HEAT:
|
|
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);
|
|
break;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int8_t BSP_PWM_Set(BSP_PWM_Channel_t ch, float duty_cycle) {
|
|
if (duty_cycle > 1.0f) return -1;
|
|
|
|
uint16_t pulse = duty_cycle * PWM_RESOLUTION;
|
|
|
|
switch (ch) {
|
|
case BSP_PWM_IMU_HEAT:
|
|
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, pulse);
|
|
break;
|
|
default:
|
|
return -1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
uint8_t BSP_PWM_Stop(BSP_PWM_Channel_t ch);
|