养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

Arduino 函数的位操作

时间:2024-11-11 15:20:08

在程序编辑过程中,我们可以对变量中的某一位进行操作

Arduino 函数的位操作

工具/原料

ArduinoUNO控制器*1

USB数据线*1

ArduinoIDE

安装好Arduino控制器驱动的台式机

方法/步骤

1、ArduinoIDE新建代码的方法,程序的上传方法,大家可以参考:http://jingyan.baidu.com/article/414eccf6a8fb9f6b431f0ab1.html来操作

Arduino 函数的位操作

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();}

Arduino 函数的位操作

3、输出效果如下图所示,输出结果中显示了在程序执行过程中被改变的位

Arduino 函数的位操作

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);}

Arduino 函数的位操作

5、输出效果如下图所示,分别通过串口打印输出了变量的十进制数值、16进制数值、低位和高位

Arduino 函数的位操作

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);}

Arduino 函数的位操作

7、输出效果如下图所示,输出分别为定义的整数值,低位值,高位值,组合后的整数值

Arduino 函数的位操作

© 一点知识