方法/步骤
-
Arduino IDE 新建代码的方法,程序的上传方法,大家可以参考:
http://jingyan.baidu.com/article/414eccf6a8fb9f6b431f0ab1.html
来操作
-
设置和读取某一位
输入代码:
byte flags = 0; //定义位变量
void setFlag( int flagNumber)
{
bitSet(flags, flagNumber);//设定变量flags的flagNumber位为1
}
void clearFlag( int flagNumber)
{
bitClear(flags, flagNumber);//设定变量flags的flagNumber位为0
}
int getFlag( int flagNumber)
{
return bitRead(flags, flagNumber);//传回变量flags的flagNumber位
}
void setup()
{
Serial.begin(9600);
showFlags();
setFlag(2);
setFlag(5);
showFlags();
clearFlag(2);
showFlags();
}
void loop()
{}
//回传哪些位被设置了
void showFlags()
{
for(int flag=0; flag < 8; flag++)
{
if(getFlag(flag) == true)
Serial.print("* bit set for flag ");
else
Serial.print("bit clear for flag ");
Serial.println(flag);
}
Serial.println();
}
-
输出效果如下图所示,输出结果中显示了在程序执行过程中被改变的位
-
提取整数中的高位或者低位
输入代码:
int intValue = 258; // 258 的 16 进制为 0x102
void setup()
{
Serial.begin(9600);
}
void loop()
{
int loWord,hiWord;
byte loByte, hiByte;
hiByte = highByte(intValue); //取出 intValue 的高位
loByte = lowByte(intValue); //取出 intValue 的低位
Serial.println(intValue,DEC);
Serial.println(intValue,HEX);
Serial.println(loByte,DEC);
Serial.println(hiByte,DEC);
delay(10000);
}
-
输出效果如下图所示,分别通过串口打印输出了变量的十进制数值、16进制数值、低位和高位
-
将高位和低位结合
输入代码:
int intValue = 0x102; // 十进制 258
void setup()
{
Serial.begin(9600);
}
void loop()
{
int loWord,hiWord;
byte loByte, hiByte;
hiByte = highByte(intValue);
loByte = lowByte(intValue);
Serial.println(intValue,DEC);
Serial.println(loByte,DEC);
Serial.println(hiByte,DEC);
loWord = word(hiByte, loByte);
Serial.println(loWord,DEC);
delay(10000);
}
-
输出效果如下图所示,输出分别为定义的整数值,低位值,高位值,组合后的整数值