📄 easyio.h
字号:
#ifndef __EASY_h__
#define __EASY_h__
//**********************************************************************
//IO单独操作函数库
//可以对每一个端口单独进行操作,不影响其他端口
//此库调用系统库里关于IO的API函数编写,所以调用此库前,必须保证系统IO端口
//API函数已加载
//Written by Fantasy_Ma
//************************************************************************
unsigned int A=1;
unsigned int B=2;
//**********单独设置I/O的Direction信息***********
void Set_IO_Dir(unsigned int x,unsigned int y,unsigned int z)
{
if(x==1)
{
switch(y)
{
case 0: if(z==1) *P_IOA_Dir |= 0x0001;
if(z==0) *P_IOA_Dir &= 0xfffe;
break;
case 1: if(z==1) *P_IOA_Dir |= 0x0002;
if(z==0) *P_IOA_Dir &= 0xfffd;
break;
case 2: if(z==1) *P_IOA_Dir |= 0x0004;
if(z==0) *P_IOA_Dir &= 0xfffb;
break;
case 3: if(z==1) *P_IOA_Dir |= 0x0008;
if(z==0) *P_IOA_Dir &= 0xfff7;
break;
case 4: if(z==1) *P_IOA_Dir |= 0x0010;
if(z==0) *P_IOA_Dir &= 0xffef;
break;
case 5: if(z==1) *P_IOA_Dir |= 0x0020;
if(z==0) *P_IOA_Dir &= 0xffdf;
break;
case 6: if(z==1) *P_IOA_Dir |= 0x0040;
if(z==0) *P_IOA_Dir &= 0xffbf;
break;
case 7: if(z==1) *P_IOA_Dir |= 0x0080;
if(z==0) *P_IOA_Dir &= 0xff7f;
break;
case 8: if(z==1) *P_IOA_Dir |= 0x0100;
if(z==0) *P_IOA_Dir &= 0xfeff;
break;
case 9: if(z==1) *P_IOA_Dir |= 0x0200;
if(z==0) *P_IOA_Dir &= 0xfdff;
break;
case 10:if(z==1) *P_IOA_Dir |= 0x0400;
if(z==0) *P_IOA_Dir &= 0xfbff;
break;
case 11:if(z==1) *P_IOA_Dir |= 0x0800;
if(z==0) *P_IOA_Dir &= 0xf7ff;
break;
case 12:if(z==1) *P_IOA_Dir |= 0x1000;
if(z==0) *P_IOA_Dir &= 0xefff;
break;
case 13:if(z==1) *P_IOA_Dir |= 0x2000;
if(z==0) *P_IOA_Dir &= 0xdfff;
break;
case 14:if(z==1) *P_IOA_Dir |= 0x4000;
if(z==0) *P_IOA_Dir &= 0xbfff;
break;
case 15:if(z==1) *P_IOA_Dir |= 0x8000;
if(z==0) *P_IOA_Dir &= 0x7fff;
break;
}
}
if(x==2)
{
switch(y)
{
case 0: if(z==1) *P_IOB_Dir |= 0x0001;
if(z==0) *P_IOB_Dir &= 0xfffe;
break;
case 1: if(z==1) *P_IOB_Dir |= 0x0002;
if(z==0) *P_IOB_Dir &= 0xfffd;
break;
case 2: if(z==1) *P_IOB_Dir |= 0x0004;
if(z==0) *P_IOB_Dir &= 0xfffb;
break;
case 3: if(z==1) *P_IOB_Dir |= 0x0008;
if(z==0) *P_IOB_Dir &= 0xfff7;
break;
case 4: if(z==1) *P_IOB_Dir |= 0x0010;
if(z==0) *P_IOB_Dir &= 0xffef;
break;
case 5: if(z==1) *P_IOB_Dir |= 0x0020;
if(z==0) *P_IOB_Dir &= 0xffdf;
break;
case 6: if(z==1) *P_IOB_Dir |= 0x0040;
if(z==0) *P_IOB_Dir &= 0xffbf;
break;
case 7: if(z==1) *P_IOB_Dir |= 0x0080;
if(z==0) *P_IOB_Dir &= 0xff7f;
break;
case 8: if(z==1) *P_IOB_Dir |= 0x0100;
if(z==0) *P_IOB_Dir &= 0xfeff;
break;
case 9: if(z==1) *P_IOB_Dir |= 0x0200;
if(z==0) *P_IOB_Dir &= 0xfdff;
break;
case 10:if(z==1) *P_IOB_Dir |= 0x0400;
if(z==0) *P_IOB_Dir &= 0xfbff;
break;
case 11:if(z==1) *P_IOB_Dir |= 0x0800;
if(z==0) *P_IOB_Dir &= 0xf7ff;
break;
case 12:if(z==1) *P_IOB_Dir |= 0x1000;
if(z==0) *P_IOB_Dir &= 0xefff;
break;
case 13:if(z==1) *P_IOB_Dir |= 0x2000;
if(z==0) *P_IOB_Dir &= 0xdfff;
break;
case 14:if(z==1) *P_IOB_Dir |= 0x4000;
if(z==0) *P_IOB_Dir &= 0xbfff;
break;
case 15:if(z==1) *P_IOB_Dir |= 0x8000;
if(z==0) *P_IOB_Dir &= 0x7fff;
break;
}
}
}
//**********单独获取I/O的Direction信息***********
unsigned int Get_IO_Dir(unsigned int x,unsigned int y)
{
unsigned int a;
if(x==1)
{
switch(y)
{
case 0: a=*P_IOA_Dir&0x0001;
if(a==0) return a;
else return 1;
case 1: a=*P_IOA_Dir&0x0002;
if(a==0) return a;
else return 1;
case 2: a=*P_IOA_Dir&0x0004;
if(a==0) return a;
else return 1;
case 3: a=*P_IOA_Dir&0x0008;
if(a==0) return a;
else return 1;
case 4: a=*P_IOA_Dir&0x0010;
if(a==0) return a;
else return 1;
case 5: a=*P_IOA_Dir&0x0020;
if(a==0) return a;
else return 1;
case 6: a=*P_IOA_Dir&0x0040;
if(a==0) return a;
else return 1;
case 7: a=*P_IOA_Dir&0x0080;
if(a==0) return a;
else return 1;
case 8: a=*P_IOA_Dir&0x0100;
if(a==0) return a;
else return 1;
case 9: a=*P_IOA_Dir&0x0200;
if(a==0) return a;
else return 1;
case 10:a=*P_IOA_Dir&0x0400;
if(a==0) return a;
else return 1;
case 11:a=*P_IOA_Dir&0x0800;
if(a==0) return a;
else return 1;
case 12:a=*P_IOA_Dir&0x1000;
if(a==0) return a;
else return 1;
case 13:a=*P_IOA_Dir&0x2000;
if(a==0) return a;
else return 1;
case 14:a=*P_IOA_Dir&0x4000;
if(a==0) return a;
else return 1;
case 15:a=*P_IOA_Dir&0x8000;
if(a==0) return a;
else return 1;
}
}
if(x==2)
{
switch(y)
{
case 0: a=*P_IOB_Dir&0x0001;
if(a==0) return a;
else return 1;
case 1: a=*P_IOB_Dir&0x0002;
if(a==0) return a;
else return 1;
case 2: a=*P_IOB_Dir&0x0004;
if(a==0) return a;
else return 1;
case 3: a=*P_IOB_Dir&0x0008;
if(a==0) return a;
else return 1;
case 4: a=*P_IOB_Dir&0x0010;
if(a==0) return a;
else return 1;
case 5: a=*P_IOB_Dir&0x0020;
if(a==0) return a;
else return 1;
case 6: a=*P_IOB_Dir&0x0040;
if(a==0) return a;
else return 1;
case 7: a=*P_IOB_Dir&0x0080;
if(a==0) return a;
else return 1;
case 8: a=*P_IOB_Dir&0x0100;
if(a==0) return a;
else return 1;
case 9: a=*P_IOB_Dir&0x0200;
if(a==0) return a;
else return 1;
case 10:a=*P_IOB_Dir&0x0400;
if(a==0) return a;
else return 1;
case 11:a=*P_IOB_Dir&0x0800;
if(a==0) return a;
else return 1;
case 12:a=*P_IOB_Dir&0x1000;
if(a==0) return a;
else return 1;
case 13:a=*P_IOB_Dir&0x2000;
if(a==0) return a;
else return 1;
case 14:a=*P_IOB_Dir&0x4000;
if(a==0) return a;
else return 1;
case 15:a=*P_IOB_Dir&0x8000;
if(a==0) return a;
else return 1;
}
}
}
//**********单独设置I/O的Attribution信息***********
void Set_IO_Attrib(unsigned int x,unsigned int y,unsigned int z)
{
if(x==1)
{
switch(y)
{
case 0: if(z==1) *P_IOA_Attrib |= 0x0001;
if(z==0) *P_IOA_Attrib &= 0xfffe;
break;
case 1: if(z==1) *P_IOA_Attrib |= 0x0002;
if(z==0) *P_IOA_Attrib &= 0xfffd;
break;
case 2: if(z==1) *P_IOA_Attrib |= 0x0004;
if(z==0) *P_IOA_Attrib &= 0xfffb;
break;
case 3: if(z==1) *P_IOA_Attrib |= 0x0008;
if(z==0) *P_IOA_Attrib &= 0xfff7;
break;
case 4: if(z==1) *P_IOA_Attrib |= 0x0010;
if(z==0) *P_IOA_Attrib &= 0xffef;
break;
case 5: if(z==1) *P_IOA_Attrib |= 0x0020;
if(z==0) *P_IOA_Attrib &= 0xffdf;
break;
case 6: if(z==1) *P_IOA_Attrib |= 0x0040;
if(z==0) *P_IOA_Attrib &= 0xffbf;
break;
case 7: if(z==1) *P_IOA_Attrib |= 0x0080;
if(z==0) *P_IOA_Attrib &= 0xff7f;
break;
case 8: if(z==1) *P_IOA_Attrib |= 0x0100;
if(z==0) *P_IOA_Attrib &= 0xfeff;
break;
case 9: if(z==1) *P_IOA_Attrib |= 0x0200;
if(z==0) *P_IOA_Attrib &= 0xfdff;
break;
case 10:if(z==1) *P_IOA_Attrib |= 0x0400;
if(z==0) *P_IOA_Attrib &= 0xfbff;
break;
case 11:if(z==1) *P_IOA_Attrib |= 0x0800;
if(z==0) *P_IOA_Attrib &= 0xf7ff;
break;
case 12:if(z==1) *P_IOA_Attrib |= 0x1000;
if(z==0) *P_IOA_Attrib &= 0xefff;
break;
case 13:if(z==1) *P_IOA_Attrib |= 0x2000;
if(z==0) *P_IOA_Attrib &= 0xdfff;
break;
case 14:if(z==1) *P_IOA_Attrib |= 0x4000;
if(z==0) *P_IOA_Attrib &= 0xbfff;
break;
case 15:if(z==1) *P_IOA_Attrib |= 0x8000;
if(z==0) *P_IOA_Attrib &= 0x7fff;
break;
}
}
if(x==2)
{
switch(y)
{
case 0: if(z==1) *P_IOB_Attrib |= 0x0001;
if(z==0) *P_IOB_Attrib &= 0xfffe;
break;
case 1: if(z==1) *P_IOB_Attrib |= 0x0002;
if(z==0) *P_IOB_Attrib &= 0xfffd;
break;
case 2: if(z==1) *P_IOB_Attrib |= 0x0004;
if(z==0) *P_IOB_Attrib &= 0xfffb;
break;
case 3: if(z==1) *P_IOB_Attrib |= 0x0008;
if(z==0) *P_IOB_Attrib &= 0xfff7;
break;
case 4: if(z==1) *P_IOB_Attrib |= 0x0010;
if(z==0) *P_IOB_Attrib &= 0xffef;
break;
case 5: if(z==1) *P_IOB_Attrib |= 0x0020;
if(z==0) *P_IOB_Attrib &= 0xffdf;
break;
case 6: if(z==1) *P_IOB_Attrib |= 0x0040;
if(z==0) *P_IOB_Attrib &= 0xffbf;
break;
case 7: if(z==1) *P_IOB_Attrib |= 0x0080;
if(z==0) *P_IOB_Attrib &= 0xff7f;
break;
case 8: if(z==1) *P_IOB_Attrib |= 0x0100;
if(z==0) *P_IOB_Attrib &= 0xfeff;
break;
case 9: if(z==1) *P_IOB_Attrib |= 0x0200;
if(z==0) *P_IOB_Attrib &= 0xfdff;
break;
case 10:if(z==1) *P_IOB_Attrib |= 0x0400;
if(z==0) *P_IOB_Attrib &= 0xfbff;
break;
case 11:if(z==1) *P_IOB_Attrib |= 0x0800;
if(z==0) *P_IOB_Attrib &= 0xf7ff;
break;
case 12:if(z==1) *P_IOB_Attrib |= 0x1000;
if(z==0) *P_IOB_Attrib &= 0xefff;
break;
case 13:if(z==1) *P_IOB_Attrib |= 0x2000;
if(z==0) *P_IOB_Attrib &= 0xdfff;
break;
case 14:if(z==1) *P_IOB_Attrib |= 0x4000;
if(z==0) *P_IOB_Attrib &= 0xbfff;
break;
case 15:if(z==1) *P_IOB_Attrib |= 0x8000;
if(z==0) *P_IOB_Attrib &= 0x7fff;
break;
}
}
}
//**********单独获取I/O的Attribution信息***********
unsigned int Get_IO_Attrib(unsigned int x,unsigned int y)
{
unsigned int a;
if(x==1)
{
switch(y)
{
case 0: a=*P_IOA_Attrib&0x0001;
if(a==0) return a;
else return 1;
case 1: a=*P_IOA_Attrib&0x0002;
if(a==0) return a;
else return 1;
case 2: a=*P_IOA_Attrib&0x0004;
if(a==0) return a;
else return 1;
case 3: a=*P_IOA_Attrib&0x0008;
if(a==0) return a;
else return 1;
case 4: a=*P_IOA_Attrib&0x0010;
if(a==0) return a;
else return 1;
case 5: a=*P_IOA_Attrib&0x0020;
if(a==0) return a;
else return 1;
case 6: a=*P_IOA_Attrib&0x0040;
if(a==0) return a;
else return 1;
case 7: a=*P_IOA_Attrib&0x0080;
if(a==0) return a;
else return 1;
case 8: a=*P_IOA_Attrib&0x0100;
if(a==0) return a;
else return 1;
case 9: a=*P_IOA_Attrib&0x0200;
if(a==0) return a;
else return 1;
case 10:a=*P_IOA_Attrib&0x0400;
if(a==0) return a;
else return 1;
case 11:a=*P_IOA_Attrib&0x0800;
if(a==0) return a;
else return 1;
case 12:a=*P_IOA_Attrib&0x1000;
if(a==0) return a;
else return 1;
case 13:a=*P_IOA_Attrib&0x2000;
if(a==0) return a;
else return 1;
case 14:a=*P_IOA_Attrib&0x4000;
if(a==0) return a;
else return 1;
case 15:a=*P_IOA_Attrib&0x8000;
if(a==0) return a;
else return 1;
}
}
if(x==2)
{
switch(y)
{
case 0: a=*P_IOB_Attrib&0x0001;
if(a==0) return a;
else return 1;
case 1: a=*P_IOB_Attrib&0x0002;
if(a==0) return a;
else return 1;
case 2: a=*P_IOB_Attrib&0x0004;
if(a==0) return a;
else return 1;
case 3: a=*P_IOB_Attrib&0x0008;
if(a==0) return a;
else return 1;
case 4: a=*P_IOB_Attrib&0x0010;
if(a==0) return a;
else return 1;
case 5: a=*P_IOB_Attrib&0x0020;
if(a==0) return a;
else return 1;
case 6: a=*P_IOB_Attrib&0x0040;
if(a==0) return a;
else return 1;
case 7: a=*P_IOB_Attrib&0x0080;
if(a==0) return a;
else return 1;
case 8: a=*P_IOB_Attrib&0x0100;
if(a==0) return a;
else return 1;
case 9: a=*P_IOB_Attrib&0x0200;
if(a==0) return a;
else return 1;
case 10:a=*P_IOB_Attrib&0x0400;
if(a==0) return a;
else return 1;
case 11:a=*P_IOB_Attrib&0x0800;
if(a==0) return a;
else return 1;
case 12:a=*P_IOB_Attrib&0x1000;
if(a==0) return a;
else return 1;
case 13:a=*P_IOB_Attrib&0x2000;
if(a==0) return a;
else return 1;
case 14:a=*P_IOB_Attrib&0x4000;
if(a==0) return a;
else return 1;
case 15:a=*P_IOB_Attrib&0x8000;
if(a==0) return a;
else return 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -