aKi*_*iwi 6 c++ bit-manipulation arduino openframeworks
第一次用户,大家好!
所以希望有人可以提供帮助..我的背景是php所以输入低端的东西,如char,是字节,这是位...这是二进制值..等等需要一些时间才能得到好处;)
我试图在这里做的是从Ardunio板发送到openFrameWorks的一些值(都是c ++).
当被要求发送数据时,此脚本当前所做的事情(并且适用于我可能添加的一个传感器)是...
int value_01 = analogRead(0); // which outputs between 0-1024
unsigned char val1;
unsigned char val2;
//some Complicated bitshift operation
val1 = value_01 &0xFF;
val2 = (value_01 >> 8) &0xFF;
//send both bytes
Serial.print(val1, BYTE);
Serial.print(val2, BYTE);
Run Code Online (Sandbox Code Playgroud)
显然这是获取数据的最可靠方式..所以现在它是通过串口发送的,字节被添加到一个字符串中并由...转换回来.
int num = ( (unsigned char)bytesReadString[1] << 8 | (unsigned char)bytesReadString[0] );
Run Code Online (Sandbox Code Playgroud)
那么回顾一下,我试图获得4个传感器的数据(我假设这些序列中有8个?)并且在它的末尾有int num_01 - num_04 ....
我假设这个(和大多数事情一样)对于有这些概念经验的人来说可能很容易.
任何帮助将不胜感激.谢谢
编写一个抽象发送数据的函数(我已经删除了你的临时变量,因为它们没有增加太多的值):
void send16(int value)
{
//send both bytes
Serial.print(value & 0xFF, BYTE);
Serial.print((value >> 8) & 0xFF, BYTE);
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以轻松发送所需的任何数据:
send16(analogRead(0));
send16(analogRead(1));
...
Run Code Online (Sandbox Code Playgroud)