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

Similar documents
Microsoft PowerPoint - es-arduino-lecture-03

[8051] 강의자료.PDF

lecture4(6.범용IO).hwp

KEY 디바이스 드라이버

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

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

슬라이드 1

K&R2 Reference Manual 번역본

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

ATmega128

Microsoft PowerPoint - polling.pptx

PowerPoint 프레젠테이션


PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

C프로-3장c03逞풚

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

MAX+plus II Getting Started - 무작정따라하기

CPX-E-EC_BES_C_ _ k1

T100MD+

Microsoft PowerPoint - MSP430_Firmware Design_Develop_V11.ppt

SRC PLUS 제어기 MANUAL

YD-3533.xls

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft Word doc

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

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

MPLAB C18 C

Microsoft Word - DCMD-1000 사용자 메뉴얼.docx

API 매뉴얼

MicrocontrollerAcademy_Lab_ST_040709

ez-md+_manual01

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

CPX-E-PB_BES_C_ _ k1

API 매뉴얼

Motor

서보교육자료배포용.ppt

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

untitled

Siemens

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

디지털공학 5판 7-8장

Microsoft Word - DTM-M300_Spec_V1_0.doc

KR

6주차.key

UI TASK & KEY EVENT

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

bn2019_2

DE1-SoC Board

BMP 파일 처리

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

Microsoft Word - Installation and User Manual_CMD V2.2_.doc

PowerPoint 프레젠테이션

Microsoft Word - 1-차우창.doc

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

슬라이드 1

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

ez-shv manual

CPX-E-SYS_BES_C_ _ k1

PowerPoint 프레젠테이션

Chapter_06

03장.스택.key

MR-3000A-MAN.hwp

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

USER GUIDE

BY-FDP-4-70.hwp

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

Formatvorlage für Arbeitsanweisungen

13주-14주proc.PDF

Java ...

untitled

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

Microsoft Word - PLC제어응용-2차시.doc

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

[ 융합과학 ] 과학고 R&E 결과보고서 뇌파를이용한곤충제어 연구기간 : ~ 연구책임자 : 최홍수 ( 대구경북과학기술원 ) 지도교사 : 박경희 ( 부산일과학고 ) 참여학생 : 김남호 ( 부산일과학고 ) 안진웅 ( 부산일과학고 )

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

강의10

PowerPoint 프레젠테이션

(MHT-SB112\273\347\276\347\274\255.hwp)

ºÎ·ÏB

한글사용설명서

UI TASK & KEY EVENT

2주차: 입출력 제어 복습

5.스택(강의자료).key

슬라이드 제목 없음


Infinity(∞) Strategy

Transcription:

