From 048319df42874b64642daa71f361048fd1026d9c Mon Sep 17 00:00:00 2001
From: ws <1621320660@qq.com>
Date: Thu, 26 Jun 2025 19:33:42 +0800
Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E6=98=AFbug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
MDK-ARM/.vscode/uv4.log | 6 ++----
MDK-ARM/.vscode/uv4.log.lock | 2 +-
MDK-ARM/R1.uvoptx | 7 ++++++-
MDK-ARM/README.md | 14 ++++++++++++++
User/bsp/TopDefine.h | 2 ++
User/module/ball.cpp | 2 +-
User/module/shoot.cpp | 33 ++++++++++++++++++++-------------
User/module/shoot.hpp | 3 ++-
8 files changed, 48 insertions(+), 21 deletions(-)
diff --git a/MDK-ARM/.vscode/uv4.log b/MDK-ARM/.vscode/uv4.log
index f22d47c..0d6c20e 100644
--- a/MDK-ARM/.vscode/uv4.log
+++ b/MDK-ARM/.vscode/uv4.log
@@ -1,10 +1,8 @@
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil\ARM\ARMCC\Bin'
Build target 'R1'
-compiling shootTask.cpp...
compiling shoot.cpp...
-compiling ball.cpp...
linking...
-Program Size: Code=31644 RO-data=1832 RW-data=268 ZI-data=32252
+Program Size: Code=31636 RO-data=1832 RW-data=272 ZI-data=32248
FromELF: creating hex file...
"R1\R1.axf" - 0 Error(s), 0 Warning(s).
-Build Time Elapsed: 00:00:06
+Build Time Elapsed: 00:00:05
diff --git a/MDK-ARM/.vscode/uv4.log.lock b/MDK-ARM/.vscode/uv4.log.lock
index ad9a215..29334e0 100644
--- a/MDK-ARM/.vscode/uv4.log.lock
+++ b/MDK-ARM/.vscode/uv4.log.lock
@@ -1 +1 @@
-2025/6/26 3:22:31
\ No newline at end of file
+2025/6/26 19:15:12
\ No newline at end of file
diff --git a/MDK-ARM/R1.uvoptx b/MDK-ARM/R1.uvoptx
index 59120d2..87c4110 100644
--- a/MDK-ARM/R1.uvoptx
+++ b/MDK-ARM/R1.uvoptx
@@ -158,7 +158,7 @@
0
1
- rc_ctrl
+ rc_ctrl,0x0A
1
@@ -185,6 +185,11 @@
1
nuc_v
+
+ 6
+ 1
+ asd,0x0A
+
diff --git a/MDK-ARM/README.md b/MDK-ARM/README.md
index c7c22c8..d329367 100644
--- a/MDK-ARM/README.md
+++ b/MDK-ARM/README.md
@@ -36,8 +36,22 @@ r1上层
+ 拨置👇发射清空掉落信号
+ 用一个攻守方档
+ + 初始移动到最上面 更待蓄力(不管攻方守方都在最上面等待)
+ 攻方时拨下立马蓄力并伸出(可小角度)
+ 守方时不动并保持缩回
+ 👇 运球档正常运球
+ 中 初始档直接缩回
+ 👆 配合档 完成配合并伸出才能发射
+
++ 传球模式
+ + 自动
+ + 底盘的传球对准档拨下
+ + 我的蓄力进入传球拟合
+ + 继续拨下发射
+ + 手动
+ + 目前只能打固定距离
+ + 切相同传球档 自动蓄力到传球力度
+ + 发射档发射
+ + 图传多距离
+ + 传球档
+ + 旋钮+看图传点位调整
diff --git a/User/bsp/TopDefine.h b/User/bsp/TopDefine.h
index 0f5be42..190ffdd 100644
--- a/User/bsp/TopDefine.h
+++ b/User/bsp/TopDefine.h
@@ -43,6 +43,8 @@
#define HANDING_FINISH (1<<2)
//伸缩结束
#define EXTEND_OK (1<<3)
+//等待ok
+#define WAIT_OK (1<<4)
//要发送ok了
#define BALL_SEND (1<<6)
diff --git a/User/module/ball.cpp b/User/module/ball.cpp
index 534d011..d422d68 100644
--- a/User/module/ball.cpp
+++ b/User/module/ball.cpp
@@ -12,7 +12,7 @@ extern int ball_exit;
//伸缩
#define I_ANGLE 147
#define O_ANGLE 187
-#define WAIT_POS 165
+#define WAIT_POS 170
//PE11 气缸
diff --git a/User/module/shoot.cpp b/User/module/shoot.cpp
index 9de9789..4a62041 100644
--- a/User/module/shoot.cpp
+++ b/User/module/shoot.cpp
@@ -1,5 +1,6 @@
#include "TopDefine.h"
#include "shoot.hpp"
+#include "userTask.h"
#include "main.h"
#include "remote_control.h"
#include "FreeRTOS.h"
@@ -124,7 +125,7 @@ int Shoot::GO_SendData(float pos,float limit)
// F键 sw[0]👆 1800 👇200
// E键 sw[1] 👆 200 shoot 中 1000 stop sw[2]200 sw[2]👇1800
-// G键 sw[6]👆 1800 中 1000 👇200
+// G键 sw[6]👆 200 中 1000 👇1800
// B键 sw[3]👆 200 开 中 1000 👇1800 关
// sw[5] 👆 200 👇1800
//左旋 sw[7] 200 --1800
@@ -360,6 +361,8 @@ void Shoot::RemoveError() {
#if ONE_CONTROL
+int asd=0;
+
void Shoot::shoot_control() {
@@ -417,33 +420,34 @@ break;
if(shoot_thread & EXTEND_OK) // 如果收到伸缩完成的通知
{
+ asd++;
fire_pos = INIT_POS + knob_increment; // 根据旋钮值调整发射位置
go1.Pos = fire_pos; // 设置蓄力电机位置
+ limit_speed=TO_BOTTOM;
if(feedback.fd_gopos >= fire_pos - GO_ERROR && feedback.fd_gopos <= fire_pos + GO_ERROR)
{
BSP_Buzzer_Start();
BSP_Buzzer_Set(1,5000);
}
}
- if(shoot_thread & READY_TELL) // 如果收到等待配合的通知
+ else
{
ball_receive(); // 执行接收球的操作
}
- else
- {
- go1.Pos = TOP_POS-3.0f; //-208
- limit_speed=TO_TOP;//快速上去
- t_posSet = Tigger_ZERO; // 扳机松开
- }
+
break;
case DOWN1:
if(shoot_thread & EXTEND_OK)
{
- BSP_Buzzer_Stop();
t_posSet = Tigger_ZERO; // 扳机扣动 射出
- currentState = SHOOT_IDLE; // 默认回到空闲状态
- osThreadFlagsClear(EXTEND_OK);
+ if(feedback.fd_tpos>=Tigger_ZERO-20)
+ {
+ BSP_Buzzer_Stop();
+ currentState = SHOOT_IDLE; // 默认回到空闲状态
+ osThreadFlagsClear(EXTEND_OK);
+ }
+
}
break;
@@ -463,7 +467,7 @@ break;
}
}
-else if(ready_key==DEFENSE)//攻守档总控
+else
{
go1.Pos = TOP_POS-3.0f; //-208
limit_speed=TO_TOP;//快速上去
@@ -486,6 +490,8 @@ void Shoot ::ball_receive()
{
case SHOOT_IDLE:
// 初始状态:钩子移动到顶部,钩住拉簧
+ if(shoot_thread & READY_TELL) // 如果收到等待通知
+ {
control_pos = TOP_POS;
limit_speed=TO_TOP;//快速上去
t_posSet = Tigger_ZERO;
@@ -493,6 +499,7 @@ void Shoot ::ball_receive()
{
currentState = GO_TOP; // 切换到准备发射状态
}
+ }
break;
case GO_TOP:
@@ -508,7 +515,7 @@ void Shoot ::ball_receive()
limit_speed=TO_BOTTOM;//慢速下来
if(feedback.fd_gopos >= BOTTOM_POS - 1.0f && feedback.fd_gopos <= BOTTOM_POS + 1.0f)
{
-
+
osThreadFlagsClear(READY_TELL); // 清除任务通知标志位
}
diff --git a/User/module/shoot.hpp b/User/module/shoot.hpp
index 7f96aab..db6aaa5 100644
--- a/User/module/shoot.hpp
+++ b/User/module/shoot.hpp
@@ -18,7 +18,8 @@ typedef enum {
SHOOT_RETURN, // 自动返回状态
//运射配合
GO_TOP,
- BAKC
+ BAKC,
+ WAIT_CHANGE
} ShootState_t;
// // 定义状态枚举