Arduino系列之中斷函數


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

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

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

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

 

interrupt  可以被中斷的代碼

nointerrupt  可以被中斷的代碼

外部中斷:

attach interrupt(interrupt,function,mode)

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

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

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()

{}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM