diff --git a/Project/HC32F460/MDK/HC32F460.uvoptx b/Project/HC32F460/MDK/HC32F460.uvoptx index a5fd95d..32825d9 100644 --- a/Project/HC32F460/MDK/HC32F460.uvoptx +++ b/Project/HC32F460/MDK/HC32F460.uvoptx @@ -101,9 +101,7 @@ 0 0 1 - 0 - 0 - 6 + 2 @@ -114,7 +112,7 @@ - Segger\JL2CM3.dll + BIN\CMSIS_AGDI.dll @@ -253,7 +251,7 @@ 19 1 - argv + argv,0x10 20 @@ -318,7 +316,6 @@ 1 - 0 0 2 5000000 @@ -406,8 +403,6 @@ 0 0 1 - 0 - 0 -1 @@ -534,7 +529,7 @@ common - 1 + 0 0 0 0 diff --git a/Project/HC32F460/MDK/HC32F460.uvprojx b/Project/HC32F460/MDK/HC32F460.uvprojx index 2932607..381d7a6 100644 --- a/Project/HC32F460/MDK/HC32F460.uvprojx +++ b/Project/HC32F460/MDK/HC32F460.uvprojx @@ -10,7 +10,8 @@ Debug 0x4 ARM-ADS - 5060960::V5.06 update 7 (build 960)::ARMCC + 5060528::V5.06 update 5 (build 528)::ARMCC + 5060528::V5.06 update 5 (build 528)::ARMCC 0 @@ -184,9 +185,6 @@ 0 0 2 - 0 - 0 - 0 1 1 8 @@ -327,10 +325,9 @@ 0 0 1 - 0 0 3 - 5 + 3 1 1 0 @@ -353,7 +350,7 @@ 0 0 0 - 4 + 0 @@ -862,9 +859,6 @@ 0 0 1 - 0 - 0 - 0 1 1 8 @@ -1005,7 +999,6 @@ 0 0 1 - 0 0 0 0 @@ -1031,7 +1024,7 @@ 0 0 0 - 4 + 0 @@ -1367,8 +1360,8 @@ - - + + 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/User/Inc/main.h b/Project/HC32F460/source/User/Inc/main.h index bad8c9f..7fac0b6 100644 --- a/Project/HC32F460/source/User/Inc/main.h +++ b/Project/HC32F460/source/User/Inc/main.h @@ -9,10 +9,10 @@ #define OSC_CNT 40 -#define SLOPE_CNT 40 +#define SLOPE_CNT 20 #define STOP_TIME_MS 500 -#define RUN_TIME_MS 0 +#define RUN_TIME_MS 200 #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 6d928bb..b18c1ba 100644 --- a/Project/HC32F460/source/User/Src/main.c +++ b/Project/HC32F460/source/User/Src/main.c @@ -14,7 +14,7 @@ #define MAIN_DBG_LOG(...) DBG_LOG(__VA_ARGS__) #define MAIN_DBG_ARRAY(ARRAY, SIZE) DBG_ARRAY(ARRAY,SIZE) -#define SOFTWARE_VERSION 10 //软件版本 +#define SOFTWARE_VERSION 11 //软件版本 #define HARDWARE_VERSION 20 //硬件版本 AppDetect_t App; @@ -78,31 +78,63 @@ void GradeControl(ControlLevel_m level) { switch(level){ case LEVEL_1:{ - + App.ADTrack.Slope_VPT = 500; + App.ADTrack.LeftUpVPT = 10000; + App.ADTrack.LeftLowVPT = 10000; + App.ADTrack.RightUpVPT = 10000; + App.ADTrack.RightLowVPT = 10000; + App.ADTrack.LeftUpShieldVPT = 4000; + App.ADTrack.LeftLowShieldVPT = 4000; + App.ADTrack.RightUpShieldVPT = 4000; + App.ADTrack.RightLowShieldVPT = 4000; break;} case LEVEL_2:{ - + App.ADTrack.Slope_VPT = 500; + App.ADTrack.LeftUpVPT = 20000; + App.ADTrack.LeftLowVPT = 20000; + App.ADTrack.RightUpVPT = 20000; + App.ADTrack.RightLowVPT = 20000; + App.ADTrack.LeftUpShieldVPT = 4000; + App.ADTrack.LeftLowShieldVPT = 4000; + App.ADTrack.RightUpShieldVPT = 4000; + App.ADTrack.RightLowShieldVPT = 4000; break;} case LEVEL_3:{ - App.ADTrack.Slope_VPT = 2000; + App.ADTrack.Slope_VPT = 500; + App.ADTrack.LeftUpVPT = 30000; + App.ADTrack.LeftLowVPT = 30000; + App.ADTrack.RightUpVPT = 30000; + App.ADTrack.RightLowVPT = 30000; + App.ADTrack.LeftUpShieldVPT = 4000; + App.ADTrack.LeftLowShieldVPT = 4000; + App.ADTrack.RightUpShieldVPT = 4000; + App.ADTrack.RightLowShieldVPT = 4000; + break;} + + case LEVEL_4:{ + App.ADTrack.Slope_VPT = 500; App.ADTrack.LeftUpVPT = 40000; App.ADTrack.LeftLowVPT = 40000; App.ADTrack.RightUpVPT = 40000; App.ADTrack.RightLowVPT = 40000; - App.ADTrack.LeftUpShieldVPT = 10000; - App.ADTrack.LeftLowShieldVPT = 10000; - App.ADTrack.RightUpShieldVPT = 10000; - App.ADTrack.RightLowShieldVPT = 10000; - break;} - - case LEVEL_4:{ - + App.ADTrack.LeftUpShieldVPT = 4000; + App.ADTrack.LeftLowShieldVPT = 4000; + App.ADTrack.RightUpShieldVPT = 4000; + App.ADTrack.RightLowShieldVPT = 4000; break;} case LEVEL_5:{ - + App.ADTrack.Slope_VPT = 500; + App.ADTrack.LeftUpVPT = 50000; + App.ADTrack.LeftLowVPT = 50000; + App.ADTrack.RightUpVPT = 50000; + App.ADTrack.RightLowVPT = 50000; + App.ADTrack.LeftUpShieldVPT = 4000; + App.ADTrack.LeftLowShieldVPT = 4000; + App.ADTrack.RightUpShieldVPT = 4000; + App.ADTrack.RightLowShieldVPT = 4000; break;} } } @@ -143,7 +175,11 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ int32_t ll_slope = result_ll.slope; int32_t ru_slope = result_ru.slope; int32_t rl_slope = result_rl.slope; - //show(A2_slope); +// show(1, lu_slope); +// show(2, ll_slope); +// show(3, ru_slope); +// show(4, rl_slope); + for(int i = SLOPE_CNT-1; i > 0; i--) { @@ -278,12 +314,11 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ } else if(App.DownFlag == true) { - if(App.RunCollDelay1mSCnt <= 0) - { if(App.LeftRunFalg == true) { if(lu_slope < -App.ADTrack.Slope_VPT - && ll_slope > App.ADTrack.Slope_VPT) + && ll_slope > App.ADTrack.Slope_VPT + && App.RunCollDelay1mSCnt <= 0) { BDC_STOP(); App.StopFlag = true; @@ -305,7 +340,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ { if(ru_slope < -App.ADTrack.Slope_VPT && rl_slope > App.ADTrack.Slope_VPT - ) + && App.RunCollDelay1mSCnt <= 0) { BDC_STOP(); App.StopFlag = true; @@ -324,54 +359,51 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_ } } } - } else if(App.UpFlag == true) { - if(App.RunCollDelay1mSCnt <= 0) + if(App.LeftRunFalg == true) { - if(App.LeftRunFalg == true) + if(lu_slope > App.ADTrack.Slope_VPT + && ll_slope < -App.ADTrack.Slope_VPT + && App.RunCollDelay1mSCnt <= 0) { - if(lu_slope > App.ADTrack.Slope_VPT - && ll_slope < -App.ADTrack.Slope_VPT) - { - BDC_STOP(); - App.StopFlag = true; - App.DownFlag = false; - App.UpFlag = false; - App.StopCollDelay1mSCnt = STOP_TIME_MS; - } - else if(Olu_diff1 < (App.ADTrack.LeftUpVPT / 2) - && Oll_diff1 > -(App.ADTrack.LeftLowVPT / 2)) - { - BDC_STOP(); - App.StopFlag = true; - App.DownFlag = false; - App.UpFlag = false; - App.StopCollDelay1mSCnt = STOP_TIME_MS; - } + BDC_STOP(); + App.StopFlag = true; + App.DownFlag = false; + App.UpFlag = false; + App.StopCollDelay1mSCnt = STOP_TIME_MS; } - else if(App.RightRunFalg == true) + else if(Olu_diff1 < (App.ADTrack.LeftUpVPT / 2) + && Oll_diff1 > -(App.ADTrack.LeftLowVPT / 2)) { - if(ru_slope > App.ADTrack.Slope_VPT - && rl_slope < -App.ADTrack.Slope_VPT - ) - { - BDC_STOP(); - App.StopFlag = true; - App.DownFlag = false; - App.UpFlag = false; - App.StopCollDelay1mSCnt = STOP_TIME_MS; - } - else if(Oru_diff1 < (App.ADTrack.RightUpVPT / 2) - && Orl_diff1 > -(App.ADTrack.RightLowVPT / 2) - ) - { - BDC_STOP(); - App.StopFlag = true; - App.DownFlag = false; - App.UpFlag = false; - App.StopCollDelay1mSCnt = STOP_TIME_MS; - } + BDC_STOP(); + App.StopFlag = true; + App.DownFlag = false; + App.UpFlag = false; + App.StopCollDelay1mSCnt = STOP_TIME_MS; + } + } + else if(App.RightRunFalg == true) + { + if(ru_slope > App.ADTrack.Slope_VPT + && rl_slope < -App.ADTrack.Slope_VPT + && App.RunCollDelay1mSCnt <= 0) + { + BDC_STOP(); + App.StopFlag = true; + App.DownFlag = false; + App.UpFlag = false; + App.StopCollDelay1mSCnt = STOP_TIME_MS; + } + else if(Oru_diff1 < (App.ADTrack.RightUpVPT / 2) + && Orl_diff1 > -(App.ADTrack.RightLowVPT / 2) + ) + { + BDC_STOP(); + App.StopFlag = true; + App.DownFlag = false; + App.UpFlag = false; + App.StopCollDelay1mSCnt = STOP_TIME_MS; } } } @@ -644,9 +676,7 @@ int main(void) #if(USE_WDT == 1) FeedDogHandler(); #endif -#if(USE_DEBUG == 1) DebugLoopHandler(); -#endif #if(USE_CS1237_LEFTUP == 1) LEFTUP_CS1237DataLoopCollect(); #endif @@ -676,20 +706,10 @@ void SysTick_IrqHandler(void) SysTick_IncTick(); App1mSRoutine(); Dbg1msRoutine(); - - #if(USE_CS1237_LEFTUP == 1) LEFTUP_CS12371mSRoutine(); - #endif - #if(USE_CS1237_LEFTLOW == 1) LEFTLOW_CS12371mSRoutine(); - #endif - #if(USE_CS1237_RIGHTUP == 1) RIGHTUP_CS12371mSRoutine(); - #endif - #if(USE_CS1237_RIGHTLOW == 1) RIGHTLOW_CS12371mSRoutine(); - #endif - Dcmotor1msRoutine(); }