日常更新
This commit is contained in:
181
app/gl_barrier.c
181
app/gl_barrier.c
@@ -3,110 +3,113 @@
|
||||
|
||||
enum barrier_type_e barrier_type = BARRIER_NONE;
|
||||
enum s_type_e s_type = S_NONE;
|
||||
uint16 time_barrier;
|
||||
enum shiled_type_e shiled_type = SHILED_NONE;
|
||||
float (*mid_track_s)[2];
|
||||
int32_t mid_track_count_s;
|
||||
int temp_min_s;
|
||||
int temp_max_s;
|
||||
int barrier_begin_flag = 0;
|
||||
int barrier_count = 0;
|
||||
|
||||
void CheckBarrier()
|
||||
{
|
||||
if (barrier_type == BARRIER_NONE && Lpt0_found_barrier_in && !Lpt1_found_barrier_in && is_straight1) {
|
||||
barrier_type = BARRIER_LEFT_BEGIN;
|
||||
}
|
||||
if (barrier_type == BARRIER_NONE && !Lpt0_found_barrier_in && Lpt1_found_barrier_in && is_straight0) {
|
||||
barrier_type = BARRIER_RIGHT_BEGIN;
|
||||
}
|
||||
if (barrier_type == BARRIER_NONE && Lpt0_found_barrier_in && !Lpt1_found_barrier_in && is_straight1) {
|
||||
barrier_type = BARRIER_LEFT_BEGIN;
|
||||
}
|
||||
if (barrier_type == BARRIER_NONE && !Lpt0_found_barrier_in && Lpt1_found_barrier_in && is_straight0) {
|
||||
barrier_type = BARRIER_RIGHT_BEGIN;
|
||||
}
|
||||
}
|
||||
|
||||
void RunBarrier()
|
||||
{
|
||||
if (barrier_type == BARRIER_LEFT_BEGIN) {
|
||||
track_type = TRACK_RIGHT;
|
||||
if (barrier_begin_flag == 0) {
|
||||
timer_clear(TIM_3);
|
||||
timer_start(TIM_3);
|
||||
barrier_begin_flag = 1;
|
||||
// if (barrier_begin_flag == 0) {
|
||||
// timer_clear(TIM_3);
|
||||
// timer_start(TIM_3);
|
||||
// barrier_begin_flag = 1;
|
||||
// }
|
||||
// }
|
||||
// if (barrier_type == BARRIER_LEFT_BEGIN || barrier_type == BARRIER_LEFT_RUNNING) {
|
||||
// if (barrier_begin_flag == 1) {
|
||||
// barrier_type = BARRIER_LEFT_BEGIN;
|
||||
// time_barrier = timer_get(TIM_3);
|
||||
// if (time_barrier >= 300 && time_barrier < 600) {
|
||||
// barrier_type = BARRIER_LEFT_RUNNING;
|
||||
// } else if (time_barrier >= 600) {
|
||||
// barrier_type = BARRIER_NONE;
|
||||
// barrier_count = 1;
|
||||
// barrier_begin_flag = 0;
|
||||
// timer_stop(TIM_3);
|
||||
// timer_clear(TIM_3);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
if (Lpt0_found) {
|
||||
Lpt0_found_count++;
|
||||
}
|
||||
}
|
||||
if (barrier_type == BARRIER_LEFT_BEGIN || barrier_type == BARRIER_LEFT_RUNNING) {
|
||||
if (barrier_begin_flag == 1) {
|
||||
barrier_type = BARRIER_LEFT_BEGIN;
|
||||
time_barrier = timer_get(TIM_3);
|
||||
if (time_barrier >= 300 && time_barrier < 600) {
|
||||
barrier_type = BARRIER_LEFT_RUNNING;
|
||||
} else if (time_barrier >= 600) {
|
||||
barrier_type = BARRIER_NONE;
|
||||
barrier_begin_flag = 0;
|
||||
timer_stop(TIM_3);
|
||||
timer_clear(TIM_3);
|
||||
if (Lpt0_found_count >= 1 && barrier_type == BARRIER_LEFT_BEGIN) {
|
||||
Lpt0_found_count = 0;
|
||||
barrier_type = BARRIER_LEFT_RUNNING;
|
||||
track_type = TRACK_RIGHT;
|
||||
timer_clear(TIM_1);
|
||||
timer_start(TIM_1);
|
||||
} else if (barrier_type == BARRIER_LEFT_RUNNING) {
|
||||
track_type = TRACK_RIGHT;
|
||||
if (timer_get(TIM_1) >= 220) {
|
||||
barrier_type = BARRIER_NONE;
|
||||
track_type = TRACK_RIGHT;
|
||||
timer_stop(TIM_1);
|
||||
timer_clear(TIM_1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if (Lpt0_found) {
|
||||
// Lpt0_found_count++;
|
||||
// }
|
||||
// if (Lpt0_found_count >= 1) {
|
||||
// Lpt0_found_count = 0;
|
||||
// barrier_type = BARRIER_LEFT_RUNNING;
|
||||
// track_type = TRACK_RIGHT;
|
||||
// timer_clear(TIM_3);
|
||||
// timer_start(TIM_3);
|
||||
// }
|
||||
// } else if (barrier_type == BARRIER_LEFT_RUNNING) {
|
||||
// track_type = TRACK_RIGHT;
|
||||
// time_barrier = timer_get(TIM_3);
|
||||
// if (time_barrier >= 220) {
|
||||
// barrier_type = BARRIER_NONE;
|
||||
// track_type = TRACK_RIGHT;
|
||||
// timer_start(TIM_3);
|
||||
// timer_clear(TIM_3);
|
||||
// }
|
||||
|
||||
if (barrier_type == BARRIER_RIGHT_BEGIN) {
|
||||
track_type = TRACK_LEFT;
|
||||
if (barrier_begin_flag == 0) {
|
||||
timer_clear(TIM_3);
|
||||
timer_start(TIM_3);
|
||||
barrier_begin_flag = 1;
|
||||
// if (barrier_begin_flag == 0) {
|
||||
// timer_clear(TIM_3);
|
||||
// timer_start(TIM_3);
|
||||
// barrier_begin_flag = 1;
|
||||
// }
|
||||
// }
|
||||
// if (barrier_type == BARRIER_RIGHT_BEGIN || barrier_type == BARRIER_RIGHT_RUNNING) {
|
||||
// if (barrier_begin_flag == 1) {
|
||||
// barrier_type = BARRIER_RIGHT_BEGIN;
|
||||
// time_barrier = timer_get(TIM_3);
|
||||
// if (time_barrier >= 300 && time_barrier < 600) {
|
||||
// barrier_type = BARRIER_RIGHT_RUNNING;
|
||||
// } else if (time_barrier >= 600) {
|
||||
// barrier_type = BARRIER_NONE;
|
||||
// barrier_count = 1;
|
||||
// barrier_begin_flag = 0;
|
||||
// timer_stop(TIM_3);
|
||||
// timer_clear(TIM_3);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
if (Lpt1_found) {
|
||||
Lpt1_found_count++;
|
||||
}
|
||||
}
|
||||
if (barrier_type == BARRIER_RIGHT_BEGIN || barrier_type == BARRIER_RIGHT_RUNNING) {
|
||||
if (barrier_begin_flag == 1) {
|
||||
barrier_type = BARRIER_RIGHT_BEGIN;
|
||||
time_barrier = timer_get(TIM_3);
|
||||
if (time_barrier >= 300 && time_barrier < 600) {
|
||||
barrier_type = BARRIER_RIGHT_RUNNING;
|
||||
} else if (time_barrier >= 600) {
|
||||
barrier_type = BARRIER_NONE;
|
||||
barrier_begin_flag = 0;
|
||||
timer_stop(TIM_3);
|
||||
timer_clear(TIM_3);
|
||||
if (Lpt1_found_count >= 1 && barrier_type == BARRIER_RIGHT_BEGIN) {
|
||||
Lpt1_found_count = 0;
|
||||
barrier_type = BARRIER_RIGHT_RUNNING;
|
||||
track_type = TRACK_LEFT;
|
||||
timer_clear(TIM_1);
|
||||
timer_start(TIM_1);
|
||||
} 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);
|
||||
barrier_type = BARRIER_NONE;
|
||||
track_type = TRACK_LEFT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if (Lpt1_found) {
|
||||
// Lpt1_found_count++;
|
||||
// }
|
||||
// if (Lpt1_found_count >= 1) {
|
||||
// Lpt1_found_count = 0;
|
||||
// barrier_type = BARRIER_RIGHT_RUNNING;
|
||||
// track_type = TRACK_LEFT;
|
||||
// timer_clear(TIM_3);
|
||||
// timer_start(TIM_3);
|
||||
// }
|
||||
// } else if (barrier_type == BARRIER_RIGHT_RUNNING) {
|
||||
// track_type = TRACK_LEFT;
|
||||
// time_barrier = timer_get(TIM_3);
|
||||
// if (time_barrier >= 220) {
|
||||
// timer_start(TIM_3);
|
||||
// timer_clear(TIM_3);
|
||||
// barrier_type = BARRIER_NONE;
|
||||
// track_type = TRACK_LEFT;
|
||||
// }
|
||||
}
|
||||
|
||||
void Check_s()
|
||||
@@ -144,4 +147,24 @@ void RunS()
|
||||
if (temp_max_s - temp_min_s > 30 || (is_straight0 && is_straight1)) {
|
||||
s_type = S_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Check_shiled(){
|
||||
if (begin_flag == 1)
|
||||
{
|
||||
shiled_type = SHILED_BEGIN;
|
||||
timer_clear(TIM_3);
|
||||
timer_start(TIM_3);
|
||||
begin_flag = 0;
|
||||
}
|
||||
if (timer_get(TIM_3) > 1000 && shiled_type == SHILED_BEGIN)
|
||||
{
|
||||
shiled_type = SHILED_NONE;
|
||||
timer_stop(TIM_3);
|
||||
timer_clear(TIM_3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user