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