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

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

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

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

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

슬라이드 1

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

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

Microsoft Word - logic2005.doc

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

Microsoft PowerPoint - MSP430_Firmware Design_Develop_V11.ppt

API 매뉴얼

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

9장 순차논리 회로

Microsoft Word - PEB08_USER_GUIDE.doc

디지털공학 5판 7-8장

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

[8051] 강의자료.PDF

<4D F736F F F696E74202D20332EB5F0C1F6C5D0C8B8B7CEBFCD20B1B8C7F62E >

AN2629

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

ºÎ·ÏB

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

AVR Atmega128

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint - 제10장.ppt [호환 모드]

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

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

전자실습교육 프로그램

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

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

슬라이드 1

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

10 장카운터

2

Microsoft PowerPoint - polling.pptx

Chapter ...

Microsoft PowerPoint os2.ppt [호환 모드]

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

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

RVC Robot Vaccum Cleaner

ATmega128

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

untitled

MicrocontrollerAcademy_Lab_ST_040709

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

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

Slide 1

Microsoft Word - SRA-Series Manual.doc

ADP-2480

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

T100MD+

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

KEY 디바이스 드라이버

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

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

1. 제품소개 1.1 제품소개 < 그림 1.1> 도트매트릭스모듈 하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 16x16 도트매트릭스모듈입니다. 또한당사 AVR, PIC, ARM(STM32F) 개발보드와 1P 점퍼클립케이블을이용하여연동이가능하

서보교육자료배포용.ppt

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

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


59

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

(6)


User Guide

CAN-fly Quick Manual

歯MW-1000AP_Manual_Kor_HJS.PDF

수없기때문에간단한부분으로나눠서구현하고, 이를다시합침으로써전체를구현하게 된다. 실험에서는이미구현된 4-Bit ALU인 74LS181 Chip을사용한다. 이 Chip은 4-bit의 Data input A, B와 Selection input 4 bit, Carry In 1

LCD Display

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

. "" "",.... :...,,....,.. :..,,,..,,...,.... 2

Microsoft Word - logic2005.doc

<4D F736F F D E20B4DCB8BB20C1A1B0CB20B9D720C1B6C4A120B8C5B4BABEF35F76312E335F2E646F63>

<BDC7C7E83520BFB9BAF1BAB8B0EDBCAD2E687770>

2014밝고고운동요부르기-수정3

2005프로그램표지

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

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

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

<C3CA3520B0FAC7D0B1B3BBE7BFEB202E687770>

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

슬라이드 1

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

Smart Power Scope Release Informations.pages

R50_51_kor_ch1

KR

고객 카드 현대모비스 제품을 구입해 주셔서 대단히 감사합니다. A/S 마크란? 공업 진흥청이 애프터 서비스가 우수한 업체를 선정, 지정하는 마크로 애프터 서비스 센터 운영관리 등 8개 분야 45개 항목의 까다로운 심사로 결정됩니다. 주의 : 본 제품의 디자인 및 규격은

전자교탁 사양서.hwp

Microsoft Word - USB복사기.doc

UI TASK & KEY EVENT


chap7_ohp.hwp

Chapter #01 Subject

LCD Monitor

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Oct.; 27(10),

歯FDA6000COP.PDF

Chapter4.hwp

2 3

Microsoft PowerPoint - es-arduino-lecture-03

Transcription:

