二十二、位操作
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() ) 。中斷允許在後臺執行一些重要任務, 預設使能中斷。禁止中斷時部分函式會無法工作,通訊中接收到的資訊也可能會丟失。中斷會稍影響計時程式碼,在某些特定的程式碼中也會失效。
引數:
無
返回
無