feat: 增加避障状态计时清除
This commit is contained in:
@@ -2,9 +2,9 @@
|
||||
#include "gl_headfile.h"
|
||||
|
||||
enum barrier_type_e barrier_type = BARRIER_NONE;
|
||||
|
||||
|
||||
void CheckBarrier() {
|
||||
uint16 time_barrier;
|
||||
void CheckBarrier()
|
||||
{
|
||||
if (barrier_type == BARRIER_NONE && Lpt0_found_barrier_in && !Lpt1_found_barrier_in && is_straight1) {
|
||||
barrier_type = BARRIER_LEFT_BEGIN;
|
||||
}
|
||||
@@ -13,54 +13,51 @@ void CheckBarrier() {
|
||||
}
|
||||
}
|
||||
|
||||
void RunBarrier() {
|
||||
if (barrier_type == BARRIER_LEFT_BEGIN)
|
||||
{
|
||||
track_type = TRACK_RIGHT;
|
||||
if (Lpt0_found)
|
||||
{
|
||||
Lpt0_found_count++;
|
||||
void RunBarrier()
|
||||
{
|
||||
if (barrier_type == BARRIER_LEFT_BEGIN) {
|
||||
track_type = TRACK_RIGHT;
|
||||
if (Lpt0_found) {
|
||||
Lpt0_found_count++;
|
||||
}
|
||||
if (Lpt0_found_count >= 1 && time_barrier >= 5000) {
|
||||
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 >= 5000) {
|
||||
barrier_type = BARRIER_NONE;
|
||||
track_type = TRACK_RIGHT;
|
||||
timer_start(TIM_3);
|
||||
timer_clear(TIM_3);
|
||||
}
|
||||
}
|
||||
if (Lpt0_found_count >= 1)
|
||||
{
|
||||
Lpt0_found_count = 0;
|
||||
barrier_type = BARRIER_LEFT_RUNNING;
|
||||
track_type = TRACK_RIGHT;
|
||||
}
|
||||
}
|
||||
else if (barrier_type == BARRIER_LEFT_RUNNING)
|
||||
{
|
||||
track_type = TRACK_RIGHT;
|
||||
if (Lpt0_found)
|
||||
{
|
||||
barrier_type = BARRIER_NONE;
|
||||
track_type = TRACK_RIGHT;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (barrier_type == BARRIER_RIGHT_BEGIN)
|
||||
{
|
||||
track_type = TRACK_LEFT;
|
||||
if (Lpt1_found)
|
||||
{
|
||||
Lpt1_found_count++;
|
||||
if (barrier_type == BARRIER_RIGHT_BEGIN) {
|
||||
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 >= 5000) {
|
||||
timer_start(TIM_3);
|
||||
timer_clear(TIM_3);
|
||||
barrier_type = BARRIER_NONE;
|
||||
track_type = TRACK_LEFT;
|
||||
}
|
||||
}
|
||||
if (Lpt1_found_count >= 1)
|
||||
{
|
||||
Lpt1_found_count = 0;
|
||||
barrier_type = BARRIER_RIGHT_RUNNING;
|
||||
track_type = TRACK_LEFT;
|
||||
}
|
||||
}
|
||||
else if (barrier_type == BARRIER_RIGHT_RUNNING)
|
||||
{
|
||||
track_type = TRACK_LEFT;
|
||||
if (Lpt1_found)
|
||||
{
|
||||
barrier_type = BARRIER_NONE;
|
||||
track_type = TRACK_LEFT;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user