📄 main.h
字号:
//all the global defines should be in this .h file
//all the global variables should be defined in this .h file with EXT
//all the global function should be declared in this .h file
#include "MYmain.H"
#include "MYmath.h"
typedef unsigned char byte;
typedef unsigned int word;
typedef unsigned long dword;
typedef unsigned long dlong[2];
#define Baud_9600 55
#define Baud_19200 26
#define Starts 8
#define FollowLines 9
#define Swerve 10
#define Hand_GGs 11
#define Hand_UDs 12
#define Comm 13
/***********************************************/
/*查地图使用到的宏定义*/
#define NOLL000 0//不动作 NOLL0000
#define Dirc_Fr 1//前进 Front
#define Dirc_Bc 2//后退 Back2
#define Angl_Ri 1//右转 Right
#define Angl_Le 2//左转 Left2
#define Angl_90 90//转弯90度 Ag090
#define Angl_18 180//转弯180度 Ag180
#define Hand_Co 1//手臂抓取 (Closed) Close
#define Hand_Op 2//手臂松开 (Open) Open2
#define Hand_Up 1//手臂抬升 (Up) Up001
#define Hand_Dw 2//手臂下降 (Down) Down2
#define Hand_Sp 1 //手臂伸长 (Spread) Sprd1
#define Hand_Sh 2 //手臂缩短 (Short) Short
#define Line_01 1
#define Line_02 2
#define Line_03 3
#define Line_04 4
#define Line_05 5
#define Line_06 6
#define Line_07 7
#define Line_08 8
#define Line_09 9
#define Sped_15 15
#define Sped_20 20
#define Sped_25 25
#define Sped_30 30
#define Sped_35 35
#define Sped_40 40
#define Sped_45 45
#define Sped_50 50
#define Sped_55 55
#define Sped_60 60
#define Sped_65 65
#define CRGFLG_LOCK (*((volatile unsigned char*)(0x00000037)))
#define TASK_STK_SIZE 200
typedef struct{
INT8U PPAGE;
}TASKDATA;
/*******************************************/
//global variables definition
/******************************************/
EXT OS_STK TaskStartStk[TASK_STK_SIZE]; //开始任务堆栈设置
EXT OS_STK Task_FollowLineStk[TASK_STK_SIZE]; //循线任务堆栈设置
EXT OS_STK Task_LineCounterStk[TASK_STK_SIZE];//数线任务堆栈设置
EXT OS_STK Task_SwerveStk[TASK_STK_SIZE]; //转弯任务堆栈设置
EXT OS_STK Task_SnatchStk[TASK_STK_SIZE]; //抓取任务堆栈设置
EXT OS_STK Task_UpdownStk[TASK_STK_SIZE]; //升降任务堆栈设置
EXT OS_STK Task_HostServantCommStk[TASK_STK_SIZE];//与电脑通讯任务堆栈设置
EXT OS_STK Task_SpreadShortStk[TASK_STK_SIZE];//手臂伸缩任务设置
EXT OS_EVENT *Semprintp;
EXT INT8U err;
EXT TASKDATA TaskStartData;
EXT TASKDATA Task_FollowLineData;
EXT TASKDATA Task_LineCounterData;
EXT TASKDATA Task_SwerveData;
EXT TASKDATA Task_SnatchData;
EXT TASKDATA Task_UpdownData;
EXT TASKDATA Task_HostServantCommData;
EXT TASKDATA Task_SpreadShortData;
extern BOOLEAN Key_TaskStart_EN;//开始任务执行允许
extern BOOLEAN Key_TaskSwerve_EN;//转弯任务允许密钥
extern BOOLEAN Key_TaskSnatch_EN;//手臂抓取任务允许密钥
extern BOOLEAN Key_TaskUpdown_EN;//手臂升降任务允许密钥
extern BOOLEAN key_TaskSpreadShort_EN;//手臂伸缩任务允许密钥
extern uchar Comm_time; //通讯时间间隔计算
extern BOOLEAN key_Comm;//通讯命令
extern BOOLEAN Follow_Stuts;
extern BOOLEAN STUTS;
extern uchar FrontPositionT,e_f,e_fL,e_b,e_bL,LeftSpeed,LeftSpeedL,RightSpeed,RightSpeedL,equ_count,Line_a;
extern uchar Line_Step;//线路动作步骤
extern uchar Line_num,Dir_FFBB,Angle_RL,Angle_9_18,Hand_GG,Hand_UD;
extern uchar Key_TaskSnatch_EN,Key_TaskUpdown_EN;
extern uint MidspeedC;
extern float Midspeed;//给定的左右电机平均速度
extern uchar sci0_rcv_data;
extern uchar sci0_rcv;
extern uchar sci0_sent_data[20];
extern uchar sci0_sent;
extern uchar sci1_rcv_data;
extern uchar sci1_rcv;
extern uchar sci1_sent;
extern uchar sci1_sent_data[20];
extern uchar AD_bData0[9];
extern uchar AD_bData1[9];
extern BOOLEAN Follow_Start,first_start;
extern uchar Follow_Num,direction,directionR,directionL;
extern uchar angle;//旋转角度
extern ulong leftspeedcount,rightspeedcount;
/*****************************************************/
//SCI0 SCI1
/*****************************************************/
/************************************/
//global functions declaration
//their define is in Hardware.c or Userlib.c (except main)
/************************************/
//in Hardware.c
/**********************************************************/
/*初始化设置相关函数*/
void HardwareInit(void);
void PLL_Init(uchar synr,uchar refdv);
void uart0_init_bode(uchar sci0_cr2,uint sci0_bode);
void uart0_string_int(uchar var_string[],uchar num);
void uart1_init_bode(uchar sci1_cr2,uchar sci1_bode);
void uart1_string_int(uchar var_string[],uchar num);
void ATD0_Init_Int(void);
void ATD1_Init_Int(void);
void ATD0_Init_Rog(void);
void ATD1_Init_Rog(void);
void TIME_Init(void);
void TIME_ECT_Init(void);
void PWM_Init(void);
/*****************************************************/
/*手臂电机功能函数*/
void Motor_Up_En(uchar duty);
void Motor_Dw_En(uchar duty);
void Motor_UpDw_Stop(uchar duty);
void Motor_Op_En(uint duty);
void Motor_Co_En(uint duty);
void Motor_OpCo_Stop(uint duty);
void Motor_Le_En(uchar duty);
void Motor_Re_En(uchar duty);
void Motor_LeRe_Stop(uchar duty);
void Motor_Sp_En(uint duty);
void Motor_Sh_En(uint duty);
void Motor_SpSh_Stop(uint duty);
/******************************************************/
/*读取AD转换值行走电机位置计算及发送速度通讯函数*/
void ATD0_Get_Rog();
void ATD1_Get_Rog();
uchar position(uchar a[],uchar d);
uchar position_sw(uchar e);
BOOLEAN Right_speed_sent(uchar R_Speed,uchar directionR);//发送右侧电机给定速度
BOOLEAN Left_speed_sent(uchar R_Speed,uchar directionL) ;//发送左侧电机给定速度
/*********************************************************/
/*查询地图后开启各个任务功能函数*/
void Follow_Line(BOOLEAN Follow_Strt,uchar Follow_Numb,uchar Follow_Dir);//设定循线方向速度等
void Angle_RL_9_18(uchar Angle_dir,uchar A_9_18);
void Hand_opco(uchar hand_OPCO);
void Hand_updw(uchar hand_UPDW);
void Hand_spsh(uchar Hand_SPSH);
void Follow_Line(BOOLEAN Follow_Strt,uchar Follow_Numb,uchar Follow_Dir);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -