Arduino系列之中斷函數

今天我將簡單記錄中斷函數git

函數分爲外部中斷和定時中斷函數

外部中斷的定義:通常由外設發出中斷請求,如:鍵盤中斷、打印機中斷、外部中斷需外部中斷源發出中斷請求才能發中斷。oop

定時中斷的定義:是指主程序在運行一段程序事後自動進行的中斷服務程序。flash

 

interrupt  能夠被中斷的代碼it

nointerrupt  能夠被中斷的代碼io

外部中斷:function

attach interrupt(interrupt,function,mode)請求

1)interrupt:中斷號,UNO只用0,1,即表明D2,D3口程序

2)function:調用中斷函數,中斷髮生時調用的函數im

3)mode:中斷觸發模式

UNO R3支持四種模式

low  當針腳輸入爲低時,觸發中斷

change 當針腳輸入發生變化時,觸發中斷

rising 當針腳由低變高時,觸發中斷

falling 當針腳由高到低時,觸發中斷

1.中斷服務程序不可以有參數和返回值,即void Function name(void){}

2.在中斷函數中delay()函數將不起做用

3.在中斷函數中millis()函數的值不會增長

4.獲得的串行數據將會丟失

5.需在中斷函數內部更改的值需聲明爲volatile類型

detach interrupt (interrupt)

定時中斷

常見的定時庫有FlexiTimer2.h和Ms.Timer2.h

void start()         開啓定時中斷

void stop()         關閉定時中斷

 

 

#include<MsTimer2.h>

void flash()

{

static boolean cutput=HIGH;

digitalWrite(13,OUTPUT);

OUTPUT=!OUTPUT;

MsTimer2:set(500,flash);

MsTimer2:start();

 

}

void loop()

{}

相關文章
相關標籤/搜索