在程序编辑过程中,我们可以对变量中的某一位进行操作
工具/原料
ArduinoUNO控制器*1
USB数据线*1
ArduinoIDE
安装好Arduino控制器驱动的台式机
方法/步骤
1、ArduinoIDE新建代码的方法,程序的上传方法,大家可以参考:http://jingyan.baidu.com/article/414eccf6a8fb9f6b431f0ab1.html来操作
2、设置和读取某一位输入代码:by隋茚粟胫teflags=0;//定义位变量voidsetFlag(intflagNumber){bi墉掠载牿tSet(flags,flagNumber);//设定变量flags的flagNumber位为1}voidclearFlag(intflagNumber){bitClear(flags,flagNumber);//设定变量flags的flagNumber位为0}intgetFlag(intflagNumber){returnbitRead(flags,flagNumber);//传回变量flags的flagNumber位}voidsetup(){Serial.begin(9600);showFlags();setFlag(2);setFlag(5);showFlags();clearFlag(2);showFlags();}voidloop(){}//回传哪些位被设置了voidshowFlags(){for(intflag=0;flag<8;flag++){if(getFlag(flag)==true)Serial.print("*bitsetforflag");elseSerial.print("bitclearforflag");Serial.println(flag);}Serial.println();}
3、输出效果如下图所示,输出结果中显示了在程序执行过程中被改变的位
4、提取整数中的高位或者低位输入代码:坡纠课柩intintValue=258;//258的16进制为0x102即枢潋雳voidsetup(){Serial.begin(9600);}voidloop(){intloWord,hiWord;byteloByte,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);}
5、输出效果如下图所示,分别通过串口打印输出了变量的十进制数值、16进制数值、低位和高位
6、将高位和低位结合输入代码:intintValue=0x102;//十旅邯佤践进制258voidsetup(){S髫潋啜缅erial.begin(9600);}voidloop(){intloWord,hiWord;byteloByte,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);}
7、输出效果如下图所示,输出分别为定义的整数值,低位值,高位值,组合后的整数值