diff --git a/User/task/shoot_task.c b/User/task/shoot_task.c index c664a1b..2478165 100644 --- a/User/task/shoot_task.c +++ b/User/task/shoot_task.c @@ -13,22 +13,16 @@ extern RC_mess_t RC_mess; extern Encoder_t encoder; extern motor_measure_t *trigger_motor_data;//3508电机数据 -extern int mode; extern GO go; int shoot_flag = 0; int trigger_flag = 0; int pos=0; int gopos=0; +int speed_5065=0; + -#define GO1_SHOOT 0 -#define ODRIVE_SHOOT 0 #define VESC_SHOOT 1 -//odrive发射 -#define SHOOT3 12 -#define TOP 6 -#define MIDDLE 3 -#define BOTTOM 0 void Task_Shoot(void *argument) { @@ -41,52 +35,47 @@ void Task_Shoot(void *argument) uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计算 */ - go.angleSetgo[0] = 0; //id暂时未知 + //go.angleSetgo[0] = 0; //id暂时未知 GO_TURN_ball(TURN,go,gopos); //发射舵机位置 - osDelay(1000); + osDelay(500); while(1) { - #if GO1_SHOOT == 1 - - shoot_ball(0); - - #elif ODRIVE_SHOOT == 1 - - if(mode == THREE) - { - shoot_odrive(SHOOT3); - } - else if(mode == DZ) - { - if(trigger_motor_data->total_angle ==0)//扳机已闭合 - { - shoot_back(DZ); - } - - } - - - #endif + #if VESC_SHOOT == 1 - gopos=35; - GO_TURN_ball(TURN,go,gopos); //发射舵机位置 - if(shoot_flag==1) + gopos=35;//云台位置 + GO_TURN_ball(GIMBAL,go,gopos); //锁云台 + + + if(shoot_flag==1||RC_mess.RC_data.sw[0]==306)//加速 { - CAN_VESC_RPM(0, 10000); //发射电机转速 - CAN_VESC_RPM(1, 10000); //发射电机转速 - if(trigger_flag == 1) - { - trigger_pos(pos); //扳机电机转速 - trigger_flag = 0; - } + + if(HAL_GPIO_ReadPin(ball_in1_GPIO_Port, ball_in1_Pin) == GPIO_PIN_RESET) + { + CAN_VESC_HEAD(1); + CAN_VESC_HEAD(2); + } + else + { + speed_5065=35000; + CAN_VESC_RPM(1, speed_5065); //发射电机转速 + CAN_VESC_RPM(2, speed_5065); //发射电机转速 + + } + } + else if(shoot_flag == 2 || RC_mess.RC_data.sw[5]==1694)//返回//不拨动为306 + { + speed_5065=-5000; + CAN_VESC_RPM(1, speed_5065); //发射电机转速 + CAN_VESC_RPM(2, speed_5065); //发射电机转速 + } else if(shoot_flag == 0) { - CAN_VESC_RPM(0, 0); //发射电机转速 CAN_VESC_RPM(1, 0); //发射电机转速 - trigger_pos(0); //扳机电机转速 + CAN_VESC_RPM(2, 0); //发射电机转速 + }