[아두이노] [강좌] 21. Interrupt(인터럽트) (1) - 인터럽트란 무엇인가

인터럽트란 무엇인가?


네이버 지식 백과 사전에서 아주 간단하고 정확하게 설명해주고 있다다음은 네이버 지식 백과 사전의 내용. (그러고 보니 지식 백과는 구글보다 네이버지식인 말고지식 백과.)


(전에 구글이 좋다고 해서 왠지 네이버 좋다는 얘기도 해야할 것 같은..)moon_and_james-20 


 

인터럽트(Interrupt)


실행 중인 프로그램을 일시 중단하고 다른 프로그램을 끼워 넣어 실행시키는 것인터럽트 요인이 되는 조건이 생겼을 때 실행 중인 프로그램(A)을 중단하여 강제적으로 특정한 주소로 제어를 옮기고준비되어 있는 인터럽트 처리 프로그램(B)을 실행시키며그 처리가 끝나면 원래의 프로그램으로 되돌아가서 계속 실행시킨다프로그램 처리의 효율화입출력 장치의 동시 동작 온라인 처리의 효율화를 기할 수 있다인터럽트 요인의 종류로는 입출력 종료 인터럽트프로그램 인터럽트감시 프로그램 호출장해 인터럽트 등이 있다.

f0efab7f0da48241a7b224b256d18659.jpg

[네이버 지식백과] 인터럽트 [interrupt] (전자용어사전, 1995.3.1, 성안당)





기억해야 할 부분은 실행 중인 프로그램을 일시 중단하고, “인터럽트 요인이 되는 조건이 생겼을 때” 다른 프로그램을 끼워 넣어 실행시키는 것이라는 것.



아두이노에서 실행 중인 프로그램이란 loop() 함수의 내용을 말하고다른 프로그램이란 사용자가 직접 정의한 함수의 내용을 뜻한다인터럽트 요인이 되는 조건에는 굉장히 여러 가지가 있지만지금 설명하려는 조건은 핀의 입력 상태가 변하는 경우만을 이야기 한다.

 

 

