mirror of
https://gitee.com/dlmu-cone/half-steering-basic-framework
synced 2026-10-24 01:52:20 +08:00
解决键鼠发射,现在键鼠模式小陀螺移动有点问题
This commit is contained in:
@@ -17,7 +17,7 @@ static Shoot_Upload_Data_s shoot_feedback_data; // 来自cmd的发射控制信
|
||||
|
||||
// dwt定时,计算冷却用
|
||||
static float hibernate_time = 0, dead_time = 0;
|
||||
|
||||
//static float target_angle = 0;
|
||||
void ShootInit()
|
||||
{
|
||||
// 左摩擦轮
|
||||
@@ -126,8 +126,8 @@ void ShootTask()
|
||||
|
||||
// 如果上一次触发单发或3发指令的时间加上不应期仍然大于当前时间(尚未休眠完毕),直接返回即可
|
||||
// 单发模式主要提供给能量机关激活使用(以及英雄的射击大部分处于单发)
|
||||
if (hibernate_time + dead_time > DWT_GetTimeline_ms())
|
||||
return;
|
||||
if (hibernate_time + dead_time > DWT_GetTimeline_ms())
|
||||
return;
|
||||
|
||||
// 若不在休眠状态,根据robotCMD传来的控制模式进行拨盘电机参考值设定和模式切换
|
||||
switch (shoot_cmd_recv.load_mode)
|
||||
@@ -144,10 +144,10 @@ void ShootTask()
|
||||
// if (dead_time == 0) { // 第一次触发
|
||||
// last_target_angle = loader->measure.total_angle;
|
||||
// }
|
||||
// last_target_angle += ONE_BULLET_DELTA_ANGLE * REDUCTION_RATIO_LOADER; // 每次都在上次目标角度基础上增加固定角度
|
||||
// last_target_angle += 51*36;//ONE_BULLET_DELTA_ANGLE * REDUCTION_RATIO_LOADER; // 每次都在上次目标角度基础上增加固定角度
|
||||
// DJIMotorSetRef(loader, last_target_angle);
|
||||
// hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
||||
// dead_time = shoot_cmd_recv.dead_time; // 完成1发弹丸发射的时间
|
||||
// dead_time = 450;//shoot_cmd_recv.dead_time; // 完成1发弹丸发射的时间
|
||||
// break;
|
||||
// case LOAD_1_BULLET:
|
||||
// DJIMotorOuterLoop(loader, ANGLE_LOOP);// 切换到角度环
|
||||
@@ -162,19 +162,28 @@ void ShootTask()
|
||||
// break;
|
||||
case LOAD_1_BULLET:
|
||||
DJIMotorOuterLoop(loader, ANGLE_LOOP);// 切换到角度环
|
||||
static float target_angle = 0;
|
||||
static float target_angle = -1900;
|
||||
target_angle += 51*36;
|
||||
//float target_angle = loader->measure.total_angle + 51*36;
|
||||
DJIMotorSetRef(loader, target_angle);
|
||||
hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
||||
dead_time = 450; // 完成1发弹丸发射的时间
|
||||
break;
|
||||
// 三连发,如果不需要后续可能删除
|
||||
case LOAD_3_BULLET:
|
||||
DJIMotorOuterLoop(loader, ANGLE_LOOP); // 切换到速度环
|
||||
DJIMotorSetRef(loader, loader->measure.total_angle + 3 * ONE_BULLET_DELTA_ANGLE); // 增加3发
|
||||
hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
||||
dead_time = 300; // 完成3发弹丸发射的时间
|
||||
break;
|
||||
// DJIMotorOuterLoop(loader, ANGLE_LOOP); // 切换到速度环
|
||||
// DJIMotorSetRef(loader, loader->measure.total_angle + 3 * ONE_BULLET_DELTA_ANGLE); // 增加3发
|
||||
// hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
||||
// dead_time = 300; // 完成3发弹丸发射的时间
|
||||
// break;
|
||||
DJIMotorOuterLoop(loader, ANGLE_LOOP);// 切换到角度环
|
||||
//static float target_angle = -1872;
|
||||
target_angle += (51*36)*3;
|
||||
//float target_angle = loader->measure.total_angle + 51*36;
|
||||
DJIMotorSetRef(loader, target_angle);
|
||||
hibernate_time = DWT_GetTimeline_ms(); // 记录触发指令的时间
|
||||
dead_time = 700; // 完成3发弹丸发射的时间
|
||||
break;
|
||||
// 连发模式,对速度闭环,射频后续修改为可变,目前固定为1Hz
|
||||
case LOAD_BURSTFIRE:
|
||||
DJIMotorOuterLoop(loader, SPEED_LOOP);
|
||||
|
||||
Reference in New Issue
Block a user