#ifndef BLDC_CONTROL_H
|
#define BLDC_CONTROL_H
|
#include "gpio.h"
|
//Òý½Å¶¨Òå
|
/*******************************************************/
|
// Á¬½ÓÇý¶¯°åµÄ SD ½Å
|
#define SHUTDOWN_PIN GPIO_PIN_15
|
#define SHUTDOWN_GPIO_PORT GPIOD
|
// #define SHUTDOWN_GPIO_CLK_ENABLE() __HAL_RCC_GPIOD_CLK_ENABLE()
|
/*******************************************************/
|
|
/* µç»ú SD or EN ʹÄܽŠ*/
|
#define BLDCM_ENABLE_SD() \
|
do \
|
{ \
|
Set_SDH2136_Enable(); \
|
} while (0) // ¸ßµçƽ´ò¿ª-¸ßµçƽʹÄÜ
|
#define BLDCM_DISABLE_SD() \
|
do \
|
{ \
|
Set_SDH2136_Disable(); \
|
} while (0) // µÍµçƽ¹Ø¶Ï-µÍµçƽ½ûÓÃ
|
|
/* µç»ú·½Ïò¿ØÖÆÃ¶¾Ù */
|
typedef enum
|
{
|
MOTOR_FWD = 0,
|
MOTOR_REV,
|
} motor_dir_t;
|
|
typedef struct
|
{
|
motor_dir_t direction; // µç»ú·½Ïò
|
uint16_t dutyfactor; // PWM Êä³öÕ¼¿Õ±È
|
uint8_t is_enable; // ʹÄܵç»ú
|
uint32_t lock_timeout; // µç»ú¶Âת¼ÆÊ±
|
} bldcm_data_t;
|
|
void bldcm_init(void);
|
void set_bldcm_speed(uint16_t v);
|
void set_bldcm_direction(motor_dir_t dir);
|
motor_dir_t get_bldcm_direction(void);
|
void set_bldcm_enable(void);
|
void set_bldcm_disable(void);
|
void bldcm_pid_control(void);
|
#endif
|