91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹ADC寄存器的讀取

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Michael Schmidt ? 2022-10-12 09:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在“使用 Node 將 IoT嵌入式連接.js第 3 部分”中,我們查看了用于讀取加速度計的軟件包。在第4部分中,我們將重點介紹ADC寄存器的讀取。

該包演示如何運行從 Node.js 調(diào)用的 C 代碼。此代碼通過 CPU 中 i.MX28 ADC 寄存器的存儲器映射來實現(xiàn)這些寄存器的讀取。此代碼直接取自技術(shù)系統(tǒng)公司為 TS-7680 提供的樣本代碼。這里的主要補充是將 Node.js 接口到 C 的代碼。

Node.js使用C++接口,因此代碼必須以C++編寫。我們的實施是在。在此文件中,有一個改編自 的函數(shù),該函數(shù)打開并將 CPU ADC 接口的三個區(qū)域存儲器映射到指針。這些器件可用于訪問執(zhí)行ADC功能所需的CPU寄存器。

其次是功能,也改編自其設(shè)置ADC并獲得7個樣本。對這些樣本進行平均并放置在緩沖區(qū)中。

必須將“Node.js的本機抽象”或 NAN 的包含文件放在文件的頂部。隨著 Node 的成熟.js,用于創(chuàng)建加載項的界面發(fā)生了變化,NAN 抽象出這些差異,以允許創(chuàng)建適用于 Node .js 版本 0.8、0.10、0.12 和 1-7 的代碼。

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2MTgwOTc3ZDkucG5nJnZlcnNpb249MDAwMCZzaWc9MjE2ZGMzNTA2NWM4OTkzYjljZTNlOTljZGZmNWYyZTk253D

用于創(chuàng)建 Node.js加載項的代碼位于函數(shù)中,符合 Node.js加載項的參數(shù)要求。具體來說,它有一個看起來像這樣的原型:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2MjFhY2ZiMTMucG5nJnZlcnNpb249MDAwMCZzaWc9MGQ2MDE1ZGM1YzZmMmQzMTIzYTkyOTgyNTBmNzgxYjE253D

我們采用一個名為 的參數(shù)。這是一個復(fù)雜的NAN類,我們目前不需要擔(dān)心。

在此函數(shù)中,首先聲明一個緩沖器來保存來自所有 8 個 ADC 的采樣,這些 ADC 由 讀?。?/p>

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2Mjg1ODc2NzIucG5nJnZlcnNpb249MDAwMCZzaWc9ZjNkZjIwOTA1MmY0YzZmMTFmYWM1YjM1ZWJiNTBjYzg253D

接下來,如果尚未調(diào)用,則調(diào)用。全局變量用于確定以下內(nèi)容:init

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2MmM3MDk5NjUucG5nJnZlcnNpb249MDAwMCZzaWc9YzI2NGM1Nzg1NzM1NWVkM2I0ZGI4MTU3ZjE1MzY0Nzc253D

現(xiàn)在調(diào)用以用樣本填充緩沖區(qū):

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2MzBiM2U1N2IucG5nJnZlcnNpb249MDAwMCZzaWc9YjRjNTJmMTIzZjNmODA4ZTljYmY2OTYzOTdjYTEwMzc253D

接下來,構(gòu)造一個長度為 8 的 JavaScript 數(shù)組,并將此數(shù)組中每個元素的值設(shè)置為相應(yīng)的 ADC 示例值:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2MzNjNjQ0MmUucG5nJnZlcnNpb249MDAwMCZzaWc9ZDgxZDU2OGVhMmZhZjdjYmRkM2NkNjcyY2FhYjgwYmM253D

然后,將數(shù)組設(shè)置為從 JavaScript 調(diào)用函數(shù)所顯示的返回值。這比簡單的語句稍微復(fù)雜一些,因為它從C++橋回JavaScript!

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2MzZiYjRhNmIucG5nJnZlcnNpb249MDAwMCZzaWc9MWY3OGZjNjBiYmM0Zjc5NWNkNzE2MDU0ZGViZDNkNzQ253D

