从MPU6050看传感器原始数据的处理方式-位运算

原创 云深之无迹 2024-12-29 19:21

嵌入式里面最难的是什么?我想不是初始化,也不是一个逻辑,而是使用位运算来处理数据。

还有什么?对寄存器的设置,某一位,连着好几个,等等的。

我以前一直不知道这个寄存器的概念到底在哪里?

直到,昨天看了一晚上的数字电路的教程,救命,原来这么多内容这么系统,科班出生可能就这点好了,虽然没学会,但是也是系统的学到了知识。

看的这个版本,一板一眼的,硬死了

其实这个描述也极其的少,让我再补充一点吧!

一个寄存器可以看作是一个由多个触发器组成的存储单元。每个触发器可以存储一位二进制数据(0或1)。

寄存器的位数决定了它能存储数据的范围。例如,一个8位寄存器可以存储0到255之间的整数。

寄存器 是计算机处理器内部用来临时存储数据的存储单元。你可以把它想象成计算机大脑中的一个小小抽屉,用来存放一些常用的数据,比如要进行运算的数字、指令的地址等等。

  1. 高速存储: 寄存器的存取速度非常快,远快于内存。这是因为寄存器距离CPU核心非常近,数据传输的路径短,延迟小。

  2. 临时存储: 寄存器用来存储CPU正在处理的数据,比如正在执行的指令、运算中的数据等。

  3. 控制单元: 一些寄存器还用于控制CPU的工作状态,比如程序计数器(PC)用来记录下一条指令的地址。


寄存器最本真的含义可能就是寄存两个字了

就是放一些东西

根据寄存器的用途,可以分为以下几种:

  1. 通用寄存器: 可以用来存储各种类型的数据,如整数、浮点数、地址等。

  2. 专用寄存器: 有特定的用途,如程序计数器(PC)、指令寄存器(IR)、栈指针寄存器(SP)等。


OK~我们来看一个人人皆知的器件MPU6050:

6个ADC的数据存到这个传感器寄存器里面,接着到IIC里面,传出去。

以及这个器件也可以在级联一个IIC的输入,Bypass IIC-旁路IIC

这个就是需要读取的地方,可以看着连在一起

来看一个ACC的

重力加速度的参数范围

3个16位来描述

好,我偷的

接下来看代码:

不管如何设置,我们最终就要获得这6个轴的数据

在代码中:

(MPU6050_Raw_Data[x] << 8) | MPU6050_Raw_Data[y]) 

的位运算用于将从MPU6050读取的两字节数据组合成一个16位的有符号整数值。

这是因为MPU6050的加速度计和陀螺仪数据是以16位的格式存储的,每个测量值分为高字节和低字节,分别存储在两个连续的寄存器中。

 (MPU6050_Raw_Data[x] << 8)将高字节左移8位。将高字节放到16位数据的高8位位置。


箭头就是移动方向,往高处放,挪8下。

假设高字节 MPU6050_Raw_Data[x] = 0x1A,二进制为 00011010。左移 8 位后,结果为 00011010 00000000,即 0x1A00

16位数据 = (高字节 << 8) | 低字节

<< 8 (左移操作)将高字节的值左移8位,为低字节腾出位置。

将高字节放到16位整数的高8位。高字节 0x1A 左移 8 位后:0x1A << 8 = 0x1A00

<< 就是移动的意思,就好像移动格子一样,把靠左的东西移动到右边。现在就是16位的格子,满了8个,右边还剩8个,怎么办呢?就是或运算吧。

| MPU6050_Raw_Data[y]通过按位或操作,将低字节合并到高字节后面。

组合高字节和低字节形成完整的16位数据。移动了

假设低字节 MPU6050_Raw_Data[y] = 0x2B,二进制为 00101011高字节左移后的结果为 0x1A00,低字节为 0x002B按位或操作:0x1A00 | 0x002B = 0x1A2B

| (按位或操作),将低字节合并到高字节之后。将高字节和低字节拼接成一个完整的16位数据。


高字节结果 0x1A00 和低字节 0x002B 进行按位或操作:0x1A00 | 0x002B = 0x1A2B

组合后的16位值是一个有符号整数在读取时,需要根据最高位(符号位,bit 15)判断正负。

左移 (<<) 和按位或 (|) 是位操作中常用的组合,用于拼接高低字节。

  1. 置位:将指定位置为 1。通过 | 运算保证其他位不变。
  2. 清位:将指定位清为 0。使用 ~ 生成掩码,结合 & 清除目标位。
  3. 翻转位:通过 ^ 运算改变目标位的状态。
  4. 读取位:通过右移和按位与,提取目标位的值。

