avr_interrupt
Download
Report
Transcript avr_interrupt
ATMega128 External Interrupt
KyungHee Univ.
2-0
인터럽트의 개요
Interrupt : 외부 장치의 요구에 의해서 현재 실행 중인 프로그램을
잠시 멈추고, Interrupt에 의하여 요구된 작업을 먼저 수행한 후에 다
시 원래의 프로그램으로 복귀하여 실행 한다.
주변장치의 서비스 요청에 맞추어(동기 하여) 서비스를
실행 한다.
Embedded System의 Program은 대부분 Interrupt
Drive 방식으로 작성 한다.
Interrupt의 처리 과정
Main Routine
Main Routine
Interrupt Routine
KyungHee Univ.
2-1
인터럽트의 처리 순서
2. Vector Table 참조
Vector Table
3. ISR으로 Jump
1. Interrupt 발생
4. ISR 종료후 원래
처리중인 Program
으로 복귀
Program Memory
ISR 1
ISR 2
Empty
KyungHee Univ.
2-2
ATMega128 Interrupt
KyungHee Univ.
2-3
ATMega128 Interrupt
KyungHee Univ.
2-4
PORTD 의 부가 기능
Port Pin
Alternate Function(부가 기능)
PD7
T2 (Timer/Counter2 Clock Input)
PD6
T1 (Timer/Counter1 Clock Input)
PD5
XCK1 (USART1 External Clock Input/Output)
PD4
IC1 (Timer/Counter1 Input Capture Trigger)
PD3
INT3/TXD1 (External Interrupt3 Input or USART1 Transmit Pin)
PD2
INT2/RXD1 (External Interrupt2 Input or USART1 Receive Pin)
PD1
INT1/SDA (External Interrupt1 Input or TWI Serial Data)
PD0
INT0/SCL (External Interrupt0 Input or TWI Serial Clock)
KyungHee Univ.
2-5
PORTE 의 부가 기능
Port Pin
Alternate Function(부가 기능)
PE7
INT7/IC3 (External Interrupt 7 Input or Timer/Counter3 Input Capture
Trigger)
PE6
INT6/T3 (External Interrupt 6 Input or Timer/Counter3 Clock Input)
PE5
INT5/OC3C (External Interrupt 5 Input or Output Compare and PWM
Output C for
Timer/Counter3)
PE4
INT4/OC3B (External Interrupt 4 Input or Output Compare and PWM
Output B for
Timer/Counter3)
PE3
AIN1/OC3B (Analog Compare Negative Input or Output Compare and
PWM
Output A for Timer/Counter3)
PE2
AIN1/OC3A (Analog Compare Positive Input or USART0 external clock
input/output)
PE1
PDO/TXD0 (Programming Data Output or USRT0 Transmit Pin)
PE0
PDI/RXD0 (Programming Data Input or USRT0 Receive Pin)
KyungHee Univ.
2-6
External Interrupts를 사용 하기 위한 설정
INTn(n: 0-7)
PD : PD0(INT0), PD1(INT1), PD2(INT2), PD3(INT3)
PE : PE4(INT4), PE5(INT5), PE6(INT6), PE7(INT7),
External Interrupt을 사용하기 위한 설정
사용하고자 하는 Port를 입력으로 설정
External Interrupt의 mode 설정
External Interrupt의 mask 설정
External Interrupt Mask Register 에서 사용하고자 하는 INT를
Set
Interrupt를 Enable
Status Register (SREG)의 I-bit를 Set 함
KyungHee Univ.
2-7
EICRA - External Interrupt Control Register A
KyungHee Univ.
2-8
EICRB - External Interrupt Control Register B
KyungHee Univ.
2-9
EIMSK - External Interrupt Mask Register
INT7~0 Interrupt를 개별적으로 허용하는데 사용
허용 : 1 , 금지 : 0
INT7~0 Interrupt를 개별적으로 허용하고, 동시에 Status
Register (SREG)의 I를 1로 Set 하여야 한다.
EIMSK - External Interrupt Mask Register
KyungHee Univ.
2-10
EIFR - External Interrupt Flag Register
INT7 ~ 0 Pin에 Interrupt 신호가 입력되어 해당 Interrupt가
Trigger 되었음 표시
MCU이 Interrupt Vector 로 Jump하면 0으로 Cleared 됨
EIFR - External Interrupt Flag Register
KyungHee Univ.
2-11
External Interrupt Program 예
cho_key_debounce
cho_keypad_basic_ext_int
cho_command_exec_real_time
KyungHee Univ.
2-12