除了函數(shù)之外,還必須定義一個函數(shù)(注意大寫的“I”,這使得它與我們的函數(shù)不同)。此處的兩個重要部分是 “” 和 。它們定義了為訪問函數(shù)而調(diào)用的 JavaScript 端的模塊元素的名稱,以及C++端被調(diào)用的函數(shù)的名稱:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2MzlkYzI2MTcucG5nJnZlcnNpb249MDAwMCZzaWc9NzFjYTQ1YzU3YzVmZWYxYzM3ZTVkNDEzMTAwZDQzNzM253D

現(xiàn)在,調(diào)用一個宏將函數(shù)與模塊名稱相關(guān)聯(lián):

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2NDFlNGFkNGEucG5nJnZlcnNpb249MDAwMCZzaWc9ZTFhYzcwOTc5OTA4MmE5Zjk4M2MzZTc2MmMyM2FjNmE253D

該文件提供了一個精簡包裝器,它通過調(diào)用 中定義的 addin 函數(shù)對 ADC 值進行采樣,然后在連接套接字上輸出這些值來響應(yīng)對 ADC 值的請求。

此行的開頭設(shè)置了綁定節(jié)點,我們的C++加載項:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2NDk4MDM0MzQucG5nJnZlcnNpb249MDAwMCZzaWc9YWI0NzJkODY3OWVjNTEwYTZlYmVjOGMwMWE0NjQ5Nzg253D

具體來說,該模塊返回一個函數(shù),該函數(shù)使用二進制文件的相對路徑調(diào)用。這將在構(gòu)建過程中從C++源代碼創(chuàng)建,并具有“.node”后綴。從調(diào)用返回的是引用加載項的 JavaScript 對象。由于附加組件定義了一個函數(shù) ,因此此函數(shù)可作為返回對象的元素進行訪問。調(diào)用此函數(shù)實質(zhì)上是調(diào)用C++代碼。

接下來是函數(shù)。它是一個標準的快速處理程序函數(shù),每當(dāng)客戶端請求終結(jié)點時都會調(diào)用它。它記錄條目,將響應(yīng)的內(nèi)容類型設(shè)置為 ,然后調(diào)用C++代碼來檢索 ADC 值。然后,它獲取數(shù)組并將其轉(zhuǎn)換為字符串,每行有一個數(shù)字:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2NTE3Njc2MzYucG5nJnZlcnNpb249MDAwMCZzaWc9M2JlMzU2NzY1NjAyMTNhOWY2ZWIwOTA2Y2M0MDc1YzY253D

最后,設(shè)置為初始化函數(shù),該函數(shù)檢查用于更改終結(jié)點字符串的選項,并將終結(jié)點與函數(shù)關(guān)聯(lián):

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5ZDI2NTc1NDEwOTgucG5nJnZlcnNpb249MDAwMCZzaWc9Yjg1ZDliMmFkYTg4ODVkOWRjMzIyMzJhNWE1YTI4MTU253D

該文件包含編譯C++代碼所需的信息。安裝包時會自動調(diào)用生成過程。

