最后更新于2020-10-25
如有编写新的的函数,需要更新此头文件
#ifndef CONFIG_H #define CONFIG_H /* 本头文件包含全局变量声明、函数声明 */ /********************************************************电机部分********************************************************/ /* 电机驱动引脚连接方法: VCC接单片机5V电源,GND接单片机GND R_EN与L_EN短路并接5V电平,驱动器使能 L_PWM输入PWM信号或高电平电机正转 R_PWM输入PWM信号或高电平电机反转 */ typedef struct Motor { int EN; //电机使能引脚 int L_PWM; //L_PWM引脚 int R_PWM; //R_PWM引脚 int Encoder_A; //编码器A引脚 int Encoder_B; //编码器B引脚 int Encoder_Z; //编码器Z引脚 int motor_state; }Motor; //motor[0],motor[1],motor[2]分别对应:右底角处电机、顶角处电机、左底角处电机 extern Motor motor[3]; //轮子速度 extern int rate; //初始化电机引脚 extern void Motor_init(); /****************************电机控制函数****************************/ //电机正转,num取值范围:{0,1,2} extern void CW(int Rate, int num); //电机反转,num取值范围:{0,1,2} extern void CCW(int Rate, int num); //刹车函数,num取值范围:{0,1,2} extern void Stop(int num); /****************************电机控制函数****************************/ /*************************机器人运动控制函数*************************/ //刹车 extern void Brake(); //向前直行慢启动 extern void Straight_forward_slow_start(int Rate); //向前直行 extern void Straight_forward(); //向左直行慢启动 extern void Leftward_slow_start(int Rate); //向左直行 extern void Leftward(); //向右直行慢启动 extern void Rightward_slow_start(int Rate); //向右直行 extern void Rightward(); //向后直行慢启动 extern void Straight_backward_slow_start(int Rate); //向后直行 extern void Straight_backward(); /*************************机器人运动控制函数*************************/ /********************************************************电机部分********************************************************/ /********************************************************巡线部分********************************************************/ //巡线传感器引脚 extern const int tracing_sensor_A[4]; extern const int tracing_sensor_B[2]; extern const int tracing_sensor_C[2]; extern const int left_or_right_indicator; //时钟采样间隔 extern const int samp_time; //运动方向 #define FORWARD 1 #define BACKWARD 2 #define LEFTWARD 3 #define RIGHTWARD 4 #define PAUSE 0 extern int moving_direction; //初始化 extern void Tracing_init(); //确定左右半场 extern void Decide_left_or_right(); /****************************巡线状态函数****************************/ //获取向前直行巡线状态 extern void Straight_tracing(); //获取向左直行巡线状态 extern void Leftward_tracing(); //获取向右直行巡线状态 extern void Rightward_tracing(); //获取向后直行巡线状态 //获取巡线状态 //主程序中定时运行 extern void Get_tracing_state(); /****************************巡线状态函数****************************/ /****************************巡线动作函数****************************/ //岔路动作 //尚待完成 extern void Crossroad_action(); //向前直行巡线纠偏动作 extern void Forward_tracing_rectification(); //向后直行巡线纠偏动作 extern void Backward_tracing_rectification(); //向左直行巡线纠偏动作 extern void Leftward_tracing_rectification(); //向右直行巡线纠偏动作 extern void Rightward_tracing_rectification(); //根据巡线状态,执行相应动作 extern void Tracing_action(); //主程序中持续循环运行 extern void Tracing(); /****************************巡线动作函数****************************/ /********************************************************巡线部分********************************************************/ /********************************************************岔路部分********************************************************/ //病人颜色列表 extern int patient_color[6]; //病床占空列表 extern int bed_info[3]; extern int crossroad_flag; extern void Get_crossroad_info(); /********************************************************岔路部分********************************************************/ #endif
