pref: 整理部分文件和变量
This commit is contained in:
@@ -1,17 +0,0 @@
|
|||||||
#include "zf_common_headfile.h"
|
|
||||||
#include "cw_servo.h"
|
|
||||||
|
|
||||||
void cw_servo_init(void)
|
|
||||||
{
|
|
||||||
pwm_init(SERVO_L_PWM_CHANNEL, 50, 1000);
|
|
||||||
pwm_init(SERVO_R_PWM_CHANNEL, 50, 1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
void cw_servo_set_angle(float servo_l_angle, float servo_r_angle)
|
|
||||||
{
|
|
||||||
uint32_t servo_l_duty_s = (uint32_t)(servo_l_angle * SERVO_L_DUTY_PER_ANGLE);
|
|
||||||
uint32_t servo_r_duty_s = (uint32_t)(servo_r_angle * SERVO_R_DUTY_PER_ANGLE);
|
|
||||||
|
|
||||||
pwm_set_duty(SERVO_L_PWM_CHANNEL, servo_l_duty_s);
|
|
||||||
pwm_set_duty(SERVO_R_PWM_CHANNEL, servo_r_duty_s);
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#ifndef _CW_SERVO_H__
|
|
||||||
#define _CW_SERVO_H__
|
|
||||||
|
|
||||||
#include "zf_common_headfile.h"
|
|
||||||
|
|
||||||
#define SERVO_L_PWM_CHANNEL TIM2_PWM_MAP0_CH1_A0
|
|
||||||
#define SERVO_R_PWM_CHANNEL TIM2_PWM_MAP0_CH2_A1
|
|
||||||
|
|
||||||
#define SERVO_MAX_ANGLE_RANGE (90.0F)
|
|
||||||
#define SERVO_L_DUTY_MAX (1100.0F)
|
|
||||||
#define SERVO_L_DUTY_MIN (900.0F)
|
|
||||||
#define SERVO_R_DUTY_MAX (1100.0F)
|
|
||||||
#define SERVO_R_DUTY_MIN (900.0F)
|
|
||||||
#define SERVO_L_DUTY_PER_ANGLE ((SERVO_L_DUTY_MAX - SERVO_L_DUTY_MIN) / SERVO_MAX_ANGLE_RANGE)
|
|
||||||
#define SERVO_R_DUTY_PER_ANGLE ((SERVO_R_DUTY_MAX - SERVO_R_DUTY_MIN) / SERVO_MAX_ANGLE_RANGE)
|
|
||||||
|
|
||||||
extern void cw_servo_init(void);
|
|
||||||
extern void cw_servo_set_angle(float servo_l_angle, float servo_r_angle);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
#ifndef COMMON_H_
|
#ifndef COMMON_H_
|
||||||
#define COMMON_H_
|
#define COMMON_H_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define IMAGE_H (MT9V03X_H)
|
#define IMAGE_H (MT9V03X_H)
|
||||||
#define IMAGE_W (MT9V03X_W)
|
#define IMAGE_W (MT9V03X_W)
|
||||||
#define BEGINH_L (61)
|
#define BEGINH_L (61)
|
||||||
@@ -10,23 +8,21 @@
|
|||||||
#define BEGINW_L (-18)
|
#define BEGINW_L (-18)
|
||||||
#define BEGINW_R (-12)
|
#define BEGINW_R (-12)
|
||||||
#define PT_MAXLEN (75)
|
#define PT_MAXLEN (75)
|
||||||
#define GET_PIX_1C(IMG, H, W) (IMG[(H) * MT9V03X_W + (W)]) //获取像素点的值
|
#define GET_PIX_1C(IMG, H, W) (IMG[(H) * MT9V03X_W + (W)]) // 获取像素点的值
|
||||||
#define FIX_BINTHRESHOLD (140) //设置最开始的阈值
|
#define FIX_BINTHRESHOLD (140) // 设置最开始的阈值
|
||||||
#define SELFADAPT_KERNELSIZE (7) //巡线区域核大小
|
#define SELFADAPT_KERNELSIZE (7) // 巡线区域核大小
|
||||||
#define FILTER_KERNELSIZE (7) //滤波核大小
|
#define FILTER_KERNELSIZE (7) // 滤波核大小
|
||||||
#define SELFADAPT_OFFSET (8) //适应性块大小
|
#define SELFADAPT_OFFSET (8) // 适应性块大小
|
||||||
#define PIXPERMETER (56)
|
#define PIXPERMETER (56)
|
||||||
#define RESAMPLEDIST (0.02)
|
#define RESAMPLEDIST (0.02f)
|
||||||
#define ANGLEDIST (0.2)
|
#define ANGLEDIST (0.2f)
|
||||||
#define ROADWIDTH (0.45)
|
#define ROADWIDTH (0.45f)
|
||||||
#define FRAMENONE (1)
|
#define FRAMENONE (1)
|
||||||
#define FRAMETOLEFT (5)
|
#define FRAMETOLEFT (5)
|
||||||
#define FRAMETORIGHT (5)
|
#define FRAMETORIGHT (5)
|
||||||
|
|
||||||
int32_t limit(int32_t x, int32_t low, int32_t up);
|
int32_t limit(int32_t x, int32_t low, int32_t up);
|
||||||
int clip(int x, int low, int up);
|
int clip(int x, int low, int up);
|
||||||
float fclip(float x, float low, float up) ;
|
float fclip(float x, float low, float up);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* COMMON_H_ */
|
#endif /* COMMON_H_ */
|
||||||
62
app/gl_data.c
Normal file
62
app/gl_data.c
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
#include "gl_data.h"
|
||||||
|
|
||||||
|
uint8_t (*Img_Gray)[MT9V03X_W];
|
||||||
|
int32_t pts_left[PT_MAXLEN][2];
|
||||||
|
int32_t pts_right[PT_MAXLEN][2];
|
||||||
|
int32_t pts_left_count;
|
||||||
|
int32_t pts_right_count;
|
||||||
|
float pts_inv_l[PT_MAXLEN][2];
|
||||||
|
float pts_inv_r[PT_MAXLEN][2];
|
||||||
|
int32_t pts_inv_l_count;
|
||||||
|
int32_t pts_inv_r_count;
|
||||||
|
float pts_filter_l[PT_MAXLEN][2];
|
||||||
|
float pts_filter_r[PT_MAXLEN][2];
|
||||||
|
int32_t pts_filter_l_count;
|
||||||
|
int32_t pts_filter_r_count;
|
||||||
|
float pts_resample_left[PT_MAXLEN][2];
|
||||||
|
float pts_resample_right[PT_MAXLEN][2];
|
||||||
|
int32_t pts_resample_left_count;
|
||||||
|
int32_t pts_resample_right_count;
|
||||||
|
|
||||||
|
float mid_left[PT_MAXLEN][2];
|
||||||
|
float mid_right[PT_MAXLEN][2];
|
||||||
|
|
||||||
|
int32_t mid_left_count;
|
||||||
|
int32_t mid_right_count;
|
||||||
|
|
||||||
|
float angle_new_left[PT_MAXLEN];
|
||||||
|
float angle_new_right[PT_MAXLEN];
|
||||||
|
int angle_new_left_num;
|
||||||
|
int angle_new_right_num;
|
||||||
|
uint8_t mt9v03x_image_copy[MT9V03X_H][MT9V03X_W];
|
||||||
|
|
||||||
|
float angle_left[PT_MAXLEN];
|
||||||
|
float angle_right[PT_MAXLEN];
|
||||||
|
int angle_left_num;
|
||||||
|
int angle_right_num;
|
||||||
|
|
||||||
|
int Lpt0_rpts0s_id;
|
||||||
|
int Lpt1_rpts1s_id;
|
||||||
|
bool Lpt0_found;
|
||||||
|
bool Lpt1_found;
|
||||||
|
int Lpt1[2];
|
||||||
|
int Lpt0[2];
|
||||||
|
|
||||||
|
int Lpt_in0_rpts0s_id;
|
||||||
|
int Lpt_in1_rpts1s_id;
|
||||||
|
bool Lpt_in0_found;
|
||||||
|
bool Lpt_in1_found;
|
||||||
|
int Lpt_in1[2];
|
||||||
|
int Lpt_in0[2];
|
||||||
|
|
||||||
|
bool is_straight0;
|
||||||
|
bool is_straight1;
|
||||||
|
|
||||||
|
bool is_turn0;
|
||||||
|
bool is_turn1;
|
||||||
|
|
||||||
|
float rptsn[PT_MAXLEN][2];
|
||||||
|
int32_t rptsn_num;
|
||||||
|
float aim_distance;
|
||||||
|
|
||||||
|
track_type_e track_type = TRACK_RIGHT;
|
||||||
74
app/gl_data.h
Normal file
74
app/gl_data.h
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef _GL_DATA_H
|
||||||
|
#define _GL_DATA_H
|
||||||
|
|
||||||
|
#include "gl_headfile.h"
|
||||||
|
|
||||||
|
typedef enum track_type_e {
|
||||||
|
TRACK_LEFT = 0,
|
||||||
|
TRACK_RIGHT,
|
||||||
|
} track_type_e;
|
||||||
|
|
||||||
|
extern uint8_t (*Img_Gray)[MT9V03X_W];
|
||||||
|
extern int32_t pts_left[PT_MAXLEN][2];
|
||||||
|
extern int32_t pts_right[PT_MAXLEN][2];
|
||||||
|
extern int32_t pts_left_count;
|
||||||
|
extern int32_t pts_right_count;
|
||||||
|
extern float pts_inv_l[PT_MAXLEN][2];
|
||||||
|
extern float pts_inv_r[PT_MAXLEN][2];
|
||||||
|
extern int32_t pts_inv_l_count;
|
||||||
|
extern int32_t pts_inv_r_count;
|
||||||
|
extern float pts_filter_l[PT_MAXLEN][2];
|
||||||
|
extern float pts_filter_r[PT_MAXLEN][2];
|
||||||
|
extern int32_t pts_filter_l_count;
|
||||||
|
extern int32_t pts_filter_r_count;
|
||||||
|
extern float pts_resample_left[PT_MAXLEN][2];
|
||||||
|
extern float pts_resample_right[PT_MAXLEN][2];
|
||||||
|
extern int32_t pts_resample_left_count;
|
||||||
|
extern int32_t pts_resample_right_count;
|
||||||
|
|
||||||
|
extern float mid_left[PT_MAXLEN][2];
|
||||||
|
extern float mid_right[PT_MAXLEN][2];
|
||||||
|
|
||||||
|
extern int32_t mid_left_count;
|
||||||
|
extern int32_t mid_right_count;
|
||||||
|
|
||||||
|
extern float angle_new_left[PT_MAXLEN];
|
||||||
|
extern float angle_new_right[PT_MAXLEN];
|
||||||
|
extern int angle_new_left_num;
|
||||||
|
extern int angle_new_right_num;
|
||||||
|
extern uint8_t mt9v03x_image_copy[MT9V03X_H][MT9V03X_W];
|
||||||
|
|
||||||
|
extern float angle_left[PT_MAXLEN];
|
||||||
|
extern float angle_right[PT_MAXLEN];
|
||||||
|
extern int angle_left_num;
|
||||||
|
extern int angle_right_num;
|
||||||
|
|
||||||
|
extern int Lpt0_rpts0s_id;
|
||||||
|
extern int Lpt1_rpts1s_id;
|
||||||
|
extern bool Lpt0_found;
|
||||||
|
extern bool Lpt1_found;
|
||||||
|
extern int Lpt1[2];
|
||||||
|
extern int Lpt0[2];
|
||||||
|
|
||||||
|
extern int Lpt_in0_rpts0s_id;
|
||||||
|
extern int Lpt_in1_rpts1s_id;
|
||||||
|
extern bool Lpt_in0_found;
|
||||||
|
extern bool Lpt_in1_found;
|
||||||
|
extern int Lpt_in1[2];
|
||||||
|
extern int Lpt_in0[2];
|
||||||
|
|
||||||
|
extern bool is_straight0;
|
||||||
|
extern bool is_straight1;
|
||||||
|
|
||||||
|
extern bool is_turn0;
|
||||||
|
extern bool is_turn1;
|
||||||
|
|
||||||
|
extern float rptsn[PT_MAXLEN][2];
|
||||||
|
extern int32_t rptsn_num;
|
||||||
|
extern float aim_distance;
|
||||||
|
|
||||||
|
extern track_type_e track_type;
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
#ifndef GL_HEADFILE
|
#ifndef GL_HEADFILE
|
||||||
#define GL_HEADFILE
|
#define GL_HEADFILE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "gl_state.h"
|
#include "gl_state.h"
|
||||||
#include "gl_img_process.h"
|
#include "gl_img_process.h"
|
||||||
#include "gl_common.h"
|
#include "gl_common.h"
|
||||||
@@ -14,8 +12,7 @@
|
|||||||
#include "gl_tracking.h"
|
#include "gl_tracking.h"
|
||||||
#include "gl_circle.h"
|
#include "gl_circle.h"
|
||||||
#include "gl_cross.h"
|
#include "gl_cross.h"
|
||||||
|
#include "gl_data.h"
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* STATE_H_ */
|
#endif /* STATE_H_ */
|
||||||
@@ -3,20 +3,26 @@
|
|||||||
|
|
||||||
enum state_type_e {
|
enum state_type_e {
|
||||||
COMMON_STATE = 0,
|
COMMON_STATE = 0,
|
||||||
CROSS_STATE,HALF_STATE,
|
CROSS_STATE,
|
||||||
CIRCLE_IN_STATE,CIRCLE_BEGIN_STATE,
|
HALF_STATE,
|
||||||
CIRCLE_RUNNING_STATE,CIRCLE_OUT_STATE,
|
CIRCLE_IN_STATE,
|
||||||
TURN_STATE,STRAIGHT_STATE,
|
CIRCLE_BEGIN_STATE,
|
||||||
BREAK_STATE,BAR_STATE,
|
CIRCLE_RUNNING_STATE,
|
||||||
RAMP_STATE,GARAGE_OUT_STATE,
|
CIRCLE_OUT_STATE,
|
||||||
GARAGE_IN_STATE,GARAGE_STOP_STATE,
|
TURN_STATE,
|
||||||
|
STRAIGHT_STATE,
|
||||||
|
BREAK_STATE,
|
||||||
|
BAR_STATE,
|
||||||
|
RAMP_STATE,
|
||||||
|
GARAGE_OUT_STATE,
|
||||||
|
GARAGE_IN_STATE,
|
||||||
|
GARAGE_STOP_STATE,
|
||||||
GARAGE_PASS_STATE,
|
GARAGE_PASS_STATE,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern enum state_type_e state_type;
|
extern enum state_type_e state_type;
|
||||||
|
|
||||||
#define CROSS_AIM (0.49)
|
#define CROSS_AIM (0.49f)
|
||||||
#define COMMON_AIM (0.31)
|
#define COMMON_AIM (0.31f)
|
||||||
|
|
||||||
|
|
||||||
#endif /* STATE_H_ */
|
#endif /* STATE_H_ */
|
||||||
|
|||||||
@@ -65,11 +65,11 @@ void MidLineTrack() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 车轮对应点(纯跟踪起始点)
|
// 车轮对应点 (纯跟踪起始点)
|
||||||
float cx = UndistInverseMapW[(int) (IMAGE_H * 0.90f)][78];
|
float cx = UndistInverseMapW[(int) (IMAGE_H * 0.90f)][78];
|
||||||
float cy = UndistInverseMapH[(int) (IMAGE_H * 0.90f)][78];
|
float cy = UndistInverseMapH[(int) (IMAGE_H * 0.90f)][78];
|
||||||
|
|
||||||
// 找最近点(起始点中线归一化)
|
// 找最近点 (起始点中线归一化)
|
||||||
float min_dist = 1e10;
|
float min_dist = 1e10;
|
||||||
|
|
||||||
int begin_id = -1;
|
int begin_id = -1;
|
||||||
|
|||||||
67
app/main.c
67
app/main.c
@@ -25,94 +25,29 @@
|
|||||||
#include "gl_headfile.h"
|
#include "gl_headfile.h"
|
||||||
#include "by_rt_button.h"
|
#include "by_rt_button.h"
|
||||||
#include "by_fan_control.h"
|
#include "by_fan_control.h"
|
||||||
#include "cw_servo.h"
|
|
||||||
#include "./page/cw_page.h"
|
#include "./page/cw_page.h"
|
||||||
|
|
||||||
uint8_t (*Img_Gray)[MT9V03X_W];
|
|
||||||
// uint8_t *mt9v03x_image_copy[0];
|
|
||||||
int32_t pts_left[PT_MAXLEN][2];
|
|
||||||
int32_t pts_right[PT_MAXLEN][2];
|
|
||||||
int32_t pts_left_count, pts_right_count;
|
|
||||||
float pts_inv_l[PT_MAXLEN][2], pts_inv_r[PT_MAXLEN][2];
|
|
||||||
int32_t pts_inv_l_count, pts_inv_r_count;
|
|
||||||
float pts_filter_l[PT_MAXLEN][2], pts_filter_r[PT_MAXLEN][2];
|
|
||||||
int32_t pts_filter_l_count, pts_filter_r_count;
|
|
||||||
float pts_resample_left[PT_MAXLEN][2], pts_resample_right[PT_MAXLEN][2];
|
|
||||||
int32_t pts_resample_left_count, pts_resample_right_count;
|
|
||||||
float mid_left[PT_MAXLEN][2], mid_right[PT_MAXLEN][2];
|
|
||||||
int32_t mid_left_count, mid_right_count;
|
|
||||||
|
|
||||||
float angle_new_left[PT_MAXLEN];
|
|
||||||
float angle_new_right[PT_MAXLEN];
|
|
||||||
int angle_new_left_num, angle_new_right_num;
|
|
||||||
uint8_t mt9v03x_image_copy[MT9V03X_H][MT9V03X_W];
|
|
||||||
|
|
||||||
float angle_left[PT_MAXLEN];
|
|
||||||
float angle_right[PT_MAXLEN];
|
|
||||||
int angle_left_num, angle_right_num;
|
|
||||||
|
|
||||||
int Lpt0_rpts0s_id, Lpt1_rpts1s_id;
|
|
||||||
bool Lpt0_found, Lpt1_found;
|
|
||||||
int Lpt1[2], Lpt0[2];
|
|
||||||
|
|
||||||
int Lpt_in0_rpts0s_id, Lpt_in1_rpts1s_id;
|
|
||||||
bool Lpt_in0_found, Lpt_in1_found;
|
|
||||||
int Lpt_in1[2], Lpt_in0[2];
|
|
||||||
|
|
||||||
bool is_straight0, is_straight1;
|
|
||||||
|
|
||||||
bool is_turn0, is_turn1;
|
|
||||||
|
|
||||||
float rptsn[PT_MAXLEN][2];
|
|
||||||
int rptsn_num;
|
|
||||||
float aim_distance;
|
|
||||||
|
|
||||||
enum track_type_e track_type = TRACK_RIGHT;
|
|
||||||
|
|
||||||
int frame_count = 0;
|
|
||||||
|
|
||||||
uint16_t pwm_cnt = 500;
|
|
||||||
|
|
||||||
void img_processing();
|
|
||||||
void get_corners();
|
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
clock_init(SYSTEM_CLOCK_120M);
|
clock_init(SYSTEM_CLOCK_120M);
|
||||||
system_delay_init();
|
system_delay_init();
|
||||||
debug_init();
|
debug_init();
|
||||||
mt9v03x_init();
|
mt9v03x_init();
|
||||||
pwm_init(TIM2_PWM_MAP0_CH1_A0, 50, 1000);
|
|
||||||
pwm_init(TIM2_PWM_MAP0_CH2_A1, 50, 1000);
|
|
||||||
ips200_init(IPS200_TYPE_SPI);
|
ips200_init(IPS200_TYPE_SPI);
|
||||||
by_gpio_init();
|
by_gpio_init();
|
||||||
by_exit_init();
|
by_exit_init();
|
||||||
by_pwm_init();
|
by_pwm_init();
|
||||||
// cw_servo_init();
|
|
||||||
// while (imu660ra_init())
|
// while (imu660ra_init())
|
||||||
// ;
|
// ;
|
||||||
|
|
||||||
Page_Init();
|
Page_Init();
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
// ips200_show_uint(0, 0, pwm_cnt, 6);
|
|
||||||
// uint8_t temp_status = by_get_rb_status();
|
|
||||||
// if (2 == temp_status) {
|
|
||||||
// pwm_cnt += 50;
|
|
||||||
// } else if (3 == temp_status) {
|
|
||||||
// pwm_cnt -= 50;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// pwm_cnt = (uint16_t)clip(pwm_cnt, 500, 1000);
|
|
||||||
// by_pwm_update_duty(4000);
|
|
||||||
// pwm_set_duty(TIM2_PWM_MAP0_CH1_A0, pwm_cnt);
|
|
||||||
// pwm_set_duty(TIM2_PWM_MAP0_CH2_A1, pwm_cnt);
|
|
||||||
|
|
||||||
// by_pwm_update_duty(pwm_cnt);
|
|
||||||
|
|
||||||
Page_Run();
|
Page_Run();
|
||||||
|
|
||||||
if (mt9v03x_finish_flag) {
|
if (mt9v03x_finish_flag) {
|
||||||
|
// 该操作消耗大概 1970 个 tick,折合约 110us
|
||||||
memcpy(mt9v03x_image_copy[0], mt9v03x_image[0], (sizeof(mt9v03x_image_copy) / sizeof(uint8_t)));
|
memcpy(mt9v03x_image_copy[0], mt9v03x_image[0], (sizeof(mt9v03x_image_copy) / sizeof(uint8_t)));
|
||||||
mt9v03x_finish_flag = 0;
|
mt9v03x_finish_flag = 0;
|
||||||
|
|
||||||
|
|||||||
45
app/main.h
45
app/main.h
@@ -2,50 +2,5 @@
|
|||||||
#define MAIN_H
|
#define MAIN_H
|
||||||
|
|
||||||
#include "zf_common_headfile.h"
|
#include "zf_common_headfile.h"
|
||||||
#include "gl_common.h"
|
|
||||||
|
|
||||||
// extern uint8 *mt9v03x_image_copy[0];
|
|
||||||
extern int32_t pts_left[PT_MAXLEN][2], pts_right[PT_MAXLEN][2]; // 0:H,1:W
|
|
||||||
extern int32_t pts_left_count, pts_right_count;
|
|
||||||
extern float pts_inv_l[PT_MAXLEN][2], pts_inv_r[PT_MAXLEN][2];
|
|
||||||
extern int32_t pts_inv_l_count, pts_inv_r_count;
|
|
||||||
extern float pts_filter_l[PT_MAXLEN][2], pts_filter_r[PT_MAXLEN][2];
|
|
||||||
extern int32_t pts_filter_l_count, pts_filter_r_count;
|
|
||||||
extern float pts_resample_left[PT_MAXLEN][2], pts_resample_right[PT_MAXLEN][2];
|
|
||||||
extern int32_t pts_resample_left_count, pts_resample_right_count;
|
|
||||||
extern uint8_t mt9v03x_image_copy[MT9V03X_H][MT9V03X_W];
|
|
||||||
extern float mid_left[PT_MAXLEN][2], mid_right[PT_MAXLEN][2];
|
|
||||||
extern int32_t mid_left_count, mid_right_count;
|
|
||||||
|
|
||||||
extern float angle_left[PT_MAXLEN];
|
|
||||||
extern float angle_right[PT_MAXLEN];
|
|
||||||
extern int angle_left_num, angle_right_num;
|
|
||||||
|
|
||||||
extern float angle_new_left[PT_MAXLEN];
|
|
||||||
extern float angle_new_right[PT_MAXLEN];
|
|
||||||
extern int angle_new_left_num, angle_new_right_num;
|
|
||||||
|
|
||||||
extern int Lpt0_rpts0s_id, Lpt1_rpts1s_id;
|
|
||||||
extern bool Lpt0_found, Lpt1_found;
|
|
||||||
extern int Lpt1[2], Lpt0[2];
|
|
||||||
|
|
||||||
extern int Lpt_in0_rpts0s_id, Lpt_in1_rpts1s_id;
|
|
||||||
extern bool Lpt_in0_found, Lpt_in1_found;
|
|
||||||
extern int Lpt_in1[2], Lpt_in0[2];
|
|
||||||
|
|
||||||
extern bool is_straight0, is_straight1;
|
|
||||||
|
|
||||||
extern bool is_turn0, is_turn1;
|
|
||||||
|
|
||||||
extern float rptsn[PT_MAXLEN][2];
|
|
||||||
extern int rptsn_num;
|
|
||||||
extern float aim_distance;
|
|
||||||
|
|
||||||
enum track_type_e {
|
|
||||||
TRACK_LEFT,
|
|
||||||
TRACK_RIGHT,
|
|
||||||
};
|
|
||||||
|
|
||||||
extern enum track_type_e track_type;
|
|
||||||
|
|
||||||
#endif // MAIN_H
|
#endif // MAIN_H
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "cw_page_ui_widget.h"
|
#include "cw_page_ui_widget.h"
|
||||||
#include "zf_common_headfile.h"
|
#include "zf_common_headfile.h"
|
||||||
#include "main.h"
|
#include "gl_data.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 绘制光标
|
* @brief 绘制光标
|
||||||
|
|||||||
@@ -115,8 +115,8 @@
|
|||||||
// --------------------双排 SPI 接口两寸屏幕引脚定义--------------------//
|
// --------------------双排 SPI 接口两寸屏幕引脚定义--------------------//
|
||||||
|
|
||||||
#define IPS200_DEFAULT_DISPLAY_DIR (IPS200_PORTAIT) // 默认的显示方向
|
#define IPS200_DEFAULT_DISPLAY_DIR (IPS200_PORTAIT) // 默认的显示方向
|
||||||
#define IPS200_DEFAULT_PENCOLOR (RGB565_BLACK ) // 默认的画笔颜色
|
#define IPS200_DEFAULT_PENCOLOR (RGB565_YELLOW ) // 默认的画笔颜色
|
||||||
#define IPS200_DEFAULT_BGCOLOR (RGB565_YELLOW ) // 默认的背景颜色
|
#define IPS200_DEFAULT_BGCOLOR (RGB565_BLACK ) // 默认的背景颜色
|
||||||
#define IPS200_DEFAULT_DISPLAY_FONT (IPS200_8X16_FONT) // 默认的字体模式
|
#define IPS200_DEFAULT_DISPLAY_FONT (IPS200_8X16_FONT) // 默认的字体模式
|
||||||
|
|
||||||
// 控制语句
|
// 控制语句
|
||||||
|
|||||||
Reference in New Issue
Block a user