다섯째날 : 외부 인터럽트 - 당근이의 AVR 갖고 놀기 - 당근닷컴

Slides:



Advertisements
Similar presentations
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Advertisements

C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
KT-M128 Peripheral Device
제10장 디바이스 드라이버.
KT-M128 Peripheral Device
제6장 조건문.
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
2011 교통봉사부 여름 수련회 계획 사랑의교회교통봉사부.
좋은 강의 국제관계학과 정연식.
KEY 디바이스 드라이버 Lecture #12. 2 차례 GPIO 및 Control Registers KEY 하드웨어 구성 KEY Driver 프로그램 key-driver.c 시험 응용 프로그램 key-app.c.
ROBOTICS LAB. DSP TMS320F2812 ROBOTICS LAB.
AVR 실습.
4. ADC 충북인력개발원 전자과 공학박사 강원찬.
C++ Espresso 제1장 기초 사항.
AVR_M4_232 User Guide
One Step Closer - AVR ATMEGA128 -
9장 가로채기(Interrupt) Slide 1 (of 15).
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
아두이노 프로그래밍 1일차 – Part2 아두이노 사양 강사: 김영준 목원대학교 겸임교수.
Programming을 이용한 ECG증폭기 설계
마이크로프로세서 응용 및 실습 (AVR Microprocessor) 정 원 근.
DC Motor Control.
RnA DISPLAY 구동 Clcd 구동 Made by Bonobonobono.
제2절 법인세의 계산구조와 세무조정 1. 각 사업연도소득에 대한 법인세 계산구조 회계와 사회 결산서상 당기순이익
ATmega128 CH 1 Atmega 128 Board CodeVision.
Chapter 10. Interrupt.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
AVR - Chapter 15 황 지 연.
조도 센서 김한수.
AVR - Chapter 2 황 지 연.
AVR - Chapter 12 황 지 연.
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
다섯째날 : 외부 인터럽트 - 당근이의 AVR 갖고 놀기 - 당근닷컴
캡스톤 물리 음성 인식을 통한 무드 등 지금은 6시 55분 조.
전자의료시스템 및 실습 C-언어 구 환 경희대학교 전자정보대학 동서의료공학과.
제 3 장 상수와 변수
adopted from KNK C Programming : A Modern Approach
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
외주시스템 – 기타업무 1.고용보험하수급인신고 2.동반성장 협약서 3.기성실적 증명
KCC건설 新협력업체포탈시스템 매뉴얼 하자보수시스템 2018년 8월.
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
임베디드 하드웨어 Report.
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
제어문 & 반복문 C스터디 2주차.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
마이크로소프트 박종호.
4. 아두이노로 LED 제어하기 - 스마트 폰으로 제어하는 아두이노 -.
이행점검/현장점검관리.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
법인객실 예약 메뉴얼 하이원리조트 중부사무소.
Part 06 세상을 변화시키는 연산자 안산1대학 디지털정보통신과 임 성 국.
체크포인트 가정 내 일어나는 사고에 대해 알아보고 사고예방을 위해 주의한다. | 예방법 장소별 사고 – 방과 거실 1 2 높은 곳 에 물건 두지 않기! 날카로운 모서리는 천으로 씌우기!
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
LCD.
IBM Corporation {haoxing, eleve, kravets,
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
작동 원리 Keypad 박민호.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
C언어 프로그래밍의 이해 Ch03. 기본 자료형, 변수와 상수.
반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
KCC건설 新협력업체포탈시스템 매뉴얼 외주시스템 - 입찰 2014년 5월.
아두이노 프로그래밍 Lecture #
8단계 3층을 완성한다 Case 1 Case 2 Case 3 Case 4
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
Lecture 7 7-Segment LED controller using u-controller
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
Presentation transcript:

다섯째날 : 외부 인터럽트 - 당근이의 AVR 갖고 놀기 - 당근닷컴 http://www.carroty.com 당근닷컴 http://www.carroty.com 서울특별시 광진구 모진동 199-6 KCC 파크타운 1404호 e-mail : rainbow77@korea.com

INDEX 1 Goal 2 Introduction & Base Knowledge 3 Circuit & Environment 4 Register Setting 이전 “당근이의 AVR 갖고 놀기” 화면 5 Experiment & Result 6 Conclusion & Future Works

Goal 목표 인터럽트에 대한 이해 폴링 방식과 인터럽트 방식의 차이 폴링 방식이 아닌 인터럽트 방식으로 스위치 입력 처리

Introduction 회로도 PIN0, PIN1이 INT0, INT1에 물려있음 : PD4/PD5/PD6/PD7 동작은 전과 동일 : 평소에 HIGH, 눌려지면 LOW

Polling Method 앞장에서 스위치 입력을 받은 예제 : polling 방식 while(true) 부분에서 키입력을 무한히 검사한다. 원래 폴링이 이래요. #include <avr/io.h> #include "./carroty/fundamental.h" #include "./carroty/delay.h" int main(void) { unsigned char key= 0; DDRA= 0xFF; DDRD= 0x0F; while(true) { key= PIND; switch(key) { case (KEY1) : PORTA= LED1_ON; break; case (KEY2) : PORTA= LED2_ON; break; case (KEY3) : PORTA= LED3_ON; break; case (KEY4) : PORTA= LED4_ON; break; default : PORTA= 0xFF; break; } return 0;

Register Setting MCUCR : MCU Control Register GICR : General Interrupt Control Register SREG : Status Register GIFR : General Interrupt Flag Register

Register Setting MCUCR : MCU Control Register GICR : General Interrupt Control Register INT1=1 : PORT D3 ON / INT0=0 : PORT D3 OFF SREG I=1 : All Interrupt Enable : INT설정이 의미가 없어진다.

Register Setting GICR : General Interrupt Control Register INT1=1 : PORT D3 ON / INT0=0 : PORT D3 OFF SREG I=1 : All Interrupt Enable : INT설정이 의미가 없어진다. GIFR : General Interrupt Flag Register INTF1 : INT1 입력 인터럽트 발생시 1로 설정됨 인터럽트 함수가 수행되면 0으로 설정됨 이 값을 루프를 통해 주시하는 것이 아닌 INT가 발생하면 자동으로 인터럽트 함수가 호출됨 : 이점이 폴링 방식과 다르다.

Example External Interrupt Method vs Polling Method #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> /* Interrupt Service Routine */ SIGNAL(SIG_INTERRUPT0) { PORTA= LED1_ON; } // INT0 interrupt function SIGNAL(SIG_INTERRUPT1) { PORT2= LED2_ON; } // INT1 interrupt function int main(void) { cli(); // global interrupt disable MCUCR |= 0b10001010; // SRE(7) : External SRAM/XMEM Enable // ISC11:ISC10(3,2) - 10 : INT1(Falling edge) // ISC01:ISC00(1,0) - 10 : INT0(Falling edge) GICR = 0b11000000; // INT1(7) - 1 : INT1 interrupt enable // INT0(6) - 1 : INT0 interrupt enable GIFR = 0b00000000; // INTF1(7) - 0 : INT1 interrupt flag clear // INTF0(6) - 0 : INT0 interrupt flag clear PORTA= LED1_OFF; PORTA= LED2_OFF; sei(); // global interrupt enable return 0; }