99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

用Bitwise邏輯運(yùn)算符進(jìn)行設(shè)計(jì)

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

掃碼添加小助手

加入工程師交流群

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

概覽

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

項(xiàng)目參數(shù)

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

pYYBAGJVJA2AVhXbAACH6rtTBqU965.jpg

AND Bitwise 運(yùn)算符

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

poYBAGJVJA2ASw1mAAA0nZ7R75k254.jpg

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

I/O 組合

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

pYYBAGJVJA2AXA5zAAB06ZELRI0517.jpg

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

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

編程

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

poYBAGJVJA6ANN_iAABW9Z5ZB98917.jpg

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

pYYBAGJVJA6AT_IEAABSe6eZ2PI384.jpg

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

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

poYBAGJVJA6AafwPAAA2EFniX70951.jpg

圖 5:電機(jī)控制的中斷服務(wù)例程。

結(jié)論:

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

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

    關(guān)注

    114

    文章

    17113

    瀏覽量

    184321
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3298

    瀏覽量

    118959
  • 邏輯運(yùn)算
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    基于LockAI視覺識別模塊:C++圖像的基本運(yùn)算

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

    VirtualLab Fusion應(yīng)用:靈活的區(qū)域定義

    詳細(xì)介紹了區(qū)域配置的過程。 區(qū)域定義 簡單區(qū)域 多邊形區(qū)域 采樣區(qū)域 復(fù)合區(qū)域 更復(fù)雜的形狀,如甜甜圈或棋盤區(qū)域,可以使用復(fù)合區(qū)域類型生成,它根據(jù)邏輯運(yùn)算符組合多個單獨(dú)的區(qū)域。 使用不同邏輯運(yùn)算符組成的區(qū)域 用作優(yōu)化區(qū)域 用作評估區(qū)域 用于光導(dǎo)元件 分割
    發(fā)表于 02-24 09:47

    面向高頻邏輯運(yùn)算的鋰離子電容二極管

    離子電子耦合邏輯運(yùn)算被認(rèn)為是實(shí)現(xiàn)深度類腦計(jì)算的可行途徑之一,然而高頻離子電子耦合器件的缺失大大限制了這一領(lǐng)域的快速發(fā)展。
    的頭像 發(fā)表于 01-20 14:43 ?542次閱讀
    面向高頻<b class='flag-5'>邏輯運(yùn)算</b>的鋰離子電容二極管

    復(fù)合的邏輯運(yùn)算

    符合邏輯運(yùn)算
    的頭像 發(fā)表于 01-16 09:10 ?397次閱讀
    復(fù)合的<b class='flag-5'>邏輯運(yùn)算</b>

    VirtualLab Fusion:區(qū)域定義

    更復(fù)雜的形狀,如甜甜圈或棋盤區(qū)域,該類型使用邏輯運(yùn)算符組合多個單獨(dú)的區(qū)域。 **使用不同邏輯運(yùn)算符組合區(qū)域** 我們演示了不同的運(yùn)算符對(解析定義的)橢圓和代表LightTrans標(biāo)志的采樣區(qū)域的組合
    發(fā)表于 01-06 08:56

    邏輯異或運(yùn)算符在Python中的用法

    ,Python中的 ^ 符號實(shí)際上是一個按位異或運(yùn)算符,用于對整數(shù)的二進(jìn)制表示進(jìn)行異或操作。 盡管如此,我們?nèi)匀豢梢酝ㄟ^一些方法來實(shí)現(xiàn)邏輯異或的功能,即當(dāng)兩個布爾值不同時為真,相同時為假。這可以通過使用
    的頭像 發(fā)表于 11-19 09:46 ?857次閱讀

    C語言指針運(yùn)算符詳解

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

    Verilog語法中運(yùn)算符的用法

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

    基于FPGA的計(jì)算器設(shè)計(jì)

    本文通過FPGA實(shí)現(xiàn)8位十進(jìn)制數(shù)的加、減、乘、除運(yùn)算,通過矩陣鍵盤輸入數(shù)據(jù)和運(yùn)算符,矩陣鍵盤的布局圖如下所示。該計(jì)算器可以進(jìn)行連續(xù)運(yùn)算,當(dāng)按下等號后,可以直接按數(shù)字
    的頭像 發(fā)表于 10-24 14:28 ?1283次閱讀
    基于FPGA的計(jì)算器設(shè)計(jì)

    技術(shù)干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運(yùn)算符與優(yōu)先級

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

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

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

    MATLAB(4)--MATLAB基本運(yùn)算

    。 邏輯運(yùn)算 邏輯運(yùn)算符:&(與)、|(或)和~(非)。 設(shè)參與邏輯運(yùn)算的兩個標(biāo)量a和b,那么運(yùn)算規(guī)則為: a&b:a、b全為非零時,
    發(fā)表于 09-06 10:18

    c語言從右到左的運(yùn)算符有哪些

    以下是一些主要的從右到左運(yùn)算的C語言運(yùn)算符: 函數(shù)調(diào)用運(yùn)算符 ( () ):當(dāng)您調(diào)用一個函數(shù)時,參數(shù)列表是從右到左進(jìn)行求值的。 后置遞增運(yùn)算符
    的頭像 發(fā)表于 08-20 11:39 ?1844次閱讀

    TestStand表達(dá)式中常用的語法規(guī)則和運(yùn)算符使用

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

    PLC中的邏輯運(yùn)算方式有哪些

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