#ifndef _MOTION_MODEL_H #define _MOTION_MODEL_H #include "bsp.h" extern uint8_t Path_Flag; extern int16_t Speed_left,Speed_right,Speed_left_flag,Speed_right_flag; #define Path_Num 1000 #define SBUS_ROCK_DEAD 0x64 // 中性区 #define SBUS_ROCK_Y_MIDLE 0x3EA #define SBUS_ROCK_X_MIDLE 0x3EA #define SBUS_ROCK_Y_MAX 0x6BA //Y最大1807 #define SBUS_ROCK_Y_MIN 0x11A //Y最小240 #define SBUS_ROCK_X_MAX 0x6BA #define SBUS_ROCK_X_MIN 0x11A #define SBUS_ROCK_UPDEAD (SBUS_ROCK_Y_MIDLE+SBUS_ROCK_DEAD) #define SBUS_ROCK_DOWNDEAD (SBUS_ROCK_Y_MIDLE-SBUS_ROCK_DEAD) #define SBUS_ROCK_RIGHTDEAD (SBUS_ROCK_X_MIDLE+SBUS_ROCK_DEAD) #define SBUS_ROCK_LEFTDEAD (SBUS_ROCK_X_MIDLE-SBUS_ROCK_DEAD) //#define Max_Speed 1000// 占空比 20000 //最大速度 #define Left_Driver 0x601 #define Right_Driver 0x602 //爱思控 #define Con_Mot_Speed 0x00// 占空比调速 0x01 //闭环调速 #define Con_Mot_Stop 0x10 //正常停止 //科亚 #define KY_Driver 0x601 typedef enum{ Motion_Left=0, //左驱动器 Motion_Right, //右驱动器 Motion_Num, //驱动器数量 }_Motion_Num; typedef struct{ bool ErrorFlag[Motion_Num]; //故障标志 uint8_t WorkMode; //工作模式 int16_t SetSpeed[Motion_Num]; //设置左轮/右轮速度 //int16_t SearchSpeed[Motion_Num]; //查询左轮/右轮速度 int16_t Electric_Current[Motion_Num]; //左轮/右轮电流 uint8_t MotionFlag[Motion_Num]; //运动标志 }_Motion_Data; extern _Motion_Data Motion_Data; extern uint16_t Max_Speed; void Sbus_Motion_Re(void); void Sbus_Can_Handle(void); void Can_Drive_Send(int16_t L_Flag,int16_t L_Speed,int16_t R_Flag,int16_t R_Speed); void Can_Drive_Stop(void); //extern uint32_t dsa[4]; void KY_CAN_Send(int16_t L_Flag,int16_t L_Speed,int16_t R_Flag,int16_t R_Speed); void KY_Can_Stop(void); //extern uint8_t Tim_Flag; #endif