⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slave.h

📁 基于陀螺仪原理的惯性导航程序 用于测量量角速度
💻 H
字号:
/*data_to_host改为datapackage*/
struct  datapackage {			
	unsigned char head;				/*k_ail改为head*/
    unsigned char dat[7];			//数据
};

struct  datapackage_s 					   			 //用于存放向主机返回数据包的结构体
    				  {			
						unsigned char head;		     //向主机返回数据的数据包包头,低四位表示以下数据个数
    					unsigned char dat[20];		 //数据
					  };
	
struct  datapackage_r                   			 //用于暂时存放来自主机的数据包(一个大贞的小包)结构体
					  {			
      				    unsigned char dat[7];		 //数据
					  };
struct  bigpackage 						   			 //用户直接可用的来自主机的数据结构体
 					  {
			        	unsigned char instruction;   //来自主机的指令
						unsigned char x[20];		 //来自主机的数据
				   	  };
/*
head第0~2位表示数据包的长度(不含head和checksum)
head第3~5位是指令
head第6~7位是要发送数据的从机的地址
*/



#define TXD    3	 //P03

#define EN_TXD()  {GP0CON &=~(uint32)(0x0F<<(TXD*4)); GP0DAT |=1<<(TXD+24);}	   /*使能TXD,即将TXD对应的口设置为输出*/
#define ON_TXD()    GP0SET=(1<<(TXD+16)) 	 //开TXD
#define OFF_TXD()   GP0CLR=(1<<(TXD+16))  //关TXD
#define TXDSTAT (GP0DAT &(1<<(TXD+16)))

#define LED42    2	 //P42

#define EN_LED42()  {GP4CON &=~(uint32)(0x0F<<(LED42*4)); GP4DAT |=1<<(LED42+24);}	   /*使能TXD,即将TXD对应的口设置为输出*/
#define OFF_LED42()    GP4SET=(1<<(LED42+16)) 	 //开TXD
#define ON_LED42()    GP4CLR=(1<<(LED42+16))  //关TXD
#define LED42STAT (GP4DAT &(1<<(LED42+16)))


/*宏定义*/

#define Local          0x02							 //从机的地址   slave_motor
#define LOCAL_ADDRESS  Local<<5		 				 //将从机地址左移五位用于同来自主机的数据包包头比较
#define SHAKEHAND     0x03			 //握手信号的指令

///////////////slave///////////////////////


void UART_R_ISR(void);
void Z_COMMUNI_INIT(void);								//通信初始化
void Z_RESPOND_SHAKEHANDn(void);							//从机向主机返回握手信号
void Z_RESPOND_BAD(void);								//从机向主机返回CUOWU信号
void Z_RESPOND_HEAD(void);
void Z_RESPOND_OKAY(void);
void Z_INFO_SEND(struct datapackage_s *p);				//发送正常的数据
void Z_UART_SEND(struct datapackage_s *p);				//发串口通讯
void Z_TXD(unsigned char d);							//发送数据的最底层函数


unsigned char Z_GETYOU(void);							
////////////////slave////////////////////////
///////////////////////////////////////////

//extern	struct data_to_host xx;
//extern  struct datapackage z_global_receive_buf;	//全局接收数据的缓存
//extern	struct datapackage *z_globalp;				//
//
extern  struct		    bigpackage     bigp[8];	
//extern	struct datapackage z_global_receive_data;		//接收到的数据的结构体
//extern	struct datapackage z_global_send_buf[8];		//发送数据的结构体

extern struct datapackage_s  z_global_send_bufn[16];
//extern	struct datapackage zero={0,0,0,0,0,0,0,0};		//用于赋结构体初值的结构体

/*z_flag_kfsent改为z_flag_keyframe*/
//extern	unsigned char z_flag_keyframe;				//key frame 关键帧发送的标志
/*z_flag_locaddr 改为z_flag_chosen*/
//extern	unsigned char z_flag_chosen;					//本机地址选中标志
extern	unsigned char z_flag_newins;					//新任务标志。当有新的指令时,此标志置1;主程序中一旦执行新任务,此标志清零

/*z_rbf_l改为z_counter*/
//extern	unsigned char z_counter;			//用于接收数据时的计数,计为0时表示接收结束,当置为0xFF时表示接收的是数据包首字节
/*z_globalcheck改为z_globalcheck_sum*/
//extern	unsigned char z_globalcheck_sum;	//全局校验(和),收和发均用这个变量
//extern	unsigned char z_instruction;		//接收到的指令

//unsigned char flag_pri_tim; 
/*以下变量放在函数体内定义时,运行出错*/     
//extern	unsigned char z_checksum;				//校验和

/*以下变量用于函数unsigned char Z_NUM_OF_ONE(unsigned char d)*/
//bdata unsigned char z_tmp;			//d的代换量,可位寻址
//extern	unsigned char z_tmp;			//d的代换量,可位寻址

//sbit z_is_one=tmp^0;				//tmp的第0位
extern	unsigned char flag_pri;
//extern	unsigned char flag_pri_temp;
extern	unsigned char flag_pri_tim; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -