#ifndef __MYPROJECT_H_ #define __MYPROJECT_H_ #include "FU6522_72.h" #include #include #include #include #include #define S_Value(SpeedValue) _Q15(SpeedValue/MOTOR_SPEED_BASE) typedef struct { int16 IuOffset; //Iu的偏置电压 int32 IuOffsetSum; //Iu的偏置电压总和 int16 IvOffset; //Iv的偏置电压 int32 IvOffsetSum; //Iv的偏置电压总和 int16 Iw_busOffset; //Iw或Ibus的偏置电压 int32 Iw_busOffsetSum;//Iw或Ibus的偏置电压总和 int16 IbusOffset; //Ibus的偏置电压 int32 IbusOffsetSum;//IIbus的偏置电压总和 int16 OffsetCount; //偏置电压采集计数 int8 OffsetFlag; //偏置电压结束标志位 } CurrentOffset; extern CurrentOffset xdata mcCurOffset; extern int16 idata Power_Currt; extern uint8 Drv_SectionCheak(void); extern void GetCurrentOffset(void); extern void Motor_Ready (void); extern void Motor_Init (void); extern void FOC_Init(void); extern void Motor_Charge(void); extern void MC_Stop(void); extern void MC_Break(void); extern void Motor_Static_Open(void); extern void Motor_Align(void); typedef enum { mcReady = 0, ///< 准备状态,该状态电机空闲,等待控制命令 mcInit = 1, ///< 初始化,该状态进行启动前的变量初始化 mcCharge = 2, ///< 预充电,电机启动前给自举电容充电,一般用于高压驱动,低压驱动一般不需要 mcTailWind = 3, ///< 顺逆风检测,该状态下电机进行顺逆风检测 mcPosiCheck = 4, ///< 初始位置检测 mcAlign = 5, ///< 预定位 mcStart = 6, ///< 启动,用于配置启动代码 mcRun = 7, ///< 运行, mcStop = 8, ///< 停止 mcFault = 9, ///< 故障状态 mcBrake = 10, ///< 刹车 } MotStateType; typedef union { uint8 SetMode; ///< 整个配置模式使能位 struct { uint8 CalibFlag : 1; ///< 电流校准的标志位 uint8 ChargeSetFlag : 1; ///< 预充电配置标志位 uint8 AlignSetFlag : 1; ///< 预定位配置标志位 uint8 TailWindSetFlag : 1; ///< 顺逆风配置标志位 uint8 StartSetFlag : 1; ///< 启动配置标志位 uint8 PosiCheckSetFlag : 1; ///< 位置检测配置标志位 uint8 Break : 1; ////