130 likes | 488 Views
ATMega128 External Interrupt. 인터럽트의 개요. Interrupt : 외부 장치의 요구에 의해서 현재 실행 중인 프로그램을 잠시 멈추고 , Interrupt 에 의하여 요구된 작업을 먼저 수행한 후에 다시 원래의 프로그램으로 복귀하여 실행 한다 . 주변장치의 서비스 요청에 맞추어 ( 동기 하여 ) 서비스를 실행 한다 . Embedded System 의 Program 은 대부분 Interrupt Drive 방식으로 작성 한다 . Interrupt 의 처리 과정. Main Routine.
E N D
인터럽트의 개요 • Interrupt : 외부 장치의 요구에 의해서 현재 실행 중인 프로그램을 잠시 멈추고,Interrupt에 의하여 요구된 작업을 먼저 수행한 후에 다시 원래의 프로그램으로 복귀하여 실행 한다. • 주변장치의 서비스 요청에 맞추어(동기 하여) 서비스를 실행 한다. • Embedded System의 Program은 대부분 Interrupt Drive 방식으로 작성 한다. • Interrupt의처리 과정 Main Routine Main Routine Interrupt Routine
인터럽트의 처리 순서 2. Vector Table 참조 3. ISR으로 Jump 1. Interrupt 발생 4. ISR 종료후 원래 처리중인 Program 으로 복귀
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 함
EIMSK - External Interrupt Mask Register • INT7~0 Interrupt를 개별적으로 허용하는데 사용 • 허용 : 1 , 금지 : 0 • INT7~0 Interrupt를 개별적으로 허용하고, 동시에 Status Register (SREG)의 I를 1로 Set 하여야 한다. • EIMSK - External Interrupt Mask Register
EIFR - External Interrupt Flag Register • INT7 ~ 0 Pin에 Interrupt 신호가 입력되어 해당 Interrupt가 Trigger 되었음 표시 • MCU이 Interrupt Vector 로 Jump하면 0으로 Cleared 됨 • EIFR - External Interrupt Flag Register
External Interrupt Program 예 cho_key_debounce cho_keypad_basic_ext_int cho_command_exec_real_time