色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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) 引腳之前,不會發生運動。

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

    關注

    112

    文章

    16382

    瀏覽量

    178305
  • 定時器
    +關注

    關注

    23

    文章

    3250

    瀏覽量

    114911
  • 邏輯運算
    +關注

    關注

    0

    文章

    56

    瀏覽量

    9764
收藏 人收藏

    評論

    相關推薦

    邏輯異或運算符在Python中的用法

    ,Python中的 ^ 符號實際上是一個按位異或運算符,用于對整數的二進制表示進行異或操作。 盡管如此,我們仍然可以通過一些方法來實現邏輯異或的功能,即當兩個布爾值不同時為真,相同時為假。這可以通過使用
    的頭像 發表于 11-19 09:46 ?204次閱讀

    C語言指針運算符詳解

    在C語言中,當你有一個指向數組中某個元素的指針時,你可以對該指針執行某些算術運算,例如加法或減法。這些運算可以用來遍歷數組中的元素,如ptr[i]等價于*(ptr + i)。然而,如果你的操作使得指針指向了數組以外的位置(除了數組結束位置之后的一個位置之外),那么這個指針
    的頭像 發表于 10-30 11:16 ?257次閱讀

    Verilog語法中運算符的用法

    verilog語法中使用以下兩個運算符可以簡化我們的位選擇代碼。
    的頭像 發表于 10-25 15:17 ?848次閱讀
    Verilog語法中<b class='flag-5'>運算符</b>的用法

    技術干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運算符與優先級

    邏輯表達。1位運算符“程序中的所有數在計算機內存中都是以二進制的形式儲存的,位運算可以直接對整數在內存中的二進制位進行操作,運位算包括位邏輯運算
    的頭像 發表于 10-13 08:09 ?276次閱讀
    技術干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析<b class='flag-5'>運算符</b>與優先級

    技術干貨驛站 ▏深入理解C語言:編程高手必備,全方位解析運算符的核心技能!

    在C語言的編程領域中,運算符是實現數據處理與邏輯操作的關鍵工具。無論是在處理簡單的數值計算,還是在構建復雜的邏輯結構時,運算符的使用貫穿始終。作為編程語言的基礎組成部分之一,
    的頭像 發表于 09-18 15:56 ?364次閱讀
    技術干貨驛站 ▏深入理解C語言:編程高手必備,全方位解析<b class='flag-5'>運算符</b>的核心技能!

    MATLAB(4)--MATLAB基本運算

    邏輯運算 邏輯運算符:&(與)、|(或)和~(非)。 設參與邏輯運算的兩個標量a和b,那么運算規則為: a&b:a、b全為非零時,
    發表于 09-06 10:18

    c語言從右到左的運算符有哪些

    以下是一些主要的從右到左運算的C語言運算符: 函數調用運算符 ( () ):當您調用一個函數時,參數列表是從右到左進行求值的。 后置遞增運算符
    的頭像 發表于 08-20 11:39 ?1020次閱讀

    TestStand表達式中常用的語法規則和運算符使用

    TestStand也有自己的語言嘛?在回答這個問題之前大家可以想一下在使用TestStand時有一個和語言密切相關的屬性。沒錯那就是表達式(Expressions),在這篇文章中,小編將以Q&A的方式來帶著大家來理解并熟悉TestStand表達式中較為常用的一些語法規則以及運算符使用。
    的頭像 發表于 08-15 18:10 ?1490次閱讀
    TestStand表達式中常用的語法規則和<b class='flag-5'>運算符</b>使用

    PLC中的邏輯運算方式有哪些

    PLC(可編程邏輯控制器)中的邏輯運算方式主要包括以下幾種,這些邏輯運算在PLC編程中扮演著至關重要的角色,用于實現各種復雜的控制邏輯
    的頭像 發表于 07-24 16:55 ?665次閱讀

    cpu的運算器和控制器的作用是什么

    Unit)是CPU中負責執行算術和邏輯運算的部分。它的主要作用包括: 1.1 算術運算運算器可以執行各種算術運算,如加法、減法、乘法、除法等。這些
    的頭像 發表于 06-30 11:15 ?2252次閱讀

    Golang為何舍棄三元運算符

    golang中不存在?:運算符的原因是因為語言設計者已經預見到三元運算符經常被用來構建一些極其復雜的表達式。雖然使用if進行替代會讓代碼顯得更長,但這毫無疑問可讀性更強。
    的頭像 發表于 04-03 15:13 ?706次閱讀

    鴻蒙TypeScript入門學習第5天:【TypeScript 運算符

    運算符用于執行程序代碼運算,會針對一個以上操作數項目來進行運算
    的頭像 發表于 04-01 16:18 ?492次閱讀
    鴻蒙TypeScript入門學習第5天:【TypeScript <b class='flag-5'>運算符</b>】

    C語言程序的結構認識

    兩個符號之間不可以有空格,復合賦值運算符的優先級與賦值運算符的相同。表達式n+=1等價于n=n+1,作用是取變量n中的值增1再賦給變量n,其他復合的賦值運算符運算規則依次類推。
    發表于 03-22 12:30 ?1258次閱讀

    異或門的邏輯符號和邏輯電路組成

    異或門(XOR gate)是數字邏輯電路中常用的一種邏輯門。它的作用是對兩個輸入信號進行邏輯運算,輸出一個結果。
    的頭像 發表于 02-04 14:18 ?1.1w次閱讀
    異或門的<b class='flag-5'>邏輯</b>符號和<b class='flag-5'>邏輯</b>電路組成

    使用ADS并使用ILLD和367DP MCU,賦值運算符沒有按預期運行的原因?

    我正在使用 ADS 并使用 ILLD 和 367DP MCU。 從字面上看,賦值運算符沒有按預期運行。 例如,考慮以下代碼(這是一個極其簡化的示例,實際上,它涉及將SPI結果分配給一個變量以通過
    發表于 01-18 10:43
    主站蜘蛛池模板: 国产精品第一综合首页| 挠黑色超薄丝袜脚心vk40分钟| 欧美 亚洲综合在线一区| 在野外被男人躁了一夜动图| 久久兔费黄A级毛片高清| 征服艳妇后宫春色| 欧美午夜不卡在线观看| 成人精品视频网站| 卫生间被教官做好爽HH视频| 国产探花在线精品一区二区| 亚洲精品不卡在线| 精品午夜寂寞影院在线观看| 稚嫩挤奶h调教h| 秋霞在线观看视频一区二区三区| 国产超碰精久久久久久无码AV| 亚洲精品久久久WWW游戏好玩| 久久理论片| 被窝国产理论一二三影院| 无遮挡h肉3d动漫在线观看| 久久4k岛国高清一区二区| 99蜜桃在线观看免费视频网站| 四房播播开心五月| 久久精品国产欧美日韩99热| GOGOGO高清在线播放韩国| 校花在公车上被内射好舒| 久久精品国产欧美| 超碰超碰视频在线观看| 亚洲 欧美 国产 综合五月天| 快播h动漫网| 国产成人无码WWW免费视频在线| 亚洲午夜精品aaa级久久久久| 欧美日韩一区在线观看| 好男人在线视频| 边做边爱免费视频播放| 亚洲欧美中文字幕网站大全| 欧洲内射XXX高清| 久久4k岛国高清一区二区| 第七色 夜夜撸| 最近2018年手机中文字幕| 午夜快车神马影视| 摸老师丝袜小内内摸出水|