BASIC4MCU | 8051/PIC | DT-516 강좌 | 인터럽트 우선순위
페이지 정보
작성자 키트 작성일2017-08-23 14:27 조회1,360회 댓글0건본문
많은 사람들이 인터럽트 우선 순위에 신경을 많이 쓰지만
경험상 우선 순위가 중요한 경우를 수십년 동안 느껴 본적이 없습니다.
인터럽트는 말그대로 순서없이 발생 하는 것입니다.
A가 먼저 수행 되든 B가 수행 되든
빠뜨리지 않고 실행 되기만 하면 대부분 문제 생기지 않습니다.
8051은 인터럽트 레벨을 지정 할 수 있다고 먼저 글에서 적었습니다.
그것도 인터럽트 실행을 빠뜨리지 않기 위한 방법일 뿐입니다.
AVR은 8051같은 인터럽트 레벨이 없습니다.
모두 동급 레벨이지만 인터럽트 안에서 다른 인터럽트가 걸리면 모두 실행 됩니다.
AVR의 우선 순위를 생각 해 볼까요?
A가 우선 순위가 높고 B가 낮다고 해보죠
동시에 인터럽트가 걸리면 A가 먼저 실행 됩니다.
A가 인터럽트 수행 하다가
B인터럽트도 걸렸으므로 A도중에 B가 실행을 마치고나서
A 인터럽트가 실행을 마칩니다.
인터럽트 시작은 A가 먼저 했지만
실행을 먼저 마친것은 B입니다.
우선순위가 의미가 있을까요??
A가 먼저 실행을 마칠 수 있는 방법은
A 인터럽트 안에서 B인터럽트가 실행 되지 못 하게 인터럽트 디저블 시키는 방법 뿐입니다.
A가 먼저 실행 되든 B가 먼저 실행 되든 대부분의 경우에 문제 안생깁니다.
(만약 문제가 생긴다면, 문제가 생기지 않도록 소스를 작성 해야겠죠, 그런 경우를 본적이 없으므로 잘 모르겠군요)
댓글 0
조회수 1,360등록된 댓글이 없습니다.