介绍ADC寄存器的读取

描述

在“使用 Node 将 IoT 与嵌入式连接.js第 3 部分”中,我们查看了用于读取加速度计的软件包。在第4部分中,我们将重点介绍ADC寄存器的读取。

该包演示如何运行从 Node.js 调用的 C 代码。此代码通过 CPU 中 i.MX28 ADC 寄存器的存储器映射来实现这些寄存器的读取。此代码直接取自技术系统公司为 TS-7680 提供的样本代码。这里的主要补充是将 Node.js 接口到 C 的代码。

Node.js使用C++接口,因此代码必须以C++编写。我们的实施是在。在此文件中,有一个改编自 的函数,该函数打开并将 CPU ADC 接口的三个区域存储器映射到指针。这些器件可用于访问执行ADC功能所需的CPU寄存器。

其次是功能,也改编自其设置ADC并获得7个样本。对这些样本进行平均并放置在缓冲区中。

必须将“Node.js的本机抽象”或 NAN 的包含文件放在文件的顶部。随着 Node 的成熟.js,用于创建加载项的界面发生了变化,NAN 抽象出这些差异,以允许创建适用于 Node .js 版本 0.8、0.10、0.12 和 1-7 的代码。

C++

用于创建 Node.js加载项的代码位于函数中,符合 Node.js加载项的参数要求。具体来说,它有一个看起来像这样的原型:

C++

我们采用一个名为 的参数。这是一个复杂的NAN类,我们目前不需要担心。

在此函数中,首先声明一个缓冲器来保存来自所有 8 个 ADC 的采样,这些 ADC 由 读取:

C++

接下来,如果尚未调用,则调用。全局变量用于确定以下内容:init

C++

现在调用以用样本填充缓冲区:

C++

接下来,构造一个长度为 8 的 JavaScript 数组,并将此数组中每个元素的值设置为相应的 ADC 示例值:

C++

然后,将数组设置为从 JavaScript 调用函数所显示的返回值。这比简单的语句稍微复杂一些,因为它从C++桥回JavaScript!

C++

除了函数之外,还必须定义一个函数(注意大写的“I”,这使得它与我们的函数不同)。此处的两个重要部分是 “” 和 。它们定义了为访问函数而调用的 JavaScript 端的模块元素的名称,以及C++端被调用的函数的名称:

C++

现在,调用一个宏将函数与模块名称相关联:

C++

该文件提供了一个精简包装器,它通过调用 中定义的 addin 函数对 ADC 值进行采样,然后在连接套接字上输出这些值来响应对 ADC 值的请求。

此行的开头设置了绑定节点,我们的C++加载项:

C++

具体来说,该模块返回一个函数,该函数使用二进制文件的相对路径调用。这将在构建过程中从C++源代码创建,并具有“.node”后缀。从调用返回的是引用加载项的 JavaScript 对象。由于附加组件定义了一个函数 ,因此此函数可作为返回对象的元素进行访问。调用此函数实质上是调用C++代码。

接下来是函数。它是一个标准的快速处理程序函数,每当客户端请求终结点时都会调用它。它记录条目,将响应的内容类型设置为 ,然后调用C++代码来检索 ADC 值。然后,它获取数组并将其转换为字符串,每行有一个数字:

C++

最后,设置为初始化函数,该函数检查用于更改终结点字符串的选项,并将终结点与函数关联:

C++

该文件包含编译C++代码所需的信息。安装包时会自动调用生成过程。

在下一期也是最后一期中,我们将构建一个用户界面,该界面利用我们已经实现的服务,以便从Web浏览器控制开发板。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分