Page 74 - 최강 아두이노 퍼스트 참고서
P. 74
3.14.7.2 detachInterrupt(interrupt)
인터럽트 해제 함수입니다.
interrupt: 인터럽트 포트 번호입니다. 2 개가 있으므로 0 번과 1 이 들어갈 수 있습니다. (우노
R3)
아래의 예제 코드는 CHANGE (LOW 에서 HIGH, 또는 HIGH 에서 LOW) 경우에 blink 라는
함수를 실행하는 예제 코드입니다.
// http://arduino.cc/en/Reference/AttachInterrupt 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;
}
명확히 이해하기 위해 코드를 아래와 같이 추가 합니다.
CHANGE 인터럽트 이벤트 발생시 실행되는 state 변화 횟수를 저장하여, 시리얼 포 트
로 출력해주는 예제 코드입니다.
CHANGE 인터럽트 이벤트를 발생시키기 위해서는 D2 포트에 간단한 버튼, 로터리 엔
코더 등을 연결하여 HIGH, LOW 변경해 보도록 합니다.
로터리 엔코더는 대부분 시계방향, 또는 반시계방향 변경하면 LH->HH, 또는 HL>LL
등의 신호가 발생됩니다.
74