정리하면loop() 함수의 내용과 상관 없이 지정한 핀의 상태가 변경되었을 때 사용자가 정의한 기능의 함수를 무조건 실행하도록 하는 것이 아두이노의 (외부인터럽트라는 말.

 

 

핀의 입력 상태에 따라 인터럽트가 발생하기 때문에 외부 요인에 대한 인터럽트라고 하여 외부 인터럽트라고도 한다이 기능은 하드웨어 적으로 지정된 기능이기 때문에 지정된 핀만 사용할 수 있다. (듀에(Due)의 경우는 예외모든 핀에서 사용할 수 있다듀에는 칩이 다르기 때문)

 

 

외부 인터럽트의 종류는 4가지이며아래의 4가지 상황 중 원하는 상황에만 인터럽트가 발생하도록 지정하여 사용할 수 있다.

 

 

    FALLING – 신호가 HIGH에서 LOW로 바뀔 때 인터럽트 발생

    RISING – 신호가 LOW에서 HIGH로 바뀔 때 인터럽트 발생

    CHANGE – 신호가 바뀔 때 인터럽트 발생 (FALLING + RISING)

    LOW – 신호가 LOW일 때 인터럽트 발생, LOW인 동안 반복 호출 됨.

 


만일 신호가 아래와 같이 HIGH→LOW→HIGH로 변화한다고 가정했을 경우 인터럽트가 발생하는 지점을 아래 그림에 표시하였다. “LOW” 인터럽트는 신호가 LOW일 경우 지속적으로 발생한다. 


7b52feebc2741dc72a2731125f9601d1.png



아두이노 메가(Mega 2560/ADK)의 경우 6개의 인터럽트 핀을 가지고 있고레오나르도(Leonardo)를 제외한 대부분의 보드(우노(Uno) 포함)에서는 2개의 인터럽트 핀을 가지고 있다레오나르도는 5개의 인터럽트 핀을 가지고 있다.

 

다음은 아두이노 보드 종류에 따른 인터럽트 핀 번호이다.


8a039333d69f195952aa8804e551071f.png
 

출처 : arduino.cc



우노 등의 경우에는 2번 핀과 3번 핀을 인터럽트 핀으로 사용할 수 있으며, 메가의 경우에는 2, 3번 핀과 18~21번 핀을 인터럽트 핀으로 사용할 수 있다.


맨 윗줄에 “int.번호는 각 핀에 할당된 인터럽트 번호이며, 인터럽트를 설정할 때 핀 번호가 아닌 인터럽트 번호가 사용되므로 기억해둬야 한다. 핀 번호와는 전혀 다른 의미를 가지므로 헷갈리지 않도록 유의하자. 



그럼, 인터럽트는 언제 어떻게 사용되는 것인가?


는, 다음 강좌에서. 

다음 강좌는 예제 소스로 인해 길어질 예정이므로 미리 마음의 준비를...



brown_and_cony-78



그럼 마음의 준비를 하고 다음 강좌에서 만나요, 안녕~

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

임베디드 보드

번호 제목 글쓴이 날짜 조회수
58 아두이노 [강좌] 50. 와이파이 통신 (4) - WebServer 예제 icon 양재동메이커 03-21 14,289
57 아두이노 [강좌] 49. 와이파이 통신 (3) - WebClient 예제 icon 양재동메이커 03-21 17,702
56 아두이노 [강좌] 48. 와이파이 통신 (2) - 커맨드 모드 사용하기 (WiFly 쉴드) icon 양재동메이커 03-20 12,942
55 아두이노 [강좌] 47. 와이파이 통신 (1) - 와이파이란 무엇인가 icon 양재동메이커 03-20 17,602
54 아두이노 [강좌] 46. 블루투스 통신 (5) - 프로토콜 만들기 (2) icon 양재동메이커 03-20 13,143
53 아두이노 [강좌] 45. 블루투스 통신 (4) - 프로토콜 만들기 (1) icon 양재동메이커 03-20 14,706
52 아두이노 [강좌] 44. 블루투스 통신 (3) - RN42 모듈에서 직접 접속하기 icon 양재동메이커 03-20 11,652
51 아두이노 [강좌] 43. 블루투스 통신 (2) - 스마트폰과 통신하기 icon 양재동메이커 03-20 13,821
50 아두이노 [강좌] 42. 블루투스 통신 (1) - RN42 블루투스 모듈 실습하기 icon 양재동메이커 03-20 15,592
49 아두이노 [강좌] 41. 서보 모터 (2) - Servo 함수 알아보기 icon 양재동메이커 03-20 17,147
48 아두이노 [아두이노 강좌] 40. 서보 모터 (1) - 서보 모터 동작 방식 icon 양재동메이커 03-20 17,674
47 아두이노 [강좌] 39. 스텝 모터 (3) - 모터 드라이버 EasyDriver(A3967) 사용하기 icon 양재동메이커 03-20 13,329
46 아두이노 [강좌] 38. 스텝 모터 (2) - Stepper 함수 알아보기 icon 양재동메이커 03-20 17,256
45 아두이노 [강좌] 37. 스텝 모터 (1) - 스텝 모터 동작 방식 icon 양재동메이커 03-20 13,752
44 아두이노 [강좌] 36. DC 모터 (2) - DC 모터 드라이버 실습하기 (TB6612FNG) icon 양재동메이커 03-20 13,376
43 아두이노 [강좌] 35. DC 모터 (1) - DC 모터 동작 방식 icon 양재동메이커 03-20 15,946
42 아두이노 [강좌] 34. SPI 통신 (3) - 기압 센서(MPL115A1) 실습하기 icon 양재동메이커 03-20 12,664
41 아두이노 [강좌] 33. SPI 통신 (2) – SPI 함수 알아보기 icon 양재동메이커 03-20 19,549
40 아두이노 [강좌] 32. SPI 통신 (1) - SPI 통신이란 무엇인가 icon 양재동메이커 03-20 24,575
39 아두이노 [강좌] 31. I2C 통신 (3) - 온도 센서(TMP102) 실습하기 icon 양재동메이커 03-20 19,672