愛伊米

Arduino--語法11

二十二、位操作

22.1 lowByte()

描述:

提取一個變數(例如一個字)的低位(最右邊)位元組。

語法:

low Byte(x)

引數

x:任何型別的值

返回

位元組

22.2 highByte()

描述:

提取一個位元組的高位(最左邊的),或一個更長的位元組的第二低位。

語法:

high Byte(x)

引數

x:任何型別的值

返回

byte

22.3  bit Read()

描述:

讀取一個數的位。

語法:

bit Read(x, n)

引數:

X:想要被讀取的數N:被讀取的位,0是最低有效位(最右邊)

返回

該位的值(0或1)。

22.4  bit Write()

描述:

在位上寫入數字變數。

語法:

bit Write(x, n, b)

引數:

X:要寫入的數值變數

N:要寫入的數值變數的位,從0開始是最低(最右邊)的位

B:寫入位的數值(0或1)

返回

22.5  bitSet()

描述:

為一個數字變數設定一個位。

語句:

bitSet(x, n)

語法:

X:想要設定的數字變數

N:想要設定的位,0是最重要(最右邊)的位

返回

22.6  bit Clear()

描述:

清除一個數值型數值的指定位(將此位設定成0)

語法:

bit Clear(x, n)

引數:

X:指定要清除位的數值N:指定要清除位的位置,從0開始,0表示最右端位

返回值

22.7  bit()

描述:

計算指定位的值(0位是1,1位是2,2位4,以此類推)。

語法:

bit(n)

引數:

n:需要計算的位

返回值

位值

二十三、設定中斷函式

23.1 attach Interrupt()

attach Interrupt(interrupt, function, mode)

描述:

當發生外部中斷時,呼叫一個指定函式。當中斷髮生時,該函式會取代正在執行的程式。

大多數的Arduino板有兩個外部中斷:0(數字引腳2) 和1(數字引腳3) 。

Arduino Mege有四個外部中斷:數字2(引腳21) , 3(引腳20) , 4(引腳19) , 5(引腳18) 。

語法:

interrupt:中斷引腳數

function:中斷髮生時呼叫的函式, 此函式必須不帶引數和不返回任何值。該函式有時被稱為中斷服務程式。

mode:定義何時發生中斷以下四個cont stants預定有效值:

LOW當引腳為低電平時, 觸發中斷

CHANGE當引腳電平發生改變時, 觸發中斷

RISING當引腳由低電平變為高電平時, 觸發中斷

FALLING當引腳由高電平變為低電平時, 觸發中斷。

返回

注意事項:

當中斷函式發生時, delay() 和millis() 的數值將不會繼續變化。當中斷髮生時, 串列埠收到的資料可能會丟失。你應該宣告一個變數來在未發生中斷時儲存變數。

使用中斷:

在微控制器自動化程式中當突發事件發生時,中斷是非常有用的,它可以幫助解決時序問題。一個使用中斷的任務可能會讀一個旋轉編碼器,監視使用者的輸入。

如果你想以確保程式始終抓住一個旋轉編碼器的脈衝,從來不缺少一個脈衝,它將使寫一個程式做任何事情都要非常棘手,因為該計劃將需要不斷輪詢的感測器線編碼器,為了趕上脈衝發生時。其他感測器也是如此,如試圖讀取一個聲音感測器正試圖趕上一按,或紅外線槽感測器(照片滅弧室),試圖抓住一個硬幣下降。在所有這些情況下,使用一箇中斷可以釋放的微控制器來完成其他一些工作。

23.2detach Interrupt()

detach Interrupt(interrupt)

描述:

關閉給定的中斷。

引數:

interrupt:中斷禁用的數(0或者1) 。

二十四、開關中斷

24.1 interrupts() (中斷)

描述:

重新啟用中斷(使用no Interrupts() 命令後將被禁用) 。中斷允許一些重要任務在後臺執行,預設狀態是啟用的。禁用中斷後一些函式可能無法工作,並傳入資訊可能會被忽略。中斷會稍微打亂程式碼的時間,但是在關鍵部分可以禁用中斷。

引數:

返回

24.2no Interrupts() (禁止中斷)

描述:

禁止中斷(重新使能中斷interrupts() ) 。中斷允許在後臺執行一些重要任務, 預設使能中斷。禁止中斷時部分函式會無法工作,通訊中接收到的資訊也可能會丟失。中斷會稍影響計時程式碼,在某些特定的程式碼中也會失效。

引數:

返回