From ce198ed4588ea293b1ab67c677e4e9048db49b00 Mon Sep 17 00:00:00 2001
From: YuanHongbin <975559679@qq.com>
Date: Tue, 16 Sep 2025 12:08:36 +0800
Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?=
=?UTF-8?q?=E7=89=88=E6=9C=ACV1.0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Project/HC32F460/MDK/HC32F460.uvoptx | 162 +++++++++++++++---
Project/HC32F460/MDK/HC32F460.uvprojx | 27 +--
.../HC32F460/MDK/RTE/_Debug/RTE_Components.h | 3 +-
.../source/Module/dc_motor/dc_motor.c | 2 +-
.../source/Module/dc_motor/dc_motor.h | 6 +-
Project/HC32F460/source/User/Inc/main.h | 2 +-
Project/HC32F460/source/User/Src/main.c | 82 ++++-----
7 files changed, 187 insertions(+), 97 deletions(-)
diff --git a/Project/HC32F460/MDK/HC32F460.uvoptx b/Project/HC32F460/MDK/HC32F460.uvoptx
index b524d80..74babe2 100644
--- a/Project/HC32F460/MDK/HC32F460.uvoptx
+++ b/Project/HC32F460/MDK/HC32F460.uvoptx
@@ -101,9 +101,7 @@
0
0
1
- 0
- 0
- 4
+ 2
@@ -114,7 +112,7 @@
- Segger\JL2CM3.dll
+ BIN\CMSIS_AGDI.dll
@@ -130,7 +128,7 @@
0
CMSIS_AGDI
- UL2CM3(-S0 -C0 -P0 ) -FN2 -FC1000 -FD1FFF8000 -FF0HC32F460_512K -FF1HC32F460_otp -FL080000 -FL13FC -FS00 -FS13000C00 -FP0($$Device:HC32F460JETA$FlashARM\HC32F460_512K.FLM) -FP1($$Device:HC32F460JETA$FlashARM\HC32F460_otp.FLM)
+ -X"Any" -UAny -O206 -S9 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD1FFF8000 -FC1000 -FN2 -FF0HC32F460_512K.FLM -FS00 -FL080000 -FP0($$Device:HC32F460JETA$FlashARM\HC32F460_512K.FLM) -FF1HC32F460_otp.FLM -FS13000C00 -FL13FC -FP1($$Device:HC32F460JETA$FlashARM\HC32F460_otp.FLM)
0
@@ -150,25 +148,73 @@
0
DLGUARM
- –?
+
0
0
- 57
+ 235
1
- 30944
+ 24890
0
0
0
0
0
1
- ..\source\Module\dc_motor\dc_motor.c
+ ..\source\User\Src\main.c
- \\BombSensor\../source/Module/dc_motor/dc_motor.c\57
+ \\BombSensor\../source/User/Src/main.c\235
+
+
+ 1
+ 0
+ 211
+ 1
+ 24642
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\source\User\Src\main.c
+
+ \\BombSensor\../source/User/Src/main.c\211
+
+
+ 2
+ 0
+ 185
+ 1
+ 24380
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\source\User\Src\main.c
+
+ \\BombSensor\../source/User/Src/main.c\185
+
+
+ 3
+ 0
+ 163
+ 1
+ 24122
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\source\User\Src\main.c
+
+ \\BombSensor\../source/User/Src/main.c\163
@@ -210,57 +256,57 @@
7
1
- App.ADTrack.LeftUp_Org_AdZero,0x0A
+ LeftSlopeSum,0x0A
8
1
- App.ADTrack.LeftLow_Org_AdZero,0x0A
+ RightSlopeSum,0x0A
9
1
- App.ADTrack.RightUp_Org_AdZero,0x0A
+ LeftDiffSum,0x0A
10
1
- App.ADTrack.RightLow_Org_AdZero,0x0A
+ RightDiffSum,0x0A
11
1
- LeftSlopeSum,0x0A
+ KeyASta
12
1
- RightSlopeSum,0x0A
+ KeyBSta
13
1
- LeftDiffSum,0x0A
+ DcMotorDispEn
14
1
- RightDiffSum,0x0A
+ Olu_diff1,0x0A
15
1
- KeyASta
+ Oll_diff1,0x0A
16
1
- KeyBSta
+ Oru_diff1,0x0A
17
1
- DcMotorDispEn
+ Orl_diff1,0x0A
@@ -307,7 +353,6 @@
1
- 0
0
2
5000000
@@ -395,8 +440,6 @@
0
0
1
- 0
- 0
-1
@@ -410,7 +453,72 @@
-
+
+
+ 0
+ 0
+ 163
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\source\User\Src\main.c
+
+
+
+
+ 1
+ 0
+ 185
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\source\User\Src\main.c
+
+
+
+
+ 2
+ 0
+ 211
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\source\User\Src\main.c
+
+
+
+
+ 3
+ 0
+ 235
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\source\User\Src\main.c
+
+
+
+
0
@@ -1058,7 +1166,7 @@
3
49
1
- 1
+ 0
0
0
..\source\User\Src\Debug.c
@@ -1134,7 +1242,7 @@
5
54
1
- 0
+ 1
0
0
..\source\Module\dc_motor\dc_motor.c
diff --git a/Project/HC32F460/MDK/HC32F460.uvprojx b/Project/HC32F460/MDK/HC32F460.uvprojx
index 71ebd23..47814fb 100644
--- a/Project/HC32F460/MDK/HC32F460.uvprojx
+++ b/Project/HC32F460/MDK/HC32F460.uvprojx
@@ -10,7 +10,7 @@
Debug
0x4
ARM-ADS
- 5060750::V5.06 update 6 (build 750)::.\ARMCC
+ 5060528::V5.06 update 5 (build 528)::ARMCC
0
@@ -184,8 +184,6 @@
0
0
2
- 0
- 0
1
1
8
@@ -326,7 +324,6 @@
0
0
1
- 0
0
3
3
@@ -352,7 +349,7 @@
0
0
0
- 4
+ 0
@@ -861,8 +858,6 @@
0
0
1
- 0
- 0
1
1
8
@@ -1003,7 +998,6 @@
0
0
1
- 0
0
0
0
@@ -1029,7 +1023,7 @@
0
0
0
- 4
+ 0
@@ -1376,19 +1370,4 @@
-
-
-
- <Project Info>
-
-
-
-
-
- 0
- 1
-
-
-
-
diff --git a/Project/HC32F460/MDK/RTE/_Debug/RTE_Components.h b/Project/HC32F460/MDK/RTE/_Debug/RTE_Components.h
index 74af911..d0352e7 100644
--- a/Project/HC32F460/MDK/RTE/_Debug/RTE_Components.h
+++ b/Project/HC32F460/MDK/RTE/_Debug/RTE_Components.h
@@ -1,6 +1,6 @@
/*
- * Auto generated Run-Time-Environment Configuration File
+ * Auto generated Run-Time-Environment Component Configuration File
* *** Do not modify ! ***
*
* Project: 'HC32F460'
@@ -17,5 +17,4 @@
#define CMSIS_device_header "HC32F460JETA.h"
-
#endif /* RTE_COMPONENTS_H */
diff --git a/Project/HC32F460/source/Module/dc_motor/dc_motor.c b/Project/HC32F460/source/Module/dc_motor/dc_motor.c
index 442cf72..cd67c6a 100644
--- a/Project/HC32F460/source/Module/dc_motor/dc_motor.c
+++ b/Project/HC32F460/source/Module/dc_motor/dc_motor.c
@@ -34,7 +34,7 @@ void DCMOTORDBGOnOff(uint8_t OnOff)
/* Timer4 CNT */
#define TIMER4_UNIT (M4_TMR41)
-#define TIMER4_CNT_CYCLE_VAL (10000u) /* Timer4 counter cycle value */
+#define TIMER4_CNT_CYCLE_VAL (500u) /* Timer4 counter cycle value */
/* Timer4 OCO */
#define TIMER4_OCO_HIGH_CH (Timer4OcoOuh) /* only Timer4OcoOuh Timer4OcoOvh Timer4OcoOwh */
diff --git a/Project/HC32F460/source/Module/dc_motor/dc_motor.h b/Project/HC32F460/source/Module/dc_motor/dc_motor.h
index 9543ddb..6db259e 100644
--- a/Project/HC32F460/source/Module/dc_motor/dc_motor.h
+++ b/Project/HC32F460/source/Module/dc_motor/dc_motor.h
@@ -11,9 +11,9 @@
#define TIMER TIMER4
// µç»ú¿ØÖƲÎÊý
#define PWM_PERIOD TIM_PERIOD // PWMÖÜÆÚÖµ (ARR)
-#define MAX_SPEED 9900 // ×î´óËÙ¶È(PWMÕ¼¿Õ±È)
-#define ACCEL_STEP 100 // ¼ÓËÙ²½½øÖµ
-#define DECEL_STEP 100 // ¼õËÙ²½½øÖµ
+#define MAX_SPEED 480 // ×î´óËÙ¶È(PWMÕ¼¿Õ±È)
+#define ACCEL_STEP 10 // ¼ÓËÙ²½½øÖµ
+#define DECEL_STEP 10 // ¼õËÙ²½½øÖµ
#define ACCEL_INTERVAL 2 // ¼Ó¼õËÙ¼ä¸ô(ms)
diff --git a/Project/HC32F460/source/User/Inc/main.h b/Project/HC32F460/source/User/Inc/main.h
index e1e4bc3..700c12b 100644
--- a/Project/HC32F460/source/User/Inc/main.h
+++ b/Project/HC32F460/source/User/Inc/main.h
@@ -12,7 +12,7 @@
#define SLOPE_CNT 40
#define STOP_TIME_MS 500
-#define RUN_TIME_MS 500
+#define RUN_TIME_MS 0
#define BDC_STOP() Motor_Control(MOTOR_CMD_STOP)
#define BDC_UP() Motor_Control(MOTOR_CMD_FORWARD)
diff --git a/Project/HC32F460/source/User/Src/main.c b/Project/HC32F460/source/User/Src/main.c
index f4f2696..349f4bc 100644
--- a/Project/HC32F460/source/User/Src/main.c
+++ b/Project/HC32F460/source/User/Src/main.c
@@ -140,15 +140,6 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.RightRunFalg = false;
if(LeftSlopeSum > RightSlopeSum && LeftDiffSum > RightDiffSum)
{
- uint32_t UpSlopeSum = abs(App.LeftUpCS1237_SlopeArray[0]) + abs(App.RightUpCS1237_SlopeArray[0]);
- uint32_t LowSlopeSum = abs(App.LeftLowCS1237_SlopeArray[0]) + abs(App.RightUpCS1237_SlopeArray[0]);
- uint32_t UpDiffSum = abs(lu_diff[0]) + abs(ru_diff[0]);
- uint32_t LowDiffSum = abs(ll_diff[0]) + abs(rl_diff[0]);
-
-// if(UpSlopeSum > LowSlopeSum && UpDiffSum > LowDiffSum)
-// {
-//
-// }
App.LeftRunFalg = true;
if(((App.LeftUpCS1237_SlopeArray[0] <= -App.ADTrack.Slope_VPT)
&& (App.LeftUpCS1237_SlopeArray[1] <= -App.ADTrack.Slope_VPT)
@@ -161,14 +152,17 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (Olu_diff3 >= App.ADTrack.LeftUpVPT)
&& (Oll_diff1 <= -App.ADTrack.LeftLowVPT)
&& (Oll_diff2 <= -App.ADTrack.LeftLowVPT)
- && (Oll_diff3 <= -App.ADTrack.LeftLowVPT))
- )
+ && (Oll_diff3 <= -App.ADTrack.LeftLowVPT)))
{
- BDC_UP();
- App.UpFlag = true;
- App.StopFlag = false;
- App.DownFlag = false;
- App.RunCollDelay1mSCnt = RUN_TIME_MS;
+ if((abs(Olu_diff1) > abs(Orl_diff1) + 10000)
+ && (abs(Oll_diff1) > abs(Oru_diff1) + 10000))
+ {
+ BDC_UP();
+ App.UpFlag = true;
+ App.StopFlag = false;
+ App.DownFlag = false;
+ App.RunCollDelay1mSCnt = RUN_TIME_MS;
+ }
}
else if(((App.LeftUpCS1237_SlopeArray[0] >= App.ADTrack.Slope_VPT)
&& (App.LeftUpCS1237_SlopeArray[1] >= App.ADTrack.Slope_VPT)
@@ -181,14 +175,17 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (Olu_diff1 <= -App.ADTrack.LeftUpVPT)
&& (Oll_diff1 >= App.ADTrack.LeftLowVPT)
&& (Oll_diff1 >= App.ADTrack.LeftLowVPT)
- && (Oll_diff1 >= App.ADTrack.LeftLowVPT))
- )
+ && (Oll_diff1 >= App.ADTrack.LeftLowVPT)))
{
- BDC_DOWN();
- App.DownFlag = true;
- App.StopFlag = false;
- App.UpFlag = false;
- App.RunCollDelay1mSCnt = RUN_TIME_MS;
+ if((abs(Oll_diff1) > abs(Oru_diff1) + 10000)
+ && (abs(Olu_diff1) > abs(Orl_diff1) + 10000))
+ {
+ BDC_DOWN();
+ App.DownFlag = true;
+ App.StopFlag = false;
+ App.UpFlag = false;
+ App.RunCollDelay1mSCnt = RUN_TIME_MS;
+ }
}
}
else if(LeftSlopeSum < RightSlopeSum && LeftDiffSum < RightDiffSum)
@@ -205,14 +202,17 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (Oru_diff3 >= App.ADTrack.RightUpVPT)
&& (Orl_diff1 <= -App.ADTrack.RightLowVPT)
&& (Orl_diff2 <= -App.ADTrack.RightLowVPT)
- && (Orl_diff3 <= -App.ADTrack.RightLowVPT))
- )
+ && (Orl_diff3 <= -App.ADTrack.RightLowVPT)))
{
- BDC_UP();
- App.UpFlag = true;
- App.StopFlag = false;
- App.DownFlag = false;
- App.RunCollDelay1mSCnt = RUN_TIME_MS;
+ if((abs(Orl_diff1) > abs(Olu_diff1) + 10000)
+ && (abs(Oru_diff1) > abs(Oll_diff1) + 10000))
+ {
+ BDC_UP();
+ App.UpFlag = true;
+ App.StopFlag = false;
+ App.DownFlag = false;
+ App.RunCollDelay1mSCnt = RUN_TIME_MS;
+ }
}
else if(((App.RightUpCS1237_SlopeArray[0] >= App.ADTrack.Slope_VPT)
&& (App.RightUpCS1237_SlopeArray[1] >= App.ADTrack.Slope_VPT)
@@ -228,11 +228,15 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (Orl_diff3 >= App.ADTrack.RightLowVPT))
)
{
- BDC_DOWN();
- App.DownFlag = true;
- App.StopFlag = false;
- App.UpFlag = false;
- App.RunCollDelay1mSCnt = RUN_TIME_MS;
+ if((abs(Oru_diff1) > abs(Oll_diff1) + 10000)
+ && (abs(Orl_diff1) > abs(Olu_diff1) + 10000))
+ {
+ BDC_DOWN();
+ App.DownFlag = true;
+ App.StopFlag = false;
+ App.UpFlag = false;
+ App.RunCollDelay1mSCnt = RUN_TIME_MS;
+ }
}
}
}
@@ -543,10 +547,10 @@ static void AppLoopHandler(void)
App.EvenRunning = false;
App.ADTrack.Slope_VPT = 2000;
- App.ADTrack.LeftUpVPT = 10000;
- App.ADTrack.LeftLowVPT = 10000;
- App.ADTrack.RightUpVPT = 10000;
- App.ADTrack.RightLowVPT = 10000;
+ App.ADTrack.LeftUpVPT = 40000;
+ App.ADTrack.LeftLowVPT = 40000;
+ App.ADTrack.RightUpVPT = 40000;
+ App.ADTrack.RightLowVPT = 40000;
App.ADTrack.LeftUp_Org_AdZero = App.LeftUpCS1237_TrendArray[0];
App.ADTrack.LeftLow_Org_AdZero = App.LeftLowCS1237_TrendArray[0];