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
   69   70   71   72   73   74   75   76   77   78   79