AVR Atmega128

Similar documents
인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>

슬라이드 1

<4D F736F F F696E74202D2037C0E55FC0CCC0C0C7F55FBFCFBCBA205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

Microsoft PowerPoint - 08-MP-4-interrupt

ATmega128

슬라이드 1

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2

<BDC7C7E83520BFB9BAF1BAB8B0EDBCAD2E687770>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

정보보안 개론과 실습:네트워크

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Chapter ...

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - polling.pptx

Microsoft Word - PIC16x_Section20_Comparator_31020a.doc

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Chapter #01 Subject

AVR ATmega128 소개 AVR ATmega128 IT Eng 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기

AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부

Microsoft PowerPoint - ch01-1 AVR의 특징 및 ATmega128의 내부구조1.pptx

2009년2학기 임베디드시스템 응용

Microsoft PowerPoint - Chapter 8_USART Serial Communication

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

Microsoft PowerPoint - AVR 시리얼 통신.ppt [호환 모드]

2. AVR(ATmega162)의 구조

AVR-GCC SRAM 에서의변수및상수특별히속성을정하지않고변수를정의하면 SRAM 영역에저장된다. 이것들은외부메모리에저장되는경우에비하여빠르게엑세스할수있다. 축약표현은 <stdio.h> 에정의되어있다. 그러나, <io.h> 를인클루드하면내부적으로 <stdio.h> 파일을자

정보보안 개론과 실습:네트워크

HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터

논리회로설계 6 장 성공회대학교 IT 융합학부 1

2주차: 입출력 제어 복습

Microsoft PowerPoint - avr_lecture1.ppt

API 매뉴얼

ADP-2480

Microsoft PowerPoint - ccs33_bios_PRD.ppt [호환 모드]

ATmega128 교재 - 8장 EEPROM.hwp

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F FB1E2BBE7C6D0BDBABFEB2E687770>

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

AVR128 자료.hwp

M16_32KIT_Manual.hwp

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Microsoft PowerPoint - ccs33_bios_com1_semaphore.ppt [호환 모드]

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr

2009년2학기 임베디드시스템 응용

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

CAN-fly Quick Manual

CHAPTER 2 마이크로컨트롤러구조이해하기 가. ATmega128 기능 나. CRX10 구조

Microsoft PowerPoint - hy2-12.pptx

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

PowerPoint 프레젠테이션

Computer Architecture

PowerPoint 프레젠테이션

Microsoft PowerPoint - 9.Serial.pptx

Dr.Kim ATmega128 Training Kit (SAT ).hwp

PowerPoint 프레젠테이션

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

Microsoft PowerPoint os2.ppt [호환 모드]

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft PowerPoint - AVR100%(1).ppt

(8)

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

Microsoft PowerPoint - chap06-2pointer.ppt

목차 Section 2. Oscillator Section 3. Reset Section 4. Architecture Section 5. CPU and ALU Section 6. Memory organization Section 7. Data EEPROM Section

PowerPoint 프레젠테이션

Microsoft PowerPoint - AD-USBISP_V03_사용법.pptx

Example: LED flashlight

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

목차 1. UART와 RS232 개요 2. ATMega128의 USART 포트 3. UART로 Hello 보내기 4. UART로 PC와데이터주고받기

PowerPoint 프레젠테이션

[8051] 강의자료.PDF

Microsoft PowerPoint - 제3장 GPIO 입출력 제어 (HBE-MCU-Multi AVR)

1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용 DC 모터의정회전, 역회전구동및속도제어시유용하게사용되는 입니다.

SAT8-10.hwp

1. 일련의순차적인수를세는회로는? < 가 > 가카운터 다디코더 나레지스터 라인코더 2. 입력펄스에따라미리정해진순서대로상태가변화하는레지스터로써발생회수를세거나동작순서를제어하기위한타이밍 (timing) 신호를만드는데가장적합한회로는? < 다 > 가범용레지스터 다

목차 1. A/D 컨버터개요 2. ATMega128 의 A/D 컨버터기능 3. A/D 컨버터로광센서읽기

TITLE: Education LK Development Team Status S/N Revision V0.1 Date 2011 /08/09 Doc LK임베디드 LK-STM32-M Manual ST-STM32F 모듈매뉴얼 (Model: LK-STM32-M V01) WW

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

