motor_define.h 940 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef __MOTOR_DEFINE_H
  2. #define __MOTOR_DEFINE_H
  3. typedef enum{
  4. MOTOR_CW = 0,
  5. MOTOR_CCW = 1,
  6. }MotorDirection;
  7. typedef enum{
  8. MOTOR_SENSOR_LESS = 0,
  9. MOTOR_SENSOR_HALL = 1,
  10. MOTOR_SENSOR_ENCODER = 2,
  11. }MotorSensor;
  12. // 状态枚举
  13. typedef enum {
  14. CTRL_STATE_IDLE = 0,
  15. CTRL_STATE_STARTUP_RAMP = 1 , // 启动电流斜坡
  16. CTRL_STATE_OPENLOOP_RUN = 2, // 开环运行等待达到速度
  17. CTRL_STATE_ALIGNMENT = 3, // 角度对齐阶段
  18. CTRL_STATE_TRANSITION_BLENDING = 4, // 过渡融合阶段
  19. CTRL_STATE_HALL_CLOSED_LOOP = 5, // 霍尔闭环运行
  20. CTRL_STATE_STOPPING = 6 // 停车处理
  21. } ControlState_e;
  22. typedef struct{
  23. MotorDirection direction; // 电机旋转方向 0 CW 1 CCW
  24. unsigned char poles; // 电机极数
  25. MotorSensor sensor; // 传感器类型 0 无感 1 霍尔 2 编码器
  26. float eleangle; // 电机当前电角度
  27. ControlState_e ctrl_state; // 当前电机状态
  28. }MotorParam_t;
  29. extern MotorParam_t* get_motor(void);
  30. #endif