评论
  • 根据Global Info Research项目团队最新调研,预计2030年全球CAN-Bus总线电缆产值达到2287百万美元,2024-2030年期间年复合增长率CAGR为3.6%。一、行业概述CAN-Bus总线电缆是一种专门用于CAN总线(Controller Area Network,控制器局域网络)通信系统中的电缆。CAN总线是一种广泛应用于汽车、工业自动化、机器人等领域的串行通信协议,主要用于微控制器和设备之间的数据交换。CAN-Bus电缆负责在多个设备间传输数据,保证信息的稳定传输和
    GIRtina 2024-12-31 11:00 100浏览
  • 产品概述MG600Q2YMS3 是一款基于硅基碳化物(SiC)技术的高功率N沟道MOSFET模块,适用于高功率开关和电机控制应用,如轨道牵引系统。其设计旨在满足高效能和快速切换需求,为工业和能源领域提供可靠解决方案。主要特性1. 高电压和电流能力   耐压 (VDSS):1200 V   漏极电流 (ID):600 A2. 高效率与低损耗   碳化硅材料降低导通损耗和开关损耗,实现更高的转换效率。3. 快速切换性能 支持高频操作,适用于
    东芝铠侠代理 2024-12-31 10:33 71浏览
  • “新时代,共享未来”2024年11月5日-10日,第七届中国国际进口博览会在上海圆满落幕。其中,3万平方米的汽车展区展览面积,也让观众笑谈进博会再次进入“车展”时间。全球15大整车品牌,40多家企业参展,其中不乏耳熟能详,七届进博会“全勤生”的国际知名OEM,也会有首次参加的“新面孔”,它们共同构成了今年汽车展区的“全家福”。近年来,中国汽车进口均超百万辆。因此,对跨国车企来说,中国市场的重要性不言而喻。同时,在电动化和智能化赛道中弯道超车的中国汽车市场,也是全球汽车行业竞争最为激烈的市场,在这
    艾迈斯欧司朗 2024-12-30 17:05 55浏览
  •         在之前的文章中,我们介绍了IEEE 802.3cz[1]协议,MultiGABSE-AU物理层中XMII、PCS子层以及两个可选功能的相关内容,本篇将介绍MultiGABSE-AU物理层PMA子层及PMD子层的相关机制。PMA子层        PMA子层位于PCS子层和PMD子层之间,规范中定义了PMA子层的三个功能:PMA Transmit、PMA Receive及PHY Control。&nbs
    经纬恒润 2024-12-30 18:16 96浏览
  • 高精度,抗干扰,设计灵活……一句话总结:打铁还需自身硬!2040年,人形机器人的数量或将超过人类,达到100亿个。 10月29日,沙特投资倡议论坛,在谈及AI和人形机器人赛道时,马斯克再一次大胆预测,描绘出上述令人震撼的未来景象,且预估每台机器人的价格将稳定在2万-2.5万美元之间。当下,技术飞速发展,众多机器人公司如雨后春笋般涌现。余建华,艾迈斯欧司朗资深应用工程师,深感对这个市场的期待,他表示每一个机器人关节的背后,都离不开位置传感器的精准掌控。这片市场的潜力,让人憧憬不已。在工业及消费中
    艾迈斯欧司朗 2024-12-30 17:25 52浏览
  • 时源芯微EMC(电磁兼容)领域,充斥着众多专业术语,令人眼花缭乱。1 电磁兼容(EMC)定义:指电气装置或系统在共同的电磁环境条件下,既能保持正常功能,又不会对周围环境产生不良影响。2  电磁环境Electromagnetic Environment定义:指存在于某一特定场所的所有电磁现象的总和。3半电波暗室Semi-anechoic Chamber定义:一种屏蔽室,除地面安装反射接地平板外,其余内表面均覆盖有吸波材料。4 远场Far Field定义:在天线辐射的场域中,功率密度与距离
    时源芯微 2024-12-31 10:52 105浏览
  • 近日,紫光展锐正式推出高性能4G 智能穿戴平台W377E。该产品面向不同的应用场景,拥有丰富特性和超低功耗,进一步壮大紫光展锐的智能穿戴产品组合。紫光展锐面向中高端和海量的智能穿戴市场,持续提供技术先进、高效安全、高质可靠的解决方案。 紫光展锐W377E采用四核A53架构,支持13M摄像头,video 1080P 30fps,集成了Wi-Fi、蓝牙和GPS功能。W377E搭载Android 8.1系统,提供更加丰富多样的APP体验,支持在线好友聊天、支付宝等功能,且支持64位系统的AP
    紫光展锐 2024-12-31 16:26 111浏览
  • 本文介绍Linux系统查看硬件配置及常用调试命令,方便开发者快速了解开发板硬件信息及进行相关调试。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。查看DDR获取内存信息下面数字以MB为单位。root@ido:/# free -mtotalused free shared buff/cache availableMem:
    Industio_触觉智能 2024-12-31 10:01 66浏览
  • 在当今数字化时代,嵌入式系统无处不在,从我们手中的智能手机、智能手表,到汽车中的电子控制系统、工业自动化设备,嵌入式开发技术的发展历程宛如一部波澜壮阔的科技史诗,深刻地改变了我们的生活和社会的运作方式。萌芽阶段(20 世纪 60 - 70 年代)嵌入式开发的起源可以追溯到 20 世纪 60 年代。当时,计算机技术刚刚兴起,体积庞大且价格昂贵。为了满足特定设备的控制需求,工程师们开始尝试将计算机技术应用于一些专用系统中。这一时期,嵌入式系统的概念逐渐萌芽。1965 年,美国数字设备公司(DEC)推
    Jeffreyzhang123 2024-12-31 10:08 117浏览
  • 感光百科:4000万片出货量背后的“技术经”目前,仅单点dToF,艾迈斯欧司朗的累积出货量就已超过了4000万片。大量采用的背后必然代表无数用户对这一技术的认可和信赖。究竟是什么魔力,让dToF传感器拥有如此强大的吸引力?又是怎样的know-how积累让艾迈斯欧司朗的dToF产品如此受到青睐?让我们再次回到底层原理来探究dToF 4000万片出货量背后的“技术经”。01、底层原理决定应用上限dToF传感器,顾名思义,直接飞行时间测量,基于光速不变,测量光子从发射端到接收端的光程差,从而直接计算二
    艾迈斯欧司朗 2024-12-30 18:21 87浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