티스토리 뷰

정보통신 및 로봇제어시스템

외부 인터럽트

시작이반입니다 2021. 7. 16. 07:00

외부 인터럽트

외부 인터럽트(External interrupt)에 대해서는 앞에서 부분적으로 설명했지만 여기서 종합 설명합니다. 외부 인터럽트는 핀 INT7~핀 INT0의 레벨 또는 에지 트리거 인터럽트입니다. 즉 이 인터럽트는 외부장치가 ATmega128의 핀 INT7~INTO에 전압 레벨을 바꿀 때 low level(0 Volt)이나 논리 변화나 상승에지나 하강에지에서 발생되는데, low level에서 발생되 느냐, 논리 레벨의 변화에서 발생되느냐, 상승에지(rising edge)에서 발생되느냐 아니면 하강에지(falling edge)에서 발생되느냐는 전술한 바와 같이 EICRA 및 EICRB 레지스터의 내용에 따라 결정됩니다. 아무튼 INT7~INT0에 유효한 레벨 또는 에지가 들어오면 EIFR 레지스터의 INTF7~INTFO 비트는 1로 세트되고, 그 이전에 I(SREG 비트 7)=1, INT7~INTO(EIMSK의 비트 7~0)=1이면 INT7~INT0의 외부 인터럽트가 발생되며, 3~4 명령사이클 후에는 I 비트가 0으로 자동적으로 클리어되어 또 다른 인터럽트의 발생을 금지시킵니다. 이 인터럽트는 EIMSK의 INT7~INTO 비트를 클리어함으로써 금지시킬 수 있습니다. 앞에서 언급한 바와 같이, 인터럽트 서비스 루틴에서는 명령에 의해서 INTF7 또는 INTF0를 클리어 할 필요가 없습니다. 이들 플래그는 인터럽트가 인정될 때 자동적으로 클리어 되기 때문입니다. INT 외부 인터럽트는 SLEEP으로부터 프로세서를 깨울 수 있는데, 이것은 SLEEP으로 들어가기 전에 EIMSK의 INT7~INTO 비트가 세트되어 있는 경우에 한합니다. INT(7:0)가 SLEEP 이전에 세트되어 있고, I=1이면 SLEEP으로부터 깨어난 후 INTx 인터럽트로 들어 갑니다.

'정보통신 및 로봇제어시스템' 카테고리의 다른 글

동기식 통신  (0) 2021.07.20
USART의 개요  (0) 2021.07.18
인터럽트 우선순위  (0) 2021.07.14
인터럽트 발생 조건  (0) 2021.07.09
인터럽트 소스  (0) 2021.07.07
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함