- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:
我有一个 6 DoF 加速度计,我可以通过 ArduinoUNO 通过 SDA/SCL 访问它。我可以通过以下命令读取输入:
LreadAccX()
传感器有 2 个寄存器,一个低值和一个高值。以上将读取较低寄存器的 X 加速度。这些是 8 位数。例如,上面可能返回:
LreadAccX()
>>>> 01000010
顺便说一下,十进制的 41。我需要尽快把它们拿出来,如果可能的话,我们想要 1kHz 到 400Hz。这意味着只需吐出二进制数据,然后对其进行后期处理。
例子:
0000 0001 1100 1001
这可能是 X 加速度的值。它以十进制表示:457。这是我必须记录的 3 个不同的 ASCII 字符,而不是二进制中的 2 个。
1111 0001 1100 1001
这是 61897,所以有 5 个 ASCII 字符,而只有 2 个二进制字符。显然,我想使用二进制来优化速度。
我的解决方案
void loop() {
/*
print data to processing. Data broken up into 2 parts, one for the high and low
registers in the sensor.
*/
print_bytes(HreadAccX(),LreadAccX(),HreadAccY(),LreadAccY(),HreadAccZ(),LreadAccZ());
print_bytes(HreadGyroX(),LreadGyroX(),HreadGyroY(),LreadGyroY(),HreadGyroZ(),LreadGyroZ());
Serial.print("A");
}
inline void print_bytes (int HaX, int LaX, int HaY, int LaY, int HaZ, int LaZ)
{
char l = (LaZ >> 48) & 0xff ;
char k = (LaZ >> 44) & 0xff ;
char j = (HaZ >> 40) & 0xff ;
char i = (HaZ >> 36) & 0xff ;
char h = (LaY >> 32) & 0xff ;
char g = (LaY >> 28) & 0xff ;
char f = (HaY >> 24) & 0xff ;
char e = (HaY >> 20) & 0xff ;
char d = (LaX >> 16) & 0xff ;
char c = (LaX >> 12) & 0xff ;
char b = (HaX >> 8) & 0xff ;
char a = HaX & 0xff ;
putchar (l) ;
putchar (k) ;
putchar (j) ;
putchar (i) ;
putchar (h) ;
putchar (g) ;
putchar (f) ;
putchar (e) ;
putchar (d) ;
putchar (c) ;
putchar (b) ;
putchar (a) ;
Serial.print(l);
Serial.print(k);
Serial.print(j);
Serial.print(i);
Serial.print(h);
Serial.print(g);
Serial.print(f);
Serial.print(e);
Serial.print(d);
Serial.print(c);
Serial.print(b);
Serial.print(a);
}
输出是这样的:
>>>> asFkDi?g-g^&A
as Fk Di ?g -g ^& A (for clarity, the diff 16 bits have spaces, and the 'A' is
to show a start/stop bit)
它只是 ASCII 中的垃圾,但它转换为有意义的 16 位数字
然而,这款 Chewbacca 就优雅而言。它还以大约 200Hz 的频率运行,太慢了。我觉得这是
Serial.print();
减慢速度的功能。但是,如果我尝试:
Serial.print(a+b+c+d+e+f+g+h+i+j+k+l);
我得到的只是数字的相加。
我的问题
如何让 Seria.print() 从一组参数中输出一串二进制数字?
最佳答案
您可能需要 Serial.write。假设 HaX 等都是一个字节,你可以使用类似的东西:
char data_bytes[] = {HaX, LaX, HaY, LaY, HaZ, LaZ};
Serial.write(data_bytes, sizeof(data_bytes));
发送所有这些 8 位值。
虽然有些问题:
串行上的原始二进制文件不会留下任何字符代码来指示帧的开始和结束,因此您可能会遇到同步问题。通常二进制串行协议(protocol)有一个特殊的帧起始字符和特殊的转义字符。每当其中一个出现在数据流中时,您都需要对其进行“转义”(发送修改后的 2 字节序列来代替原始“特殊”字节)以免混淆接收方。
当您有一个函数调用会给出单独的高值和低值,然后将它们组合在一起时,您需要确保它们是一对匹配的。如果调用之间的值发生变化,您可能会收到错误。
与执行串行打印功能时相比,您更可能受到串行连接波特率的限制。如果您最多发送 12 字节序列,您将只能在 19.2kbps 时获得 160Hz,或在 115.2kbps 时获得 960Hz
关于c++ - Arduino - 尝试优化速度,需要回显传感器数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22161375/
"); ..... 回显 (""); ?> 是什么意思?
问题是标签 我看过我正在编写的一个脚本,并使用了它: echo (""); ........ echo (""); 它到底做了什么? 它是 Html 标签还是 PHP? 我在 Google 上进行了
我正在创建一个结帐系统。我分为三个部分: 送货信息 付款信息 订单确认 我正在尝试找出一种方法,当客户输入他们的送货信息时,该数据可以回显到我的订单确认部分,这样他们就可以确认这是他们想要将其运送到的
我正在 MYSQL 表上运行 SELECT 代码 我有一个 MYSQL 表: CREATE TABLE mytable ( wf_id int(11) UNSIGNED NOT NULL, sessi
我想要做的是回显页面顶部的内容,同时捕捉页面底部的内容。 这是我的脚本: Westpop Wachtwoord moet minstens 8 tekens lang
我在将选择列表放在 HTML 中时遇到了一些困难,其中的选项或值是从数据库中的表中检索的。我得到以下结果: 如您所见,这不是我的本意,我宁愿将所有选项都放在 1 个选择列表中,并且可以单击多个选项。
我的代码有问题。我有这段代码: Title Welcome loggedin:
我需要使用 PHP 仅回显 .txt 文件中的选定行。txt 文件内容如下所示: 1 111 111 111 111 111 111 111 111 111 111 2 196 182 227 190
我需要使用 PHP 仅回显 .txt 文件中的选定行。txt 文件内容如下所示: 1 111 111 111 111 111 111 111 111 111 111 2 196 182 227 190
我想从 PHP 回显一些 HTML,其中包含一个链接,上面有文本“ ' '; 最佳答案 如果您想显示文字小于号,请根据 HTML 规范将其编码为 <。 您可能还想查看另一个相关实体:«。这会产生一个
如果我从名为 categories 的 mysql 表中调用链接列表,我想我使用的选择语句如下: $query = "SELECT cat_name, cat_description FROM c
所以,伙计们,我的问题是我正在从一个 mysql 列创建一个数组,但是,当我回显数组项时,它什么也没返回,我有一段时间没有看到一个可能的错误,希望能得到一些帮助。这是我的代码:(我知道 mysql 到
在下面的代码中,我在 php 文件中回显了 $strXML,它显示了整个 $strXML,但我只想在 javascript 中显示“名称”元素值。谁能帮帮我? PHP: $strXML = ''."\
我有一节课用这段代码 public boolean busybox() throws IOException { try { Process p =Ru
我有一个 SQL 查询,出于安全目的,我最近将其转换为准备好的语句。我有一个查询返回许多行,每行由许多列组成。我的问题是如何使用 while 循环回显结果。到目前为止我的例子: $stmt = $co
我尝试这样的事情: function userrank($userid){ $sql = mysql_query("SELECT * FROM users ORDER BY atacs DES
我正在尝试进行选择查询并将此信息输出到 html 标签中,但是它不断将 php 代码转换为: 我做错了什么?为什么它不返回错误而不是将其转换为上面的错误? 代码 $con = mysqli_conn
抱歉含糊其辞,但我有一个 PHP 脚本,它从数据库中提取数据并显示它,但是它不是输出数据库的内容,而是输出“数组”的次数。 (无法再次工作,脚本已上传 here ),脚本的输出也是 here .)谢谢
我有一个工作代码并将其移动到一个新服务器,从 php5 到 php7。谷歌搜索一周没有帮助我,所以我问你们。 我在 sql 数据库中有一些带有欧元符号的信息: 99.00该信息存储为 utf16-ge
这是我的代码: 0){ $info = mysql_fetch_assoc($result); while($row = mysql_fetch_assoc($result)){
我在查找有关此主题的信息时遇到了一些真正的困难,如果您有任何帮助,我将非常感激。简而言之,我有一个表单,用户可以从下拉列表中选择一个类别,输入一些内容,然后点击提交,然后转到 SQL。下拉列表中的每个
我是一名优秀的程序员,十分优秀!