attachInterrupt(interrupt, function, mode)
描述:
當發生外部中斷時,調用一個指定函數。當中斷髮生時,該函數會取代正在執行的程序。大多數的Arduino板有兩個外部中斷:0(數字引腳2)和1(數字引腳3)。
arduino Mege有四個外部中斷:數字2(引腳21),3(20針),4(引腳19),5(引腳18)。
參數:
interrupt:中斷引腳數
function:中斷髮生時調用的函數,此函數必須不帶參數和不返回任何值。該函數有時被稱爲中斷服務程序。
mode:定義什麼時候發生中斷如下四個contstants預約有效值:git
返回值:
無
注意事項:
當中斷函數發生時,delay()和millis()的數值將不會繼續變化。當中斷髮生時,串口收到的數據可能會丟失。你應該聲明一個變量來在未發生中斷時儲存變量。
使用中斷:
在單片機自動化程序中當突發事件發生時,中斷是很是有用的,它能夠幫助解決時序問題。一個使用中斷的任務可能會讀一個旋轉編碼器,監視用戶的輸入。
若是你想以確保程序始終抓住一個旋轉編碼器的脈衝,歷來不缺乏一個脈衝,它將使寫一個程序作任何事情都要很是棘手,由於該計劃將須要不斷輪詢的傳感器線編碼器,爲了遇上脈衝發生時。其餘傳感器也是如此,如試圖讀取一個聲音傳感器正試圖遇上一按,或紅外線槽傳感器(照片滅弧室),試圖抓住一個硬幣降低。在全部這些狀況下,使用一箇中斷能夠釋放的微控制器來完成其餘一些工做。 函數
int pin = 13; volatile int state = LOW; void setup() { pinMode(pin, OUTPUT); attachInterrupt(0, blink, CHANGE); } void loop() { digitalWrite(pin, state); } void blink() { state = !state; }
detachInterrupt(interrupt)
描述:
關閉給定的中斷。
參數:
interrupt: 中斷禁用的數(0或者1)。oop