임베디드시스템기초 (#514115 ) #2. GPIO & Matrix Keypad 한림대학교전자공학과이선우

Short Review #1 General Purpose Input Output (GPIO) Output port Input port Switch 사용방법 2

General Purpose Input Output(GPIO) port 모든 MCU의가장기본적이고중요한주변장치 (Peripheral device) 줄여서 Digital I/O or digital port라고도함. MCU 칩의각핀 (pin) 이수행하는기능의하나. 대개핀하나로입출력기능수행 (I/O 기능선택 direction 설정 ) Port 복수개의디지털입출력핀을묶어서 ( 보통 8 개, 8bit) 지칭하는용어 Digital Output 기능 스위치기능 : ON (Vcc 연결 ), OFF (GND 연결 ) Digital Input 기능 핀의상태 (H/L) 를아는기능 3

Digital output 기능 일반적인 logical gate 의출력과동일기능 즉, 논리값 1 = Vcc 가연결 3V/5V 출력 논리값 0 = GND가연결 모든외부장치 ON/OFF 제어에사용 Switch 와동일기능 ( 회로적으론다름 ) 전기적특성 (Electrical characteristics) Vcc=3V, I OH(max) < 48mA Vcc=2.2V, I OH(max) < 12mA 4

MSP430FG461x Digital I/O ports MSP430FG4618 P1/P2: 2x8 I/O, 인터럽트발생가능 P3/P4/P5/P6: 4X8 I/O P7/P8/P9/P10: 4X8/2X16 I/O 각핀별로 Direction(I/O) 설정가능 5

Digital I/O Registers PxOUT: Output 으로설정되었을때각핀의논리값 (1/0) 결정 P1OUT.1 =1 P1.1 pin=vcc PxDIR: Direction 을설정하는 SFR P1DIR.1 =1 P1.1 pin: output direction Special Function Reg. (SFR) 내장주변장치를제어하는조정기 6

Digital Output 관련 SFR 역할 P3DIR 7 6 5 4 3 2 1 0 0 0 1 1 1 1 1 1 방향결정 Vcc Vcc GND GND GND GND Vcc P3OUT 7 6 5 4 3 2 1 0 0 0 1 0 0 0 1 1 각 output pin 값결정 7

실습보드장착 LED ON/OFF 제어 #include "msp430.h" int main(void) { unsigned int i; WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P2DIR = 0x06; P2OUT = 0x02; for (;;) { P2OUT ^= 0x06; i = 30000; do i--; while (i!= 0); PORT 의입출력방향설정 P2DIR 0000 0110 B (P2.2=LED1, P2.1=LED2) 각핀의출력설정 각핀의논리값을결정. 1: H(ON,3.3V) 0: L(OFF,0V) Toggle ^= P2OUT ^ 0000 0110 8

Mechanical switch 관련특징 / 용어 일반적인키보드 / 키패드의경우순간접촉방식의스위치사용 모든기계적스위치의경우접촉시그림과같은펄스를만들어냄 바운스 (Bounce) 채터링 (chattering) 현상 9

Debouncing (chattering 방지 ) 기법 Contact bounce(chatter) 에의한 read error 를방지하기위한방법 Hardware 적인방법 RC Low-pass filter 회로이용 장점 : 간단한회로 단점 : 느린응답성 별도전용칩을사용 ELM410 Software 적인방법 일정시간간격 ( 약수백 ms) 을두고 2 번읽어동일한값이면인정하는방법 10

입력포트사용하기 ( 외부상태알기 ) P1.0=SW1 P1.1=SW2 회로도 입력포트사용하기 ( 외부상태알기 ) SW2 open DVcc (3V) SW2 pushed GND 11

입력포트사용하기 ( 외부상태알기 ) void main(void) { WDTCTL = WDTPW + WDTHOLD; P2DIR = 0x06; P1DIR &= 0xFC; while(1) { unsigned char swstatus; swstatus = P1IN; swstatus &= 0x03; swstatus = swstatus<<1; P2OUT = swstatus; delay(10000); PORT 의입출력방향설정 output: P2.2=LED1, P2.1=LED2 input: P1.0=SW1, P1.1=SW2 핀상태값을읽음 INPUT 1: H(ON,3.3V), 0: L(OFF,0V) 만약 SW 가눌려있다면 L 의값을가짐 신호처리 &= 0x03; bit1,bit0 만값을유지시키고나머지비트는 0 으로. <<1: shift left 1bit SW 상태반대로 LED 로표시, 즉누르면꺼짐. 12

연속입력문제 원하는 switch 동작즉, H L 만을감지! 무한루프에의한연속입력발생 원하지않는 auto-repeat * 문제해결방법스위치가원상태로돌아온것을감지하여 H L 을 enable 시킴. 13

의도하지않은 repeat 방지법 unsigned char rd_flag, sw1, sw2; // 최초설정, 보통 initial condition 이라함 rd_flag = 1; IF 조건문의미 2 번읽어두값모두 0 일때만 TRUE. 즉, 스위치눌렸을때 while(1) { sw1 = P1IN & 0x01; delay(10000); sw2 = P1IN & 0x01; if (!sw1 &&!sw2) { if( rd_flag) { P2OUT ^= 0x02; //LED1 toggle rd_flag =0; else if ( sw1 && sw2 ) { rd_flag = 1; 문제해결방법 rd_flag 가 1 일때만응답 rd_flag=0 으로리셋시킴으로오직한번만실행됨. SW1 Read enable SW1 이다시원래상태 (H) 를감지하여 rd_flag=1 시킴. 14

Matrix Keypad What? How to use? How to make a code? 15

Keypad 란? Keypad A Keypad is a set of buttons arranged in a block which usually bear digits, symbols and usually a complete set of alphabetical letters. (http://en.wikipedia.org/wiki/keypad ) Numeric keypad, telephone keypad, etc. 3X4 keypad 4X4 keypad 16

Keypad 사용방법 사용이유 적은수의포트로많은키입력가능 (Ex: 16 개스위치 4x4 8 DIO 필요 ) 동작원리 Pull-up된 X1~X4와스위치로연결된 Y1~Y4 라인중하나씩 Low 로만들면서 P2.4~P2.7 핀의상태를읽어 4개스위치중하나의눌림을판단하는방식 scanning Ex.:P2.0=L, 나머지 =H 상태에서 P2.4~P2.7 READ. 만약 1번스위치가눌렸다면 P2IN=1110 0000 ( 즉 P2.4=L) 됨. 17

Example: 4X4 Keypad GPIO 설정 P2.0~P2.3: output P2.4~P2.7:input Output Input Key mapping table - If Y1=L, read [P2.7-4] 4bit [1110] = 1 4bit [1101] = 2 4bit [1011] = 3 4bit [0111] = F - If Y2=L, read [P2.7-4] 4bit [1110] = 4 4bit [1101] = 5 4bit [1011] = 6 4bit [0111] = E 18

Code for 4X4 keypad reading void main() { int num = 0; char rd; while(1) { do { num = 0xff; P2OUT &= ~(0x01); //P2.0=L rd = P2IN & 0xf0; if (rd!= 0xf0) switch(rd) { case 0x0e: num=1; break; case 0x0d: num=2; break; case 0x0b: num=3; break; case 0x07: num=0xf; P2OUT = (0x01); //Y1 disable P2OUT &= ~(0x02); //P2.1=L // 위와비슷한루틴수행하여 Y2 line 을 //enable 시켜 2~E 4 개스위치의눌림을감지함.. P2OUT!= (0x02); //Y2 disable //Y3 enable & check 4 SWs (7~D) //Y4 enable & check 4 SWs (A~C) while(num == 0xff); //16 개스위치중하나가눌렸고이를읽은상태.. 이곳에서눌린스위치에따른작업을수행하면된다. 19