13
KyungHee Univ. 2-1 ATMega128 External Interrupt

KyungHee Univ. 2-0 ATMega128 External Interrupt. KyungHee Univ. 2-1 인터럽트의 개요 Interrupt : 외부 장치의 요구에 의해서 현재 실행 중인 프로그램을 잠시

Embed Size (px)

Citation preview

KyungHee Univ. 2-1

ATMega128 External Interrupt

KyungHee Univ. 2-2

인터럽트의 개요

Interrupt : 외부 장치의 요구에 의해서 현재 실행 중인 프로그램을 잠시 멈추고 , Interrupt 에 의하여 요구된 작업을 먼저 수행한 후에 다시 원래의 프로그램으로 복귀하여 실행 한다 .

주변장치의 서비스 요청에 맞추어 ( 동기 하여 ) 서비스를 실행 한다 .

Embedded System 의 Program 은 대부분 Interrupt Drive 방식으로 작성 한다 .

Interrupt 의 처리 과정

Main Routine Main Routine

Interrupt Routine

KyungHee Univ. 2-3

인터럽트의 처리 순서

Vector Table

Program Memory

ISR 1

ISR 2

Empty

1. Interrupt 발생

2. Vector Table 참조

3. ISR 으로 Jump

4. ISR 종료후 원래 처리중인 Program 으로 복귀

KyungHee Univ. 2-4

ATMega128 Interrupt

KyungHee Univ. 2-5

ATMega128 Interrupt

KyungHee Univ. 2-6

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-7

PORTE 의 부가 기능Port

Pin Alternate Function( 부가 기능 )

PE7 INT7/IC3 (External Interrupt 7 Input or Timer/Counter3 Input Capture Trig-ger)

PE6 INT6/T3 (External Interrupt 6 Input or Timer/Counter3 Clock Input)

PE5INT5/OC3C (External Interrupt 5 Input or Output Compare and PWM Out-

put C forTimer/Counter3)

PE4INT4/OC3B (External Interrupt 4 Input or Output Compare and PWM Out-

put B forTimer/Counter3)

PE3AIN1/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 clockinput/output)

PE1 PDO/TXD0 (Programming Data Output or USRT0 Transmit Pin)

PE0 PDI/RXD0 (Programming Data Input or USRT0 Receive Pin)

KyungHee Univ. 2-8

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-9

EICRA - External Interrupt Control Register A

KyungHee Univ. 2-10

EICRB - External Interrupt Control Register B

KyungHee Univ. 2-11

EIMSK - External Interrupt Mask RegisterINT7~0 Interrupt 를 개별적으로 허용하는데 사용

허용 : 1 , 금지 : 0INT7~0 Interrupt 를 개별적으로 허용하고 , 동시에 Status

Register (SREG) 의 I 를 1 로 Set 하여야 한다 .

EIMSK - External Interrupt Mask Register

KyungHee Univ. 2-12

EIFR - External Interrupt Flag Regis-ter

INT7 ~ 0 Pin 에 Interrupt 신호가 입력되어 해당 Interrupt 가 Trigger 되었음 표시

MCU 이 Interrupt Vector 로 Jump 하면 0 으로 Cleared 됨

EIFR - External Interrupt Flag Register

KyungHee Univ. 2-13

External Interrupt Program 예

cho_key_debouncecho_keypad_basic_ext_intcho_command_exec_real_time