- (1) 인터럽트 (interrupt)
- ㄴ CPU 외부의 하드웨어적인 요구에 의해 정상적인 프로그램의 실행 순서를 변경하여 명령한 작업을 수행한 후에 다시 원래의 프로그램으로 복귀하는것
- 인터럽트 발생원인에 따른 분류
│ └ 외부 인터럽트
└소프트웨어 인터럽트
- 인터럽트 발생시 마이크로프로세서의 반응 방식에 따른 분류
└차단 불가능 인터럽트(NMI : non-maskable interrupt)
차단 가능한 인터럽트를 마스크 인터럽트라 하는데 EIMSK같은 마스크가 존재하는 interrupt를 뜻한다.
차단이 불가능한 인터럽트를 논 마스크 인터럽트라 하는데 제일 대표적인 인터럽트가 Reset(백터 0번지)이다.
- 요샌 차단불가능한 NMI 인터럽트를 잘 만들지 않음
초소형 CPU를 DMA(Direct Memory Access)컨트롤러라고 함.
- ex) 창고에서 연탄을 다른 곳으로 옮길때엔 사람이 직접 들어 이동하여 옮겨야하지만, 창고에 초소형 CPU가 장착되어있으면 사람이 이동하지 않고 창고에 다른 곳으로 옮기라 명령만 내려도 된다. (로봇과 같이 되었
- 기 때문에 명령만 제대로 내리면 됨)
인터럽트의 처리 과정
인터럽트 요청 신호검출 | 인터럽트 우선순위 제어 / 허용 여부 판단 | 인터럽트 처리루틴 시작 번지 확인 | 복귀주소 / 레지스터 저장 | 인터럽트 서비스 루틴(ISR) 실행 | 인터럽트 서비스 루틴 종료 / 주프로그램으로 복귀 |
ATmega2560의 PCINT를 쓸건데 PORTJ PIN을 사용할 것이다.
PORTJ의 사용 PCINT는 PJ0 (RXD3/PCINT9) PCINT의 9~ 사용함 그렇기 때문에 PCINT2벡터를 사용한다.
PCINT0~7 - PCINT0 사용 (PCINT안에는 8개씩 할당 되어있기 때문, 그 8개 중 아무거나 신호를 보내도 PCINT0벡터를 호출한다.)
PCINT8~15 - PCINT1 사용
PCINT16~23 - PCINT2 사용
Vectors Table
~~~~수업~~~~
ATmega2560 인터럽트로 7 Segment의 값 증가 / 감소 시키기
요렇게 생긴 7 Segment를 받았당!
(생략생략..)
-소스-
'교육 > ATmega2560' 카테고리의 다른 글
ATmega2560 증/감 인터럽트와 EEPROM사용하기 (0) | 2014.05.30 |
---|---|
7 Segment / 인터럽트를 이용하여 숫자 증감하기 (0) | 2014.05.29 |
ATmega2560 TimerCounter와 인터럽트 이용하여 7 Segment증가시키기 (0) | 2014.05.27 |
ATmega2560 - 7 Segment연결 (0) | 2014.05.26 |
ATmega2560 / LED,LCD 연결과 작동 (0) | 2014.05.22 |