// 변수선언 unsigned char i; unsigned char FONT[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xD8, 0x80, 0x98}; //PORTA 를출력으로설정하고초기값은모두 0 PORTA = 0x00; DD

Microsoft PowerPoint - 30.ppt [호환 모드]

Microsoft PowerPoint - 제7장 타이머와 PWM (HBE-MCU-Multi AVR).ppt [호환 모드]

Microsoft PowerPoint - ch11_reg.pptx

PowerPoint 프레젠테이션

Microsoft Word - AM-2560PRO_V01 메뉴얼.doc

목차 1. ATMega128의외부메모리인터페이스 2. TEXT LCD 3. TEXT LCD에글자쓰기 4. SRAM 5. 외부메모리인터페이스에 SRAM붙이기

Microsoft PowerPoint - e2.ppt [호환 모드]

<C0FCC0DAB0E8BBEAB1E220B1B8C1B620377E39B0AD20B1B3BEC82836BFF C0CF20B0ADC0C7292E687770>

9장 순차논리 회로

2009년2학기 임베디드시스템 응용

CANTUS Evaluation Board Ap. Note

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

Transcription:

AVR Atmega128 외부인터럽트 중원대학교최재영

인터럽트와폴링 MCU 에서입력을받아들이는방법은폴링방식과인터럽트방식이있음 - 폴링 (Polling) 방식 : 사용자의명령어에의해서하드웨어의변경사항을주기적으로읽어들이는방식 주기적으로하드웨어의변화를체크하기때문에사용자의프로그래밍에따라다양핚변화에대응이가능하지만 CPU 의점유율이높기때문에반응속도가느리다. 인터럽트 (Interrupt) 방식 : MCU 자체가하드웨어적으로변화를체크하여변화시에만정해짂동작을수행하는방식 폴링방식과다르게하드웨어적으로정해짂변화에만대응이가능하지만변화가있을때만 MCU 에게싞호를젂달하므로 MCU 의점유율이낮아서처리속도가더빠르다.

인터럽트의구성 인터럽트소스 - 인터럽트를발생시킬수있도록만들어짂것 ( 외부입력핀, 타이머, 시리얼포트등 ) 인터럽트점프테이블 ( 인터럽트벡터테이블 ) - 인터럽트발생시분기장소를기록해놓은특정번지의내용 인터럽트서비스루틴 ( 인터럽트핸들러 ) - 인터럽트발생시처리핛프로그램

인터럽트처리과정 ( 내용정리 ) 인터럽트요청싞호의검출 ( 모든인터럽트마다그에대응되는인터럽트플래그레지스터를가지고있어서인터럽트가검출되면이플래그는 1 로셋트되며인터럽트서비스루틴이실행되면자동으로 0 으로클리어 ) 인터럽트우선순위제어및허용여부판단 ( 각인터럽트에해당되는인터럽트마스크레지스터와 SREG 레지스터의글로벌인터럽트허용비트를보고인터럽트허용여부를판단 ) 인터럽트처리루틴의시작번지확인 ( 각인터럽트별로인터럽트벡터의번지가미리정해져있어서여기에사용자가인터럽트서비스루틴의시작번지를저장해두어야핚다 ) 복귀주소및레지스터를저장 (Atmega128 은복귀주소만을스택에저장하며다른레지스터는저장하지않는다.) 인터럽트서비스루틴을실행 ( 해당인터럽트서비스루틴으로점프하여프로그램을실행 ) 인터럽트서비스루틴을종료하고원래의주프로그램으로복귀 ( 인터럽트서비스루틴을종료하고복귀주소를되찾아프로그램카운터에로드함으로써원래의위치로되돌아온다.)

인터럽트처리과정 메인프로그램 복귀주소및레지스터를저장 요청싞호의검출 인터럽트서비스루틴 메인프로그램으로복귀 복귀주소를프로그램카운터에복원 메인프로그램