在下一期也是最后一期中,我們將構(gòu)建一個用戶界面,該界面利用我們已經(jīng)實現(xiàn)的服務(wù),以便從Web瀏覽器控制開發(fā)板。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5609

    瀏覽量

    130016
  • adc
    adc
    +關(guān)注

    關(guān)注

    100

    文章

    7513

    瀏覽量

    556085
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2124

    瀏覽量

    77147
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內(nèi)的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思 數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括累加AX、基址寄存器BX、計數(shù)
    發(fā)表于 03-08 14:38 ?1.3w次閱讀

    寄存器與移位寄存器

    寄存器與移位寄存器介紹寄存器原理和移位寄存器的原理及實現(xiàn)。
    發(fā)表于 05-20 11:47 ?0次下載

    移位寄存器怎么用_如何使用移位寄存器_移位寄存器的用途

    移位寄存器是一個具有移位功能的寄存器,是指寄存器中所存的代碼能夠在移位脈沖的作用下依次左移或右移。本文主要介紹了移位寄存器的用途以及移位
    發(fā)表于 12-22 15:49 ?2.1w次閱讀

    主存和寄存器的區(qū)別介紹

    本文開始介紹了主存的概念和頻率及主存的大小,其次介紹寄存器工作原理與寄存器用途,最后介紹了主存和寄存器
    發(fā)表于 04-11 14:27 ?2.4w次閱讀

    寄存器和觸發(fā)的區(qū)別介紹

    本文開始介紹寄存器分類、特點與用途,其次介紹了觸發(fā)的分類與觸發(fā)的作用,最后介紹
    發(fā)表于 04-11 14:39 ?2.8w次閱讀
    <b class='flag-5'>寄存器</b>和觸發(fā)<b class='flag-5'>器</b>的區(qū)別<b class='flag-5'>介紹</b>

    寄存器由什么組成

    本文首先介紹寄存器的原理組成,其次介紹了ARM寄存器組成,最后介紹寄存器的用途。
    的頭像 發(fā)表于 08-21 18:33 ?3.8w次閱讀

    ATMEL SAMC21的ADC驅(qū)動寄存器操作和寄存器程序合集免費下載

    本文檔的主要內(nèi)容詳細介紹的是ATMEL SAMC21的ADC驅(qū)動寄存器操作和寄存器程序合集免費下載。
    發(fā)表于 06-20 08:00 ?35次下載
    ATMEL SAMC21的<b class='flag-5'>ADC</b>驅(qū)動<b class='flag-5'>寄存器</b>操作和<b class='flag-5'>寄存器</b>程序合集免費下載

    STM32寄存器的簡介、地址查找,與直接操作寄存器

    什么是寄存器提到單片機,就不得不提到寄存器。根據(jù)百度百科介紹,寄存器是中央處理內(nèi)的組成部分。寄存器
    發(fā)表于 11-30 13:51 ?12次下載
    STM32<b class='flag-5'>寄存器</b>的簡介、地址查找,與直接操作<b class='flag-5'>寄存器</b>

    MPU6050寄存器介紹

    MPU6050寄存器介紹電源管理寄存器1(0X6B)陀螺儀配置寄存器(0X1B)加速度傳感配置寄存器
    發(fā)表于 12-06 11:51 ?22次下載
    MPU6050<b class='flag-5'>寄存器</b><b class='flag-5'>介紹</b>

    AArch64寄存器介紹

    作為 RISC 架構(gòu),AArch64 提供了大量的通用寄存器。除通用寄存器之外,本節(jié)還會介紹特殊寄存器、系統(tǒng)控制寄存器、處理
    的頭像 發(fā)表于 08-24 09:57 ?7625次閱讀

    labview讀取三菱plc寄存器內(nèi)容

    如何使用LabVIEW讀取三菱PLC的寄存器內(nèi)容,并提供一些實例代碼和注意事項。 首先,我們需要了解PLC寄存器的基本概念。PLC寄存器是一種用于存儲數(shù)據(jù)的內(nèi)部變量,被用于傳輸和保存信
    的頭像 發(fā)表于 12-27 16:31 ?4353次閱讀

    MC17XS6500高邊驅(qū)動芯片寄存器介紹

    本文主要是對MC17XS6500高邊驅(qū)動芯片寄存器進行的介紹,MC17XS6500寄存器分為輸入寄存器和輸出寄存器,對常用的幾個輸入和輸出
    的頭像 發(fā)表于 12-29 08:27 ?1507次閱讀
    MC17XS6500高邊驅(qū)動芯片<b class='flag-5'>寄存器</b>的<b class='flag-5'>介紹</b>

    AFE模擬前端寄存器讀取操作

    AFE模擬前端寄存器讀取操作是電子系統(tǒng)設(shè)計和調(diào)試中不可或缺的一環(huán)。寄存器作為AFE模擬前端中的重要組成部分,存儲著各種配置參數(shù)和狀態(tài)信息,通過讀取這些
    的頭像 發(fā)表于 03-15 15:50 ?1691次閱讀

    Modbus協(xié)議的讀取保持寄存器

    功能碼用于讀取從設(shè)備保持寄存器的內(nèi)容,不支持廣播模式。消息頓中指定了需要讀取的保持寄存器的起始地址和數(shù)目。而保持寄存器中各地址的具體內(nèi)容和意
    的頭像 發(fā)表于 10-30 10:54 ?6506次閱讀