feat: 增加避障状态计时清除

This commit is contained in:
2024-03-24 18:26:36 +08:00
parent 1c65b7752e
commit cbea30033a
5 changed files with 179 additions and 183 deletions

View File

@@ -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;
}
}
}