보통 마이크로프로세서(컨트롤러)에서 어떤 신호를 catch 하기 위해서는
항상 감시를 해야 됩니다.
쉽게 생각하여 예를 들면,
스위치를 누르는 것을 확인하기 위해서는 스위치가 눌러졌다는 것을
알아야 합니다.
폴링방식은 while문등을 이용해서 계속 감시를 하다가 눌러졌을때
어떤 해당하는 일을 하는 것이지요.
while(1){
if(스위치=눌러졌음){
........ }
else{
........}
}
그런데 이런 폴링방식은 프로세서가 계속 활당되어야 하기 때문에
제법 긴 프로그램을 돌릴때에는 문제가 있겠지요.
속도가 느려진다거나 타임이 안맞을때에는 스위치가 눌러졌는지
확인을 못할 수도 있습니다.
이에 반해 인터럽터 방식은 프로세서가 다른일을 하다가 인터럽터가
걸릴때 인터럽트 루틴에서 그에 해당하는 일만 하면 되므로 훨씬
효율적입니다.
위의 스위치 같은 경우는 외부 인터럽트를 사용하면 될 것입니다.
스위치가 눌려지면 외부 인터럽트가 걸리고 인터럽트 루틴으로 가서
해당하는 일을 수행하고 끝나면 메인으로 복귀합니다.
void main(void){
......다른일을 한다
}
interrupt{
.....인터럽트가 걸리면 여기 일을 한다
그리고 메인으로 돌아간다.
}
실제 범용마이크로 프로세서는(일반적인 컴퓨터) 좀 다르겠지만
일반 마이크로 프로세서에서의 기본적인 방식의 개념으로 이해
하시면 되겠네요.
※ 이 글은 개인적인 공부를 위해 작성함을 알려드립니다.
| 2020년 1월 13일 IT - Oracle Timestamp & Flashback (0) | 2020.01.13 |
|---|---|
| 2020년 1월 9일 IT - 데이터 3법 (0) | 2020.01.09 |
| 2020년 1월 9일 IT - MDM( Mobile Device Management ) (0) | 2020.01.09 |
| 2020년 1월 7일 IT - Android 강좌 No.1 (0) | 2020.01.07 |
| 2020년 1월 6일 IT - [Uipath] Get Credential Password use (0) | 2020.01.06 |
댓글 영역