IO.h 2.86 KB
#ifndef _IO_H   //条件编译,名字有点不适合下面内容,下面是控制器硬件口中的IO口申明宏,便于对照

#define _IO_H
#include "sys.h"//下面有些申明、宏的具体引用解释来源处,其内部包含有其他更底层的头文件,

/*
头文件是宏+函数申请
宏:常量+变量对应具体函数(位操作指令对应地址操作)+
函数:函数申明,无函数实体,在C文件中进行函数实体化
此处宏定义变量不占用内存空间,可以理解为重命名,被重命名的对象就是一个变量具体地址(具体到哪个寄存器的哪位)
*/
//手持器输入
#define REMOTE1 PFin(0)//起始地址GPIOF_IDR_ADR寄存器(GPIOF_ADR+16)+偏移地址位
#define REMOTE2 PFin(1)
#define REMOTE3 PFin(2)
#define REMOTE4 PFin(3)
#define REMOTE5 PFin(4)
#define REMOTE6 PFin(5)
#define REMOTE7 PFin(6)
#define REMOTE8 PFin(7)
#define REMOTE9 PFin(8)
#define REMOTE10 PFin(9)
#define REMOTE11 PFin(10)
//4路报错输入
#define ERR1 PEin(2)
#define ERR2 PEin(3)
#define ERR3 PEin(4)
#define ERR4 PEin(5)
//3路LED输出
#define LED1 PDout(12)
#define LED2 PDout(13)
#define LED3 PDout(14)
//4路防撞输入
#define KNOCK1 PDin(11)
#define KNOCK2 PDin(10)
#define KNOCK3 PDin(9)
#define KNOCK4 PDin(8)
//4路防撞输出
#define CRL_sensor1 PFout(11)//起始地址GPIOF_ODR_ADR寄存器(GPIOF_ADR+20)+偏移地址位
#define CRL_sensor2 PFout(12)
#define CRL_sensor3 PFout(13)
#define CRL_sensor4 PFout(14)
//3路继电器控制输出
#define CRL_RELAY1  PBout(9)
#define CRL_RELAY2  PEout(0)
#define CRL_RELAY3  PEout(1)
//4路限位输入
#define Limit1      PBin(8)
#define Limit2      PBin(7)
#define Limit3      PAin(3)
#define Limit4      PAin(0)
//3路3.3v开关输入
#define KEY1        PFin(15)
#define KEY2        PGin(0)
#define KEY3        PGin(1)
//18路24V输入
#define STANDBY1    PDin(15)
#define STANDBY2    PGin(2)
#define STANDBY3    PGin(3)
#define STANDBY4    PGin(4)
#define STANDBY5    PGin(5)
#define STANDBY6    PGin(6)
#define STANDBY7    PGin(7)
#define STANDBY8    PGin(8)
#define STANDBY9    PAin(15)
#define STANDBY10    PGin(15)
#define STANDBY11    PBin(3)
#define STANDBY12    PBin(4)
#define STANDBY13    PBin(5)
#define STANDBY14    PBin(6)
#define STANDBY15    PCin(0)
#define STANDBY16    PCin(2)
#define STANDBY17    PCin(3)
#define STANDBY18    PAin(6)
//8路24V输出
#define OUT1        PCout(9)
#define OUT2        PCout(10)
#define OUT3        PCout(11)
#define OUT4        PDout(7)
#define OUT5        PDout(4)
#define OUT6        PGout(9)
#define OUT7        PGout(10)
#define OUT8        PGout(12)

#define SSI_DIR     PEout(15)//方向
#define SSI_CLR     PEout(14)//清零

 
#define LED0        PEout(6)

//此写法是外部有对应同名变量,则不用再申请地址空间,定义的这些变量目的是将外部采集的IO信息整合成一个整体数据
extern u16 In_1_W;
extern u16 In_2_W;
extern u16 In_3_W;

extern u16 Out_1_W;
extern u16 Out_2_W;


	
//下面内容是函数申明,其实体或者说实例在对应的.c程序文件中
void In_D_Init(void);
void Out_D_Init(void);
void In_D(void);
void Out_D(void);
void VaIndexW_W(u16* VA,u8 Index,u8 TF);//置位函数	
u8 VaIndexW_R(u16* VA,u8 Index);//读取某位函数



#endif