5.외부 인터럽트 및 내부 인터럽트

5.1 특징 및 기능

1) 인터럽트는 어떤 처리 중에 그보다 중요한 처리를 위한 처리 방식입니다. 즉 어떤 처리 중에 현재 하던 작업을 잠시 멈추고 중요한 작업을 먼저 한 후 다시 기존에 하던 작업을 수행 합니다. 중요한 작업도 중요도가 낮아지는데 어떤 것이 먼저 처리 될지 선택 되어져야 합니다. 이를 위해 인터럽트 간의 우선순의가 존재 합니다. 인터럽트 처리 중 에도 그보다 높은 우선순위 인터럽트의 경우 높은 순위의 인터럽트부터 먼저 처리를 합니다.

2) 인터럽트 종류

RESET 1개

외부 인터럽트 8개

Timer0 인터럽트 2개

Timer1 인터럽트 5개

Timer2 인터럽트 2개

Timer3 인터럽트 5개

UART0 인터럽트 3개

UART1 인터럽트 3개

ADC 인터럽트 1개

SPI 인터럽트 1개

EEPROM 인터럽트 1개

Analog Comp 인터럽트 1개

I2C 인터럽트 1개

SPM 인터럽트 1개

 

3) ATmega 128은 인터럽트 우선순위가 H/W 적으로 설정되어 있으며 그 레벨을 조정할 수는 없습니다.

 

 

4) 외부 인터럽트

- 외부 인터럽트는 INT0 ~ 7 번의 트리거 동작으로 발생합니다.

- 트리거신호는 LOW 레벨 / 상승 엣지(rising edge)/하강 엣지(falling edge) 방식을 지원합니다.

- I/O의 입/출력 설정에 관계없이 인터럽트가 발생합니다.

 

5) 외부 인터럽트 레지스터

- SREG (Status Register)

Bit7. I (Global Interrupt Enable) : 모든 인터럽트를 활성화 하도록 설정 합니다.

- EIFR (External Interrupt Flag Register)

각각의 외부 인터럽트 사용여부를 설정합니다. ( 1: 설정)

- EICRA (External Interrupt Control Register A)

외부 인터럽트중 0~ 3번까지의 트리거 방식을 LOW/상승 엣지/하강 엣지 중에 선택합니다.

- EICRB (External Interrupt Control Register B)

외부 인터럽트중 4~ 7번까지의 트리거 방식을 LOW/상승 엣지/하강 엣지 중에 선택합니다.

ISCn1

ISCn0

설명

0

0

LOW 레벨 에서 인터럽트 발생

0

1

사용 안함

1

0

하강 엣지(falling edge) 에서 인터럽트 발생

1

1

상승 엣지(rising edge) 에서 인터럽트 발생

* 인터럽트 발생 포인트

LOW 레벨

하강 엣지(falling edge)

상승 엣지(rising edge)

+ Recent posts