ARDUINO 中斷

設置中斷函數

 

attachInterrupt()

attachInterrupt(interrupt, function, mode) 
描述: 
當發生外部中斷時,調用一個指定函數。當中斷髮生時,該函數會取代正在執行的程序。大多數的Arduino板有兩個外部中斷:0(數字引腳2)和1(數字引腳3)。 
arduino Mege有四個外部中斷:數字2(引腳21),3(20針),4(引腳19),5(引腳18)。 
參數: 
interrupt:中斷引腳數 
function:中斷髮生時調用的函數,此函數必須不帶參數和不返回任何值。該函數有時被稱爲中斷服務程序。 
mode:定義什麼時候發生中斷如下四個contstants預約有效值:git

  • LOW: 當引腳爲低電平時,觸發中斷 
  • CHANGE: 當引腳電平發生改變時,觸發中斷 
  • RISING: 當引腳由低電平變爲高電平時,觸發中斷 
  • FALLING: 當引腳由高電平變爲低電平時,觸發中斷 

返回值: 
無 
注意事項: 
當中斷函數發生時,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()

detachInterrupt(interrupt) 
描述: 
關閉給定的中斷。 
參數: 
interrupt: 中斷禁用的數(0或者1)。oop

相關文章
相關標籤/搜索