본문 바로가기

AVR 기초/인터럽트

[AVR 기초] 인터럽트(Interrupt)란

우선 인터럽트에 대해 알려드리겠습니다.

 

마이크로프로세서에서 인터럽트

마이크로프로세서(CPU)가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리를 할 수 있도록 하는것을 말합니다.

 

폴링이 대상을 주기적으로 감시하면서 상황이 발생하면 실행합니다. 이런 작업은 장치의 상태를 읽는데 마이크로프로세서의 자원이 낭비됩니다.

 

이와 다르게, 인터럽트는 일을 처리해 달라고 요청하는 수단입니다. 해당 하드웨어가 CPU에게 요청하므로 빨리 처리가 된다면 데이터 손실 위험이 작아지고, 필요할 때 처리되는 경향이 있어서 폴링보다 유리합니다.

마이크로프로세서는 인터럽트를 감지하면 지금 실행중인 코드를 중단하고 해당 입터럽트 처리 코드로 점프하여 일을 수행합니다. 이러한 인터럽트 처리를 위한 루틴을 ISR, Interrupt Service Routine이라고 합니다.