마이크로컨트롤러기초 (#514112 ) #.7 Basic Timer1 기초 핚림대학교젂자공학과이선우

Contents Digital Counter Basics MSP430x4xx Timers Overview Basic Timer 1 Example program

Digital Counter & Timer

Counter Basics Digital counter ( 계수기 ) A device which stores the number of times a particular event or process has occurred. (http://en.wikipedia.org/wiki/digital_counter) 클럭펄스를세어서수치를처리하기위핚논리회로 ( 디지털회로 ) ( 위키피디아핚글 ) 작동원리 기계식카운터입력 ( 스위치누름 ) = 클럭펄스 (rising or falling edge) 자리수 = 카운터레지스터크기 8bit counter 의셀수있는범위 : 0~255, 10 bit 0~ 1023 (1024 개 ) http://en.wikipedia.org/wiki/file:countersmechanical.agr.jpg

Digital counter 종류 Asynchronous (ripple) counter- 변화하는상태비트가다음단의클럭입력으로사용 Synchronous counter- 모든상태비트가하나의클럭싞호에의해변화함. Up-down counter- 증가 / 감소양방향으로셀수있는카운터 http://en.wikipedia.org/wiki/file:4-bit-jk-flip-flop_v1.1.svg

Timer ( 타이머 ) MCU의기본적인주변기기, 따라서모든 MCU가내장 기본회로는클럭싞호를카운트하는카운터 (counter), 즉, 입력클럭에따라내부레지스터의값을증가 / 감소. 이러핚카운터에정확핚주기의클럭싞호를입력하면, 필요핚시갂갂격을측정핛수있다. Timer 예 :1Khz clock ( 핚주기시갂 =1msec), 1000 개카운트 1sec 외부싞호혹은이벤트의발생개수를카운트핛필요가있는경우, 원래의카운터로이용가능 타이머 ( 카운터 ) 의사양 ( 능력 ) 셀수있는개수 ( 표시가능핚수의범위 ) 저장핛수있는비트의개수 Ex. 8-bit timer 0~255 (256개), 16-bit timer 0~65535(64K=64*1024), 32bit-timer 0~4G(4*1024*1024개 ) http://en.wikipedia.org/wiki/file:lux_products_long_ring_timer.jpg

MSP430 Basic Timer1 (ch. 13)

MSP430x4xx 타이머종류 MSP430x4xx series 는다음과같은 3 종류의타이머내장 Basic Timer1 Two independent, cascadable 8-bit timers Selectable clock source Interrupt capability LCD control signal generation Timer A, Timer B 16-bit timer/counter with 3 or 5 capture/compare registers Multiple capture/compares, PWM outputs, interval timing

Basic Timer 1 Block diagram 2 개의별도카운터 (1&2) BTCNT1: incremented with ACLK, LCD controller 의다이나믹구동을위핚주파수를제공함. BTCNT2: source ACLK,SMCLK, ACLK/256 ACLK: auxiliary clock 보드 :32768Hz [1] 13-3 page

Clock signals in MCU 모든 Sequential digital logic devices( 순차논리회로장치 ) 가동작하기위해서는 clock 싞호가필요. 이싞호에의해모든내부논리회로들이동기화되어동작함 (synchronized) MCU = typical sequential logic device 모든내부장치가클럭싞호에의해동기화 만약클럭싞호가멈추면 MCU 의동작도멈춤 (sleep/suspend/low-power mode) 클럭싞호발생방법 대부분의경우 : 외부 crystal oscillator + 내부발진 / 증폭회로 장점 : 정확핚주기확보, 단점 : 고가 내부 RC oscillator 회로이용 : 저가 ( 장점 ), 부정확핚주기 ( 단점 )

Clocks in MSP430 대개의 MCU 의경우 2 개이상의클럭싞호이용 Main clock CPU 와내부관련레지스터동작용, 따라서매우빠름 외부 oscillator 의주파수를내부발진회로를이용하여배증 (X) 하여사용하는것이일반적. MCLK in MSP430FG4618 내부 clock module(ch.5) 회로내장 외부 Osc. (=32768Hz) * x = MCLK (master clock) Default: f crystal * 32, 타겟보드 : 32768*32 =1048576Hz Peripheral (auxiliary) clock : 주변장치동작용으로대개 Main clock 에비해속도가느리나더빠른경우도있음. MSP430 경우 ACLK (auxiliary clock): 32.768KHz for real-time clock module SMCLK (sub-main clock): MCLK 과동일

타이머와클럭관계 MCU 내장타이머 (= 카운터 ) 32768Hz clock 을몇개세느냐를이용하여원하는시갂갂격 (interval) 을결정 BT1 이용경우 : BTCNT1 (8bit) ACLK 입력에따라 0~255 까지표시가능 ( 각비트는 Qx 로표시 ) Q7 의경우주기 =ACLK/256 인클럭싞호가됨. ( 왜??) Overflow: 현재값 255 + 1 ( 클럭입력 ) 0 (reset) BTCNT2 (8bit) 3 가지종류의클럭소스 : ACLK, ACLK/256 (by using BTCNT1), SMCLK 입력되는클럭에따라 0,1,2,, 254, 255, 0, 1, 2, 로 BNCNT2 값변화 각자리수비트가 rising/falling edge 발생핛때인터럽트발생시킴. 즉, 입력클럭 (f CLK2 ) 을 2, 4, 8, 16,, 128, 256 개를셀때의인터벌을측정 ( 발생 ) 핛수있음.

기본적인이용방법 BT1 의경우일반적인이용방법 LCD 컨트롤러용클럭생성 (MSP430FG4618 은해당없음 ) 기본적인시갂갂격타이머로이용 Ex. 타겟보드 default 설정 : ACLK=32768Hz, SMCLK=ACLK*32=1048576Hz ( 1MHz) 긴갂격생성은? ACLK/256=128Hz 128Hz/2,4,8,16,31,64,128,256 64Hz, 32Hz, 16Hz,8Hz,4Hz,2Hz,1Hz, 0.5Hz 시갂갂격마다인터럽트발생 ( 이를이용 ) 짧은시갂갂격은? ACLK 을선택하면위보다 256 배짧은갂격생성가능 더짧은갂격은? SMCLK 사용함!

타이머활용방법 ( 개념이해 ) Task 0.5 초의인터벌을만들어 ( 관측하여 ) 이시갂갂격으로 LED 를깜박이자. 요구사항 0.5 초의인터벌관측 LED 1 개 ON/OFF 타겟보드에서는.. ACLK=32768Hz 이므로 T=1/32768 sec, 따라서이클럭을 16384 개를세면 0.5 초가됨. ( 카운트값 =f CLK2 /f desired ) 결정핚인터벌마다 LED 를 toggle 시키면됨.

BT1 Control Registers [1] 13-7 page

C program for LED blinking using polling void main(void) { WDTCTL = WDTPW + WDTHOLD; } P2DIR = 0x02; P2OUT = 0x02; //setup Basic Timer1 // BTCNT2 <- slow interval 2Hz BTCNT1 = 0; BTCNT2 = 0; BTCTL = 0x25; //001 00 101 while(1) { // 정해진간격체크? if( BTCNT2 == 255 ) //LED toggle P2OUT ^= 0x02; } BT1 설정 BTCNT1/2 reg. 초기화 ( 대개 reset 에의해 0 이되나, 0 으로의초기화필요 ) BTCTL 설정 - 가장중요! 젂체동작설정 * 클럭소스결정 : BTSEL=0 & BTDIV=1 ACLK/256 * 인터럽트발생인터벌 : /64 101 Polling 방법 BTCNT2 는언제나읽기가능, 따라서이값을비교하여특정갂격측정 ( 관측 ) 가능 255 가되면 LED toggle 255 다음값은?

C program for LED blinking using Interrupt #pragma vector=basictimer_vector interrupt void bt1_handler(void) { P2OUT ^= 0x02; //toggle LED1 } void main(void) { WDTCTL = WDTPW + WDTHOLD; BT1 Irq. Serive Routine(ISR) 지정핚인터벌마다 BT1 이발생시킴. 이때마다자동으로이루틴실행 LED toggle } P2DIR = 0x02; P2OUT = 0x02; //setup Basic Timer1 // BTCNT2 <- slow interval 2Hz BTCNT1 = 0; BTCNT2 = 0; BTCTL = 0x25; //001 00 101 IE2 = 0x80; enable_interrupt(); while(1); BT1 control reg. 설정 앞과동일 클럭소스 =ACLK/256, BT1 Interrupt Interval = fclk2/64 Interrupt enable IE2.7 (BTIE bit) = 1 해야만 IRQ. 동작실행. GIE=1 (by enable..())