国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

用Bitwise邏輯運算符進行設計

微云疏影 ? 來源:Digi-Key ? 作者:Digi-Key ? 2022-04-12 15:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下文將介紹 AND (&) Bitwise 邏輯并闡明博文《直接端口的操作案例》中介紹的概念。在該示例中,通過多個按鈕和電位計控制器來操作由步進電機驅動的攝像頭滑塊。所選的微控制器在許多端口上都分布了有限的 I/O,這是通過將 I/O 匯編成單一數字值來實現的。

概覽

在軟件中評估開關輸入時,常常從有用的 if/then 語句開始。這對于獨立輸入可能很有用,但對于多個交互式輸入來說則不然。用 if/then 語句涵蓋所有的按鈕組合,可能會產生數百行代碼和每周期中大量的執行任務。實施 Bitwise 邏輯可以最大限度地減少代碼,提高周期速度。

項目參數

攝像頭滑塊項目涉及五個瞬時接觸 SPST 開關,這些開關用于在滑塊驅動電機的工作過程中選擇方向和速度。將輸入轉換為 SPEED/ENABLE/DIRECTION 輸出。開關按壓操作與多開關按壓識別功能同時在軟件中鎖定。

pYYBAGJVJA2AVhXbAACH6rtTBqU965.jpg

AND Bitwise 運算符

攝像頭滑塊的主要位運算符是 AND。該運算器使用 C 語言編程中的安培 (&) 符號,使用圖 1 中的真值表。

poYBAGJVJA2ASw1mAAA0nZ7R75k254.jpg

圖 1:AND Biwise 運算符的真值表及示例。(圖片來源:Don Johanneck)

I/O 組合

為了確立一個能代表所有開關的單值,把位移至所需的位置,進行相加并使用 AND 運算符進行比較(見圖 2)。另一個代表極限傳感器當前狀態的值與開關按壓值進行比較,以便在達到極限時取消輸出。

pYYBAGJVJA2AXA5zAAB06ZELRI0517.jpg

圖 2:攝像頭滑塊開關的配置,位的編譯以及 AND 運算符的使用。(圖片來源:Don Johanneck)

在這種情況下,如果按下任何一個按鈕或按鈕組合,則 buttonValues 不等于零,并在軟件中通過 limitValue 和查找表進行操作,以確定輸出,這與前面提到的直接端口操作博文中描述的方法完全相同。

編程

該程序使用由經過處理的輸入值索引而成的輸出值表。程序員可以通過改變表數值來確定按任何組合的按鈕所產生的動作,這樣就不需要改變程序結構,否則結構更改可能是令人望而生畏的。在該示例中,圖 3 中的表值代表了單個、多個和對立的按鈕動作,不需要單獨 IF 語句(圖 4)。

poYBAGJVJA6ANN_iAABW9Z5ZB98917.jpg

圖 3:由輸入值索引而成的唯一輸出值表。

pYYBAGJVJA6AT_IEAABSe6eZ2PI384.jpg

圖 4:主代碼;讀取數值和確定輸出。

電機控制是通過一個用來確定步進頻率的定時器中斷服務例程以及一種“跳躍”方法實現的,這種方法通過僅在 stepGo 變量等于或大于 stepFreq 變量時設置電機控制板上的 STEP 引腳來簡化速度控制(圖 5)。較低的電位器值使該例程跳過了更多的 STEP。

poYBAGJVJA6AafwPAAA2EFniX70951.jpg

圖 5:電機控制的中斷服務例程。

結論:

