📄 bitoperation.c
字号:
//***************************************************************************//
//位操作函数,主要包括以下函数:
//1.WrBitIOA,WrBitIOB;写IOA或IOB某位
//2.WrSegLIOA,WrSegHIOA,WrSegLIOB,WrSegHIOB;写IOA或IOB的高八位或低八位
//3.RdBitIOA,RdBitIOB;读IOA或IOB某位,如果为0,则返回0;如果为1;则返回一非零数
//***************************************************************************//
#include "SPCE061V004.h"
void WrBitIOA(unsigned int bit,unsigned int value)//将value写给A口bit位
{
unsigned int temp=*P_IOA_Buffer,bitdata=0x0001;
bitdata<<=bit;
if(value)
temp|=bitdata;
else
{
bitdata=~bitdata;
temp&=bitdata;
}
*P_IOA_Data=temp;
}
void WrBitIOB(unsigned int bit,unsigned int value)//将value写给B口bit位
{
unsigned int temp=*P_IOB_Buffer,bitdata=0x0001;
bitdata<<=bit;
if(value)
temp|=bitdata;
else
{
bitdata=~bitdata;
temp&=bitdata;
}
*P_IOB_Data=temp;
}
void WrSegLIOA(unsigned int value)//将value写给A口低8位
{
unsigned int temp=*P_IOA_Buffer;
temp&=0xff00;
temp|=value;
*P_IOA_Data=temp;
}
void WrSegLIOB(unsigned int value)//将value写给B口低8位
{
unsigned int temp=*P_IOB_Buffer;
temp&=0xff00;
temp|=value;
*P_IOB_Data=temp;
}
void WrSegHIOA(unsigned int value)//将value写给A口高8位
{
unsigned int temp=*P_IOA_Buffer;
temp&=0x00ff;
value<<=8;
temp|=value;
*P_IOA_Data=temp;
}
void WrSegHIOB(unsigned int value)//将value写给B口高8位
{
unsigned int temp=*P_IOB_Buffer;
temp&=0x00ff;
value<<=8;
temp|=value;
*P_IOB_Data=temp;
}
unsigned int RdBitIOA(unsigned int bit)//读A口bit位内容,如果为零,则返回零
//如果为1,则返回一非零数
{
unsigned int temp=*P_IOA_Data,bitdata=0x0001;
bitdata<<=bit;
return temp&bitdata;
}
unsigned int RdBitIOB(unsigned int bit)//读B口bit位内容,如果为零,则返回零
//如果为1,则返回一非零数
{
unsigned int temp=*P_IOB_Data,bitdata=0x0001;
bitdata<<=bit;
return temp&bitdata;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -