04. external interrupt
TRANSCRIPT
X[Deca] AVR studyKonkuk University. Department of Electronic Engineering
v0.1 by08 기 김정목v0.2 by11 기 정성호
Page 2
Contents
Contents
1 External Interrupt
Page 3
Interrupt
Interrupt
1. ~(sb/sth) (with sth) ( 말 , 행동을 ) 방해하다 [ 중단시키다 / 가로막다 ]
Interrupt ?- 실행중인 프로그램을 일시 중단하고 다른 프로그램을 끼워 넣어 실행시키는 것
Polling ?
- 특정 주기를 가지고 그 주기 마다 처리를 위한 시그널이 들어 왔는지 확인 하는 것
Page 4
External Interrupt
External Interrupt in Atmega128- The External Interrupts 는 INT7:0 pin 에 의해 trigger 된다 .
- Interrupt 를 enable 시키면 해당 pin 이 output 으로 정의 되더라도 interrupt 가 trigger
된다 .
- External interrupt 는 low level / falling edge / rising edge 에 의해 trigger 된다 .
- EICRA / EICRB / EIMSK / EIFR
Interrupt 발생 요건- Global Interrupt Enable
- Each Interrupt Enable
- Interrupt occur
Page 5
External Interrupt
1.EICRA – External Interrupt Control Register A
- INT0 ~ INT3 External interrupt 에 대해서 어떠한 신호를 Sensing 할지 선택
Page 6
External Interrupt
2. EICRB – External Interrupt Control Register B
- INT4 ~ INT7 External interrupt 에 대해서 어떠한 신호를 Sensing 할지 선택
Page 7
Exteranl Interrupt
3. EIMSK – External Interrupt Mask Register
- Global interrupt 가 enable 되어 있고
- EIMSK 의 bit 가 set 되면 ( 사용할 곳에 1 로 지정해주면 )
- 해당 external interrupt 가 enable 된다 .
4. EIFR – External Interrupt Flag Register
- Global interrupt enable / External interrupt enable 상태에서
- interrupt occur ( 발생 ) 이면
- EIFR 의 해당 bit 가 set(1) 된다 .
Page 8
External Interrupt
Global interrupt- sei() : Global interrupt enable
- cli() : Global interrupt disable
Interrupt Service Routine- 인터럽트 이벤트 처리를 위한 코드의 일부 또는 함수
Page 9
External Interrupt_실습 1
S W 5
1
4
2
3
0
V C C
R 1 31 0 k
P D 0 (I N T0 )
S W 6
1
4
2
3
V C C
0
R 1 41 0 k
P D 1 (I N T1 )
C 21 0 3
C 31 0 3
00
1. 실습 1
-LED 가 0.5 초 주기로 순서대로 계속 켜진다 .
-Interrupt 스위치를 누르면 , LED1 로 초기화 된다 .
Page 10
External Interrupt_실습 2
1. 실습 2-1
- LED 가 LED1 부터 LED8 방향으로 1 초 간격으로 켜진다 .
- Interrupt 스위치 1 을 누르면 LED1 부터 LED8 방향으로 켜진다 .
- Interrupt 스위치 2 를 누르면 LED8 부터 LED1 방향으로 켜진다 .
- 끝에 도달하면 (LED1 or LED8) 다른 쪽 끝으로 간다 (LED8 or LED1).
2. 실습 2-2
- LED 가 LED1 부터 LED8 방향으로 1 초 간격으로 켜진다 .
- 스위치 1 을 누르면 LED1 부터 LED8 방향으로 켜진다 .
- 스위치 2 를 누르면 LED8 부터 LED1 방향으로 켜진다 .
- 끝에 도달하면 (LED1 or LED8) 다른 쪽 끝으로 간다 (LED8 or LED1).
Page 11
External Interrupt_실습 _2-1답
Page 12
External Interrupt_실습 _2-2답
Page 13
External Interrupt_실습 3
1. 실습 3-1
- Interrupt 스위치 1 을 누르고 있는 동안 LED 전체가 켜진 상태로 유지 .
- Interrupt 스위치 1 를 떼면 , LED 전체가 꺼진 상태로 유지 .
2. 실습 3-2
- LED 가 LED1 부터 LED8 방향으로 0.5 초 간격으로 켜진다 .
- 끝에 도달하면 (LED1 or LED8) 다른 쪽 끝으로 간다 (LED8 or LED1).
- LED 는 계속 진행한다 .
- Interrupt 스위치 1 을 누를 때 , USART 통신으로 화면에 O( 대문자 o) 출력 .
- Interrupt 스위치 2 를 눌렀다 땔때 , USART 통신으로 화면에 X( 대문자 x) 출력 .
Page 14
External Interrupt_실습 _3_1답
Page 15
External Interrupt_실습 _3_2답