使用諸如 AND (&) 這樣的位運算符可以簡化代碼,并大大減少解析數字輸入所需的 IF 語句的數量。輸出表的建立簡單而靈活。使用更多的輸出位可以快速擴展輸出表,提供更多的輸出選擇。每一個增加的輸出位都需要在主代碼中增加一個(或幾個)處理程序。一旦輸出表建立,該表就會在每個周期內只使用一次,而由主代碼完成繁重的工作。中斷服務例程在后臺穩定地運行,更新電機控制器的 STEP 引腳,但在主代碼切換電機控制器的使能 (ENN) 引腳之前,不會發生運動。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    114

    文章

    17787

    瀏覽量

    193079
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    123579
  • 邏輯運算
    +關注

    關注

    0

    文章

    58

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    C語言主要特點

    ,源程序短,因此輸入程序時工作量少。 2.運算符豐富,C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括號、賦值和強制類型轉換等都作為運算符處理,從而使C語言的
    發表于 01-05 07:41

    cw32f030c8實現點燈

    << 1); 這行代碼使用按位與運算符( )對GPIOA的ODR寄存器的第1位進行操作。通過對第1位(對應GPIOA Pin 1)進行取反操作并與寄存器的其他位進行
    發表于 12-10 08:07

    C語言宏拼接運算符典型使用

    在C語言中,##運算符(稱為[size=16.002px]標記拼接運算符)用于宏定義中將兩個標記(token)拼接成一個新的標記。它在預處理階段處理,常用于動態生成變量名、函數名或類型名,以提高代碼
    發表于 11-20 08:27

    長晶科技邏輯芯片產品矩陣介紹

    邏輯IC是用于實現基本邏輯運算和復合邏輯運算的集成電路, 廣泛應用于各種電子設備和系統中,成為現代電子設備智能化、高效化的關鍵所在。
    的頭像 發表于 11-04 17:47 ?1285次閱讀
    長晶科技<b class='flag-5'>邏輯</b>芯片產品矩陣介紹

    復雜的軟件算法硬件IP核的實現

    中的運算符有對應關系。 結構域負責將功能域中的各個基本功能單元按特定的順序和方式連接起來,通常被實現為一個由有限狀態機控制的數據通路,該結構與C 語言的流程控制語句相對應。 以一個簡單的加法組合邏輯為例
    發表于 10-30 07:02

    第4章 C語言基礎以及流水燈的實現(4.3 4.4)

    4.3 C語言基本運算符 小學數學學過加、減、乘、除等運算符號以及四則混合運算,而這些運算符號在C語言中也有,但是有些表達方法不一樣,并且還有額外的
    的頭像 發表于 10-29 15:30 ?331次閱讀

    SN74AHC1G09 單路2輸入正邏輯與門(開漏輸出)技術解析與應用指南

    Texas Instruments SN74AHC1G09/SN74AHC1G09-Q1單路2輸入正與門具有開漏輸出配置。該器件以正邏輯執行布爾邏輯運算Y = A × B或Y = A + B。Texas Instruments SN74AHC1G09-Q1器件符合汽車應用
    的頭像 發表于 08-19 10:42 ?1120次閱讀
    SN74AHC1G09 單路2輸入正<b class='flag-5'>邏輯</b>與門(開漏輸出)技術解析與應用指南

    協議分析儀支持哪些高級觸發選項?

    :使用AND、OR、NOT等邏輯運算符組合多個觸發條件。 示例:捕獲同時滿足以下條件的流量: TCP端口 == 443(HTTPS) HTTP方法 == POST 數據包長度 > 512字節 優勢:實現復雜場景
    發表于 07-23 14:21

    《ESP32S3 Arduino開發指南》第三章 C/C++語言基礎

    &gt;=大于或等于 邏輯運算符&amp;&amp;邏輯“與”運算 ||邏輯“或”運算 !
    發表于 06-10 09:20

    基于LockAI視覺識別模塊:C++圖像的基本運算

    的 OpenCV API。按照以下步驟,您可以輕松地進行圖像的基本運算: 獲取和設置像素值:使用 cv::Mat::at 方法訪問和修改像素。 邏輯運算:使用 cv::bitwise_
    發表于 05-06 16:56

    基于LockAI視覺識別模塊:C++圖像的基本運算

    在圖像處理中,理解圖像的基本操作是掌握計算機視覺技術的關鍵。本文章將介紹基于LockAI視覺識別模塊下OpenCV中圖像的基本運算方法,包括像素操作、邏輯運算和差值運算,并通過一個綜合示例展示其實際應用。
    的頭像 發表于 05-06 16:20 ?708次閱讀
    基于LockAI視覺識別模塊:C++圖像的基本<b class='flag-5'>運算</b>

    數字電路—5、邏輯運算

    發表于 03-25 10:17

    必看!15個C語言常見陷阱及避坑指南

    ? C語言雖強大,但隱藏的“坑”也不少!稍不留神就會導致程序崩潰、數據異常。本文整理15個高頻陷阱,助你寫出更穩健的代碼! ? 陷阱1:運算符優先級混淆? 問題:運算符優先級不同可能導致計算順序錯誤
    的頭像 發表于 03-16 12:10 ?1777次閱讀

    全套C語言培訓資料—PPT課件

    全套C語言培訓資料,共427頁,13個章節:C語言概述、程序的靈魂—算法、數據類型 & 運算符與表達式、順序程序設計、選擇結構程序設計、循環控制、數組、函數、預處理命令、指針、結構體
    發表于 03-12 14:50

    CMOS邏輯IC是如何構成的

    電子設備正常運轉離不開“邏輯”的精密驅動。例如,當我們在手機上滑動屏幕時,背后就有無數個CMOS邏輯電路在默默工作,它們通過復雜的邏輯運算,將我們的觸摸信號轉化為手機能夠理解的指令,從而實現各種功能。
    的頭像 發表于 03-10 10:33 ?1115次閱讀
    CMOS<b class='flag-5'>邏輯</b>IC是如何構成的