외부 인터럽트



인터럽트 처리


(이 다음 내용부터는 ATmega128을 기준으로 설명합니다.)

ATmega128에는 리셋을 포함하여 총 35개의 인터럽트 소스를 제공한다.



위 그림은 ATmega128에서 제공하는 인터럽트 소스들을 표로 나열한 것이다.

(출처 : http://miobot.tistory.com/25)


프로그래밍 언어에서 연산자들의 우선순위가 존재하듯이 인터럽트 레지스터 들에도 우선순위가 존재한다.

인터럽트 레지스터의 우선순이는 가장 낮은 주소를 갖는 인터럽트가 가장 높은 우선순위를 갖는다.

즉 위에 표를 보면 RESET 레지스터가 $0000으로 가장 높은 우선순위를 가지고 INT0이 $0002로 두번째 높은 우선순위를 갖는다.


인터럽트가 발생하여 인터럽트 서비스 루틴으로 점프하게 되면 전역 인터럽트 인에이블 비트인 SREG 레지스터의 I비트는 0으로 셋되며 모든 인터럽트가 무시된다. 이는 사용자가 직접 인에이블 시키기 위하여 셋 할수도 있다.


이벤트에 의하여  발생하는 인터럽트의 경우  이벤트가 발생했을 때 인터럽트 플래그가 셋된다. 만약 인터럽트 플래그가 클리어되고 인터럽트 조건이 유지된다면 인터럽트 플래그는 다음 이벤트가 발생할 때 까지 셋되지 않는다.


다음에는 외부인터럽에 대해서 더 자세하게 알아보자


'임베디드 시스템' 카테고리의 다른 글

AVR, Atmega128, 외부 인터럽트  (0) 2023.06.20
외부 인터럽트 개념 <인터럽트란?>  (0) 2016.06.23

+ Recent posts