国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

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

發(fā)布時(shí)間:2022-4-1 11:09    發(fā)布者:eechina
關(guān)鍵詞: Bitwise , 邏輯運(yùn)算符
來(lái)源:Digi-Key
作者:Don Johanneck

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

概覽

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

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

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



AND Bitwise 運(yùn)算符

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


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

I/O 組合

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


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

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

編程

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


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


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

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


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

結(jié)論:

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

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 技術(shù)熱潮席卷三城,2025 Microchip中國(guó)技術(shù)精英年會(huì)圓滿收官!
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國(guó)技術(shù)精英年會(huì)深圳站回顧
  • Microchip第22屆中國(guó)技術(shù)精英年會(huì)上海首站開(kāi)幕
  • Microchip第22屆中國(guó)技術(shù)精英年會(huì)——采訪篇
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表