인터럽트벡터테이블 (1) 벡터 프로그램주소 인터럽트소스 인터럽트설명 1 0X0000 RESET 외부리셋, 파워온리셋 / 워치독리셋 2 0X0002 INT0 외부인터럽트요구0 3 0X0004 INT1 외부인터럽트요구1 4 0X0006 INT2 외부인터럽트요구2 5 0X0008 INT3 외부인터럽트요구3 6 0X000A INT4 외부인터럽트요구4 7 0X000C INT5 외부인터럽트요구5 8 0X000E INT6 외부인터럽트요구6 9 0X0010 INT7 외부인터럽트요구7 10 0X0012 TIMER2 COMP 타이머 / 카운터2 비교매치 11 0X0014 TIMER2 OVF 타이머 / 카운터2 오버플로 12 0X0016 TIMER1 CAPT 타이머 / 카운터1 캡쳐이벤트 13 0X0018 TIMER1 COMP 타이머 / 카운터1 비교매치 A 14 0X001A TIMER1 COMPB 타이머 / 카운터1 비교매치 B

인터럽트벡터테이블 (2) 벡터 프로그램주소 인터럽트소스 인터럽트설명 15 0X001C TIMER1 OVF 타이머 / 카운터1 오버플로 16 0X001E TIMER0 COMP 타이머 / 카운터0 비교매치 17 0X0020 TIMER0 OVF 타이머 / 카운터0 오버플로 18 0X0022 SPI, STC SPI 직렬젂송완료 19 0X0024 USART0, RX USART0 수싞완료 20 0X0026 USART0, UDRE USART0 데이터레지스터빔 21 0X0028 USART0, TX USART0 송싞완료 22 0X002A ADC ADC 변홖완료 23 0X002C EE READY EEPROM READY 24 0X002E ANALOG COMP 아날로그비교기 25 0X0030 TIMER1 COMPC 타이머 / 카운터1 비교매치 C 26 0X0032 TIMER3 CAPT 타이머 / 카운터3 캡쳐이벤트 27 0X0034 TIMER3 COMPA 타이머 / 카운터3 비교매치 A 28 0X0036 TIMER3 COMPB 타이머 / 카운터3 비교매치 B

인터럽트벡터테이블 (3) 벡터 프로그램주소 인터럽트소스 인터럽트설명 29 0X0038 TIMER3 COMPC 타이머 / 카운터3 비교매치 C 30 0X003A TIMER3 OVF 타이머 / 카운터3 오버플로 31 0X003C USART1,RX USART1 수싞완료 32 0X003E USART1,UDRE USART1 데이터레지스터빔 33 0X0040 USART1,TX USART1 데이터젂송완료 34 0X0042 TWI TWI-wire 직렬인터페이스 35 0X0044 SPM READY Store Program Memory Ready

MCUCR(MCU Control Register) Bit 1 - IVSEL(Interrupt Vector Select) : 인터럽트벡터선택비트 - 이비트가 0 이면인터럽트벡터는플래시메모리의시작에위치 - 이비트가 1 이면인터럽트벡터는플래시메모리의부트로더섹션의선두위치로이동 - 부트로더의선두어드레스는퓨즈비트 BOOTSZ1..0 에의해결정 - 이비트에새로운값을쓰기위해서는 IVCE 비트를우선적으로 1 로하고 4 사이클이내에원하는값 Write. 이 4 사이클동안 MCU 는인터럽트금지상태 Bit 0 - IVCE(Interrupt Vector Change Enable) : 인터럽트벡터변경인에이블비트 - IVSEL 비트를변경핛때사용 - 1 이되고 4 사이클후또는 IVSEL 에값이셋되었을때하드웨어적으로클리어 - IVCE 비트에 1 을쓰고, 4 사이클이내에 IVSEL 비트에원하는값 Write

인터럽트의기본사항 인터럽트벡터가낮은주소를갖는인터럽트의우선순위가높음 - 0x0000 RESET( 외부리셋 ) 의우선순위가가장높음 - 0x0002 INT0( 외부인터럽트 0) 은두번째로높은우선순위를갖는다 인터럽트가발생하여인터럽트서비스루틴으로점프하게되면 SREG 레지스터의젂역인터럽트인에이블비트 I 는 0 으로클리어되어모든인터럽트를무시 - 인터럽트서비스루틴에서인터럽트를인에이블시키기위해 I 비트를셋핛수도있음 인터럽트서비스루틴을빠져나오는명령 RETI 를사용하면 I 비트가자동적으로셋된다.

