diff --git a/MDK-ARM/.vscode/uv4.log b/MDK-ARM/.vscode/uv4.log
index 7d1a725..e74d27e 100644
--- a/MDK-ARM/.vscode/uv4.log
+++ b/MDK-ARM/.vscode/uv4.log
@@ -1,8 +1,8 @@
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil\ARM\ARMCC\Bin'
Build target 'R1'
-compiling calc_lib.c...
+compiling shoot.cpp...
linking...
-Program Size: Code=30644 RO-data=1884 RW-data=5816 ZI-data=33280
+Program Size: Code=30460 RO-data=1840 RW-data=268 ZI-data=33276
FromELF: creating hex file...
"R1\R1.axf" - 0 Error(s), 0 Warning(s).
-Build Time Elapsed: 00:00:03
+Build Time Elapsed: 00:00:05
diff --git a/MDK-ARM/.vscode/uv4.log.lock b/MDK-ARM/.vscode/uv4.log.lock
index 3525872..aee0bb4 100644
--- a/MDK-ARM/.vscode/uv4.log.lock
+++ b/MDK-ARM/.vscode/uv4.log.lock
@@ -1 +1 @@
-2025/6/14 22:01:44
\ No newline at end of file
+2025/6/15 22:57:56
\ No newline at end of file
diff --git a/MDK-ARM/R1.uvoptx b/MDK-ARM/R1.uvoptx
index e4aa1d1..11f2aa9 100644
--- a/MDK-ARM/R1.uvoptx
+++ b/MDK-ARM/R1.uvoptx
@@ -153,24 +153,7 @@
-U-O142 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)
-
-
- 0
- 0
- 82
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ../Core/Src/main.c
-
-
-
-
+
0
@@ -212,6 +195,11 @@
1
task_struct,0x0A
+
+ 8
+ 1
+ aaa,0x0A
+
0
diff --git a/User/module/ball.cpp b/User/module/ball.cpp
index b55f97d..871d3de 100644
--- a/User/module/ball.cpp
+++ b/User/module/ball.cpp
@@ -116,15 +116,51 @@ void Ball::ballDown(void)
HAL_GPIO_WritePin(CLOSE_GPIO_Port, CLOSE_Pin, GPIO_PIN_SET);//确保闭合气缸
speed_set=500;
+ if(ball_state==0)
+ {
+ osThreadFlagsSet(task_struct.thread.shoot, BALL_OK);
+ }
+}
+
+
+
+// E键 sw[1] 👆 200 shoot 中 1000 stop sw[2]👇1800
+// G键 sw[6]👆 1800 中 1000 👇200
+// sw[5] 👆 200 👇1800
+//左旋 sw[7] 200 --1800
+void Ball::rc_mode()
+{
+ if(rc_ctrl.sw[6]==1800)
+ {
+ rc_key=UP2;
+ }
+ if(rc_ctrl.sw[6]==1000)
+ {
+ rc_key=MIDDLE2;
+ }
+ if(rc_ctrl.sw[6]==200)
+ {
+ rc_key=DOWN2;
+ }
+
+ if(rc_ctrl.sw[5]==200)
+ {
+ extern_key=IN;
+ }
+ if(rc_ctrl.sw[5]==1800)
+ {
+ extern_key=OUT;
+ }
+
}
void Ball::Move_Extend(void)
{
- if(rc_ctrl.sw[6] == 200) // 左拨杆上
+ if(extern_key==IN)
{
Extend_mcontrol(I_ANGLE1, I_ANGLE2); // 内伸
}
- else if(rc_ctrl.sw[6] == 1800) // 左拨杆下
+ else if(extern_key==OUT)
{
Extend_mcontrol(O_ANGLE1, O_ANGLE2); // 外伸
}
@@ -134,35 +170,6 @@ void Ball::Move_Extend(void)
}
}
-// C键 sw[5]👆 200 中1000 👇1800
-// D键 sw[6]👆 200 👇1800
-void Ball::rc_mode()
-{
- if(rc_ctrl.sw[5]==200)
- {
- rc_key=UP2;
- }
- if(rc_ctrl.sw[5]==1000)
- {
- rc_key=MIDDLE2;
- }
- if(rc_ctrl.sw[5]==1800)
- {
- rc_key=DOWN2;
- }
-
- if(rc_ctrl.sw[6]==200)
- {
- extern_key=IN;
- }
- if(rc_ctrl.sw[6]==1800)
- {
- extern_key=OUT;
- }
-
-}
-
-
void Ball::ball_control()
{
ball_state = HAL_GPIO_ReadPin(up_ball_GPIO_Port, up_ball_Pin); // 有球 1 无球 0
@@ -247,7 +254,7 @@ void Ball::Three_Handing()
case BALL_FINISH:
key = 0; // 重置按键状态
speed_set = 0;
- osThreadFlagsSet(task_struct.thread.shoot, BALL_OK);
+
//currentState1 = BALL_IDLE; // 直接回到空闲状态
break;
default:
diff --git a/User/module/shoot.cpp b/User/module/shoot.cpp
index 9d52357..ff5a3d5 100644
--- a/User/module/shoot.cpp
+++ b/User/module/shoot.cpp
@@ -115,7 +115,10 @@ int Shoot::GO_SendData(float pos,float limit)
return 0;
}
-//E键 sw[1]👆 200 shoot 中 1000 stop 👇1800 error
+
+// E键 sw[1] 👆 200 shoot 中 1000 stop sw[2]👇1800
+// G键 sw[6]👆 1800 中 1000 👇200
+//左旋 sw[7] 200 --1800
void Shoot::rc_mode()
{
if(rc_ctrl.sw[1]==200)
@@ -126,25 +129,25 @@ void Shoot::rc_mode()
{
rc_key=MIDDLE1;
}
- if(rc_ctrl.sw[1]==1800)
+ if(rc_ctrl.sw[2]==1800)
{
rc_key=DOWN1;
}
- if(rc_ctrl.sw[7]==200)
- {
- trigger_key=WAIT;
- }
- if(rc_ctrl.sw[7]==1800)
- {
- trigger_key=SHOOT;
- }
+ // if(rc_ctrl.sw[7]==200)
+ // {
+ // trigger_key=WAIT;
+ // }
+ // if(rc_ctrl.sw[7]==1800)
+ // {
+ // trigger_key=SHOOT;
+ // }
//knob_increment=rc_ctrl.ch[2]/150;
//旋钮增量
static int last_knob_value = 0; // 记录旋钮的上一次值
- int current_knob_value = rc_ctrl.sw[4]; // 获取当前旋钮值
+ int current_knob_value = rc_ctrl.sw[7]; // 获取当前旋钮值
// 计算旋钮增量
if (current_knob_value >= 200 && current_knob_value <= 1800) {
@@ -156,7 +159,6 @@ void Shoot::rc_mode()
}
-
void Shoot::shoot_control() {
//方便调试
@@ -164,7 +166,7 @@ void Shoot::shoot_control() {
feedback.fd_tpos = trigger_Motor->total_angle;
switch (rc_key) {
- case DOWN1:
+ case DOWN1:
control_pos = INIT_POS; // 默认中间挡位位置
//fire_pos = control_pos + knob_increment; // 根据旋钮值调整发射位置
@@ -234,7 +236,7 @@ void Shoot :: shoot_Current()
go1.Pos = fire_pos; // 下拉到中间挡位位置
if (feedback.fd_gopos >= fire_pos - GO_ERROR && feedback.fd_gopos <= fire_pos + GO_ERROR) {
BSP_Buzzer_Start();
- // BSP_Buzzer_Set(1,5000);
+ BSP_Buzzer_Set(1,5000);
// see_you_again();
//currentState = SHOOT_WAIT; // 等待发射信号
//在拨杆切换时触发了
diff --git a/User/task/ballTask.cpp b/User/task/ballTask.cpp
index e1609af..a60d706 100644
--- a/User/task/ballTask.cpp
+++ b/User/task/ballTask.cpp
@@ -10,15 +10,6 @@ extern RC_ctrl_t rc_ctrl;
Ball ball;
//float vofa[8];
-
-// C键 sw[5]👆 1800 中1000 👇200
-// D键 sw[6]👆 200 外伸 👇1800 归位 //三摩擦架子
-// H键 sw[7]👆 200 👇1800 //取球
-
-int angle1=330;
-int angle2=-240;
-int test111=0;
-
//检查光电
int abc=0;
@@ -37,7 +28,7 @@ void FunctionBall(void *argument)
task_struct.stack_water_mark.ball = osThreadGetStackSpace(osThreadGetId());
#endif
- abc=HAL_GPIO_ReadPin(up_ball_GPIO_Port, up_ball_Pin);
+ abc=HAL_GPIO_ReadPin(up_ball_GPIO_Port, up_ball_Pin);
ball.rc_mode(); // 遥控器模式
diff --git a/User/task/shootTask.cpp b/User/task/shootTask.cpp
index dd96ebf..771cdf0 100644
--- a/User/task/shootTask.cpp
+++ b/User/task/shootTask.cpp
@@ -10,15 +10,8 @@ extern RC_ctrl_t rc_ctrl;
Shoot shoot;
NUC_t nucData; // 自瞄
-int shoot_flag = 0;
-
-int a2;
-
int goangle=0;
-//E键 sw[0]👆 200 中 1000 👇1800
-//F键 sw[1]👆 1800 👇200
-
void FunctionShoot(void *argument)
{
(void)argument; /* 未使用argument,消除警告 */
@@ -39,19 +32,17 @@ while(1)
if(shoot.flag_thread & BALL_OK)
{
- a2=2;
+
}
-
- shoot_flag=HAL_GPIO_ReadPin(STOP_GPIO_Port, STOP_Pin);
-
if (osMessageQueueGet(task_struct.msgq.nuc, &nucData, NULL, 0) == osOK)
{
shoot.distanceGet(nucData);
}
- //shoot.GO_SendData(goangle,5);
shoot.shoot_control();
+// shoot.GO_SendData(goangle,5);
+// shoot.shoot_control();
// shoot.t_posSet=goangle;
// shoot.trigger_control();