diff --git a/app/gl_barrier.c b/app/gl_barrier.c index a4b735b..4830c2a 100644 --- a/app/gl_barrier.c +++ b/app/gl_barrier.c @@ -23,7 +23,7 @@ void CheckBarrier() void RunBarrier() { - if (barrier_type == BARRIER_LEFT_BEGIN) { + if (barrier_type == BARRIER_LEFT_BEGIN||barrier_type == BARRIER_LEFT_RUNNING) { track_type = TRACK_RIGHT; // if (barrier_begin_flag == 0) { // timer_clear(TIM_3); @@ -54,20 +54,20 @@ void RunBarrier() Lpt0_found_count = 0; barrier_type = BARRIER_LEFT_RUNNING; track_type = TRACK_RIGHT; - timer_clear(TIM_1); - timer_start(TIM_1); + timer_clear(TIM_2); + timer_start(TIM_2); } else if (barrier_type == BARRIER_LEFT_RUNNING) { track_type = TRACK_RIGHT; - if (timer_get(TIM_1) >= 220) { + if (timer_get(TIM_2) >= 500) { barrier_type = BARRIER_NONE; track_type = TRACK_RIGHT; - timer_stop(TIM_1); - timer_clear(TIM_1); + timer_stop(TIM_2); + timer_clear(TIM_2); } } } - if (barrier_type == BARRIER_RIGHT_BEGIN) { + if (barrier_type == BARRIER_RIGHT_BEGIN||barrier_type == BARRIER_RIGHT_RUNNING) { track_type = TRACK_LEFT; // if (barrier_begin_flag == 0) { // timer_clear(TIM_3); @@ -98,13 +98,13 @@ void RunBarrier() Lpt1_found_count = 0; barrier_type = BARRIER_RIGHT_RUNNING; track_type = TRACK_LEFT; - timer_clear(TIM_1); - timer_start(TIM_1); + timer_clear(TIM_2); + timer_start(TIM_2); } else if (barrier_type == BARRIER_RIGHT_RUNNING) { track_type = TRACK_LEFT; - if (timer_get(TIM_1) >= 220) { - timer_stop(TIM_1); - timer_clear(TIM_1); + if (timer_get(TIM_2) >= 500) { + timer_stop(TIM_2); + timer_clear(TIM_2); barrier_type = BARRIER_NONE; track_type = TRACK_LEFT; } @@ -150,21 +150,21 @@ void RunS() } -void Check_shield(){ - if (begin_flag == 1) - { - shield_type = SHIELD_BEGIN; - timer_clear(TIM_3); - timer_start(TIM_3); - begin_flag = 0; - } - if (timer_get(TIM_3) > 1000 && shield_type == SHIELD_BEGIN) - { - shield_type = SHIELD_NONE; - timer_stop(TIM_3); - timer_clear(TIM_3); - } +// void Check_shield(){ +// if (begin_flag == 1) +// { +// shield_type = SHIELD_BEGIN; +// timer_clear(TIM_3); +// timer_start(TIM_3); +// begin_flag = 0; +// } +// if (timer_get(TIM_3) > 1000 && shield_type == SHIELD_BEGIN) +// { +// shield_type = SHIELD_NONE; +// timer_stop(TIM_3); +// timer_clear(TIM_3); +// } -} \ No newline at end of file +// } \ No newline at end of file diff --git a/app/gl_tracking.c b/app/gl_tracking.c index 7ca405f..6682ea8 100644 --- a/app/gl_tracking.c +++ b/app/gl_tracking.c @@ -113,11 +113,11 @@ void aim_distance_select(void) void ElementJudge() { - if(begin_flag == 1){ - shield_type = SHIELD_BEGIN; - begin_flag = 0; - return; - } + // if(begin_flag == 1){ + // shield_type = SHIELD_BEGIN; + // begin_flag = 0; + // return; + // } if (shield_type == SHIELD_NONE) { CheckGarage(); @@ -168,11 +168,12 @@ void ElementRun() void MidLineTrack() { - if (shield_type == SHIELD_BEGIN) { - shield_type = SHIELD_NONE; - system_delay_ms(1000); // 斑马线发车延时 - } - else if (cross_type == CROSS_IN) { + // if (shield_type == SHIELD_BEGIN) { + // shield_type = SHIELD_NONE; + // pure_angle = 0.f; + // system_delay_ms(3500); // 斑马线发车延时 + // } + if (cross_type == CROSS_IN) { if (track_type == TRACK_LEFT) { mid_track = mid_left; // 这是为了预先分配内存 GetMidLine_Left(pts_far_resample_left + far_Lpt0_rpts0s_id, pts_far_resample_left_count - far_Lpt0_rpts0s_id, mid_left, (int)round(ANGLEDIST / RESAMPLEDIST), PIXPERMETER * ROADWIDTH / 2); diff --git a/app/isr.c b/app/isr.c index a269de5..04e7073 100644 --- a/app/isr.c +++ b/app/isr.c @@ -34,6 +34,7 @@ ********************************************************************************************************************/ #include "zf_common_headfile.h" +#include "gl_headfile.h" #include "by_button.h" #include "by_buzzer.h" #include "by_frame.h" @@ -285,8 +286,8 @@ void EXTI15_10_IRQHandler(void) void TIM1_UP_IRQHandler(void) { if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET) { - by_frame_send(&tiny_frame_param[0].u32); TIM_ClearITPendingBit(TIM1, TIM_IT_Update); + by_frame_send(&tiny_frame_param[0].u32); by_led_warn_blink(); } } diff --git a/app/main.c b/app/main.c index 9f81607..5aead52 100644 --- a/app/main.c +++ b/app/main.c @@ -50,15 +50,16 @@ int main(void) pit_ms_init(TIM1_PIT, 10); timer_init(TIM_3, TIMER_MS); + timer_init(TIM_2, TIMER_MS); by_frame_init(); printf("start running\r\n"); while (1) { memset(recv_data, 0, sizeof(recv_data)); by_frame_parse(&recv_data[0].u32); - if(0xEB == recv_data[0].u32) { + if (0x0D == recv_data[0].u32) { NVIC_SystemReset(); - }else if (0x5C == recv_data[0].u32) { + } else if (0x5C == recv_data[0].u32) { begin_flag = 1; }