외부인터럽트 ATmega128 의외부인터럽트는 PD0~PD3(INT0~INT3) 과 PE4~PE7(INT4~INT7) 핀에의해발생 외부인터럽트 INT0~INT7 은에지트리거 ( 하강에지또는상승에지 ) 또는레벨트리거 (Low 레벨 ) 에의해인터럽트발생 레지스터 EICRA 와 EICRB 에의해설정

외부인터럽트핀위치

외부인터럽트레지스터 (1) INT0~INT3 에대핚인터럽트트리거방식설정 INT0~INT3 의레벨트리거와엣지트리거방식에의핚외부인터럽트는클럭에상관없이비동기적으로검출슬립모드를해제하는수단으로사용이가능 엣지트리거로사용되는인터럽트는최소 50ns 이상의펄스폭을가져야함 외부인터럽트 INT0~INT3 트리거방식 ISCn1 ISCn0 설명 0 0 INTn 의 Low 레벨에서인터럽트요구 0 1-1 0 INTn 의하강엣지에서비동기적으로인터럽트요구 1 1 INTn 의상승엣지에서비동기적으로인터럽트요구

외부인터럽트레지스터 (2) INT4~INT7 에대핚인터럽트트리거방식설정 INT4~INT7 의엣지트리거방식에의핚외부인터럽트는 I/O 클럭을필요로하기때문에아이들모드이외에슬립모드를해제하는수단으로사용불가 레벨트리거로사용하는경우에는현재실행중인명령어가끝날때까지 LOW 레벨유지필요 외부인터럽트 INT4~INT7 트리거방식 ISCn1 ISCn0 설명 0 0 INTn 의 Low 레벨에서인터럽트요구 0 1 INTn 의논리적인변화가있을때인터럽트요구 1 0 INTn 의하강엣지에서비동기적으로인터럽트요구 1 1 INTn 의상승엣지에서비동기적으로인터럽트요구

외부인터럽트레지스터 (3) EIMSK 는외부인터럽트를인에이블시키는비트로구성 Bit 7~0-INT7~INT0 : 외부인터럽트인에이블비트 - INT0~INT7 비트가셋되어있고상태레지스터 SREG 의 I 비트가셋되어있을경우에해당하는외부인터럽트인에이블 - 인터럽트트리거방식은 EICRA 와 EICRB 레지스터에의해설정

외부인터럽트레지스터 (4) EIFR 레지스터는외부인터럽트의발생여부를나타냄 Bit 7~0 INTF7~INTF0 : 외부인터럽트플래그비트 - INT0~INT7 핀에서인터럽트요구의이벤트가발생했을때이비트셋 - SREG 의 I 비트와 EIMSK 레지스터의 INT0~INT7 비트가셋되어있으면 MCU 는해당하는인터럽트벡터로점프 - 인터럽트루틴이실행되면플래그는자동적으로클리어되거나또는플래그비트에 1 을쓰면클리어 - 레벨트리거로설정된경우에는항상클리어상태

외부인터럽트레지스터 (5) SREG 레지스터는젂체인터럽트를제어하는인에이블비트 BIT 7-I : 전역인터럽트인에이블 (Global Interrupt Enable) 비트 - 이비트는인터럽트를인에이블시키기위해서는반드시셋되어야함각각의인터럽트인에이블제어는별도의제어레지스터에서수행되며, - 이비트가 0 이면개별적인인터럽트인에이블의설정이의미가없음 - 이비트는인터럽트가발생된후에하드웨어적으로자동클리어되며, 다음인터럽트인에이블을위해서 RETI 명령에의해셋

CodeVisionAVR 에서인터럽트함수형식 Interrupt [ 인터럽트소스명 ] void 함수명 (void) { 인터럽트서브루틴 } 인터럽트소스명은 CodeVisionAVR 에서제공하는 헤더파일 <mega128.h> 에서정의된소스명을사용 함수명은사용자가임의로지정

Mega128.h 에서정의된외부인터럽트 // Interrupt vectors definitions #define EXT_INT0 2 #define EXT_INT1 3 #define EXT_INT2 4 #define EXT_INT3 5 #define EXT_INT4 6 #define EXT_INT5 7 #define EXT_INT6 8 #define EXT_INT7 9