attachInterrupt()

Parent Previous Next

인터럽트 서비스를 등록합니다.


PC-1S는 2개의 인터럽트를 가지고있고 PC-4S와 PC-7S는 6개의 인터럽트를 가지고 있습니다.


보드

인터럽트 0

인터럽트 1

인터럽트 2

인터럽트 3

인터럽트 4

인터럽트 5

PC-1S

2

3





PC-4S

2

3

21

20

19

18

PC-7S

2

3

21

20

19

18



사용방법

attachInterrupt(interrupt, ISR, mode)


interrupt : 인터럽트 번호(핀번호 아님)

ISR : 인터럽트 발생시 수행할 callback 함수

mode : 인터럽트 수행 조건 - LOW, CHANGE, RISING, FALLING

LOW: pin 이 LOW 상태일 때

CHANGE: pin 입력 값이 변경 될 때

RISING: LOW -> HIGH 로 변경 될 때

FALLING: HIGH -> LOW 로 변경 될 때


리턴값

없음


예제 코드

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;

}


참고사항

callback 함수 내부에서는 delay()가 작동하지 않으며 millis()가 반환하는 경과 시간이 증가하지 않습니다. 함수가 실행되는 동안 수신되는 시리얼 데이터는 유실됩니다.


callback 함수 내부에서 수정하려는 변수는 volatile로 선언되어 있어야 합니다.

Created with the Personal Edition of HelpNDoc: Create iPhone web-based documentation