ls1x-master-v0.4/private/ls1c103/ls1c103_bldc_ctrl.c
2024-11-27 15:39:05 +08:00

53 lines
786 B
C

#include "ls1c103_bldc_ctrl.h"
#include "math.h"
#include "stdlib.h"
#include "Config.h"
//bldc motor status
static bldcm_status_t bldcm_status;
void bldcm_init(void)
{
Motor_Init();
Hall_Init();
}
void set_bldcm_speed(uint16_t v)
{
bldcm_status.dutyfactor = v;
set_pwm_pulse(v);
}
void set_bldcm_direction(motor_dir_t dir)
{
bldcm_status.direction = dir;
set_direction(dir);
}
motor_dir_t get_bldcm_direction(void)
{
return bldcm_status.direction;
}
void set_bldcm_enable(void)
{
MOTOR_TIM->BDTR|=(TIM_BDTR_MOE);
MOTOR_TIM->CR1|=TIM_CR1_CEN;
BLDCM_ENABLE_EN();
hall_enable();
printf("motor enable\n\r");
}
void set_bldcm_disable(void)
{
hall_disable();
stop_pwm_output();
BLDCM_DISABLE_EN();
printf("motor disable\n\r");
}